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

Merge release/21.0.110 into 21.3

This merge request merges all the changes that were made to the ~"21.0" branch between the release
[release/21.0.110](https://gitlab.cern.ch/atlas/athena/tags/release/21.0.110) and the previous release
[release/21.0.109](https://gitlab.cern.ch/atlas/athena/tags/release/21.0.109).

Below is the full list of merge requests that were included between these two tags:
 * !31125 : Adding ART tests for testing Tracking overlay
 * !30863 : Change BCID structure to trees
 * !30900 : Fix nhit calculation and debug output in TFCSLateralShapeParametrizationHitChain
 * !30922 : Update TrackEventAthenaPool unit test reference files after changes in !28312.

Link to the full diff between [release/21.0.110](https://gitlab.cern.ch/atlas/athena/tags/release/21.0.110) and
[release/21.0.109](https://gitlab.cern.ch/atlas/athena/tags/release/21.0.109)
is available at
https://gitlab.cern.ch/atlas/athena/compare/release/21.0.109...release/21.0.110
parents 043b67a1 d621831a
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