ATLAS Offline Software
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TgcDigitizationTool Class Reference

#include <TgcDigitizationTool.h>

Inheritance diagram for TgcDigitizationTool:
Collaboration diagram for TgcDigitizationTool:

Public Member Functions

 TgcDigitizationTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode initialize () override final
 Initialize. More...
 
virtual StatusCode prepareEvent (const EventContext &ctx, unsigned int) override final
 
virtual StatusCode processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final
 called for each active bunch-crossing to process current SubEvents bunchXing is in ns More...
 
virtual StatusCode mergeEvent (const EventContext &ctx) override final
 called at the end of the subevts loop. More...
 
virtual StatusCode processAllSubEvents (const EventContext &ctx) override final
 alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents. More...
 
virtual StatusCode finalize () override final
 Finalize. More...
 

Protected Attributes

ServiceHandle< PileUpMergeSvcm_mergeSvc
 
ServiceHandle< IAthRNGSvcm_rndmSvc
 

Private Member Functions

StatusCode getNextEvent (const EventContext &ctx)
 Get next event and extract collection of hit collections. More...
 
StatusCode digitizeCore (const EventContext &ctx)
 Core part of digitization used by processAllSubEvents and mergeEvent. More...
 

Private Attributes

const TgcHitIdHelperm_hitIdHelper {}
 
const TgcIdHelperm_idHelper {}
 
const MuonGM::MuonDetectorManagerm_mdManager {}
 
TgcDigitMakerm_digitizer {}
 
TimedHitCollection< TGCSimHit > * m_thpcTGC {}
 
std::list< TGCSimHitCollection * > m_TGCHitCollList
 
Gaudi::Property< bool > m_onlyUseContainerName
 
Gaudi::Property< bool > m_doFourBunchDigitization
 
SG::ReadHandleKey< TGCSimHitCollectionm_hitsContainerKey
 
std::string m_inputHitCollectionName {""}
 
SG::ReadCondHandleKey< TgcDigitASDposDatam_readCondKey_ASDpos
 
SG::ReadCondHandleKey< TgcDigitTimeOffsetDatam_readCondKey_TimeOffset
 
SG::ReadCondHandleKey< TgcDigitCrosstalkDatam_readCondKey_Crosstalk
 
SG::WriteHandleKey< TgcDigitContainerm_outputDigitCollectionKey
 
SG::WriteHandleKey< MuonSimDataCollectionm_outputSDO_CollectionKey
 
Gaudi::Property< bool > m_includePileUpTruth
 

structors and AlgTool implementation

Gaudi::Property< int > m_firstXing
 
Gaudi::Property< int > m_lastXing
 
Gaudi::Property< int > m_vetoPileUpTruthLinks
 
bool m_filterPassed {true}
 
virtual bool toProcess (int bunchXing) const override
 the method this base class helps implementing More...
 
virtual StatusCode processAllSubEvents (const EventContext &ctx)=0
 dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface. More...
 
virtual bool filterPassed () const override
 dummy implementation of passing filter More...
 
virtual void resetFilter () override
 dummy implementation of filter reset More...
 

Detailed Description

Definition at line 41 of file TgcDigitizationTool.h.

Constructor & Destructor Documentation

◆ TgcDigitizationTool()

TgcDigitizationTool::TgcDigitizationTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 23 of file TgcDigitizationTool.cxx.

Member Function Documentation

◆ digitizeCore()

StatusCode TgcDigitizationTool::digitizeCore ( const EventContext &  ctx)
private

Core part of digitization used by processAllSubEvents and mergeEvent.

NOTE:

Since not every hit might end up resulting in a digit, this construction might take place after the hit loop in a loop of its own!

Definition at line 252 of file TgcDigitizationTool.cxx.

