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

#include <LUCID_PileUpTool.h>

Inheritance diagram for LUCID_PileUpTool:
Collaboration diagram for LUCID_PileUpTool:

Public Member Functions

 LUCID_PileUpTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode initialize () override final
 
virtual StatusCode finalize () override final
 
virtual StatusCode prepareEvent (const EventContext &ctx, const unsigned int nInputEvents) override final
 called before the subevts loop. Not (necessarily) able to access SubEvents More...
 
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
 return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing More...
 
virtual StatusCode processAllSubEvents (const EventContext &ctx) override final
 perform the digitization - used by LUCID_DigiTop::execute More...
 
StatusCode recordContainers (const ServiceHandle< StoreGateSvc > &, const std::string &)
 
StatusCode fillDigitContainer (TimedHitCollection< LUCID_SimHit > &, CLHEP::HepRandomEngine *)
 
StatusCode fillDigitContainer (LUCID_SimHitCollection *, CLHEP::HepRandomEngine *)
 
StatusCode setDebugTree (ITHistSvc *)
 

Protected Member Functions

TTree * getDebugTree ()
 
StatusCode createAndStoreDigit (unsigned short tubeID, CLHEP::HepRandomEngine *rndEngine)
 
double DynodeChainSimulation (double npe, CLHEP::HepRandomEngine *rndEngine) const
 

Static Protected Member Functions

static unsigned int roundoff (double x)
 
static double DynodeGainSmearing (double npe, CLHEP::HepRandomEngine *rndEngine)
 

Protected Attributes

LUCID_DigitContainerm_digitContainer {}
 
int m_numTubes {}
 
double m_qdcChannelsPerPE {}
 
double m_qdcPedestal {}
 
double m_qdcFedNoiseFactor {}
 
double m_tdcPmtNoiseFactor {}
 
double m_tdcFedNoiseFactor {}
 
double m_TotalPMTgain {}
 
double m_AmpFactor {}
 
double m_Q1bin {}
 
int m_NoiseCharge {}
 
int m_numDyinodes {}
 
double m_dynodeGammaFactor {}
 
double m_gainPerDynode {}
 
double m_ChargeToQdcFactor {}
 
std::vector< double > m_pmtSmearing {}
 
std::vector< double > m_pmtScaling {}
 
std::vector< double > m_gasScaling {}
 
std::vector< double > m_npeThreshold {}
 
bool m_fillRootTree {}
 
unsigned short m_tubeID {}
 
double m_npe {}
 
unsigned short m_npeGas {}
 
unsigned short m_npePmt {}
 
unsigned short m_qdc {}
 
double m_tdcTot {}
 
unsigned short m_tdc {}
 
TTree * m_tubeInfo {}
 

Private Attributes

ServiceHandle< PileUpMergeSvcm_mergeSvc {this, "mergeSvc", "PileUpMergeSvc", ""}
 
ServiceHandle< IAthRNGSvcm_randomSvc {this, "RndmSvc", "AthRNGSvc", ""}
 
Gaudi::Property< std::string > m_randomStreamName {this, "RandomStreamName", "LUCIDRndEng", ""}
 
std::string m_dataObjectName
 
std::string m_SimHitCollectionName
 
std::string m_digitsContainerName
 
std::string m_key_digitCnt
 
LUCID_DigitizationToolBoxm_digitToolBox {}
 
ITHistSvc * m_digitHistSvc {}
 
LUCID_SimHitCollectionm_mergedhitList {}
 

structors and AlgTool implementation

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...
 
Gaudi::Property< int > m_firstXing
 
Gaudi::Property< int > m_lastXing
 
Gaudi::Property< int > m_vetoPileUpTruthLinks
 
bool m_filterPassed {true}
 

Detailed Description

Definition at line 31 of file LUCID_PileUpTool.h.

Constructor & Destructor Documentation

◆ LUCID_PileUpTool()

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

Definition at line 19 of file LUCID_PileUpTool.cxx.

21  :
24  40,//m_numTubes
25  15.0,//m_qdcChannelsPerPE
26  150.0,//m_qdcPedestal
27  3.0,//m_qdcFedNoiseFactor
28  2.8,//m_tdcPmtNoiseFactor
29  0.8,//m_tdcFedNoiseFactor
30  1.25e6,//m_TotalPMTgain
31  7.5,//m_AmpFactor
32  0.1e-12,//m_Q1bin
33  541666,//m_NoiseCharge
34  10,//m_numDyinodes
35  1.356,//m_dynodeGammaFactor
36  {0.000001}, //m_pmtSmearing
37  {0.000001}, //m_pmtScaling
38  {0.000001}, //m_gasScaling
39  {0.000001,0.000001,0.000001,0.000001,0.000001,
40  0.000001,0.000001,0.000001,0.000001,0.000001,
41  0.000001,0.000001,0.000001,0.000001,0.000001},//15 values m_npeThreshold
42  false), //m_fillRootTree
43  m_key_digitCnt ("Lucid_Digits")
44 {
45  declareProperty("SimHitCollection" ,
46  m_SimHitCollectionName = "LucidSimHitsVector",
47  "Name of the input Collection of simulated hits");
48  declareProperty("LucidDigitsContainer",
49  m_digitsContainerName = "LucidDigitsCnt",
50  "Name of the Container to hold the output from the digitization");
51 
52  declareProperty("numTubes" , m_numTubes);
53  declareProperty("qdcChannelsPerPE" , m_qdcChannelsPerPE);
54  declareProperty("qdcPedestal" , m_qdcPedestal);
55  declareProperty("qdcFedNoiseFactor" , m_qdcFedNoiseFactor);
56  declareProperty("tdcPmtNoiseFactor" , m_tdcPmtNoiseFactor);
57  declareProperty("tdcFedNoiseFactor" , m_tdcFedNoiseFactor);
58 
59  declareProperty("TotalPMTgain" , m_TotalPMTgain);
60  declareProperty("AmpFactor" , m_AmpFactor);
61  declareProperty("Q1bin" , m_Q1bin);
62  declareProperty("NoiseCharge" , m_NoiseCharge);
63  declareProperty("numDyinodes" , m_numDyinodes);
64  declareProperty("dynodeGammaFactor" , m_dynodeGammaFactor);
65 
66  declareProperty("pmtSmearing" , m_pmtSmearing);
67  declareProperty("pmtScaling" , m_pmtScaling);
68  declareProperty("gasScaling" , m_gasScaling);
69  declareProperty("npeThreshold" , m_npeThreshold);
70 
71  declareProperty("fillRootTree" , m_fillRootTree);
72 }

Member Function Documentation

◆ createAndStoreDigit()

StatusCode LUCID_DigitizationToolBox::createAndStoreDigit ( unsigned short  tubeID,
CLHEP::HepRandomEngine *  rndEngine 
)
protectedinherited

Definition at line 129 of file LUCID_DigitizationToolBox.cxx.

129  {
130 
131  double npePmt = m_npePmt * m_pmtScaling[tubeID] * CLHEP::RandGaussQ::shoot(rndEngine, 1, m_pmtSmearing[tubeID]);
132  double npeGas = m_npeGas * m_gasScaling[tubeID];
133  double npeTot = npeGas + npePmt;
134  double qdcSmeared = DynodeChainSimulation(npeTot, rndEngine);
135 
136  m_qdc = roundoff(qdcSmeared);
137 
139 
140  double tdcTotSmeared = 0;
141 
142  tdcTotSmeared = CLHEP::RandGaussQ::shoot(rndEngine, m_tdcTot , m_tdcPmtNoiseFactor);
143  tdcTotSmeared = CLHEP::RandGaussQ::shoot(rndEngine, tdcTotSmeared, m_tdcFedNoiseFactor);
144  tdcTotSmeared = (npeTot) ? tdcTotSmeared/npeTot : tdcTotSmeared;
145  tdcTotSmeared = (tdcTotSmeared < 0) ? 0 : tdcTotSmeared;
146 
147  m_tdc = static_cast<unsigned int>(tdcTotSmeared);
148 
149  if (m_fillRootTree) m_tubeInfo->Fill();
150 
152  m_npe,
153  m_npeGas,
154  m_npePmt,
155  m_qdc,
156  m_tdc,
157  m_npe > m_npeThreshold[tubeID]));
158  return StatusCode::SUCCESS;
159 }

◆ DynodeChainSimulation()

double LUCID_DigitizationToolBox::DynodeChainSimulation ( double  npe,
CLHEP::HepRandomEngine *  rndEngine 
) const
protectedinherited

Definition at line 238 of file LUCID_DigitizationToolBox.cxx.

238  {
239 
240  double smearedQDC = 0;
241 
242  if (npe == 0) return CLHEP::RandGaussQ::shoot(rndEngine, npe, m_ChargeToQdcFactor * m_NoiseCharge) + m_qdcPedestal;
243 
244  for (int i_pe=1; i_pe <= m_numDyinodes; i_pe++ ) {
245 
246  if (i_pe == 1) smearedQDC = DynodeGainSmearing(npe * m_gainPerDynode * m_dynodeGammaFactor, rndEngine);
247  else smearedQDC = DynodeGainSmearing(smearedQDC * m_gainPerDynode , rndEngine);
248  }
249 
250  smearedQDC = smearedQDC*m_ChargeToQdcFactor;
251 
252  return static_cast<double>(CLHEP::RandGaussQ::shoot(rndEngine, smearedQDC, m_NoiseCharge * m_ChargeToQdcFactor)) + m_qdcPedestal;
253 }

◆ DynodeGainSmearing()

double LUCID_DigitizationToolBox::DynodeGainSmearing ( double  npe,
CLHEP::HepRandomEngine *  rndEngine 
)
staticprotectedinherited

