Skip to content
Snippets Groups Projects
Commit d46c0fd4 authored by John Derek Chapman's avatar John Derek Chapman
Browse files

Merge branch 'Merge21.0.110into21.3' into '21.3'

Merge 21.0.110 into 21.3

See merge request !31426
parents e60aeb8c 9ee521d4
16 merge requests!46457Draft: Adding the tools to run over data,!46454Draft: Adding the tools to be able to run over data,!44869Draft: Update to candidate store,!4217921.9-first_steps-InDetTrackingGeometryXML,!39162Draft: Insert BCM' support,!38765Bis78 cabling,!36893Fix size of RPC active region in BIS78 and strip material,!3645821.9: Improving material map description (ATLITKSW-127),!36293WIP pixel updates,!34993KF-input adding jXERHO to the AOD outputs,!34864LH rings in front ot HR rigs,!34763Fix L1_4jJ15.0ETA25 item definition (ATR-21261),!33996WIP: Correct MM zpositions,!3291021.3 salva s0,!31887Merge 21.3.19 into 21.9,!31426Merge 21.0.110 into 21.3
......@@ -74,6 +74,8 @@ class DQTGlobalWZFinderTool: public DataQualityFatherMonTool
private:
void setDQTGlobalWZFinderBranches();
void setBCIDBranches(TTree *tree, std::string variable_name);
void doMuonTriggerTP(const xAOD::Muon* , const xAOD::Muon*);
void doMuonTruthEff(std::vector<const xAOD::Muon*>&);
......@@ -88,11 +90,7 @@ private:
bool antiGoodElectrons(const xAOD::EventInfo* thisEventInfo, const xAOD::Electron* electron_itr, const xAOD::Vertex* pVtx, bool isBad);
bool kinematicCuts(const xAOD::Electron*);
void fillEleEffHistos(bool tag_good, bool probe_good, bool probe_anti_good, bool os, double mass);
void fillBCIDHistos(TH2F_LW* h_48b, TH2F_LW* h_2t47b, TH2F_LW* h_indiv);
void fillBCIDHistos(double mass, TH3F* h_48b, TH3F* h_2t47b, TH3F* h_indiv);
void fillBCIDHistos(int matched, TH3F* h_48b, TH3F* h_2t47b, TH3F* h_indiv);
bool checkTruthElectron(const xAOD::Electron* electron);
bool checkTruthTrack(const xAOD::TrackParticle* trk);
bool checkTruthMuon(const xAOD::Muon* muon);
......@@ -140,68 +138,23 @@ private:
TH1F_LW *m_eltrigtp_matches_ss;
// BCID info
double m_pileup_per_lb;
bool m_do_BCID;
float m_pileup_per_lb;
float m_distance_from_front;
bool m_is_in_train;
int m_train_length;
TH2F_LW *m_BCID_pileup_zee;
TH2F_LW *m_BCID_pileup_zmm;
TH2F_LW *m_BCID_2t47_pileup_zee;
TH2F_LW *m_BCID_2t47_pileup_zmm;
TH2F_LW *m_BCID_indiv_pileup_zee;
TH2F_LW *m_BCID_indiv_pileup_zmm;
// muon channel
TH3F *m_mutrigtp_matches_BCID_pileup;
TH3F *m_mutrigtp_matches_BCID_2t47_pileup;
TH3F *m_mutrigtp_matches_BCID_indiv_pileup;
TH3F *m_muloosetp_match_os_BCID_pileup;
TH3F *m_muloosetp_match_os_BCID_2t47_pileup;
TH3F *m_muloosetp_match_os_BCID_indiv_pileup;
TH3F *m_muloosetp_match_ss_BCID_pileup;
TH3F *m_muloosetp_match_ss_BCID_2t47_pileup;
TH3F *m_muloosetp_match_ss_BCID_indiv_pileup;
TH3F *m_muloosetp_nomatch_os_BCID_pileup;
TH3F *m_muloosetp_nomatch_os_BCID_2t47_pileup;
TH3F *m_muloosetp_nomatch_os_BCID_indiv_pileup;
TH3F *m_muloosetp_nomatch_ss_BCID_pileup;
TH3F *m_muloosetp_nomatch_ss_BCID_2t47_pileup;
TH3F *m_muloosetp_nomatch_ss_BCID_indiv_pileup;
// electron channel
TH3F *m_ele_tight_bad_os_BCID_pileup;
TH3F *m_ele_tight_bad_os_BCID_2t47_pileup;
TH3F *m_ele_tight_bad_os_BCID_indiv_pileup;
TH3F *m_ele_tight_bad_ss_BCID_pileup;
TH3F *m_ele_tight_bad_ss_BCID_2t47_pileup;
TH3F *m_ele_tight_bad_ss_BCID_indiv_pileup;
TH3F *m_ele_tight_good_os_BCID_pileup;
TH3F *m_ele_tight_good_os_BCID_2t47_pileup;
TH3F *m_ele_tight_good_os_BCID_indiv_pileup;
TH3F *m_ele_tight_good_ss_BCID_pileup;
TH3F *m_ele_tight_good_ss_BCID_2t47_pileup;
TH3F *m_ele_tight_good_ss_BCID_indiv_pileup;
TH3F *m_ele_template_os_BCID_pileup;
TH3F *m_ele_template_os_BCID_2t47_pileup;
TH3F *m_ele_template_os_BCID_indiv_pileup;
TH3F *m_ele_template_ss_BCID_pileup;
TH3F *m_ele_template_ss_BCID_2t47_pileup;
TH3F *m_ele_template_ss_BCID_indiv_pileup;
TH3F *m_eltrigtp_matches_os_BCID_pileup;
TH3F *m_eltrigtp_matches_os_BCID_2t47_pileup;
TH3F *m_eltrigtp_matches_os_BCID_indiv_pileup;
TH3F *m_eltrigtp_matches_ss_BCID_pileup;
TH3F *m_eltrigtp_matches_ss_BCID_2t47_pileup;
TH3F *m_eltrigtp_matches_ss_BCID_indiv_pileup;
float m_mass;
bool m_is_in_train;
bool m_isOS;
int m_train_length;
int m_nTrig_matches;
TTree *m_bcid_ele_tight_good;
TTree *m_bcid_ele_tight_bad;
TTree *m_bcid_ele_template;
TTree *m_bcid_ele_trigtp;
TTree *m_bcid_mu_tight_good;
TTree *m_bcid_mu_tight_bad;
TTree *m_bcid_mu_trigtp;
// Electron channel TP histos
TH1F_LW *m_ele_tight_bad_os;
......
......@@ -283,6 +283,7 @@ if isBeam==True and (DQMonFlags.monManEnvironment != 'tier0Raw') and rec.doInDet
IsolationSelectionTool = ToolSvc.DQTIsoGradientTool,
MuonTrigMatchingTool = ToolSvc.MatchingTool,
BCTool = BunchCrossingTool(),
FillBCIDTrees = False,
)
ToolSvc += MyDQTGlobalWZFinderTool;
ManagedAthenaGlobalPhysMon.AthenaMonTools += [ MyDQTGlobalWZFinderTool ];
......
......@@ -239,4 +239,3 @@ StatusCode DQTDataFlowMonTool::checkHists(bool /* fromFinalize */)
*/
return StatusCode::SUCCESS;
}
#!/bin/sh
#
# art-description: Run the full reconstruction on HITS with pile-up for JZ6W samples (leading jet pt: 1300-1800 GeV) for validation of tracking overlay
# art-include: 21.0/Athena
# art-type: grid
export inputHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrackingOverlay/JZ6W_HITS
export inputHighPtMinbiasHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/FastChainPileup/mc16_13TeV.361239.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_high.simul.HITS.e4981_s3087_s3161
export inputLowPtMinbiasHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/FastChainPileup/mc16_13TeV.361238.Pythia8EvtGen_A3NNPDF23LO_minbias_inelastic_low.simul.HITS.e4981_s3087_s3161
export outputRDOFile=RDO.JZ6W_wPU.root
export outputESDFile=ESD.JZ6W_wPU.root
export outputAODFile=AOD.JZ6W_wPU.root
export outputNTUP_PHYSVALFile=NTUP_PHYSVAL.JZ6W_wPU.root
# Copied from r11627 (asetup Athena,21.0.97)
# Running also with asetup 21.0,Athena,2020-02-28T2145
Reco_tf.py --inputHITSFile $inputHitsFile/*root.? \
--inputHighPtMinbiasHitsFile $inputHighPtMinbiasHitsFile/*root.? \
--inputLowPtMinbiasHitsFile $inputLowPtMinbiasHitsFile/*.root.? \
--triggerConfig "RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2232,86,278" \
--steering "doRDO_TRIG" \
--autoConfiguration everything \
--conditionsTag "default:OFLCOND-MC16-SDR-25" \
--geometryVersion "default:ATLAS-R2-2016-01-00-01" \
--postExec "all:CfgMgr.MessageSvc().setError+=['HepMcParticleLink']" \
--postInclude "default:PyJobTransforms/UseFrontier.py" \
--preExec "all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False)" 'HITtoRDO:userRunLumiOverride={"run":310000,"lb":61,"starttstamp":1550003600,"mu":60.500};' "from InDetPhysValMonitoring.InDetPhysValJobProperties import InDetPhysValFlags; InDetPhysValFlags.doValidateTightPrimaryTracks.set_Value_and_Lock(True);" \
--preInclude "HITtoRDO:Digitization/ForceUseOfPileUpTools.py,SimulationJobOptions/preInlcude.PileUpBunchTrainsMC16c_2017_Config1.py,RunDependentSimData/configLumi_user.py" \
--valid=True \
--validationFlags doEgamma,doInDet,doZee,doJet \
--outputRDOFile $outputRDOFile \
--outputESDFile $outputESDFile \
--outputAODFile $outputAODFile \
--outputNTUP_PHYSVALFile $outputNTUP_PHYSVALFile \
--jobNumber=2 \
--maxEvents=2000 \
--numberOfCavernBkg 0 \
--numberOfHighPtMinBias 0.2595392 \
--numberOfLowPtMinBias 99.2404608 \
--pileupFinalBunch 6
#!/bin/sh
#
# art-description: Run the full reconstruction on HITS without pile-up JZ6W samples (leading jet pt: 1300-1800 GeV) for validation of tracking overlay
# art-include: 21.0/Athena
# art-type: grid
export inputHitsFile=/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrackingOverlay/JZ6W_HITS
export outputRDOFile=RDO.JZ6W_woPU.root
export outputESDFile=ESD.JZ6W_woPU.root
export outputAODFile=AOD.JZ6W_woPU.root
export outputNTUP_PHYSVALFile=NTUP_PHYSVAL.JZ6W_woPU.root
# Copied from r11627 (asetup Athena,21.0.97)
# Running also with asetup 21.0,Athena,2020-02-28T2145
Reco_tf.py --inputHITSFile $inputHitsFile/*root.? \
--triggerConfig "RDOtoRDOTrigger=MCRECO:DBF:TRIGGERDBMC:2232,86,278" \
--steering "doRDO_TRIG" \
--autoConfiguration everything \
--conditionsTag "default:OFLCOND-MC16-SDR-25" \
--geometryVersion "default:ATLAS-R2-2016-01-00-01" \
--postExec "all:CfgMgr.MessageSvc().setError+=['HepMcParticleLink']" \
--postInclude "default:PyJobTransforms/UseFrontier.py" \
--preExec "all:rec.Commissioning.set_Value_and_Lock(True);from AthenaCommon.BeamFlags import jobproperties;jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0);from LArROD.LArRODFlags import larRODFlags;larRODFlags.NumberOfCollisions.set_Value_and_Lock(20);larRODFlags.nSamples.set_Value_and_Lock(4);larRODFlags.doOFCPileupOptimization.set_Value_and_Lock(True);larRODFlags.firstSample.set_Value_and_Lock(0);larRODFlags.useHighestGainAutoCorr.set_Value_and_Lock(True); from LArDigitization.LArDigitizationFlags import jobproperties;jobproperties.LArDigitizationFlags.useEmecIwHighGain.set_Value_and_Lock(False)" 'HITtoRDO:userRunLumiOverride={"run":310000,"lb":61,"starttstamp":1550003600,"mu":60.500};' "from InDetPhysValMonitoring.InDetPhysValJobProperties import InDetPhysValFlags; InDetPhysValFlags.doValidateTightPrimaryTracks.set_Value_and_Lock(True);" \
--valid=True \
--validationFlags doEgamma,doInDet,doZee,doJet \
--outputRDOFile $outputRDOFile \
--outputESDFile $outputESDFile \
--outputAODFile $outputAODFile \
--outputNTUP_PHYSVALFile $outputNTUP_PHYSVALFile \
--jobNumber=2 \
--maxEvents=2000
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#include "ISF_FastCaloSimEvent/TFCSLateralShapeParametrizationHitChain.h"
#include "ISF_FastCaloSimEvent/FastCaloSim_CaloCell_ID.h"
#include "ISF_FastCaloSimEvent/TFCSSimulationState.h"
#include "TMath.h"
//=============================================
//======= TFCSLateralShapeParametrizationHitChain =========
......@@ -66,7 +67,7 @@ float TFCSLateralShapeParametrizationHitChain::get_E_hit(TFCSSimulationState& si
{
const int nhits = get_number_of_hits(simulstate,truth,extrapol);
const int sample = calosample();
if(nhits<=0 || sample<0) return -1.;
if(nhits<=0 || sample<0) return simulstate.E(sample);
const float maxWeight = getMaxWeight();// maxWeight = -1 if shapeWeight class is not in m_chain
if(maxWeight>0) return simulstate.E(sample)/(maxWeight*nhits); // maxWeight is used only if shapeWeight class is in m_chain
......@@ -89,17 +90,21 @@ float TFCSLateralShapeParametrizationHitChain::get_sigma2_fluctuation(TFCSSimula
FCSReturnCode TFCSLateralShapeParametrizationHitChain::simulate(TFCSSimulationState& simulstate,const TFCSTruthState* truth, const TFCSExtrapolationState* extrapol) const
{
// Call get_number_of_hits() only once, as it could contain a random number
int nhit = get_number_of_hits(simulstate, truth, extrapol);
if (nhit <= 0) {
ATH_MSG_ERROR("TFCSLateralShapeParametrizationHitChain::simulate(): number of hits could not be calculated");
const float Elayer=simulstate.E(calosample());
const float Ehit=get_E_hit(simulstate,truth,extrapol);
if (Ehit <= 0) {
ATH_MSG_ERROR("TFCSLateralShapeParametrizationHitChain::simulate(): Ehit negative Ehit="<<Ehit);
return FCSFatal;
}
const float Elayer=simulstate.E(calosample());
const float Ehit=get_E_hit(simulstate,truth,extrapol);
// Call get_number_of_hits() only once inside get_E_hit(...),
// as it could contain a random number
int nhit = TMath::Nint(Elayer/Ehit);
if(nhit<1) nhit=1;
float sumEhit=0;
MSG::Level old_level=level();
const bool debug = msgLvl(MSG::DEBUG);
if (debug) {
ATH_MSG_DEBUG("E("<<calosample()<<")="<<simulstate.E(calosample())<<" #hits~"<<nhit);
......@@ -113,7 +118,7 @@ FCSReturnCode TFCSLateralShapeParametrizationHitChain::simulate(TFCSSimulationSt
hit.E()=Ehit;
for(TFCSLateralShapeParametrizationHitBase* hitsim : m_chain) {
if (debug) {
if (ihit < 2) hitsim->setLevel(MSG::DEBUG);
if (ihit < 2) hitsim->setLevel(old_level);
else hitsim->setLevel(MSG::INFO);
}
......@@ -127,7 +132,14 @@ FCSReturnCode TFCSLateralShapeParametrizationHitChain::simulate(TFCSSimulationSt
//if(sumEhit+hit.E()>Elayer) hit.E()=Elayer-sumEhit;//sum of all hit energies needs to be Elayer: correct last hit accordingly
break;
} else {
if (status == FCSFatal) return FCSFatal;
if (status == FCSFatal) {
if (debug) {
for(TFCSLateralShapeParametrizationHitBase* reset : m_chain) {
reset->setLevel(old_level);
}
}
return FCSFatal;
}
}
if (i == FCS_RETRY_COUNT) {
......@@ -147,6 +159,11 @@ FCSReturnCode TFCSLateralShapeParametrizationHitChain::simulate(TFCSSimulationSt
}
} while (sumEhit<Elayer);
if (debug) {
for(TFCSLateralShapeParametrizationHitBase* reset : m_chain) {
reset->setLevel(old_level);
}
}
return FCSSuccess;
}
......
......@@ -52,7 +52,7 @@ find_package( AthenaPoolUtilitiesTest )
if( ATHENAPOOLUTILITIESTEST_FOUND )
set( TRKEVENTATHENAPOOL_REFERENCE_TAG
TrkEventAthenaPoolReference-01-00-00 )
TrkEventAthenaPoolReference-01-01-00 )
run_tpcnv_test( TrkEventTPCnv_14.5.0 AOD-14.5.0-full
REQUIRED_LIBRARIES TrackParticleAthenaPoolPoolCnv
REFERENCE_TAG ${TRKEVENTATHENAPOOL_REFERENCE_TAG} )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment