ATLAS Offline Software
PixelDigitizationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
11 #ifndef PIXELDIGITIZATION_PIXELDIGITIZATIONTOOL_H
12 #define PIXELDIGITIZATION_PIXELDIGITIZATIONTOOL_H
13 
16 #include "AthenaKernel/IAthRNGSvc.h" //SvcHandle template parameter
17 #include "HitManagement/TimedHitCollection.h" //template
18 #include "InDetSimEvent/SiHitCollection.h" //ReadHandleKey template parameter
19 
21 #include "GaudiKernel/ToolHandle.h"
22 #include "GaudiKernel/ServiceHandle.h"
23 
26 #include "StoreGate/WriteHandle.h"
28 #include "PileUpTools/PileUpMergeSvc.h" //SvcHandle template parameter
29 
30 #include "InDetSimData/InDetSimDataCollection.h" //WriteHandleKey template parameter
31 #include "SensorSimTool.h" //ToolHandleArray template parameter
32 #include "FrontEndSimTool.h" //ToolHandleArray template parameter
33 #include "EnergyDepositionTool.h" //ToolHandle template parameter
34 
35 #include "InDetReadoutGeometry/SiDetectorElementCollection.h" //ReadCondHandle Template parameter
36 
37 
39 protected:
40  struct EventData;
41 public:
42  PixelDigitizationTool(const std::string& type, const std::string& name, const IInterface* pIID);
43 
44  virtual StatusCode initialize() override;
45  virtual StatusCode processAllSubEvents(const EventContext& ctx) override {
46  return processAllSubEventsConst(ctx);
47  }
48  StatusCode processAllSubEventsConst(const EventContext& ctx) const;
49  virtual StatusCode finalize() override;
50 
51  virtual StatusCode prepareEvent(const EventContext& ctx, unsigned int) override {
52  if (!m_eventData) { m_eventData = std::make_unique<EventData>(); }
53  return prepareEvent(ctx, *m_eventData);
54  }
55  virtual StatusCode mergeEvent(const EventContext& ctx) override;
56  virtual StatusCode processBunchXing(int bunchXing, SubEventIterator bSubEvents,
57  SubEventIterator eSubEvents) override final;
58 protected:
59  StatusCode digitizeEvent(const EventContext& ctx, EventData &event_data) const;
60  StatusCode prepareEvent(const EventContext& ctx, EventData &event_data) const;
61  void addSDO(SiChargedDiodeCollection* collection, EventData &event_data) const;
62 private:
66 
67  std::vector<SiHitCollection*> m_hitCollPtrs;
68 
69  Gaudi::Property<bool> m_onlyUseContainerName {
70  this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."
71  };
73  this, "InputObjectName", "", "Input HITS collection name"
74  };
76  this, "PixelDetEleCollKey", "PixelDetectorElementCollection", "Key of SiDetectorElementCollection for Pixel"
77  };
78  std::string m_inputObjectName {
79  ""
80  };
82  this, "RDOCollName", "PixelRDOs", "RDO collection name"
83  };
85  this, "SDOCollName", "PixelSDO_Map", "SDO collection name"
86  };
87  Gaudi::Property<int> m_HardScatterSplittingMode {
88  this, "HardScatterSplittingMode", 0, "Control pileup & signal splitting"
89  };
90 
91 protected:
92  struct EventData {
95  std::unique_ptr<TimedHitCollection<SiHit> > m_timedHits {};
97  false
98  };
99  };
100  // For old interface which stores the event data in class members
102  std::unique_ptr<EventData> m_eventData;
103 private:
104  Gaudi::Property<bool> m_onlyHitElements {
105  this, "OnlyHitElements", false, "Process only elements with hits"
106  };
107 
108  const PixelID* m_detID {};
109  Gaudi::Property<std::string> m_pixelIDName
110  {this, "PixelIDName", "PixelID", "Pixel ID name"};
111 
112 
113  ToolHandleArray<SensorSimTool> m_chargeTool {
114  this, "ChargeTools", {}, "List of charge tools"
115  };
116  ToolHandleArray<FrontEndSimTool> m_fesimTool {
117  this, "FrontEndSimTools", {}, "List of Front-End simulation tools"
118  };
119  ToolHandle<EnergyDepositionTool> m_energyDepositionTool {
120  this, "EnergyDepositionTool", "EnergyDepositionTool", "Energy deposition tool"
121  };
122 protected:
124  this, "RndmSvc", "AthRNGSvc", ""
125  };
127  this, "PileUpMergeSvc", "PileUpMergeSvc", ""
128  };
129 
130  Gaudi::Property<bool> m_createNoiseSDO {
131  this, "CreateNoiseSDO", false, "Set create noise SDO flag"
132  };
133 
134 };
135 
136 #endif // PIXELDIGITIZATION_PIXELDIGITIZATIONTOOL_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
PixelDigitizationTool::m_hitsContainerKey
SG::ReadHandleKey< SiHitCollection > m_hitsContainerKey
Definition: PixelDigitizationTool.h:72
PixelDigitizationTool::m_fesimTool
ToolHandleArray< FrontEndSimTool > m_fesimTool
Definition: PixelDigitizationTool.h:116
PixelDigitizationTool::m_mergeSvc
ServiceHandle< PileUpMergeSvc > m_mergeSvc
Definition: PixelDigitizationTool.h:126
PixelDigitizationTool::EventData::m_HardScatterSplittingSkipper
bool m_HardScatterSplittingSkipper
Definition: PixelDigitizationTool.h:96
SensorSimTool.h
PixelDigitizationTool::digitizeEvent
StatusCode digitizeEvent(const EventContext &ctx, EventData &event_data) const
Definition: PixelDigitizationTool.cxx:121
PixelDigitizationTool::EventData
Definition: PixelDigitizationTool.h:92
PixelDigitizationTool::m_inputObjectName
std::string m_inputObjectName
Definition: PixelDigitizationTool.h:78
PixelDigitizationTool::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Random number service.
Definition: PixelDigitizationTool.h:123
PixelDigitizationTool::operator=
PixelDigitizationTool & operator=(const PixelDigitizationTool &)
PixelDigitizationTool::m_onlyHitElements
Gaudi::Property< bool > m_onlyHitElements
Definition: PixelDigitizationTool.h:104
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
PixelDigitizationTool::initialize
virtual StatusCode initialize() override
Definition: PixelDigitizationTool.cxx:24
PixelDigitizationTool::processBunchXing
virtual StatusCode processBunchXing(int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final
Definition: PixelDigitizationTool.cxx:376
PixelDigitizationTool::processAllSubEvents
virtual StatusCode processAllSubEvents(const EventContext &ctx) override
Definition: PixelDigitizationTool.h:45
WriteHandle.h
Handle class for recording to StoreGate.
PixelDigitizationTool::m_HardScatterSplittingMode
Gaudi::Property< int > m_HardScatterSplittingMode
Definition: PixelDigitizationTool.h:87
PixelDigitizationTool::m_chargeTool
ToolHandleArray< SensorSimTool > m_chargeTool
Definition: PixelDigitizationTool.h:113
SG::WriteHandleKey< PixelRDO_Container >
SiChargedDiodeCollection
Definition: SiChargedDiodeCollection.h:109
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PixelDigitizationTool::m_createNoiseSDO
Gaudi::Property< bool > m_createNoiseSDO
Definition: PixelDigitizationTool.h:130
AthAlgTool.h
PixelDigitizationTool::m_onlyUseContainerName
Gaudi::Property< bool > m_onlyUseContainerName
Definition: PixelDigitizationTool.h:69
PixelDigitizationTool::m_simDataCollKey
SG::WriteHandleKey< InDetSimDataCollection > m_simDataCollKey
Definition: PixelDigitizationTool.h:84
TimedHitCollection.h
PixelDigitizationTool::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: PixelDigitizationTool.h:75
PixelDigitizationTool::EventData::m_rdoContainer
SG::WriteHandle< PixelRDO_Container > m_rdoContainer
Definition: PixelDigitizationTool.h:93
EventData
Definition: Trigger/TrigAccel/TrigCudaFitter/src/EventData.h:11
PixelDigitizationTool::EventData::m_timedHits
std::unique_ptr< TimedHitCollection< SiHit > > m_timedHits
Definition: PixelDigitizationTool.h:95
PileUpToolBase
Definition: PileUpToolBase.h:18
ReadCondHandleKey.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
PixelDigitizationTool::m_eventData
std::unique_ptr< EventData > m_eventData
Definition: PixelDigitizationTool.h:102
SiDetectorElementCollection.h
EnergyDepositionTool.h
PixelDigitizationTool::mergeEvent
virtual StatusCode mergeEvent(const EventContext &ctx) override
Definition: PixelDigitizationTool.cxx:358
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
FrontEndSimTool.h
PileUpMergeSvc.h
the preferred mechanism to access information from the different event stores in a pileup job.
PixelDigitizationTool::finalize
virtual StatusCode finalize() override
Definition: PixelDigitizationTool.cxx:58
PixelDigitizationTool
Definition: PixelDigitizationTool.h:38
InDetSimDataCollection.h
PixelDigitizationTool::m_rdoContainerKey
SG::WriteHandleKey< PixelRDO_Container > m_rdoContainerKey
Definition: PixelDigitizationTool.h:81
PixelDigitizationTool::m_hitCollPtrs
std::vector< SiHitCollection * > m_hitCollPtrs
Definition: PixelDigitizationTool.h:67
PixelDigitizationTool::EventData::m_simDataColl
SG::WriteHandle< InDetSimDataCollection > m_simDataColl
Definition: PixelDigitizationTool.h:94
PixelDigitizationTool::m_pixelIDName
Gaudi::Property< std::string > m_pixelIDName
Definition: PixelDigitizationTool.h:110
SubEventIterator
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition: IPileUpTool.h:22
PixelDigitizationTool::getCurrentEventData
EventData & getCurrentEventData()
Definition: PixelDigitizationTool.h:101
PixelDigitizationTool::PixelDigitizationTool
PixelDigitizationTool()
InDetRawDataCLASS_DEF.h
PixelDigitizationTool::addSDO
void addSDO(SiChargedDiodeCollection *collection, EventData &event_data) const
Definition: PixelDigitizationTool.cxx:282
PixelDigitizationTool::m_detID
const PixelID * m_detID
Definition: PixelDigitizationTool.h:108
PixelID
Definition: PixelID.h:67
PileUpToolBase.h
helper base class IPileUpTool::toProcess().
PixelDigitizationTool::m_energyDepositionTool
ToolHandle< EnergyDepositionTool > m_energyDepositionTool
Definition: PixelDigitizationTool.h:119
PixelDigitizationTool::PixelDigitizationTool
PixelDigitizationTool(const PixelDigitizationTool &)
PixelDigitizationTool::processAllSubEventsConst
StatusCode processAllSubEventsConst(const EventContext &ctx) const
Definition: PixelDigitizationTool.cxx:65
PixelDigitizationTool::prepareEvent
virtual StatusCode prepareEvent(const EventContext &ctx, unsigned int) override
Definition: PixelDigitizationTool.h:51
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
SiHitCollection.h