Definition at line 256 of file LUCID_DigitizationToolBox.cxx.

256  {
257 
258  if (npe < 20) return CLHEP::RandPoissonQ::shoot(rndEngine, npe);
259  else return CLHEP::RandGaussQ::shoot (rndEngine, npe, std::sqrt(npe));
260 }

◆ fillDigitContainer() [1/2]

StatusCode LUCID_DigitizationToolBox::fillDigitContainer ( LUCID_SimHitCollection thpclucid,
CLHEP::HepRandomEngine *  rndEngine 
)
inherited

Definition at line 195 of file LUCID_DigitizationToolBox.cxx.

195  {
196 
197  for (m_tubeID = 0; m_tubeID < m_numTubes; m_tubeID++) {
198 
199  if (m_tubeID >= 16 && m_tubeID <= 19) continue; // skip fiber tubes on sideA
200  if (m_tubeID >= 36 && m_tubeID <= 39) continue; // skip fiber tubes on sideC
201 
202  m_npe = m_npeGas = m_npePmt = m_qdc = m_tdc = m_tdcTot = 0;
203 
204  LUCID_SimHitCollection::const_iterator hitIt = thpclucid->begin();
205  LUCID_SimHitCollection::const_iterator hitItE = thpclucid->end();
206 
207  for (; hitIt != hitItE; ++hitIt) {
208 
209  if (m_tubeID != (*hitIt).GetTubeID()) continue;
210 
211  if (!(*hitIt).isDetected(rndEngine)) continue; // applying quantum efficiency
212 
213  if ((*hitIt).GetGenVolume() == 1) m_npeGas++;
214  if ((*hitIt).GetGenVolume() == 2) m_npeGas++;
215  if ((*hitIt).GetGenVolume() == 3) m_npePmt++;
216 
217  m_tdcTot += (*hitIt).GetPreStepTime();
218  }
219 
220  if (createAndStoreDigit(m_tubeID, rndEngine).isFailure()) return StatusCode::FAILURE;
221  }
222 
223  return StatusCode::SUCCESS;
224 }

◆ fillDigitContainer() [2/2]

StatusCode LUCID_DigitizationToolBox::fillDigitContainer ( TimedHitCollection< LUCID_SimHit > &  thpclucid,
CLHEP::HepRandomEngine *  rndEngine 
)
inherited

Definition at line 162 of file LUCID_DigitizationToolBox.cxx.

162  {
163 
164  for (m_tubeID = 0; m_tubeID < m_numTubes; m_tubeID++) {
165 
166  if (m_tubeID >= 16 && m_tubeID <= 19) continue; // skip fiber tubes on sideA
167  if (m_tubeID >= 36 && m_tubeID <= 39) continue; // skip fiber tubes on sideC
168 
169  m_npe = m_npeGas = m_npePmt = m_qdc = m_tdc = m_tdcTot = 0;
170 
171  TimedHitCollection<LUCID_SimHit> thpc = thpclucid;
173 
174  while (thpc.nextDetectorElement(i, e)) for (hitIt = i; hitIt != e; ++hitIt) {
175 
176  if (m_tubeID != (*hitIt)->GetTubeID()) continue;
177 
178  if (!(*hitIt)->isDetected(rndEngine)) continue; // applying quantum efficiency
179 
180  if ((*hitIt)->GetGenVolume() == 1) m_npeGas++;
181  if ((*hitIt)->GetGenVolume() == 2) m_npeGas++;
182  if ((*hitIt)->GetGenVolume() == 3) m_npePmt++;
183 
184  m_tdcTot += (*hitIt)->GetPreStepTime();
185  }
186 
187  if (createAndStoreDigit(m_tubeID, rndEngine).isFailure()) return StatusCode::FAILURE;
188  }
189 
190  return StatusCode::SUCCESS;
191 
192 }

◆ 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 LUCID_PileUpTool::finalize ( )
finaloverridevirtual

Definition at line 234 of file LUCID_PileUpTool.cxx.

235 {
236  return StatusCode::SUCCESS;
237 }

◆ getDebugTree()

TTree* LUCID_DigitizationToolBox::getDebugTree ( )
inlineprotectedinherited

Definition at line 51 of file LUCID_DigitizationToolBox.h.

51 { return m_tubeInfo; }

◆ initialize()

StatusCode LUCID_PileUpTool::initialize ( )
finaloverridevirtual

Reimplemented from PileUpToolBase.

Definition at line 74 of file LUCID_PileUpTool.cxx.