252  {
253 
254  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this);
255  rngWrapper->setSeed(name(), ctx);
256  CLHEP::HepRandomEngine* rndmEngine = rngWrapper->getEngine(ctx);
257 
258  // create and record the Digit container in StoreGate
259  SG::WriteHandle<TgcDigitContainer> digitContainer(
261  ATH_CHECK(digitContainer.record(
262  std::make_unique<TgcDigitContainer>(m_idHelper->module_hash_max())));
263  ATH_MSG_DEBUG("TgcDigitContainer recorded in StoreGate.");
264 
265  // Create and record the SDO container in StoreGate
268  ATH_CHECK(sdoContainer.record(std::make_unique<MuonSimDataCollection>()));
269  ATH_MSG_DEBUG("TgcSDOCollection recorded in StoreGate.");
270 
271  // get the iterator pairs for this DetEl
272  // iterate over hits and fill id-keyed drift time map
273  IdContext tgcContext = m_idHelper->module_context();
274 
275  // Read needed conditions data
276  const TgcDigitASDposData* ASDpos{};
277  if (!m_readCondKey_ASDpos.empty()) {
278  SG::ReadCondHandle<TgcDigitASDposData> readHandle_ASDpos{
279  m_readCondKey_ASDpos, ctx};
280  ASDpos = readHandle_ASDpos.cptr();
281  } else {
283  "ASD Position parameters /TGC/DIGIT/ASDPOS must be available for "
284  "TGC_Digitization. Check the configuration!");
285  }
286  const TgcDigitTimeOffsetData* TOffset{};
288  SG::ReadCondHandle<TgcDigitTimeOffsetData> readHandle_TimeOffset{
290  TOffset = readHandle_TimeOffset.cptr();
291  } else {
293  "Timing Offset parameters /TGC/DIGIT/TOFFSET must be available for "
294  "TGC_Digitization. Check the configuration!");
295  }
296  const TgcDigitCrosstalkData* Crosstalk{};
298  SG::ReadCondHandle<TgcDigitCrosstalkData> readHandle_Crosstalk{
300  Crosstalk = readHandle_Crosstalk.cptr();
301  } else {
303  "/TGC/DIGIT/XTALK is not provided. Probabilities of TGC channel "
304  "crosstalk will be zero.");
305  }
306 
307  std::vector<std::unique_ptr<TgcDigitCollection> > collections;
308 
310  while (m_thpcTGC->nextDetectorElement(i, e)) {
311  ATH_MSG_DEBUG("TgcDigitizationTool::digitizeCore next element");
312 
313  // Loop over the hits:
314  while (i != e) {
315  TimedHitPtr<TGCSimHit> phit = *i++;
316  const TGCSimHit& hit = *phit;
317  double globalHitTime = hitTime(phit);
318  double tof = phit->globalTime();
320  &hit, globalHitTime, ASDpos, TOffset, Crosstalk, rndmEngine);
321 
322  if (!digiHits)
323  continue;
324 
326  for (it_digiHits = digiHits->begin();
327  it_digiHits != digiHits->end(); ++it_digiHits) {
328 
337  Identifier newDigiId = (*it_digiHits)->identify();
338  uint16_t newBcTag = (*it_digiHits)->bcTag();
339  Identifier elemId = m_idHelper->elementID(newDigiId);
340 
341  TgcDigitCollection* digitCollection = nullptr;
342 
343  IdentifierHash coll_hash;
344  if (m_idHelper->get_hash(elemId, coll_hash, &tgcContext)) {
346  "Unable to get TGC hash id from TGC Digit collection "
347  << "context begin_index = " << tgcContext.begin_index()
348  << " context end_index = " << tgcContext.end_index()
349  << " the identifier is ");
350  elemId.show();
351  }
352 
353  // make new TgcDigit and record it in StoreGate
354  auto newDigit = std::make_unique<TgcDigit>(newDigiId, newBcTag);
355 
356  // record the digit container in StoreGate
357  bool duplicate = false;
358  if (coll_hash >= collections.size()) {
359  collections.resize(coll_hash + 1);
360  }
361  digitCollection = collections[coll_hash].get();
362  if (nullptr == digitCollection) {
363  collections[coll_hash] =
364  std::make_unique<TgcDigitCollection>(elemId, coll_hash);
365  digitCollection = collections[coll_hash].get();
366  ATH_MSG_DEBUG("Digit Id(1st) = "
367  << m_idHelper->show_to_string(newDigiId)
368  << " BC tag = " << newBcTag
369  << " Coll. key = " << coll_hash);
370  digitCollection->push_back(std::move(newDigit));
371  } else {
372  // to avoid to store digits with identical id
374  for (it_tgcDigit = digitCollection->begin();
375  it_tgcDigit != digitCollection->end(); ++it_tgcDigit) {
376  if (newDigiId == (*it_tgcDigit)->identify() &&
377  newBcTag == (*it_tgcDigit)->bcTag()) {
378  duplicate = true;
379  IdContext context = m_idHelper->channel_context();
380  ATH_MSG_DEBUG("Duplicate digit(removed) = "
382  newDigiId, &context)
383  << " BC tag = " << newBcTag);
384  newDigit.reset();
385  break;
386  }
387  }
388  if (!duplicate) {
389  digitCollection->push_back(std::move(newDigit));
390  ATH_MSG_DEBUG("Digit Id= "
391  << m_idHelper->show_to_string(newDigiId)
392  << " BC tag = " << newBcTag);
393  }
394  }
395 
396  if (!duplicate) {
397  static const double invalid_pos = -99999.;
398  Amg::Vector3D gpos(invalid_pos, invalid_pos, invalid_pos);
399  const MuonGM::TgcReadoutElement* tgcChamber =
400  m_mdManager->getTgcReadoutElement(newDigiId);
401  if (tgcChamber) {
402  gpos = tgcChamber->localToGlobalTransf(newDigiId) * hit.localPosition();
403  }
404 
405  // fill the SDO collection in StoreGate if not pile-up
406  if (!m_includePileUpTruth &&
407  HepMC::ignoreTruthLink(phit->particleLink(),
409  continue;
410  }
411 
412  // link to MC info
413  // create here deposit for MuonSimData, link and tof
414  std::vector<MuonSimData::Deposit> deposits;
415  deposits.emplace_back(
416  HepMcParticleLink::getRedirectedLink(phit->particleLink(), phit.eventId(), ctx), // This link should now correctly resolve to the TruthEvent McEventCollection in the main StoreGateSvc.
417  MuonMCData(tof, 0));
418  MuonSimData simData(deposits, 0);
419  simData.setPosition(gpos);
420  simData.setTime(hitTime(phit));
421  sdoContainer->insert(std::make_pair(newDigiId, simData));
422  }
423  }
424  delete digiHits;
425  digiHits = nullptr;
426  } // while(i != e)
427  } // while(m_thpcTGC->nextDetectorElement(i, e))
428 
429  for (size_t coll_hash = 0; coll_hash < collections.size(); ++coll_hash) {
430  if (collections[coll_hash]) {
431  ATH_CHECK(digitContainer->addCollection(
432  collections[coll_hash].release(), coll_hash));
433  }
434  }
435 
436  return StatusCode::SUCCESS;
437 }

