CMS 3D CMS Logo

RunManagerMTWorker.h
Go to the documentation of this file.
1 #ifndef SimG4Core_Application_RunManagerMTWorker_H
2 #define SimG4Core_Application_RunManagerMTWorker_H
3 
6 
9 
12 
13 #include <memory>
14 #include <tbb/concurrent_vector.h>
15 #include <unordered_map>
16 #include <string>
17 
18 namespace edm {
19  class ParameterSet;
20  class Event;
21  class EventSetup;
22  class ConsumesCollector;
23  class HepMCProduct;
24 } // namespace edm
25 
26 class Generator;
27 class RunManagerMT;
28 
29 class G4Event;
30 class G4SimEvent;
31 class G4Run;
32 class SimTrackManager;
33 
34 class RunAction;
35 class EventAction;
36 class TrackingAction;
37 class SteppingAction;
38 class CMSSteppingVerbose;
39 class G4Field;
40 
44 
45 class SimWatcher;
46 class SimProducer;
47 
49 public:
50  explicit RunManagerMTWorker(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC);
52 
53  void beginRun(const edm::EventSetup&);
54  void endRun();
55 
56  std::unique_ptr<G4SimEvent> produce(const edm::Event& inpevt,
57  const edm::EventSetup& es,
58  RunManagerMT& runManagerMaster);
59 
60  void abortEvent();
61  void abortRun(bool softAbort = false);
62 
63  inline G4SimEvent* simEvent() { return m_simEvent; }
64 
65  void Connect(RunAction*);
66  void Connect(EventAction*);
67  void Connect(TrackingAction*);
68  void Connect(SteppingAction*);
69 
71  std::vector<SensitiveTkDetector*>& sensTkDetectors();
72  std::vector<SensitiveCaloDetector*>& sensCaloDetectors();
73  std::vector<std::shared_ptr<SimProducer>>& producers();
74 
75  void initializeG4(RunManagerMT* runManagerMaster, const edm::EventSetup& es);
76 
77 private:
78  void initializeTLS();
79  void initializeUserActions();
80 
81  void initializeRun();
82  void terminateRun();
83 
84  G4Event* generateEvent(const edm::Event& inpevt);
85  void resetGenParticleId(const edm::Event& inpevt);
86 
87  void DumpMagneticField(const G4Field*, const std::string&) const;
88 
89  static void resetTLS();
90 
96  const MagneticField* m_pMagField = nullptr;
97 
98  bool m_nonBeam;
103 
112 
113  struct TLSData;
114  static thread_local TLSData* m_tls;
115  static thread_local bool dumpMF;
116 
118  std::unique_ptr<CMSSteppingVerbose> m_sVerbose;
119  std::unordered_map<std::string, std::unique_ptr<SensitiveDetectorMakerBase>> m_sdMakers;
120 };
121 
122 #endif
RunManagerMTWorker::m_theLHCTlinkToken
edm::EDGetTokenT< edm::LHCTransportLinkContainer > m_theLHCTlinkToken
Definition: RunManagerMTWorker.h:94
RunManagerMTWorker::m_tls
static thread_local TLSData * m_tls
Definition: RunManagerMTWorker.h:113
RunManagerMTWorker::RunManagerMTWorker
RunManagerMTWorker(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
Definition: RunManagerMTWorker.cc:142
RunManagerMTWorker::initializeG4
void initializeG4(RunManagerMT *runManagerMaster, const edm::EventSetup &es)
Definition: RunManagerMTWorker.cc:265
RunManagerMTWorker::sensTkDetectors
std::vector< SensitiveTkDetector * > & sensTkDetectors()
Definition: RunManagerMTWorker.cc:442
SimTrackManager
Definition: SimTrackManager.h:35
RunManagerMTWorker::abortRun
void abortRun(bool softAbort=false)
Definition: RunManagerMTWorker.cc:576
EventAction
Definition: EventAction.h:23
G4SimEvent
Definition: G4SimEvent.h:14
RunManagerMTWorker::m_simEvent
G4SimEvent * m_simEvent
Definition: RunManagerMTWorker.h:117
RunManagerMTWorker::m_sdMakers
std::unordered_map< std::string, std::unique_ptr< SensitiveDetectorMakerBase > > m_sdMakers
Definition: RunManagerMTWorker.h:119
RunManagerMTWorker::resetTLS
static void resetTLS()
Definition: RunManagerMTWorker.cc:198
SensitiveTkDetector
Definition: SensitiveTkDetector.h:8
edm::EDGetTokenT< edm::HepMCProduct >
RunManagerMTWorker::beginRun
void beginRun(const edm::EventSetup &)
Definition: RunManagerMTWorker.cc:225
edm
HLT enums.
Definition: AlignableModifier.h:19
RunManagerMTWorker::m_generator
Generator m_generator
Definition: RunManagerMTWorker.h:91
RunManagerMTWorker::abortEvent
void abortEvent()
Definition: RunManagerMTWorker.cc:559
RunManagerMTWorker::m_LHCTransport
bool m_LHCTransport
Definition: RunManagerMTWorker.h:101
SteppingAction
Definition: SteppingAction.h:32
RunManagerMTWorker::simEvent
G4SimEvent * simEvent()
Definition: RunManagerMTWorker.h:63
CMSSteppingVerbose
Definition: CMSSteppingVerbose.h:25
RunManagerMTWorker::m_pEventAction
edm::ParameterSet m_pEventAction
Definition: RunManagerMTWorker.h:106
RunManagerMTWorker::Connect
void Connect(RunAction *)
Definition: RunManagerMTWorker.cc:419
RunManagerMTWorker::m_EvtMgrVerbosity
int m_EvtMgrVerbosity
Definition: RunManagerMTWorker.h:102
RunManagerMTWorker::m_pCustomUIsession
edm::ParameterSet m_pCustomUIsession
Definition: RunManagerMTWorker.h:110
RunManagerMTWorker::GetSimTrackManager
SimTrackManager * GetSimTrackManager()
Definition: RunManagerMTWorker.cc:438
RunManagerMTWorker::~RunManagerMTWorker
~RunManagerMTWorker()
Definition: RunManagerMTWorker.cc:183
RunManagerMTWorker::sensCaloDetectors
std::vector< SensitiveCaloDetector * > & sensCaloDetectors()
Definition: RunManagerMTWorker.cc:446
TrackingAction
Definition: TrackingAction.h:16
RunManagerMTWorker::m_p
edm::ParameterSet m_p
Definition: RunManagerMTWorker.h:111
SensitiveCaloDetector
Definition: SensitiveCaloDetector.h:10
RunManagerMTWorker::initializeUserActions
void initializeUserActions()
Definition: RunManagerMTWorker.cc:393
RunManagerMTWorker::m_hasWatchers
bool m_hasWatchers
Definition: RunManagerMTWorker.h:100
Generator.h
IdealMagneticFieldRecord.h
Event
RunManagerMTWorker::DumpMagneticField
void DumpMagneticField(const G4Field *, const std::string &) const
Definition: RunManagerMTWorker.cc:624
RunManagerMTWorker::m_pStackingAction
edm::ParameterSet m_pStackingAction
Definition: RunManagerMTWorker.h:107
EDGetToken.h
RunManagerMTWorker::initializeRun
void initializeRun()
Definition: RunManagerMTWorker.cc:455
RunManagerMTWorker::m_LHCToken
edm::EDGetTokenT< edm::HepMCProduct > m_LHCToken
Definition: RunManagerMTWorker.h:93
RunManagerMTWorker::generateEvent
G4Event * generateEvent(const edm::Event &inpevt)
Definition: RunManagerMTWorker.cc:584
RunManagerMT
Definition: RunManagerMT.h:50
RunManagerMTWorker::m_pSteppingAction
edm::ParameterSet m_pSteppingAction
Definition: RunManagerMTWorker.h:109
RunManagerMTWorker::terminateRun
void terminateRun()
Definition: RunManagerMTWorker.cc:465
RunAction
Definition: RunAction.h:15
edm::ParameterSet
Definition: ParameterSet.h:47
RunManagerMTWorker::m_pField
edm::ParameterSet m_pField
Definition: RunManagerMTWorker.h:104
ParameterSet
Definition: Functions.h:16
SimProducer
Definition: SimProducer.h:64
SensitiveDetectorMakerBase
Definition: SensitiveDetectorMakerBase.h:28
RunManagerMTWorker::m_nonBeam
bool m_nonBeam
Definition: RunManagerMTWorker.h:98
RunManagerMTWorker::produce
std::unique_ptr< G4SimEvent > produce(const edm::Event &inpevt, const edm::EventSetup &es, RunManagerMT &runManagerMaster)
Definition: RunManagerMTWorker.cc:486
SimWatcher
Definition: SimWatcher.h:27
MagneticField.h
RunManagerMTWorker::m_sVerbose
std::unique_ptr< CMSSteppingVerbose > m_sVerbose
Definition: RunManagerMTWorker.h:118
RunManagerMTWorker::m_pMagField
const MagneticField * m_pMagField
Definition: RunManagerMTWorker.h:96
edm::EventSetup
Definition: EventSetup.h:58
RunManagerMTWorker::endRun
void endRun()
Definition: RunManagerMTWorker.cc:234
RunManagerMTWorker::resetGenParticleId
void resetGenParticleId(const edm::Event &inpevt)
Definition: RunManagerMTWorker.cc:616
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord >
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
RunManagerMTWorker
Definition: RunManagerMTWorker.h:48
Generator
Definition: Generator.h:19
RunManagerMTWorker::m_MagField
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > m_MagField
Definition: RunManagerMTWorker.h:95
RunManagerMTWorker::m_InToken
edm::EDGetTokenT< edm::HepMCProduct > m_InToken
Definition: RunManagerMTWorker.h:92
RunManagerMTWorker::TLSData
Definition: RunManagerMTWorker.cc:111
RunManagerMTWorker::producers
std::vector< std::shared_ptr< SimProducer > > & producers()
Definition: RunManagerMTWorker.cc:450
HepMCProduct
RunManagerMTWorker::initializeTLS
void initializeTLS()
Definition: RunManagerMTWorker.cc:240
EventSetup
RunManagerMTWorker::m_pTrackingAction
edm::ParameterSet m_pTrackingAction
Definition: RunManagerMTWorker.h:108
RunManagerMTWorker::dumpMF
static thread_local bool dumpMF
Definition: RunManagerMTWorker.h:115
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
RunManagerMTWorker::m_pUseMagneticField
bool m_pUseMagneticField
Definition: RunManagerMTWorker.h:99
RunID.h
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
RunManagerMTWorker::m_pRunAction
edm::ParameterSet m_pRunAction
Definition: RunManagerMTWorker.h:105