75 {
76 
77  ATH_MSG_DEBUG ( "LUCID_PileUpTool::initialize() called " );
78 
79  ATH_MSG_DEBUG ( " numTubes : " << m_numTubes << endmsg
80  << " qdcChannelsPerPE : " << m_qdcChannelsPerPE << endmsg
81  << " qdcPedestal : " << m_qdcPedestal << endmsg
82  << " qdcFedNoiseFactor: " << m_qdcFedNoiseFactor << endmsg
83  << " tdcPmtNoiseFactor: " << m_tdcPmtNoiseFactor << endmsg
84  << " tdcFedNoiseFactor: " << m_tdcFedNoiseFactor << endmsg
85  << " fillRootTree : " << m_fillRootTree );
86 
87  ATH_CHECK(m_randomSvc.retrieve());
88  ATH_MSG_DEBUG ( "Retrieved RandomNumber Service" );
89 
90  ATH_CHECK(m_mergeSvc.retrieve());
91  ATH_MSG_DEBUG ( "Retrieved PileUpMergeSvc" );
92 
100  m_AmpFactor,
101  m_Q1bin,
106  m_pmtScaling,
107  m_gasScaling,
110 
112 
113  if (m_fillRootTree)
114  {
115  CHECK(service("THistSvc", m_digitHistSvc));
116  ATH_MSG_DEBUG ( "Retrieved Histogram Service" );
117 
119  ATH_MSG_DEBUG ( "Retrieved ROOT tree" );
120  }
121 
122  return StatusCode::SUCCESS;
123 }

◆ mergeEvent()

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

return false if not interested in certain xing times (in ns) implemented by default in PileUpToolBase as FirstXing<=bunchXing<=LastXing

called at the end of the subevts loop. Not (necessarily) able to access SubEvents


Definition at line 180 of file LUCID_PileUpTool.cxx.

181 {
182  ATHRNG::RNGWrapper* rngWrapper = m_randomSvc->getEngine(this, m_randomStreamName);
183  rngWrapper->setSeed( m_randomStreamName, ctx );
184  CLHEP::HepRandomEngine* rngEngine = rngWrapper->getEngine(ctx);
186  ATH_MSG_DEBUG ( " LUCID_DigitContainer successfully registered in StoreGate " );
187 
188  return StatusCode::SUCCESS;
189 }

◆ prepareEvent()

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

called before the subevts loop. Not (necessarily) able to access SubEvents


Definition at line 126 of file LUCID_PileUpTool.cxx.

127 {
128  ATH_MSG_DEBUG ( "prepareEvent() called for " << nInputEvents << " input events" );
129 
131  ATH_MSG_DEBUG ( " Digit container is recorded in StoreGate " );
132 
134 
135  return StatusCode::SUCCESS;
136 }

◆ processAllSubEvents() [1/2]

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

perform the digitization - used by LUCID_DigiTop::execute


Reimplemented from PileUpToolBase.

Definition at line 192 of file LUCID_PileUpTool.cxx.

193 {
194  ATH_MSG_VERBOSE ( "processAllSubEvents()" );
195 
197 
198  TimedHitCollList hitCollList;
199 
200  ATH_CHECK(m_mergeSvc->retrieveSubEvtsData(m_SimHitCollectionName, hitCollList));
201  ATH_MSG_DEBUG ( "Retrieved TimedHitCollList" );
202 
203  ATH_MSG_DEBUG ( " PileUp: Merge " << hitCollList.size() << " LUCID_SimHitCollection with key " << m_SimHitCollectionName );
204 
206 
207  TimedHitCollList::iterator iColl (hitCollList.begin());
208  TimedHitCollList::iterator endColl(hitCollList.end());
209 
210  while (iColl != endColl)
211  {
212  const LUCID_SimHitCollection* tmpColl(iColl->second);
213 
214  thpclucid.insert(iColl->first, tmpColl);
215 
216  ATH_MSG_DEBUG ( " LUCID_SimHitCollection found with " << tmpColl->size() << " hits " << iColl->first );
217 
218  ++iColl;
219  }
220 
221 
223  ATH_MSG_DEBUG ( " Digit container is recorded in StoreGate " );
224 
225  ATHRNG::RNGWrapper* rngWrapper = m_randomSvc->getEngine(this, m_randomStreamName);
226  rngWrapper->setSeed( m_randomStreamName, ctx );
227  CLHEP::HepRandomEngine* rngEngine = rngWrapper->getEngine(ctx);
228  ATH_CHECK(m_digitToolBox->fillDigitContainer(thpclucid, rngEngine));
229  ATH_MSG_DEBUG ( " Digit container was filled successfully " );
230 
231  return StatusCode::SUCCESS;
232 }

◆ 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 LUCID_PileUpTool::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 139 of file LUCID_PileUpTool.cxx.