◆ filterPassed()

virtual bool PileUpToolBase::filterPassed ( ) const
inlineoverridevirtualinherited

dummy implementation of passing filter

Definition at line 49 of file PileUpToolBase.h.

49 { return m_filterPassed; }

◆ finalize()

StatusCode TgcDigitizationTool::finalize ( )
finaloverridevirtual

Finalize.

Definition at line 178 of file TgcDigitizationTool.cxx.

178  {
179  ATH_MSG_DEBUG("finalize.");
180 
181  delete m_digitizer;
182  m_digitizer = nullptr;
183 
184  return StatusCode::SUCCESS;
185 }

◆ getNextEvent()

StatusCode TgcDigitizationTool::getNextEvent ( const EventContext &  ctx)
private

Get next event and extract collection of hit collections.

Definition at line 189 of file TgcDigitizationTool.cxx.

189  {
190  // initialize pointer
191  m_thpcTGC = nullptr;
192 
193  // get the container(s)
194  using TimedHitCollList =
196 
197  // In case of single hits container just load the collection using read
198  // handles
199  if (!m_onlyUseContainerName) {
201  ctx);
202  if (!hitCollection.isValid()) {
203  ATH_MSG_ERROR("Could not get TGCSimHitCollection container "
204  << hitCollection.name() << " from store "
205  << hitCollection.store());
206  return StatusCode::FAILURE;
207  }
208 
209  // create a new hits collection
211  m_thpcTGC->insert(0, hitCollection.cptr());
212  ATH_MSG_DEBUG("TGCSimHitCollection found with " << hitCollection->size()
213  << " hits");
214 
215  return StatusCode::SUCCESS;
216  }
217 
218  // this is a list<pair<time_t, DataLink<TGCSimHitCollection> > >
219  TimedHitCollList hitCollList;
220 
221  if (!(m_mergeSvc->retrieveSubEvtsData(m_inputHitCollectionName, hitCollList)
222  .isSuccess())) {
223  ATH_MSG_FATAL("Could not fill TimedHitCollList");
224  return StatusCode::FAILURE;
225  }
226  if (hitCollList.empty()) {
227  ATH_MSG_FATAL("TimedHitCollList has size 0");
228  return StatusCode::FAILURE;
229  } else {
230  ATH_MSG_DEBUG(hitCollList.size()
231  << " TGCSimHitCollections with key "
232  << m_inputHitCollectionName << " found");
233  }
234 
235  // create a new hits collection
237 
238  // now merge all collections into one
239  TimedHitCollList::iterator iColl = hitCollList.begin();
240  TimedHitCollList::iterator endColl = hitCollList.end();
241  while (iColl != endColl) {
242  const TGCSimHitCollection* p_collection = iColl->second;
243  m_thpcTGC->insert(iColl->first, p_collection);
244  ATH_MSG_DEBUG("TGCSimHitCollection found with "
245  << p_collection->size()
246  << " hits"); // loop on the hit collections
247  ++iColl;
248  }
249  return StatusCode::SUCCESS;
250 }

