Skip to content
Snippets Groups Projects
Commit 33cc367d authored by Andrii Verbytskyi's avatar Andrii Verbytskyi Committed by Tadej Novak
Browse files

Move MCTruthClassifier.cxx functions to the header

Move MCTruthClassifier.cxx functions to the header
parent 93c874b8
No related branches found
No related tags found
46 merge requests!78241Draft: FPGATrackSim: GenScan code refactor,!78236Draft: Switching Streams https://its.cern.ch/jira/browse/ATR-27417,!78056AFP monitoring: new synchronization and cleaning,!78041AFP monitoring: new synchronization and cleaning,!77990Updating TRT chip masks for L1TRT trigger simulation - ATR-28372,!77733Draft: add new HLT NN JVT, augmented with additional tracking information,!77731Draft: Updates to ZDC reconstruction,!77728Draft: updates to ZDC reconstruction,!77522Draft: sTGC Pad Trigger Emulator,!76725ZdcNtuple: Fix cppcheck warning.,!76611L1CaloFEXByteStream: Fix out-of-bounds array accesses.,!76475Punchthrough AF3 implementation in FastG4,!76474Punchthrough AF3 implementation in FastG4,!76343Draft: MooTrackBuilder: Recalibrate NSW hits in refine method,!75729New implementation of ZDC nonlinear FADC correction.,!75703Draft: Update to HI han config for HLT jets,!75184Draft: Update file heavyions_run.config,!74430Draft: Fixing upper bound for Delayed Jet Triggers,!73963Changing the path of the histograms to "Expert" area,!73875updating ID ART reference plots,!73874AtlasCLHEP_RandomGenerators: Fix cppcheck warnings.,!73449Add muon detectors to DarkJetPEBTLA partial event building,!73343Draft: [TrigEgamma] Add photon ringer chains on bootstrap mechanism,!72972Update L1Calo Jet Trigger Efficiency Monitoring algorithm,!72336Fixed TRT calibration crash,!72176Draft: Improving L1TopoOnline chain that now gets no-empty plots. Activating it by default,!72012Draft: Separate JiveXMLConfig.py into Config files,!71876Fix MET trigger name in MissingETMonitoring,!71820Draft: Adding new TLA End-Of-Fill (EOF) chains and removing obsolete DIPZ chains,!71279Draft: ATR-29330: Move L1_4J15 and the HLT chains seeded by it in the MC Menu,!70990Updates to pulse analysis to support new 2016 p+Pb analysis and 2023 Pb+Pb analysis,!70948[TrigEGam] Adding egamma chains to be monitored,!70777Draft: sTGC offline raw monitoring: strip efficiency re-implementation,!70654Update JetMonitoringStandard.py,!70442Draft: Harmonize output folders+collections in ID Alignment monitoring and update DQM han config,!70269Draft: Initial Preparations for mc23e mu-distribution,!70047More test chains for delayed jets,!69944Draft: Avoid additional ONNX thread spawning for FastCaloSim,!69935Draft: New efficiency DQ criteria for HLTmuon hanconfig,!69795Some updates to the LArSuperCell Monitoring...,!69643Draft: added back ditau chain for commissioning,!69589Draft: Rely on callables to deffer createion of sequences in HLT menu generation,!69450Draft: Adding WP Scan GN2 vs GN1,!69449Draft: Adding the Working Point Scan chains,!69341Draft: Removing BKee Triggers from CPS Group (ATR-19501),!69265Move MCTruthClassifier.cxx functions to the header
......@@ -53,24 +53,74 @@ CREATED: Sep 2007
//std includes
#include <cmath>
#include <utility>
class MCTruthClassifier
: virtual public IMCTruthClassifier
, public asg::AsgTool
class MCTruthClassifier : virtual public IMCTruthClassifier , public asg::AsgTool
{
ASG_TOOL_CLASS(MCTruthClassifier, IMCTruthClassifier)
public:
// constructor
MCTruthClassifier(const std::string& type);
MCTruthClassifier(const std::string& type) : asg::AsgTool(type) {
#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters");
declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons");
declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron");
declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4);
declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2);
declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05);
declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025);
declareProperty("useCaching", m_useCaching = true);
declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1);
declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15);
declareProperty("ROICone", m_ROICone = false);
#endif
#ifndef GENERATIONBASE
declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2);
declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2);
declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3);
declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4);
#endif
// Properties Available in all
declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true);
declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true);
declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0);
declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.);
declareProperty("inclG4part", m_inclG4part = false);
}
// destructor
virtual ~MCTruthClassifier();
virtual ~MCTruthClassifier() = default ;
// Gaudi algorithm hooks
virtual StatusCode initialize() override;
// Gaudi algorithm hooks
virtual StatusCode initialize() override {
ATH_MSG_INFO(" Initializing MCTruthClassifier");
#ifndef XAOD_ANALYSIS
// Only needed for GenParticle interface
if (!m_truthLinkVecReadHandleKey.key().empty()) {
ATH_CHECK(m_truthLinkVecReadHandleKey.initialize());
}
#endif
ATH_CHECK(m_truthParticleContainerKey.initialize());
#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
if (!m_caloExtensionTool.empty()) {
ATH_CHECK(m_caloExtensionTool.retrieve());
} else {
m_caloExtensionTool.disable();
}
ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty));
if (!m_truthInConeTool.empty()) {
ATH_CHECK(m_truthInConeTool.retrieve());
} else {
m_truthInConeTool.disable();
}
#endif
return StatusCode::SUCCESS;
}
virtual StatusCode finalize()
#ifndef XAOD_STANDALONE
override
#endif // not XAOD_STANDALONE
;
{ return StatusCode::SUCCESS;}
/* All get to see these*/
virtual std::pair<MCTruthPartClassifier::ParticleType, MCTruthPartClassifier::ParticleOrigin>
......
/*
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
*/
/***********************************************************************
NAME: MCTruthClassifier.cxx
PACKAGE: atlasoff/PhysicsAnalysis/MCTruthClassifier
AUTHORS: O. Fedin
CREATED: Sep 2007
PURPOSE: to classify truth particles according to their origin. Based on
the truth particle classification the tool provide classification of
ID and combined muon tracks, egamma electrons (including forward
electrons) and egamma photons. Both AOD and ESD files can be used.
See for details:
https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EgammaMCTruthClassifier
Updated:
************************************************************************
Updated Feb 2024 by Andrii Verbytskyi <andrii.verbytskyi@mpp.mpg.de>
************************************************************************/
#include "MCTruthClassifier/MCTruthClassifier.h"
using namespace MCTruthPartClassifier;
// -----------------------------------------------------------------------
// Constructor
// -----------------------------------------------------------------------
MCTruthClassifier::MCTruthClassifier(const std::string& type) : asg::AsgTool(type) {
#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
declareProperty("FwdElectronUseG4Sel" , m_FwdElectronUseG4Sel = true, "Use Geant4 selection for forward electrons calo clusters");
declareProperty("FwdElectronTruthExtrEtaCut", m_FwdElectronTruthExtrEtaCut = 2.4, "Cut on the eta of the truth Particles to be extrapolated for Fwd electrons");
declareProperty("FwdElectronTruthExtrEtaWindowCut", m_FwdElectronTruthExtrEtaWindowCut = 0.15, "Cut on the delta eta of the truth Particles to be extrapolated for Fwd electrons and the current FwdElectron");
declareProperty("partExtrConePhi", m_partExtrConePhi = 0.4);
declareProperty("partExtrConeEta", m_partExtrConeEta = 0.2);
declareProperty("phtClasConePhi", m_phtClasConePhi = 0.05);
declareProperty("phtClasConeEta", m_phtClasConeEta = 0.025);
declareProperty("useCaching", m_useCaching = true);
declareProperty("phtdRtoTrCut", m_phtdRtoTrCut = 0.1);
declareProperty("fwrdEledRtoTrCut", m_fwrdEledRtoTrCut = 0.15);
declareProperty("ROICone", m_ROICone = false);
#endif
#ifndef GENERATIONBASE
declareProperty("deltaRMatchCut", m_deltaRMatchCut = 0.2);
declareProperty("deltaPhiMatchCut", m_deltaPhiMatchCut = 0.2);
declareProperty("NumOfSiHitsCut", m_NumOfSiHitsCut = 3);
declareProperty("jetPartDRMatch", m_jetPartDRMatch = 0.4);
#endif
// Properties Available in all
declareProperty("inclEgammaFwrdEle", m_inclEgammaFwrdEle = true);
declareProperty("inclEgammaPhoton", m_inclEgammaPhoton = true);
declareProperty("pTChargePartCut", m_pTChargePartCut = 1.0);
declareProperty("pTNeutralPartCut", m_pTNeutralPartCut = 0.);
declareProperty("inclG4part", m_inclG4part = false);
}
MCTruthClassifier::~MCTruthClassifier() = default;
StatusCode MCTruthClassifier::initialize(){
ATH_MSG_INFO(" Initializing MCTruthClassifier");
#ifndef XAOD_ANALYSIS
// Only needed for GenParticle interface
if (!m_truthLinkVecReadHandleKey.key().empty()) {
ATH_CHECK(m_truthLinkVecReadHandleKey.initialize());
}
#endif
ATH_CHECK(m_truthParticleContainerKey.initialize());
#if !defined(XAOD_ANALYSIS) && !defined(GENERATIONBASE)
if (!m_caloExtensionTool.empty()) {
ATH_CHECK(m_caloExtensionTool.retrieve());
} else {
m_caloExtensionTool.disable();
}
ATH_CHECK(m_caloMgrKey.initialize(SG::AllowEmpty));
if (!m_truthInConeTool.empty()) {
ATH_CHECK(m_truthInConeTool.retrieve());
} else {
m_truthInConeTool.disable();
}
#endif
return StatusCode::SUCCESS;
}
StatusCode MCTruthClassifier::finalize()
{
return StatusCode::SUCCESS;
}
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