142 {
143  ATH_MSG_DEBUG ( "LUCID_PileUpTool::processBunchXing() " << bunchXing );
144 
145  SubEventIterator iEvt = bSubEvents;
146 
147  for (; iEvt!=eSubEvents; ++iEvt)
148  {
149 
150  StoreGateSvc& seStore = *iEvt->ptr()->evtStore();
151  ATH_MSG_VERBOSE ( "SubEvt EventInfo from StoreGate " << seStore.name() << " :"
152  << " bunch crossing : " << bunchXing
153  << " time offset : " << iEvt->time()
154  << " event number : " << iEvt->ptr()->eventNumber()
155  << " run number : " << iEvt->ptr()->runNumber()
156  );
157  const LUCID_SimHitCollection* tmpColl = nullptr;
158 
159  if (!seStore.retrieve(tmpColl,m_SimHitCollectionName).isSuccess())
160  {
161 
162  ATH_MSG_ERROR ( "SubEvent BCM SiHitCollection not found in StoreGate " << seStore.name() );
163 
164  return StatusCode::FAILURE;
165  }
166 
167  ATH_MSG_DEBUG ( "LUCID_SimHitCollection found with " << tmpColl->size() << " hits" );
168 
171 
172  for (; i!=e; ++i) m_mergedhitList->push_back((*i));
173 
174  }
175 
176  return StatusCode::SUCCESS;
177 }

◆ recordContainers()

StatusCode LUCID_DigitizationToolBox::recordContainers ( const ServiceHandle< StoreGateSvc > &  digitsStore,
const std::string &  key_digitCnt 
)
inherited

Definition at line 228 of file LUCID_DigitizationToolBox.cxx.

228  {
229 
231 
232  StatusCode sc = digitsStore->record(m_digitContainer, key_digitCnt);
233 
234  return sc;
235 }

◆ 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; }

◆ roundoff()

unsigned int LUCID_DigitizationToolBox::roundoff ( double  x)
staticprotectedinherited

Definition at line 118 of file LUCID_DigitizationToolBox.cxx.

118  {
119 
120  assert(x >= INT_MIN-0.5);
121  assert(x <= INT_MAX+0.5);
122 
123  if (x >= 0) return static_cast<int>(x+0.5);
124 
125  return static_cast<int>(x-0.5);
126 }

◆ setDebugTree()

StatusCode LUCID_DigitizationToolBox::setDebugTree ( ITHistSvc *  digitHistSvc)
inherited

Definition at line 99 of file LUCID_DigitizationToolBox.cxx.

99  {
100 
101  m_tubeInfo = new TTree("t", "LUCID_LUMI_SUMMARY");
102 
103  StatusCode sc = digitHistSvc->regTree("/AANT/LUCID_LUMI_SUMMARY", m_tubeInfo);
104 
105  if (sc.isFailure()) return StatusCode::FAILURE;
106 
107  m_tubeInfo->Branch("tubeID", &m_tubeID, "tubeID/s");
108  m_tubeInfo->Branch("npe" , &m_npe , "npe/D");
109  m_tubeInfo->Branch("npeGas", &m_npeGas, "npeGas/s");
110  m_tubeInfo->Branch("npePmt", &m_npePmt, "npePmt/s");
111  m_tubeInfo->Branch("qdc" , &m_qdc , "qdc/s");
112  m_tubeInfo->Branch("tdc" , &m_tdc , "tdc/s");
113 
114  return StatusCode::SUCCESS;
115 }

◆ 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_AmpFactor

double LUCID_DigitizationToolBox::m_AmpFactor {}
protectedinherited

Definition at line 70 of file LUCID_DigitizationToolBox.h.

◆ m_ChargeToQdcFactor

double LUCID_DigitizationToolBox::m_ChargeToQdcFactor {}
protectedinherited

Definition at line 77 of file LUCID_DigitizationToolBox.h.

◆ m_dataObjectName

std::string LUCID_PileUpTool::m_dataObjectName
private

Definition at line 65 of file LUCID_PileUpTool.h.

◆ m_digitContainer

LUCID_DigitContainer* LUCID_DigitizationToolBox::m_digitContainer {}
protectedinherited

Definition at line 60 of file LUCID_DigitizationToolBox.h.

◆ m_digitHistSvc

ITHistSvc* LUCID_PileUpTool::m_digitHistSvc {}
private

Definition at line 72 of file LUCID_PileUpTool.h.

◆ m_digitsContainerName

std::string LUCID_PileUpTool::m_digitsContainerName
private

Definition at line 67 of file LUCID_PileUpTool.h.

◆ m_digitToolBox

LUCID_DigitizationToolBox* LUCID_PileUpTool::m_digitToolBox {}
private

Definition at line 70 of file LUCID_PileUpTool.h.

◆ m_dynodeGammaFactor

double LUCID_DigitizationToolBox::m_dynodeGammaFactor {}
protectedinherited

Definition at line 74 of file LUCID_DigitizationToolBox.h.

◆ m_fillRootTree

bool LUCID_DigitizationToolBox::m_fillRootTree {}
protectedinherited

Definition at line 84 of file LUCID_DigitizationToolBox.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_gainPerDynode

double LUCID_DigitizationToolBox::m_gainPerDynode {}
protectedinherited

Definition at line 76 of file LUCID_DigitizationToolBox.h.

◆ m_gasScaling