◆ initialize()

StatusCode TgcDigitizationTool::initialize ( )
finaloverridevirtual

Initialize.

Reimplemented from PileUpToolBase.

Definition at line 29 of file TgcDigitizationTool.cxx.

29  {
30  // retrieve MuonDetctorManager from DetectorStore
32  ATH_MSG_DEBUG("Retrieved MuonDetectorManager from DetectorStore.");
33 
35  ATH_CHECK(m_mergeSvc.retrieve());
36  }
37 
38  // initialize the TgcIdHelper
40  if (!m_idHelper) {
41  ATH_MSG_WARNING("tgcIdHelper could not be retrieved.");
42  return StatusCode::FAILURE;
43  }
44 
45  // TgcHitIdHelper
47 
48  // check the input object name
49  if (m_hitsContainerKey.key().empty()) {
50  ATH_MSG_FATAL("Property InputObjectName not set !");
51  return StatusCode::FAILURE;
52  }
55  ATH_MSG_DEBUG("Input objects in container : '" << m_inputHitCollectionName
56  << "'");
57 
58  // Initialize Read(Cond)HandleKey
59  ATH_CHECK(m_hitsContainerKey.initialize(true));
61  ATH_CHECK(
63  ATH_CHECK(
65 
66  // initialize the output WriteHandleKeys
69  ATH_MSG_DEBUG("Output Digits: '" << m_outputDigitCollectionKey.key()
70  << "'");
71 
72  ATH_MSG_DEBUG("IncludePileUpTruth: " << m_includePileUpTruth);
73  ATH_MSG_DEBUG("VetoPileUpTruthLinks: " << m_vetoPileUpTruthLinks);
74 
75  // initialize class to execute digitization
78  m_digitizer->setLevel(static_cast<MSG::Level>(msgLevel()));
79  ATH_CHECK(m_rndmSvc.retrieve());
80 
82 
83  return StatusCode::SUCCESS;
84 }

◆ mergeEvent()

StatusCode TgcDigitizationTool::mergeEvent ( const EventContext &  ctx)
finaloverridevirtual

called at the end of the subevts loop.

Not (necessarily) able to access SubEvents (IPileUpTool)

Definition at line 142 of file TgcDigitizationTool.cxx.

142  {
143  ATH_MSG_DEBUG("TgcDigitizationTool::mergeEvent()");
144 
145  ATH_CHECK(digitizeCore(ctx));
146  // reset the pointer (delete null pointer should be safe)
147  delete m_thpcTGC;
148  m_thpcTGC = nullptr;
149 
151  m_TGCHitCollList.begin();
153  m_TGCHitCollList.end();
154  while (TGCHitColl != TGCHitCollEnd) {
155  delete (*TGCHitColl);
156  ++TGCHitColl;
157  }
158  m_TGCHitCollList.clear();
159 
160  return StatusCode::SUCCESS;
161 }

◆ prepareEvent()

StatusCode TgcDigitizationTool::prepareEvent ( const EventContext &  ctx,
unsigned int   
)
finaloverridevirtual

Definition at line 87 of file TgcDigitizationTool.cxx.

88  {
89  m_TGCHitCollList.clear();
91 
92  return StatusCode::SUCCESS;
93 }

◆ processAllSubEvents() [1/2]

StatusCode TgcDigitizationTool::processAllSubEvents ( const EventContext &  ctx)
finaloverridevirtual

alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.

Reads GEANT4 hits from StoreGate in each of detector components corresponding to TGC modules which are triplets or doublets. A triplet has tree sensitive volumes and a double has two. This method calls TgcDigitMaker::executeDigi, which digitizes every hit, for every readout element, i.e., a sensitive volume of a chamber.

Reimplemented from PileUpToolBase.

Definition at line 164 of file TgcDigitizationTool.cxx.

164  {
165  ATH_MSG_DEBUG("TgcDigitizationTool::processAllSubEvents()");
166  // merging of the hit collection in getNextEvent method
167  if (!m_thpcTGC) {
168  ATH_CHECK(getNextEvent(ctx));
169  }
170  ATH_CHECK(digitizeCore(ctx));
171  // reset the pointer (delete null pointer should be safe)
172  delete m_thpcTGC;
173  m_thpcTGC = nullptr;
174  return StatusCode::SUCCESS;
175 }

◆ processAllSubEvents() [2/2]

virtual StatusCode IPileUpTool::processAllSubEvents
inherited

dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface.

◆ processBunchXing()

StatusCode TgcDigitizationTool::processBunchXing ( int  bunchXing,
SubEventIterator  bSubEvents,
SubEventIterator  eSubEvents 
)
finaloverridevirtual

called for each active bunch-crossing to process current SubEvents bunchXing is in ns

Reimplemented from PileUpToolBase.

Definition at line 96 of file TgcDigitizationTool.cxx.

98  {
99  ATH_MSG_DEBUG("TgcDigitizationTool::processBunchXing() " << bunchXing);
100 
102  TimedHitCollList;
103  TimedHitCollList hitCollList;
104 
105  if (!(m_mergeSvc
106  ->retrieveSubSetEvtData(m_inputHitCollectionName, hitCollList,
107  bunchXing, bSubEvents, eSubEvents)
108  .isSuccess()) &&
109  hitCollList.empty()) {
110  ATH_MSG_ERROR("Could not fill TimedHitCollList");
111  return StatusCode::FAILURE;
112  } else {
113  ATH_MSG_VERBOSE(hitCollList.size()
114  << " TGCSimHitCollection with key "
115  << m_inputHitCollectionName << " found");
116  }
117 
118  TimedHitCollList::iterator iColl(hitCollList.begin());
119  TimedHitCollList::iterator endColl(hitCollList.end());
120 
121  // Iterating over the list of collections
122  for (; iColl != endColl; ++iColl) {
123 
124  TGCSimHitCollection* hitCollPtr =
125  new TGCSimHitCollection(*iColl->second);
126  PileUpTimeEventIndex timeIndex(iColl->first);
127 
128  ATH_MSG_DEBUG("TGCSimHitCollection found with " << hitCollPtr->size()
129  << " hits");
130  ATH_MSG_VERBOSE("time index info. time: "
131  << timeIndex.time() << " index: " << timeIndex.index()
132  << " type: " << timeIndex.type());
133 
134  m_thpcTGC->insert(timeIndex, hitCollPtr);
135  m_TGCHitCollList.push_back(hitCollPtr);
136  }
137 
138  return StatusCode::SUCCESS;
139 }

◆ resetFilter()

virtual void PileUpToolBase::resetFilter ( )
inlineoverridevirtualinherited

dummy implementation of filter reset

Reimplemented in MergeTruthJetsTool.

Definition at line 51 of file PileUpToolBase.h.

51 { m_filterPassed=true; }

◆ toProcess()

virtual bool PileUpToolBase::toProcess ( int  bunchXing) const
inlineoverridevirtualinherited

the method this base class helps implementing

Reimplemented in MergeHijingParsTool, and MergeTrackRecordCollTool.

Definition at line 32 of file PileUpToolBase.h.

32  {
33  //closed interval [m_firstXing,m_lastXing]
34  return !((m_firstXing > bunchXing) || (bunchXing > m_lastXing));
35  }

Member Data Documentation

◆ m_digitizer

TgcDigitMaker* TgcDigitizationTool::m_digitizer {}
private

Definition at line 90 of file TgcDigitizationTool.h.

◆ m_doFourBunchDigitization

Gaudi::Property<bool> TgcDigitizationTool::m_doFourBunchDigitization
private
Initial value:
{
this, "FourBunchDigitization", true,
"Do the four bunch digitization since Run-3"}

Definition at line 98 of file TgcDigitizationTool.h.

◆ m_filterPassed

bool PileUpToolBase::m_filterPassed {true}
protectedinherited

Definition at line 60 of file PileUpToolBase.h.

◆ m_firstXing

Gaudi::Property<int> PileUpToolBase::m_firstXing
protectedinherited
Initial value:
{this, "FirstXing", -999,
"First bunch-crossing in which det is live"}

Definition at line 54 of file PileUpToolBase.h.

◆ m_hitIdHelper

const TgcHitIdHelper* TgcDigitizationTool::m_hitIdHelper {}
private

Definition at line 87 of file TgcDigitizationTool.h.

◆ m_hitsContainerKey

SG::ReadHandleKey<TGCSimHitCollection> TgcDigitizationTool::m_hitsContainerKey
private
Initial value:
{
this, "InputObjectName", "TGC_Hits", "name of the input object"}

Definition at line 101 of file TgcDigitizationTool.h.

◆ m_idHelper

const TgcIdHelper* TgcDigitizationTool::m_idHelper {}
private

Definition at line 88 of file TgcDigitizationTool.h.

◆ m_includePileUpTruth

Gaudi::Property<bool> TgcDigitizationTool::m_includePileUpTruth
private
Initial value:
{this, "IncludePileUpTruth", true,
"Include pile-up truth info"}

Definition at line 123 of file TgcDigitizationTool.h.

◆ m_inputHitCollectionName

std::string TgcDigitizationTool::m_inputHitCollectionName {""}
private

Definition at line 103 of file TgcDigitizationTool.h.

◆ m_lastXing

Gaudi::Property<int> PileUpToolBase::m_lastXing
protectedinherited
Initial value:
{this, "LastXing", 999,
"Last bunch-crossing in which det is live"}

Definition at line 56 of file PileUpToolBase.h.

◆ m_mdManager

const MuonGM::MuonDetectorManager* TgcDigitizationTool::m_mdManager {}
private

Definition at line 89 of file TgcDigitizationTool.h.

◆ m_mergeSvc

ServiceHandle<PileUpMergeSvc> TgcDigitizationTool::m_mergeSvc
protected
Initial value:
{
this, "PileUpMergeSvc", "PileUpMergeSvc", ""}

Definition at line 81 of file TgcDigitizationTool.h.

◆ m_onlyUseContainerName

Gaudi::Property<bool> TgcDigitizationTool::m_onlyUseContainerName
private
Initial value:
{
this, "OnlyUseContainerName", true,
"Don't use the ReadHandleKey directly. Just extract the container name "
"from it."}

Definition at line 94 of file TgcDigitizationTool.h.

◆ m_outputDigitCollectionKey

SG::WriteHandleKey<TgcDigitContainer> TgcDigitizationTool::m_outputDigitCollectionKey
private
Initial value:
{
this, "OutputObjectName", "TGC_DIGITS",
"WriteHandleKey for Output TgcDigitContainer"}

Definition at line 113 of file TgcDigitizationTool.h.

◆ m_outputSDO_CollectionKey

SG::WriteHandleKey<MuonSimDataCollection> TgcDigitizationTool::m_outputSDO_CollectionKey
private
Initial value:
{
this, "OutputSDOName", "TGC_SDO",
"WriteHandleKey for Output MuonSimDataCollection"}

Definition at line 117 of file TgcDigitizationTool.h.

◆ m_readCondKey_ASDpos

SG::ReadCondHandleKey<TgcDigitASDposData> TgcDigitizationTool::m_readCondKey_ASDpos
private
Initial value:
{
this, "TGCDigitASDposKey", "",
"ReadCondHandleKey for TGCDigitASDposData"}

Definition at line 104 of file TgcDigitizationTool.h.

◆ m_readCondKey_Crosstalk

SG::ReadCondHandleKey<TgcDigitCrosstalkData> TgcDigitizationTool::m_readCondKey_Crosstalk
private
Initial value:
{
this, "TGCDigitCrosstalkKey", "",
"ReadCondHandleKey for TGCDigitCrosstalkData"}

Definition at line 110 of file TgcDigitizationTool.h.

◆ m_readCondKey_TimeOffset

SG::ReadCondHandleKey<TgcDigitTimeOffsetData> TgcDigitizationTool::m_readCondKey_TimeOffset
private
Initial value:
{
this, "TGCDigitTimeOffsetKey", "",
"ReadCondHandleKey for TGCDigitTimeOffsetData"}

Definition at line 107 of file TgcDigitizationTool.h.

◆ m_rndmSvc

ServiceHandle<IAthRNGSvc> TgcDigitizationTool::m_rndmSvc
protected
Initial value:
{this, "RndmSvc", "AthRNGSvc",
""}

Definition at line 83 of file TgcDigitizationTool.h.

◆ m_TGCHitCollList

std::list<TGCSimHitCollection*> TgcDigitizationTool::m_TGCHitCollList
private

Definition at line 92 of file TgcDigitizationTool.h.

◆ m_thpcTGC

TimedHitCollection<TGCSimHit>* TgcDigitizationTool::m_thpcTGC {}
private

Definition at line 91 of file TgcDigitizationTool.h.

◆ m_vetoPileUpTruthLinks

Gaudi::Property<int> PileUpToolBase::m_vetoPileUpTruthLinks
protectedinherited
Initial value:
{this, "VetoPileUpTruthLinks", true,
"Ignore links to suppressed pile-up truth"}

Definition at line 58 of file PileUpToolBase.h.


The documentation for this class was generated from the following files:
TgcDigitMaker
Definition: TgcDigitMaker.h:40
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
PileUpToolBase::m_filterPassed
bool m_filterPassed
Definition: PileUpToolBase.h:60
TgcDigitTimeOffsetData
Definition: TgcDigitTimeOffsetData.h:20
TgcDigitizationTool::m_readCondKey_ASDpos
SG::ReadCondHandleKey< TgcDigitASDposData > m_readCondKey_ASDpos
Definition: TgcDigitizationTool.h:104
MuonIdHelper::channel_context
IdContext channel_context() const
id for channel
Definition: MuonIdHelper.cxx:741
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
IdContext::end_index
size_type end_index() const
Definition: IdContext.h:46
AtlasHitsVector
Definition: AtlasHitsVector.h:33
TGCSimHitCollection
AtlasHitsVector< TGCSimHit > TGCSimHitCollection
Definition: TGCSimHitCollection.h:15
TgcDigitizationTool::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: TgcDigitizationTool.h:83
TgcDigitCrosstalkData
Definition: TgcDigitCrosstalkData.h:22
TgcDigitizationTool::m_hitIdHelper
const TgcHitIdHelper * m_hitIdHelper
Definition: TgcDigitizationTool.h:87
TimedHitPtr< TGCSimHit >
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
PileUpToolBase::m_lastXing
Gaudi::Property< int > m_lastXing
Definition: PileUpToolBase.h:56
HepMC::ignoreTruthLink
bool ignoreTruthLink(const T &p, bool vetoPileUp)
Helper function for SDO creation in PileUpTools.
Definition: MagicNumbers.h:332
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
TimedHitCollection::nextDetectorElement
bool nextDetectorElement(const_iterator &b, const_iterator &e)
sets an iterator range with the hits of current detector element returns a bool when done
TgcDigitizationTool::m_TGCHitCollList
std::list< TGCSimHitCollection * > m_TGCHitCollList
Definition: TgcDigitizationTool.h:92
PileUpToolBase::m_vetoPileUpTruthLinks
Gaudi::Property< int > m_vetoPileUpTruthLinks
Definition: PileUpToolBase.h:58
TgcDigitizationTool::m_readCondKey_Crosstalk
SG::ReadCondHandleKey< TgcDigitCrosstalkData > m_readCondKey_Crosstalk
Definition: TgcDigitizationTool.h:110
PileUpMergeSvc::TimedList::type
std::list< value_t > type
type of the collection of timed data object
Definition: PileUpMergeSvc.h:75
MuonGM::MuonDetectorManager::getTgcReadoutElement
const TgcReadoutElement * getTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:247
TGCSimHit::localPosition
const Amg::Vector3D & localPosition() const
Definition: TGCSimHit.h:43
TgcDigitMaker::initialize
StatusCode initialize()
Initializes TgcHitIdHelper, TgcIdHelper and random number of a stream for the digitization.
Definition: TgcDigitMaker.cxx:59
TgcDigitizationTool::m_mdManager
const MuonGM::MuonDetectorManager * m_mdManager
Definition: TgcDigitizationTool.h:89
AthMessaging::setLevel
void setLevel(MSG::Level lvl)
Change the current logging level.
Definition: AthMessaging.cxx:28
TgcDigitizationTool::m_digitizer
TgcDigitMaker * m_digitizer
Definition: TgcDigitizationTool.h:90
IdContext::begin_index
size_type begin_index() const
Definition: IdContext.h:45
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TimedHitCollection::insert
void insert(const PileUpTimeEventIndex &timeEventIndex, const AtlasHitsVector< HIT > *inputCollection)
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:88
lumiFormat.i
int i
Definition: lumiFormat.py:85
TgcDigitizationTool::m_mergeSvc
ServiceHandle< PileUpMergeSvc > m_mergeSvc
Definition: TgcDigitizationTool.h:81
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TgcDigitizationTool::m_doFourBunchDigitization
Gaudi::Property< bool > m_doFourBunchDigitization
Definition: TgcDigitizationTool.h:98
TgcDigitCollection
Definition: TgcDigitCollection.h:17
MuonGM::TgcReadoutElement
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/TgcReadoutElement.h:42
test_pyathena.parent
parent
Definition: test_pyathena.py:15
PileUpToolBase::PileUpToolBase
PileUpToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Definition: PileUpToolBase.cxx:7
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TgcHitIdHelper::GetHelper
static const TgcHitIdHelper * GetHelper()
Definition: TgcHitIdHelper.cxx:23
TgcDigitizationTool::m_hitsContainerKey
SG::ReadHandleKey< TGCSimHitCollection > m_hitsContainerKey
Definition: TgcDigitizationTool.h:101
TgcDigitASDposData
Definition: TgcDigitASDposData.h:24
Identifier::show
void show() const
Print out in hex form.
Definition: Identifier.cxx:30
MuonGM::TgcReadoutElement::localToGlobalTransf
const Amg::Transform3D & localToGlobalTransf(const Identifier &id) const
Returns the local -> global transformation x-axis: Parallel to the wires (strips) if the Identifier b...
TgcDigitizationTool::digitizeCore
StatusCode digitizeCore(const EventContext &ctx)
Core part of digitization used by processAllSubEvents and mergeEvent.
Definition: TgcDigitizationTool.cxx:252
TgcIdHelper::elementID
Identifier elementID(int stationName, int stationEta, int stationPhi) const
Definition: TgcIdHelper.cxx:556
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
MuonGM::MuonDetectorManager::tgcIdHelper
const TgcIdHelper * tgcIdHelper() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:238
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
MuonSimData
Definition: MuonSimData.h:62
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TgcDigitizationTool::m_thpcTGC
TimedHitCollection< TGCSimHit > * m_thpcTGC
Definition: TgcDigitizationTool.h:91
MuonIdHelper::module_hash_max
size_type module_hash_max() const
the maximum hash value
Definition: MuonIdHelper.cxx:748
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
TGCSimHit
Definition: TGCSimHit.h:19
TgcDigitizationTool::m_inputHitCollectionName
std::string m_inputHitCollectionName
Definition: TgcDigitizationTool.h:103
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
TgcDigitMaker::executeDigi
TgcDigitCollection * executeDigi(const TGCSimHit *hit, const double globalHitTime, const TgcDigitASDposData *ASDpos, const TgcDigitTimeOffsetData *TOffset, const TgcDigitCrosstalkData *Crosstalk, CLHEP::HepRandomEngine *rndmEngine)
A single hit can be digitized in the two directions independently: R and phi directions.
Definition: TgcDigitMaker.cxx:88
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
TimedHitPtr::eventId
unsigned short eventId() const
the index of the component event in PileUpEventInfo.
Definition: TimedHitPtr.h:45
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonIdHelper::get_hash
virtual int get_hash(const Identifier &id, IdentifierHash &hash_id, const IdContext *context=0) const override
Create hash id from compact id (return == 0 for OK)
Definition: MuonIdHelper.cxx:144
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TgcDigitizationTool::m_outputSDO_CollectionKey
SG::WriteHandleKey< MuonSimDataCollection > m_outputSDO_CollectionKey
Definition: TgcDigitizationTool.h:117
PileUpToolBase::m_firstXing
Gaudi::Property< int > m_firstXing
Definition: PileUpToolBase.h:54
MuonIdHelper::module_context
IdContext module_context() const
id for module
Definition: MuonIdHelper.cxx:731
TgcDigitizationTool::m_idHelper
const TgcIdHelper * m_idHelper
Definition: TgcDigitizationTool.h:88
TgcDigitizationTool::m_includePileUpTruth
Gaudi::Property< bool > m_includePileUpTruth
Definition: TgcDigitizationTool.h:123
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
simData
constexpr bool simData
Definition: constants.h:36
hitTime
float hitTime(const AFP_SIDSimHit &hit)
Definition: AFP_SIDSimHit.h:39
TgcDigitizationTool::m_outputDigitCollectionKey
SG::WriteHandleKey< TgcDigitContainer > m_outputDigitCollectionKey
Definition: TgcDigitizationTool.h:113
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
TgcDigitizationTool::getNextEvent
StatusCode getNextEvent(const EventContext &ctx)
Get next event and extract collection of hit collections.
Definition: TgcDigitizationTool.cxx:189
TgcDigitizationTool::m_onlyUseContainerName
Gaudi::Property< bool > m_onlyUseContainerName
Definition: TgcDigitizationTool.h:94
PileUpTimeEventIndex
a struct encapsulating the identifier of a pile-up event
Definition: PileUpTimeEventIndex.h:12
TgcDigitizationTool::m_readCondKey_TimeOffset
SG::ReadCondHandleKey< TgcDigitTimeOffsetData > m_readCondKey_TimeOffset
Definition: TgcDigitizationTool.h:107
IdContext
This class saves the "context" of an expanded identifier (ExpandedIdentifier) for compact or hash ver...
Definition: IdContext.h:26
TimedHitCollection
Definition: TimedHitCollection.h:15
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
MuonMCData
Definition: MuonSimData.h:42
Identifier
Definition: IdentifierFieldParser.cxx:14