diff --git a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/data/PhysValBtag_VariablesMenu.json b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/data/PhysValBtag_VariablesMenu.json index af1a674352badcacd98b16d2364eef1fd23d031f..93755347e94ac66c8b22f679708d84566d8c41f1 100755 --- a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/data/PhysValBtag_VariablesMenu.json +++ b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/data/PhysValBtag_VariablesMenu.json @@ -437,8 +437,8 @@ "ytitle": "Tracks", "path": {"PHYSVAL": "tagger"}, "xbins": 200, - "xmin": -2, - "xmax": 2, + "xmin": -5, + "xmax": 5, "type": "TH1D", "forData": "true" }, @@ -450,8 +450,8 @@ "ytitle": "Tracks", "path": {"PHYSVAL": "tagger"}, "xbins": 200, - "xmin": -2, - "xmax": 2, + "xmin": -5, + "xmax": 5, "type": "TH1D", "forData": "true" }, diff --git a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/scripts/mergePhysValFiles.py b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/scripts/mergePhysValFiles.py index feceab7d520e3dca59bb3a70bbc33fde7c4e07b3..e2f85a19aadd8eab36112abf57071cef98867ac8 100644 --- a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/scripts/mergePhysValFiles.py +++ b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/scripts/mergePhysValFiles.py @@ -73,11 +73,9 @@ sub_categories_TProfiles = ['IP3D', ] # define the jet containers -jetcontainers = ['AntiKt2PV0TrackJets', - 'AntiKt4PV0TrackJets', - 'AntiKt4EMTopoJets', +jetcontainers = ['AntiKt4EMTopoJets', 'AntiKt4EMPFlowJets', - 'AntiKtVR30Rmax4Rmin02TrackJets' + 'AntiKtVR30Rmax4Rmin02PV0TrackJets' ] # parser arguments diff --git a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/BTaggingValidationPlots.cxx b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/BTaggingValidationPlots.cxx index 35bf9dd1d155993e72229ddcf3bd7c033f4dfd18..4c365de471882af84fb69c4005819302019d988f 100644 --- a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/BTaggingValidationPlots.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/BTaggingValidationPlots.cxx @@ -873,7 +873,11 @@ namespace JetTagDQA{ // check if there is a muon and store the relative muon pT bool has_muon = false; - ElementLink muonLink = btag->auxdata< ElementLink >("SMT_mu_link"); + ElementLink muonLink; + // muon link doesn't work on the VR track jets atm (it will be structured differently in r22 anyways. Properly update it later for all collections.) + if(m_sParticleType != "antiKtVR30Rmax4Rmin02PV0TrackJets"){ + muonLink = btag->auxdata< ElementLink >("SMT_mu_link"); + } if ( muonLink.isValid() ) { const xAOD::Muon* muon=(*muonLink); if ( muon != 0 ) { diff --git a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.cxx b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.cxx index d6355ca89ff23811451c6329a6b9cc98fe6b60b5..6cb869a91cab1b53360a22dcc1db098e5203e387 100644 --- a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.cxx @@ -40,21 +40,17 @@ namespace JetTagDQA { const IInterface* parent ) : ManagedMonitorToolBase( type, name, parent ), m_isData(false), - m_antiKt2PV0TrackJetPlots (0, "BTag/AntiKt2PV0TrackJets/" , "antiKt2PV0TrackJets"), - m_antiKt4PV0TrackJetPlots (0, "BTag/AntiKt4PV0TrackJets/" , "antiKt4PV0TrackJets"), - m_antiKt4EMTopoPlots (0, "BTag/AntiKt4EMTopoJets/" , "antiKt4EMTopoJets"), - m_antiKtVR30Rmax4Rmin02TrackJetsPlots (0, "BTag/AntiKtVR30Rmax4Rmin02TrackJets/", "antiKtVR30Rmax4Rmin02TrackJets"), - m_antiKt4EMPFlowJetsPlots (0, "BTag/AntiKt4EMPFlowJets/" , "antiKt4EMPFlowJets"), + m_antiKt4EMTopoPlots (0, "BTag/AntiKt4EMTopoJets/" , "antiKt4EMTopoJets"), + m_antiKt4EMPFlowJetsPlots (0, "BTag/AntiKt4EMPFlowJets/" , "antiKt4EMPFlowJets"), + m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots (0, "BTag/AntiKtVR30Rmax4Rmin02PV0TrackJets/", "antiKtVR30Rmax4Rmin02PV0TrackJets"), m_nevents(0) { declareProperty( "isData", m_isData ); - declareProperty( "JetContainerName1", m_jetName1 = "AntiKt2PV0TrackJets"); - declareProperty( "JetContainerName2", m_jetName2 = "AntiKt4PV0TrackJets"); - declareProperty( "JetContainerName3", m_jetName3 = "AntiKt4EMTopoJets" ); - declareProperty( "JetContainerName4", m_jetName4 = "AntiKtVR30Rmax4Rmin02TrackJets"); - declareProperty( "JetContainerName5", m_jetName5 = "AntiKt4EMPFlowJets"); + declareProperty( "JetContainerName1", m_jetName1 = "AntiKt4EMTopoJets" ); + declareProperty( "JetContainerName2", m_jetName2 = "AntiKt4EMPFlowJets"); + declareProperty( "JetContainerName3", m_jetName3 = "AntiKtVR30Rmax4Rmin02PV0TrackJets"); declareProperty( "TrackContainerName", m_trackName = "InDetTrackParticles" ); declareProperty( "VertexContainerName", m_vertexName = "PrimaryVertices" ); @@ -91,31 +87,23 @@ namespace JetTagDQA { } // set the detail level - m_antiKt2PV0TrackJetPlots.setDetailLevel(m_detailLevel); - m_antiKt4PV0TrackJetPlots.setDetailLevel(m_detailLevel); m_antiKt4EMTopoPlots.setDetailLevel(m_detailLevel); - m_antiKtVR30Rmax4Rmin02TrackJetsPlots.setDetailLevel(m_detailLevel); m_antiKt4EMPFlowJetsPlots.setDetailLevel(m_detailLevel); + m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots.setDetailLevel(m_detailLevel); // give that map to the BTaggingValidationPlots - m_antiKt2PV0TrackJetPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); - m_antiKt4PV0TrackJetPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); m_antiKt4EMTopoPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); - m_antiKtVR30Rmax4Rmin02TrackJetsPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); m_antiKt4EMPFlowJetsPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); + m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots.setHistogramDefinitions(m_HistogramDefinitionsMap); // set the isData key, the JVT and TMP cuts - m_antiKt2PV0TrackJetPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); - m_antiKt4PV0TrackJetPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); m_antiKt4EMTopoPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); - m_antiKtVR30Rmax4Rmin02TrackJetsPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); m_antiKt4EMPFlowJetsPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); + m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots.setIsDataJVTCutsAndTMPCut(m_isData, m_JVTCutAntiKt4EMTopoJets, m_JVTCutLargerEtaAntiKt4EMTopoJets, m_JVTCutAntiKt4EMPFlowJets, m_truthMatchProbabilityCut); - m_btagplots.insert(std::make_pair(m_jetName1, m_antiKt2PV0TrackJetPlots)); - m_btagplots.insert(std::make_pair(m_jetName2, m_antiKt4PV0TrackJetPlots)); - m_btagplots.insert(std::make_pair(m_jetName3, m_antiKt4EMTopoPlots)); - m_btagplots.insert(std::make_pair(m_jetName4, m_antiKtVR30Rmax4Rmin02TrackJetsPlots)); - m_btagplots.insert(std::make_pair(m_jetName5, m_antiKt4EMPFlowJetsPlots)); + m_btagplots.insert(std::make_pair(m_jetName1, m_antiKt4EMTopoPlots)); + m_btagplots.insert(std::make_pair(m_jetName2, m_antiKt4EMPFlowJetsPlots)); + m_btagplots.insert(std::make_pair(m_jetName3, m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots)); return StatusCode::SUCCESS; } @@ -167,7 +155,7 @@ namespace JetTagDQA { if(dsid == 410000){ m_jetPtCut = m_jetPtCutTtbar; } - else if(dsid == 427080) { + else if(dsid == 427080 || dsid == 427081) { m_jetPtCut = m_jetPtCutZprime; m_onZprime = true; } @@ -176,6 +164,11 @@ namespace JetTagDQA { ATH_MSG_WARNING("It is checked if the sample is ttbar (has dsid 410000) or Zprime (has dsid 427080). None applies (read dsid is " << dsid << "). Applying default pT cut of 20000 MeV now."); m_jetPtCut = 20000; } + + // do not do the track-truth association on this Sherpa Z' sample + if(dsid == 361405){ + m_doTrackTruth = false; + } } // get the primary vertex @@ -317,8 +310,14 @@ namespace JetTagDQA { // get the curent track const xAOD::TrackParticle* track = *(assocTracks.at(i)); + // only try accessing the truth values if not on data + int origin = 0; + if(!m_isData && m_doTrackTruth){ + origin = m_trackTruthOriginTool->getTrackOrigin(track); + } + // add the truth values to the vector - truthValues.insert( std::make_pair( track, m_trackTruthOriginTool->getTrackOrigin(track) ) ); + truthValues.insert( std::make_pair( track, origin ) ); } // also loop over the tracks associated to the MSV vertices -> can be missing in the other track list @@ -342,8 +341,14 @@ namespace JetTagDQA { // get the curent track const xAOD::TrackParticle* track = *(MSV_assocTracks.at(i)); + // only try accessing the truth values if not on data + int origin = 0; + if(!m_isData && m_doTrackTruth){ + origin = m_trackTruthOriginTool->getTrackOrigin(track); + } + // add the truth values to the vector - truthValues.insert( std::make_pair( track, m_trackTruthOriginTool->getTrackOrigin(track) ) ); + truthValues.insert( std::make_pair( track, origin ) ); } } diff --git a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.h b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.h index 2caaa92a3762517c2c36c418820e72faec3f6e89..5701eabe3266b1a7439fdfe5fe5c5e7caa0df1d5 100644 --- a/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.h +++ b/PhysicsAnalysis/JetTagging/JetTagValidation/JetTagDQA/src/PhysValBTag.h @@ -81,13 +81,12 @@ namespace JetTagDQA { // isData flag bool m_isData; + bool m_doTrackTruth = true; // Containers std::string m_jetName1; std::string m_jetName2; std::string m_jetName3; - std::string m_jetName4; - std::string m_jetName5; std::string m_trackName; std::string m_vertexName; @@ -109,11 +108,9 @@ namespace JetTagDQA { float m_JVTCutAntiKt4EMPFlowJets; float m_truthMatchProbabilityCut; - JetTagDQA::BTaggingValidationPlots m_antiKt2PV0TrackJetPlots; - JetTagDQA::BTaggingValidationPlots m_antiKt4PV0TrackJetPlots; JetTagDQA::BTaggingValidationPlots m_antiKt4EMTopoPlots; - JetTagDQA::BTaggingValidationPlots m_antiKtVR30Rmax4Rmin02TrackJetsPlots; JetTagDQA::BTaggingValidationPlots m_antiKt4EMPFlowJetsPlots; + JetTagDQA::BTaggingValidationPlots m_antiKtVR30Rmax4Rmin02PV0TrackJetsPlots; int m_nevents;