std::vector<double> LUCID_DigitizationToolBox::m_gasScaling {}
protectedinherited

Definition at line 81 of file LUCID_DigitizationToolBox.h.

◆ m_key_digitCnt

std::string LUCID_PileUpTool::m_key_digitCnt
private

Definition at line 68 of file LUCID_PileUpTool.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_mergedhitList

LUCID_SimHitCollection* LUCID_PileUpTool::m_mergedhitList {}
private

Definition at line 74 of file LUCID_PileUpTool.h.

◆ m_mergeSvc

ServiceHandle<PileUpMergeSvc> LUCID_PileUpTool::m_mergeSvc {this, "mergeSvc", "PileUpMergeSvc", ""}
private

Definition at line 61 of file LUCID_PileUpTool.h.

◆ m_NoiseCharge

int LUCID_DigitizationToolBox::m_NoiseCharge {}
protectedinherited

Definition at line 72 of file LUCID_DigitizationToolBox.h.

◆ m_npe

double LUCID_DigitizationToolBox::m_npe {}
protectedinherited

Definition at line 87 of file LUCID_DigitizationToolBox.h.

◆ m_npeGas

unsigned short LUCID_DigitizationToolBox::m_npeGas {}
protectedinherited

Definition at line 88 of file LUCID_DigitizationToolBox.h.

◆ m_npePmt

unsigned short LUCID_DigitizationToolBox::m_npePmt {}
protectedinherited

Definition at line 89 of file LUCID_DigitizationToolBox.h.

◆ m_npeThreshold

std::vector<double> LUCID_DigitizationToolBox::m_npeThreshold {}
protectedinherited

Definition at line 82 of file LUCID_DigitizationToolBox.h.

◆ m_numDyinodes

int LUCID_DigitizationToolBox::m_numDyinodes {}
protectedinherited

Definition at line 73 of file LUCID_DigitizationToolBox.h.

◆ m_numTubes

int LUCID_DigitizationToolBox::m_numTubes {}
protectedinherited

Definition at line 62 of file LUCID_DigitizationToolBox.h.

◆ m_pmtScaling

std::vector<double> LUCID_DigitizationToolBox::m_pmtScaling {}
protectedinherited

Definition at line 80 of file LUCID_DigitizationToolBox.h.

◆ m_pmtSmearing

std::vector<double> LUCID_DigitizationToolBox::m_pmtSmearing {}
protectedinherited

Definition at line 79 of file LUCID_DigitizationToolBox.h.

◆ m_Q1bin

double LUCID_DigitizationToolBox::m_Q1bin {}
protectedinherited

Definition at line 71 of file LUCID_DigitizationToolBox.h.

◆ m_qdc

unsigned short LUCID_DigitizationToolBox::m_qdc {}
protectedinherited

Definition at line 90 of file LUCID_DigitizationToolBox.h.

◆ m_qdcChannelsPerPE

double LUCID_DigitizationToolBox::m_qdcChannelsPerPE {}
protectedinherited

Definition at line 63 of file LUCID_DigitizationToolBox.h.

◆ m_qdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_qdcFedNoiseFactor {}
protectedinherited

Definition at line 65 of file LUCID_DigitizationToolBox.h.

◆ m_qdcPedestal

double LUCID_DigitizationToolBox::m_qdcPedestal {}
protectedinherited

Definition at line 64 of file LUCID_DigitizationToolBox.h.

◆ m_randomStreamName

Gaudi::Property<std::string> LUCID_PileUpTool::m_randomStreamName {this, "RandomStreamName", "LUCIDRndEng", ""}
private

Definition at line 63 of file LUCID_PileUpTool.h.

◆ m_randomSvc

ServiceHandle<IAthRNGSvc> LUCID_PileUpTool::m_randomSvc {this, "RndmSvc", "AthRNGSvc", ""}
private

Definition at line 62 of file LUCID_PileUpTool.h.

◆ m_SimHitCollectionName

std::string LUCID_PileUpTool::m_SimHitCollectionName
private

Definition at line 66 of file LUCID_PileUpTool.h.

◆ m_tdc

unsigned short LUCID_DigitizationToolBox::m_tdc {}
protectedinherited

Definition at line 92 of file LUCID_DigitizationToolBox.h.

◆ m_tdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_tdcFedNoiseFactor {}
protectedinherited

Definition at line 67 of file LUCID_DigitizationToolBox.h.

◆ m_tdcPmtNoiseFactor

double LUCID_DigitizationToolBox::m_tdcPmtNoiseFactor {}
protectedinherited

Definition at line 66 of file LUCID_DigitizationToolBox.h.

◆ m_tdcTot

double LUCID_DigitizationToolBox::m_tdcTot {}
protectedinherited

Definition at line 91 of file LUCID_DigitizationToolBox.h.

◆ m_TotalPMTgain

double LUCID_DigitizationToolBox::m_TotalPMTgain {}
protectedinherited

