ATLAS Offline Software
CTPSimulation.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef TRIGT1CTP_CTPSIMULATION_H
5 #define TRIGT1CTP_CTPSIMULATION_H
6 
7 
9 
10 #include "GaudiKernel/ServiceHandle.h"
11 #include "GaudiKernel/ToolHandle.h"
12 #include "Gaudi/Property.h"
13 #include "StoreGate/DataHandle.h"
14 
15 // monitoring from HLT
16 #include "GaudiKernel/ITHistSvc.h"
17 
18 
19 // data default location
22 
23 // input/output data classes
34 #include "TrigT1Result/CTP_RDO.h"
38 
39 // new configuration data
40 #include "TrigConfData/L1Menu.h"
42 
43 // internal
44 #include "./ItemMap.h"
45 #include "./ThresholdMap.h"
46 #include "./ResultBuilder.h"
47 
48 #include "GaudiKernel/LockedHandle.h"
50 
51 #include "TH1.h"
52 #include "TH2.h"
53 
54 #include <map>
55 #include <string>
56 #include <mutex>
57 
58 namespace LVL1 {
59  class CPRoIDecoder;
60  class JEPRoIDecoder;
61 }
62 
63 namespace LVL1CTP {
64 
66 
67  public:
68 
69  CTPSimulation( const std::string& name, ISvcLocator* pSvcLocator );
71 
72  virtual StatusCode initialize() override;
73 
74  virtual StatusCode start() override;
75 
76  virtual StatusCode execute( const EventContext& context ) const override;
77 
78  virtual StatusCode stop() override;
79 
80 
81  private:
82  // histogramming related
85  StatusCode createMultiplicityHist(const std::string & type, unsigned int maxMult = 10 );
87  StatusCode hbook(const std::string & path, std::unique_ptr<TH1> hist);
88  StatusCode hbook(const std::string & path, std::unique_ptr<TH2> hist);
90  LockedHandle<TH1> & get1DHist(const std::string & histName) const;
91  LockedHandle<TH2> & get2DHist(const std::string & histName) const;
92  std::string getBaseHistPath() const;
93 
94  // execution related
95  StatusCode fillInputHistograms(const EventContext& context) const;
96 
97  StatusCode extractMultiplicities(std::map<std::string, unsigned int> & thrMultiMap, const EventContext& context) const;
98 
99  StatusCode simulateItems(const std::map<std::string, unsigned int> & thrMultiMap, const EventContext& context) const;
100 
101  unsigned int calculateMultiplicity ( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
102  unsigned int calculateJetMultiplicity ( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
103  unsigned int calculateEMMultiplicity ( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
104  unsigned int calculateTauMultiplicity ( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
105  unsigned int calculateMETMultiplicity ( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
106  unsigned int calculateMuonMultiplicity( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
107  unsigned int calculateTopoMultiplicity( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context, bool UseLegacy ) const;
108  unsigned int calculateTopoOptMultiplicity( const TrigConf::L1Threshold & confThr, const TrigConf::L1Menu * l1menu, const EventContext& context ) const;
109 
110  // Needed services and tools
111  ServiceHandle<ITHistSvc> m_histSvc { this, "THistSvc", "THistSvc/THistSvc", "Histogramming svc" };
112 
113  ToolHandle<LVL1CTP::ResultBuilder> m_resultBuilder { this, "ResultBuilder", "LVL1CTP__ResultBuilder/ResultBuilder", "Builds the CTP result" };
114 
115  // random engine for calculating prescales
117 
118  // thread safe histogram handlers
119  std::map<std::string, LockedHandle<TH1>> m_hist1D;
120  std::map<std::string, LockedHandle<TH2>> m_hist2D;
121 
122  // inputs
123  // new L1Topo
124  SG::ReadHandleKey<LVL1::FrontPanelCTP> m_iKeyTopo{ this, "TopoInput", LVL1::DEFAULT_L1TopoCTPLocation, "Input from topo" };
125  // legacy L1Topo
126  SG::ReadHandleKey<LVL1::FrontPanelCTP> m_iKeyLegacyTopo{ this, "LegacyTopoInput", LVL1::DEFAULT_L1TopoLegacyCTPLocation, "Input from legacy topo" };
127  // MUCTPI
128  SG::ReadHandleKey<LVL1::MuCTPICTP> m_iKeyMuctpi{ this, "MuctpiInput", LVL1MUCTPI::DEFAULT_MuonCTPLocation, "Input from Muctpi" };
129  // CTPIN
130  SG::ReadHandleKey<LVL1::EmTauCTP> m_iKeyCtpinEM{ this, "CtpinEMInput", LVL1::TrigT1CaloDefs::EmTauCTPLocation, "Input from CTPIN em and tau (legacy)" };
131  SG::ReadHandleKey<LVL1::JetCTP> m_iKeyCtpinJet{ this, "CtpinJetInput", LVL1::TrigT1CaloDefs::JetCTPLocation, "Input from CTPIN jet (legacy)" };
132  SG::ReadHandleKey<LVL1::EnergyCTP> m_iKeyCtpinXE{ this, "CtpinXEInput", LVL1::TrigT1CaloDefs::EnergyCTPLocation, "Input from CTPIN energy (te,xe,xs - legacy)" };
133  // new FEX object collections (temporary until moved to L1Topo simulation)
134  // jFEX
135  SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyJFexJets { this, "jFexJetInput", "jRoundJets", "Input list of jFEX jets" };
136  SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyJFexLJets{ this, "jFexLJetInput", "jRoundLargeRJets", "Input list of jFEX large-R jets" };
137  // gFEX
138  SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyGFexJets { this, "gFexJetInput", "gL1Jets", "Input list of gFEX jets" };
139  SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETNC { this, "gFexMETNCInput", "gXENOISECUTPerf", "Input list of gFEX MET NC" };
140  SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETRho { this, "gFexMETRhoInput", "gXERHOPerf", "Input list of gFEX MET Rho" };
141  SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETJwoJ { this, "gFexMETJwoJInput", "gXEJWOJPerf", "Input list of gFEX MET JwoJ" };
142  // eFEX
143  SG::ReadHandleKey< xAOD::TrigEMClusterContainer > m_iKeyEFexCluster{ this, "eFexClusterInput", "SClusterCl", "Input list of eFEX cluster" };
144  SG::ReadHandleKey< xAOD::EmTauRoIContainer > m_iKeyEFexTau { this, "eFexTauInput", "SClusterTau", "Input list of eFEX tau" };
145  // ZDC
147  // TRT
148  SG::ReadHandleKey<LVL1::TrtCTP> m_iKeyTRT{this, "TrtInput", LVL1::DEFAULT_TrtCTPLocation, "Input from Trt"};
149 
150  // outputs
151  SG::WriteHandleKey<CTP_RDO> m_oKeyRDO {this, "RDOOutput", LVL1CTP::DEFAULT_RDOOutputLocation, "Output of CTP RDO object (sim)"};
152  SG::WriteHandleKey<CTPSLink> m_oKeySLink{this, "ROIOutput", LVL1CTP::DEFAULT_CTPSLinkLocation, "Output of CTP SLink object (sim)"};
153 
154 
155  // properties
156  Gaudi::Property<bool> m_isData { this, "IsData", false, "emulate CTP as part of MC or rerun on data" };
157  Gaudi::Property<std::string> m_histPath { this, "HistPath", "/EXPERT/L1", "Booking path for the histogram" };
158  Gaudi::Property<bool> m_doZDC{this, "DoZDC", false, "emulate CTP with ZDC included"};
159  Gaudi::Property<bool> m_doTRT{this, "DoTRT", false, "emulate CTP with TRT included"};
160  Gaudi::Property<bool> m_forceBunchGroupPattern { this, "ForceBunchGroupPattern", true, "When true, ignore the bunchgroups and use the provided BunchGroupPattern" };
161  Gaudi::Property<unsigned int> m_bunchGroupPattern { this, "BunchGroupPattern", 0x0003, "Bunchgroup pattern applied at every event, useful for simulation. Bit x corresponds to bunchgroup x" };
162 
163  Gaudi::Property<bool> m_doL1CaloLegacy { this, "DoL1CaloLegacy", false, "Use L1Calo legacy" };
164  Gaudi::Property<bool> m_doL1Topo { this, "DoL1Topo", false, "Use L1Topo" };
165  Gaudi::Property<bool> m_doL1TopoLegacy { this, "DoL1TopoLegacy", false, "Use L1Topo Legacy" };
166  Gaudi::Property<bool> m_muonRun2Format { this, "MuonMultiplicityRun2Format", false, "Interpret muon multiplicity in Run 2 format (bit 0 unused)" };
167 
168  SG::ReadCondHandleKey<TrigConf::L1BunchGroupSet> m_bgKey{this, "L1BunchGroup", "L1BunchGroup", "L1BunchGroupSet key name"};
169  // to decode the L1 Run-2 hardware ROIs from data
172  };
173 
174 }
175 
176 #endif
LVL1CTP::CTPSimulation::m_resultBuilder
ToolHandle< LVL1CTP::ResultBuilder > m_resultBuilder
Definition: CTPSimulation.h:113
LVL1CTP::CTPSimulation::m_histSvc
ServiceHandle< ITHistSvc > m_histSvc
Definition: CTPSimulation.h:111
LVL1CTP::CTPSimulation::m_iKeyJFexJets
SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyJFexJets
Definition: CTPSimulation.h:135
TrtCTP.h
athena.path
path
python interpreter configuration --------------------------------------—
Definition: athena.py:126
AddEmptyComponent.histName
string histName
Definition: AddEmptyComponent.py:64
LVL1CTP::CTPSimulation::extractMultiplicities
StatusCode extractMultiplicities(std::map< std::string, unsigned int > &thrMultiMap, const EventContext &context) const
Definition: CTPSimulation.cxx:621
LVL1CTP::CTPSimulation
Definition: CTPSimulation.h:65
LVL1CTP::CTPSimulation::m_iKeyGFexMETRho
SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETRho
Definition: CTPSimulation.h:140
MuonRoIContainer.h
LVL1::JEPRoIDecoder
A level 1 calorimeter trigger conversion service: returns the Coordinate represented by a RoI word.
Definition: JEPRoIDecoder.h:33
plotmaker.hist
hist
Definition: plotmaker.py:148
LVL1::TrigT1CaloDefs::EmTauCTPLocation
static const std::string EmTauCTPLocation
Definition: TrigT1CaloDefs.h:76
LVL1CTP::CTPSimulation::m_doZDC
Gaudi::Property< bool > m_doZDC
Definition: CTPSimulation.h:158
LVL1CTP::CTPSimulation::m_oKeySLink
SG::WriteHandleKey< CTPSLink > m_oKeySLink
Definition: CTPSimulation.h:152
LVL1CTP::CTPSimulation::m_jetDecoder
LVL1::JEPRoIDecoder * m_jetDecoder
Definition: CTPSimulation.h:171
LVL1CTP::CTPSimulation::m_hist1D
std::map< std::string, LockedHandle< TH1 > > m_hist1D
Definition: CTPSimulation.h:119
LVL1::TrigT1CaloDefs::ZdcCTPLocation
static const std::string ZdcCTPLocation
Definition: TrigT1CaloDefs.h:79
ZdcCTP.h
EmTauCTP.h
LVL1CTP::CTPSimulation::m_oKeyRDO
SG::WriteHandleKey< CTP_RDO > m_oKeyRDO
Definition: CTPSimulation.h:151
LVL1CTP::CTPSimulation::createMultiplicityHist
StatusCode createMultiplicityHist(const std::string &type, unsigned int maxMult=10)
Definition: CTPSimulation.cxx:142
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
LVL1CTP::CTPSimulation::calculateEMMultiplicity
unsigned int calculateEMMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:835
LVL1CTP::CTPSimulation::m_decoder
LVL1::CPRoIDecoder * m_decoder
Definition: CTPSimulation.h:170
LVL1CTP::CTPSimulation::setMultiplicityHistLabels
StatusCode setMultiplicityHistLabels(const TrigConf::L1Menu &l1menu, const std::string &type)
Definition: CTPSimulation.cxx:166
LVL1CTP::CTPSimulation::calculateTauMultiplicity
unsigned int calculateTauMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:872
LVL1CTP::CTPSimulation::m_bunchGroupPattern
Gaudi::Property< unsigned int > m_bunchGroupPattern
Definition: CTPSimulation.h:161
SG::ReadHandleKey< LVL1::FrontPanelCTP >
MuCTPICTP.h
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1CTP::CTPSimulation::m_iKeyEFexTau
SG::ReadHandleKey< xAOD::EmTauRoIContainer > m_iKeyEFexTau
Definition: CTPSimulation.h:144
DataHandle.h
JetCTP.h
LVL1CTP::CTPSimulation::get2DHist
LockedHandle< TH2 > & get2DHist(const std::string &histName) const
Definition: CTPSimulation.cxx:265
LVL1CTP::CTPSimulation::m_histPath
Gaudi::Property< std::string > m_histPath
Definition: CTPSimulation.h:157
TrigT1StoreGateKeys.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
FrontPanelCTP.h
LVL1CTP::CTPSimulation::getBaseHistPath
std::string getBaseHistPath() const
Definition: CTPSimulation.cxx:198
LVL1CTP::CTPSimulation::m_iKeyCtpinXE
SG::ReadHandleKey< LVL1::EnergyCTP > m_iKeyCtpinXE
Definition: CTPSimulation.h:132
EnergyCTP.h
ItemMap.h
LVL1CTP::CTPSimulation::m_iKeyJFexLJets
SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyJFexLJets
Definition: CTPSimulation.h:136
LVL1CTP::CTPSimulation::hbook
StatusCode hbook(const std::string &path, std::unique_ptr< TH1 > hist)
Definition: CTPSimulation.cxx:206
SG::WriteHandleKey< CTP_RDO >
LVL1CTP::CTPSimulation::calculateTopoMultiplicity
unsigned int calculateTopoMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context, bool UseLegacy) const
Definition: CTPSimulation.cxx:1018
LVL1CTP::CTPSimulation::storeMetadata
StatusCode storeMetadata()
Definition: CTPSimulation.cxx:1268
LVL1CTP::CTPSimulation::calculateMETMultiplicity
unsigned int calculateMETMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:910
LVL1CTP::CTPSimulation::calculateJetMultiplicity
unsigned int calculateJetMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:812
ThresholdMap.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LVL1CTP::CTPSimulation::get1DHist
LockedHandle< TH1 > & get1DHist(const std::string &histName) const
Definition: CTPSimulation.cxx:254
LVL1CTP::CTPSimulation::calculateTopoOptMultiplicity
unsigned int calculateTopoOptMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:979
LVL1CTP::CTPSimulation::m_doTRT
Gaudi::Property< bool > m_doTRT
Definition: CTPSimulation.h:159
JetRoIContainer.h
LVL1CTP::CTPSimulation::bookHists
StatusCode bookHists()
Definition: CTPSimulation.cxx:336
LVL1CTP::CTPSimulation::m_iKeyCtpinJet
SG::ReadHandleKey< LVL1::JetCTP > m_iKeyCtpinJet
Definition: CTPSimulation.h:131
AthReentrantAlgorithm.h
L1BunchGroupSet.h
LVL1CTP::CTPSimulation::m_isData
Gaudi::Property< bool > m_isData
Definition: CTPSimulation.h:156
LVL1CTP::CTPSimulation::simulateItems
StatusCode simulateItems(const std::map< std::string, unsigned int > &thrMultiMap, const EventContext &context) const
Definition: CTPSimulation.cxx:1107
LVL1CTP::CTPSimulation::m_doL1TopoLegacy
Gaudi::Property< bool > m_doL1TopoLegacy
Definition: CTPSimulation.h:165
LVL1CTP::CTPSimulation::m_forceBunchGroupPattern
Gaudi::Property< bool > m_forceBunchGroupPattern
Definition: CTPSimulation.h:160
LVL1CTP::CTPSimulation::setHistLabels
StatusCode setHistLabels(const TrigConf::L1Menu &l1menu)
Definition: CTPSimulation.cxx:276
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
LVL1CTP::CTPSimulation::m_muonRun2Format
Gaudi::Property< bool > m_muonRun2Format
Definition: CTPSimulation.h:166
LVL1::TrigT1CaloDefs::JetCTPLocation
static const std::string JetCTPLocation
Definition: TrigT1CaloDefs.h:77
LVL1CTP::CTPSimulation::m_hist2D
std::map< std::string, LockedHandle< TH2 > > m_hist2D
Definition: CTPSimulation.h:120
LVL1CTP::CTPSimulation::m_iKeyGFexMETNC
SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETNC
Definition: CTPSimulation.h:139
LVL1CTP::CTPSimulation::~CTPSimulation
~CTPSimulation()
Definition: CTPSimulation.cxx:52
ResultBuilder.h
TrigT1CaloDefs.h
EmTauRoIContainer.h
LVL1CTP::CTPSimulation::m_iKeyGFexMETJwoJ
SG::ReadHandleKey< xAOD::EnergySumRoI > m_iKeyGFexMETJwoJ
Definition: CTPSimulation.h:141
LVL1CTP::CTPSimulation::calculateMuonMultiplicity
unsigned int calculateMuonMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:962
RNGWrapper.h
LVL1CTP::CTPSimulation::stop
virtual StatusCode stop() override
Definition: CTPSimulation.cxx:1163
LVL1CTP::CTPSimulation::m_iKeyLegacyTopo
SG::ReadHandleKey< LVL1::FrontPanelCTP > m_iKeyLegacyTopo
Definition: CTPSimulation.h:126
SG::ReadCondHandleKey< TrigConf::L1BunchGroupSet >
CTP_RDO.h
TrigEMClusterContainer.h
LVL1::CPRoIDecoder
A level 1 calorimeter trigger conversion service: returns the Coordinate represented by a RoI word.
Definition: CPRoIDecoder.h:37
LVL1CTP::CTPSimulation::m_bgKey
SG::ReadCondHandleKey< TrigConf::L1BunchGroupSet > m_bgKey
Definition: CTPSimulation.h:168
LVL1CTP::CTPSimulation::m_iKeyZDC
SG::ReadHandleKey< LVL1::ZdcCTP > m_iKeyZDC
Definition: CTPSimulation.h:146
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1CTP::CTPSimulation::start
virtual StatusCode start() override
Definition: CTPSimulation.cxx:111
LVL1CTP::CTPSimulation::calculateMultiplicity
unsigned int calculateMultiplicity(const TrigConf::L1Threshold &confThr, const TrigConf::L1Menu *l1menu, const EventContext &context) const
Definition: CTPSimulation.cxx:1077
python.XMLReader.l1menu
l1menu
Definition: XMLReader.py:73
LVL1CTP::CTPSimulation::fillInputHistograms
StatusCode fillInputHistograms(const EventContext &context) const
Definition: CTPSimulation.cxx:422
LVL1CTP::CTPSimulation::m_iKeyMuctpi
SG::ReadHandleKey< LVL1::MuCTPICTP > m_iKeyMuctpi
Definition: CTPSimulation.h:128
LVL1::TrigT1CaloDefs::EnergyCTPLocation
static const std::string EnergyCTPLocation
Definition: TrigT1CaloDefs.h:78
LVL1CTP::CTPSimulation::m_iKeyEFexCluster
SG::ReadHandleKey< xAOD::TrigEMClusterContainer > m_iKeyEFexCluster
Definition: CTPSimulation.h:143
LVL1CTP
Definition: Lvl1ResultAccessTool.h:20
LVL1CTP::CTPSimulation::m_doL1CaloLegacy
Gaudi::Property< bool > m_doL1CaloLegacy
Definition: CTPSimulation.h:163
LVL1CTP::CTPSimulation::m_doL1Topo
Gaudi::Property< bool > m_doL1Topo
Definition: CTPSimulation.h:164
LVL1CTP::CTPSimulation::m_iKeyTRT
SG::ReadHandleKey< LVL1::TrtCTP > m_iKeyTRT
Definition: CTPSimulation.h:148
L1Menu.h
LVL1CTP::CTPSimulation::m_iKeyCtpinEM
SG::ReadHandleKey< LVL1::EmTauCTP > m_iKeyCtpinEM
Definition: CTPSimulation.h:130
LVL1CTP::CTPSimulation::CTPSimulation
CTPSimulation(const std::string &name, ISvcLocator *pSvcLocator)
Definition: CTPSimulation.cxx:45
LVL1CTP::CTPSimulation::m_iKeyGFexJets
SG::ReadHandleKey< xAOD::JetRoIContainer > m_iKeyGFexJets
Definition: CTPSimulation.h:138
LVL1CTP::CTPSimulation::execute
virtual StatusCode execute(const EventContext &context) const override
Definition: CTPSimulation.cxx:126
TrigConf::L1Threshold
Standard L1 threshold configuration.
Definition: L1ThresholdBase.h:125
LVL1CTP::CTPSimulation::m_iKeyTopo
SG::ReadHandleKey< LVL1::FrontPanelCTP > m_iKeyTopo
Definition: CTPSimulation.h:124
LVL1CTP::CTPSimulation::m_RNGEngines
ATHRNG::RNGWrapper m_RNGEngines
Definition: CTPSimulation.h:116
EnergySumRoI.h
ServiceHandle< ITHistSvc >
LVL1CTP::CTPSimulation::initialize
virtual StatusCode initialize() override
Definition: CTPSimulation.cxx:56