Definition at line 69 of file LUCID_DigitizationToolBox.h.

◆ m_tubeID

unsigned short LUCID_DigitizationToolBox::m_tubeID {}
protectedinherited

Definition at line 86 of file LUCID_DigitizationToolBox.h.

◆ m_tubeInfo

TTree* LUCID_DigitizationToolBox::m_tubeInfo {}
protectedinherited

Definition at line 94 of file LUCID_DigitizationToolBox.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:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
LUCID_SimHitCollection
AtlasHitsVector< LUCID_SimHit > LUCID_SimHitCollection
Definition: LUCID_SimHitCollection.h:12
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
LUCID_DigitizationToolBox::m_numTubes
int m_numTubes
Definition: LUCID_DigitizationToolBox.h:62
LUCID_DigitizationToolBox::DynodeGainSmearing
static double DynodeGainSmearing(double npe, CLHEP::HepRandomEngine *rndEngine)
Definition: LUCID_DigitizationToolBox.cxx:256
LUCID_DigitizationToolBox::m_gainPerDynode
double m_gainPerDynode
Definition: LUCID_DigitizationToolBox.h:76
PileUpToolBase::m_filterPassed
bool m_filterPassed
Definition: PileUpToolBase.h:60
LUCID_PileUpTool::m_mergeSvc
ServiceHandle< PileUpMergeSvc > m_mergeSvc
Definition: LUCID_PileUpTool.h:61
LUCID_DigitContainer
Definition: LUCID_DigitContainer.h:13
LUCID_PileUpTool::m_mergedhitList
LUCID_SimHitCollection * m_mergedhitList
Definition: LUCID_PileUpTool.h:74
LUCID_DigitizationToolBox::LUCID_DigitizationToolBox
LUCID_DigitizationToolBox()
Definition: LUCID_DigitizationToolBox.cxx:17
LUCID_DigitizationToolBox::recordContainers
StatusCode recordContainers(const ServiceHandle< StoreGateSvc > &, const std::string &)
Definition: LUCID_DigitizationToolBox.cxx:228
LUCID_DigitizationToolBox::m_pmtSmearing
std::vector< double > m_pmtSmearing
Definition: LUCID_DigitizationToolBox.h:79
AtlasHitsVector
Definition: AtlasHitsVector.h:33
LUCID_DigitizationToolBox::m_gasScaling
std::vector< double > m_gasScaling
Definition: LUCID_DigitizationToolBox.h:81
LUCID_DigitizationToolBox::m_tdc
unsigned short m_tdc
Definition: LUCID_DigitizationToolBox.h:92
LUCID_DigitizationToolBox::m_tdcFedNoiseFactor
double m_tdcFedNoiseFactor
Definition: LUCID_DigitizationToolBox.h:67
LUCID_PileUpTool::m_digitHistSvc
ITHistSvc * m_digitHistSvc
Definition: LUCID_PileUpTool.h:72
LUCID_DigitizationToolBox::setDebugTree
StatusCode setDebugTree(ITHistSvc *)
Definition: LUCID_DigitizationToolBox.cxx:99
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
PileUpToolBase::m_lastXing
Gaudi::Property< int > m_lastXing
Definition: PileUpToolBase.h:56
AtlasHitsVector::begin
const_iterator begin() const
Definition: AtlasHitsVector.h:131
x
#define x
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
LUCID_PileUpTool::m_SimHitCollectionName
std::string m_SimHitCollectionName
Definition: LUCID_PileUpTool.h:66
AtlasHitsVector::const_iterator
CONT::const_iterator const_iterator
Definition: AtlasHitsVector.h:43
LUCID_DigitizationToolBox::m_digitContainer
LUCID_DigitContainer * m_digitContainer
Definition: LUCID_DigitizationToolBox.h:60
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AtlasHitsVector::clear
void clear()
Definition: AtlasHitsVector.h:153
PileUpMergeSvc::TimedList::type
std::list< value_t > type
type of the collection of timed data object
Definition: PileUpMergeSvc.h:75
StoreGateSvc::retrieve
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
LUCID_DigitizationToolBox::m_tdcTot
double m_tdcTot
Definition: LUCID_DigitizationToolBox.h:91
LUCID_DigitizationToolBox::m_npe
double m_npe
Definition: LUCID_DigitizationToolBox.h:87
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
LUCID_DigitizationToolBox::m_tubeInfo
TTree * m_tubeInfo
Definition: LUCID_DigitizationToolBox.h:94
LUCID_PileUpTool::m_digitToolBox
LUCID_DigitizationToolBox * m_digitToolBox
Definition: LUCID_PileUpTool.h:70
LUCID_PileUpTool::m_key_digitCnt
std::string m_key_digitCnt
Definition: LUCID_PileUpTool.h:68
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TimedHitCollection::insert
void insert(const PileUpTimeEventIndex &timeEventIndex, const AtlasHitsVector< HIT > *inputCollection)
LUCID_DigitizationToolBox::m_fillRootTree
bool m_fillRootTree
Definition: LUCID_DigitizationToolBox.h:84
LUCID_Digit
Definition: LUCID_Digit.h:8
lumiFormat.i
int i
Definition: lumiFormat.py:92
LUCID_DigitizationToolBox::m_Q1bin
double m_Q1bin
Definition: LUCID_DigitizationToolBox.h:71
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LUCID_DigitizationToolBox::createAndStoreDigit
StatusCode createAndStoreDigit(unsigned short tubeID, CLHEP::HepRandomEngine *rndEngine)
Definition: LUCID_DigitizationToolBox.cxx:129
LUCID_PileUpTool::m_digitsContainerName
std::string m_digitsContainerName
Definition: LUCID_PileUpTool.h:67
LUCID_PileUpTool::m_randomSvc
ServiceHandle< IAthRNGSvc > m_randomSvc
Definition: LUCID_PileUpTool.h:62
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LUCID_DigitizationToolBox::m_npePmt
unsigned short m_npePmt
Definition: LUCID_DigitizationToolBox.h:89
LUCID_DigitizationToolBox::m_dynodeGammaFactor
double m_dynodeGammaFactor
Definition: LUCID_DigitizationToolBox.h:74
LUCID_DigitizationToolBox::fillDigitContainer
StatusCode fillDigitContainer(TimedHitCollection< LUCID_SimHit > &, CLHEP::HepRandomEngine *)
Definition: LUCID_DigitizationToolBox.cxx:162
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
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
LUCID_DigitizationToolBox::m_TotalPMTgain
double m_TotalPMTgain
Definition: LUCID_DigitizationToolBox.h:69
LUCID_DigitizationToolBox::roundoff
static unsigned int roundoff(double x)
Definition: LUCID_DigitizationToolBox.cxx:118
LUCID_DigitizationToolBox::m_qdc
unsigned short m_qdc
Definition: LUCID_DigitizationToolBox.h:90
LUCID_DigitizationToolBox::m_ChargeToQdcFactor
double m_ChargeToQdcFactor
Definition: LUCID_DigitizationToolBox.h:77
LUCID_DigitizationToolBox::m_NoiseCharge
int m_NoiseCharge
Definition: LUCID_DigitizationToolBox.h:72
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
LUCID_DigitizationToolBox::m_qdcPedestal
double m_qdcPedestal
Definition: LUCID_DigitizationToolBox.h:64
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
LUCID_DigitizationToolBox::m_tubeID
unsigned short m_tubeID
Definition: LUCID_DigitizationToolBox.h:86
LUCID_DigitizationToolBox::m_npeThreshold
std::vector< double > m_npeThreshold
Definition: LUCID_DigitizationToolBox.h:82
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
LUCID_DigitizationToolBox::m_qdcChannelsPerPE
double m_qdcChannelsPerPE
Definition: LUCID_DigitizationToolBox.h:63
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
LUCID_PileUpTool::m_randomStreamName
Gaudi::Property< std::string > m_randomStreamName
Definition: LUCID_PileUpTool.h:63
LUCID_DigitizationToolBox::m_tdcPmtNoiseFactor
double m_tdcPmtNoiseFactor
Definition: LUCID_DigitizationToolBox.h:66
AtlasHitsVector::end
const_iterator end() const
Definition: AtlasHitsVector.h:134
LUCID_DigitizationToolBox::m_npeGas
unsigned short m_npeGas
Definition: LUCID_DigitizationToolBox.h:88
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TimedHitCollection::const_iterator
TimedVector::const_iterator const_iterator
Definition: TimedHitCollection.h:20
PileUpToolBase::m_firstXing
Gaudi::Property< int > m_firstXing
Definition: PileUpToolBase.h:54
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
LUCID_DigitizationToolBox::m_numDyinodes
int m_numDyinodes
Definition: LUCID_DigitizationToolBox.h:73
SubEventIterator
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition: IPileUpTool.h:22
LUCID_DigitizationToolBox::m_AmpFactor
double m_AmpFactor
Definition: LUCID_DigitizationToolBox.h:70
LUCID_DigitizationToolBox::DynodeChainSimulation
double DynodeChainSimulation(double npe, CLHEP::HepRandomEngine *rndEngine) const
Definition: LUCID_DigitizationToolBox.cxx:238
LUCID_DigitizationToolBox::m_pmtScaling
std::vector< double > m_pmtScaling
Definition: LUCID_DigitizationToolBox.h:80
LUCID_DigitizationToolBox::m_qdcFedNoiseFactor
double m_qdcFedNoiseFactor
Definition: LUCID_DigitizationToolBox.h:65
TimedHitCollection
Definition: TimedHitCollection.h:15
AtlasHitsVector::push_back
void push_back(const T &t)
Definition: AtlasHitsVector.h:145