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 ()
 

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_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 17 of file LUCID_PileUpTool.cxx.

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

Member Function Documentation

◆ createAndStoreDigit()

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

Definition at line 133 of file LUCID_DigitizationToolBox.cxx.

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

◆ DynodeChainSimulation()

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

Definition at line 242 of file LUCID_DigitizationToolBox.cxx.

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

◆ DynodeGainSmearing()

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

Definition at line 260 of file LUCID_DigitizationToolBox.cxx.

260  {
261 
262  if (npe < 20) return CLHEP::RandPoissonQ::shoot(rndEngine, npe);
263  else return CLHEP::RandGaussQ::shoot (rndEngine, npe, std::sqrt(npe));
264 }

◆ fillDigitContainer() [1/2]

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

Definition at line 199 of file LUCID_DigitizationToolBox.cxx.

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

◆ fillDigitContainer() [2/2]

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

Definition at line 166 of file LUCID_DigitizationToolBox.cxx.

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

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

212 {
213  return StatusCode::SUCCESS;
214 }

◆ getDebugTree()

TTree* LUCID_DigitizationToolBox::getDebugTree ( )
inlineprotectedinherited

Definition at line 50 of file LUCID_DigitizationToolBox.h.

50 { return m_tubeInfo; }

◆ initialize()

StatusCode LUCID_PileUpTool::initialize ( )
finaloverridevirtual

Reimplemented from PileUpToolBase.

Definition at line 72 of file LUCID_PileUpTool.cxx.

73 {
74 
75  ATH_MSG_DEBUG ( "LUCID_PileUpTool::initialize() called " );
76 
77  ATH_MSG_DEBUG ( " numTubes : " << m_numTubes << endmsg
78  << " qdcChannelsPerPE : " << m_qdcChannelsPerPE << endmsg
79  << " qdcPedestal : " << m_qdcPedestal << endmsg
80  << " qdcFedNoiseFactor: " << m_qdcFedNoiseFactor << endmsg
81  << " tdcPmtNoiseFactor: " << m_tdcPmtNoiseFactor << endmsg
82  << " tdcFedNoiseFactor: " << m_tdcFedNoiseFactor << endmsg
83  << " fillRootTree : " << m_fillRootTree );
84 
85  ATH_CHECK(m_randomSvc.retrieve());
86  ATH_MSG_DEBUG ( "Retrieved RandomNumber Service" );
87 
88  ATH_CHECK(m_mergeSvc.retrieve());
89  ATH_MSG_DEBUG ( "Retrieved PileUpMergeSvc" );
90 
92 
93  if (m_fillRootTree)
94  {
96  ATH_MSG_DEBUG ( "Retrieved ROOT tree" );
97  }
98 
99  return StatusCode::SUCCESS;
100 }

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

158 {
159  ATHRNG::RNGWrapper* rngWrapper = m_randomSvc->getEngine(this, m_randomStreamName);
160  rngWrapper->setSeed( m_randomStreamName, ctx );
161  CLHEP::HepRandomEngine* rngEngine = rngWrapper->getEngine(ctx);
163  ATH_MSG_DEBUG ( " LUCID_DigitContainer successfully registered in StoreGate " );
164 
165  return StatusCode::SUCCESS;
166 }

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

104 {
105  ATH_MSG_DEBUG ( "prepareEvent() called for " << nInputEvents << " input events" );
106 
107  CHECK(recordContainers(this->evtStore(), m_key_digitCnt));
108  ATH_MSG_DEBUG ( " Digit container is recorded in StoreGate " );
109 
111 
112  return StatusCode::SUCCESS;
113 }

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

170 {
171  ATH_MSG_VERBOSE ( "processAllSubEvents()" );
172 
174 
175  TimedHitCollList hitCollList;
176 
177  ATH_CHECK(m_mergeSvc->retrieveSubEvtsData(m_SimHitCollectionName, hitCollList));
178  ATH_MSG_DEBUG ( "Retrieved TimedHitCollList" );
179 
180  ATH_MSG_DEBUG ( " PileUp: Merge " << hitCollList.size() << " LUCID_SimHitCollection with key " << m_SimHitCollectionName );
181 
183 
184  TimedHitCollList::iterator iColl (hitCollList.begin());
185  TimedHitCollList::iterator endColl(hitCollList.end());
186 
187  while (iColl != endColl)
188  {
189  const LUCID_SimHitCollection* tmpColl(iColl->second);
190 
191  thpclucid.insert(iColl->first, tmpColl);
192 
193  ATH_MSG_DEBUG ( " LUCID_SimHitCollection found with " << tmpColl->size() << " hits " << iColl->first );
194 
195  ++iColl;
196  }
197 
198 
199  ATH_CHECK(recordContainers(this->evtStore(), m_key_digitCnt));
200  ATH_MSG_DEBUG ( " Digit container is recorded in StoreGate " );
201 
202  ATHRNG::RNGWrapper* rngWrapper = m_randomSvc->getEngine(this, m_randomStreamName);
203  rngWrapper->setSeed( m_randomStreamName, ctx );
204  CLHEP::HepRandomEngine* rngEngine = rngWrapper->getEngine(ctx);
205  ATH_CHECK(fillDigitContainer(thpclucid, rngEngine));
206  ATH_MSG_DEBUG ( " Digit container was filled successfully " );
207 
208  return StatusCode::SUCCESS;
209 }

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

119 {
120  ATH_MSG_DEBUG ( "LUCID_PileUpTool::processBunchXing() " << bunchXing );
121 
122  SubEventIterator iEvt = bSubEvents;
123 
124  for (; iEvt!=eSubEvents; ++iEvt)
125  {
126 
127  StoreGateSvc& seStore = *iEvt->ptr()->evtStore();
128  ATH_MSG_VERBOSE ( "SubEvt EventInfo from StoreGate " << seStore.name() << " :"
129  << " bunch crossing : " << bunchXing
130  << " time offset : " << iEvt->time()
131  << " event number : " << iEvt->ptr()->eventNumber()
132  << " run number : " << iEvt->ptr()->runNumber()
133  );
134  const LUCID_SimHitCollection* tmpColl = nullptr;
135 
136  if (!seStore.retrieve(tmpColl,m_SimHitCollectionName).isSuccess())
137  {
138 
139  ATH_MSG_ERROR ( "SubEvent BCM SiHitCollection not found in StoreGate " << seStore.name() );
140 
141  return StatusCode::FAILURE;
142  }
143 
144  ATH_MSG_DEBUG ( "LUCID_SimHitCollection found with " << tmpColl->size() << " hits" );
145 
148 
149  for (; i!=e; ++i) m_mergedhitList->push_back((*i));
150 
151  }
152 
153  return StatusCode::SUCCESS;
154 }

◆ recordContainers()

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

Definition at line 232 of file LUCID_DigitizationToolBox.cxx.

232  {
233 
235 
236  StatusCode sc = digitsStore->record(m_digitContainer, key_digitCnt);
237 
238  return sc;
239 }

◆ 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 122 of file LUCID_DigitizationToolBox.cxx.

122  {
123 
124  assert(x >= INT_MIN-0.5);
125  assert(x <= INT_MAX+0.5);
126 
127  if (x >= 0) return static_cast<int>(x+0.5);
128 
129  return static_cast<int>(x-0.5);
130 }

◆ setDebugTree()

StatusCode LUCID_DigitizationToolBox::setDebugTree ( )
inherited

Definition at line 101 of file LUCID_DigitizationToolBox.cxx.

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

◆ 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 69 of file LUCID_DigitizationToolBox.h.

◆ m_ChargeToQdcFactor

double LUCID_DigitizationToolBox::m_ChargeToQdcFactor {}
protectedinherited

Definition at line 76 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 59 of file LUCID_DigitizationToolBox.h.

◆ m_digitsContainerName

std::string LUCID_PileUpTool::m_digitsContainerName
private

Definition at line 67 of file LUCID_PileUpTool.h.

◆ m_dynodeGammaFactor

double LUCID_DigitizationToolBox::m_dynodeGammaFactor {}
protectedinherited

Definition at line 73 of file LUCID_DigitizationToolBox.h.

◆ m_fillRootTree

bool LUCID_DigitizationToolBox::m_fillRootTree {}
protectedinherited

Definition at line 83 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 75 of file LUCID_DigitizationToolBox.h.

◆ m_gasScaling

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

Definition at line 80 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 70 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 71 of file LUCID_DigitizationToolBox.h.

◆ m_npe

double LUCID_DigitizationToolBox::m_npe {}
protectedinherited

Definition at line 86 of file LUCID_DigitizationToolBox.h.

◆ m_npeGas

unsigned short LUCID_DigitizationToolBox::m_npeGas {}
protectedinherited

Definition at line 87 of file LUCID_DigitizationToolBox.h.

◆ m_npePmt

unsigned short LUCID_DigitizationToolBox::m_npePmt {}
protectedinherited

Definition at line 88 of file LUCID_DigitizationToolBox.h.

◆ m_npeThreshold

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

Definition at line 81 of file LUCID_DigitizationToolBox.h.

◆ m_numDyinodes

int LUCID_DigitizationToolBox::m_numDyinodes {}
protectedinherited

Definition at line 72 of file LUCID_DigitizationToolBox.h.

◆ m_numTubes

int LUCID_DigitizationToolBox::m_numTubes {}
protectedinherited

Definition at line 61 of file LUCID_DigitizationToolBox.h.

◆ m_pmtScaling

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

Definition at line 79 of file LUCID_DigitizationToolBox.h.

◆ m_pmtSmearing

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

Definition at line 78 of file LUCID_DigitizationToolBox.h.

◆ m_Q1bin

double LUCID_DigitizationToolBox::m_Q1bin {}
protectedinherited

Definition at line 70 of file LUCID_DigitizationToolBox.h.

◆ m_qdc

unsigned short LUCID_DigitizationToolBox::m_qdc {}
protectedinherited

Definition at line 89 of file LUCID_DigitizationToolBox.h.

◆ m_qdcChannelsPerPE

double LUCID_DigitizationToolBox::m_qdcChannelsPerPE {}
protectedinherited

Definition at line 62 of file LUCID_DigitizationToolBox.h.

◆ m_qdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_qdcFedNoiseFactor {}
protectedinherited

Definition at line 64 of file LUCID_DigitizationToolBox.h.

◆ m_qdcPedestal

double LUCID_DigitizationToolBox::m_qdcPedestal {}
protectedinherited

Definition at line 63 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 91 of file LUCID_DigitizationToolBox.h.

◆ m_tdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_tdcFedNoiseFactor {}
protectedinherited

Definition at line 66 of file LUCID_DigitizationToolBox.h.

◆ m_tdcPmtNoiseFactor

double LUCID_DigitizationToolBox::m_tdcPmtNoiseFactor {}
protectedinherited

Definition at line 65 of file LUCID_DigitizationToolBox.h.

◆ m_tdcTot

double LUCID_DigitizationToolBox::m_tdcTot {}
protectedinherited

Definition at line 90 of file LUCID_DigitizationToolBox.h.

◆ m_TotalPMTgain

double LUCID_DigitizationToolBox::m_TotalPMTgain {}
protectedinherited

Definition at line 68 of file LUCID_DigitizationToolBox.h.

◆ m_tubeID

unsigned short LUCID_DigitizationToolBox::m_tubeID {}
protectedinherited

Definition at line 85 of file LUCID_DigitizationToolBox.h.

◆ m_tubeInfo

TTree* LUCID_DigitizationToolBox::m_tubeInfo {}
protectedinherited

Definition at line 93 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
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
LUCID_DigitizationToolBox::m_numTubes
int m_numTubes
Definition: LUCID_DigitizationToolBox.h:61
LUCID_DigitizationToolBox::DynodeGainSmearing
static double DynodeGainSmearing(double npe, CLHEP::HepRandomEngine *rndEngine)
Definition: LUCID_DigitizationToolBox.cxx:260
LUCID_DigitizationToolBox::m_gainPerDynode
double m_gainPerDynode
Definition: LUCID_DigitizationToolBox.h:75
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:70
LUCID_DigitizationToolBox::LUCID_DigitizationToolBox
LUCID_DigitizationToolBox()
Definition: LUCID_DigitizationToolBox.cxx:19
LUCID_DigitizationToolBox::recordContainers
StatusCode recordContainers(const ServiceHandle< StoreGateSvc > &, const std::string &)
Definition: LUCID_DigitizationToolBox.cxx:232
LUCID_DigitizationToolBox::m_pmtSmearing
std::vector< double > m_pmtSmearing
Definition: LUCID_DigitizationToolBox.h:78
AtlasHitsVector
Definition: AtlasHitsVector.h:33
LUCID_DigitizationToolBox::m_gasScaling
std::vector< double > m_gasScaling
Definition: LUCID_DigitizationToolBox.h:80
LUCID_DigitizationToolBox::m_tdc
unsigned short m_tdc
Definition: LUCID_DigitizationToolBox.h:91
LUCID_DigitizationToolBox::m_tdcFedNoiseFactor
double m_tdcFedNoiseFactor
Definition: LUCID_DigitizationToolBox.h:66
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
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
AtlasHitsVector::const_iterator
CONT::const_iterator const_iterator
Definition: AtlasHitsVector.h:43
LUCID_DigitizationToolBox::m_digitContainer
LUCID_DigitContainer * m_digitContainer
Definition: LUCID_DigitizationToolBox.h:59
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:90
LUCID_DigitizationToolBox::m_npe
double m_npe
Definition: LUCID_DigitizationToolBox.h:86
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:125
LUCID_DigitizationToolBox::m_tubeInfo
TTree * m_tubeInfo
Definition: LUCID_DigitizationToolBox.h:93
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:83
LUCID_Digit
Definition: LUCID_Digit.h:8
lumiFormat.i
int i
Definition: lumiFormat.py:85
LUCID_DigitizationToolBox::m_Q1bin
double m_Q1bin
Definition: LUCID_DigitizationToolBox.h:70
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:133
LUCID_PileUpTool::m_digitsContainerName
std::string m_digitsContainerName
Definition: LUCID_PileUpTool.h:67
LUCID_DigitizationToolBox::setDebugTree
StatusCode setDebugTree()
Definition: LUCID_DigitizationToolBox.cxx:101
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:88
LUCID_DigitizationToolBox::m_dynodeGammaFactor
double m_dynodeGammaFactor
Definition: LUCID_DigitizationToolBox.h:73
LUCID_DigitizationToolBox::fillDigitContainer
StatusCode fillDigitContainer(TimedHitCollection< LUCID_SimHit > &, CLHEP::HepRandomEngine *)
Definition: LUCID_DigitizationToolBox.cxx:166
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:68
LUCID_DigitizationToolBox::roundoff
static unsigned int roundoff(double x)
Definition: LUCID_DigitizationToolBox.cxx:122
LUCID_DigitizationToolBox::m_qdc
unsigned short m_qdc
Definition: LUCID_DigitizationToolBox.h:89
LUCID_DigitizationToolBox::m_ChargeToQdcFactor
double m_ChargeToQdcFactor
Definition: LUCID_DigitizationToolBox.h:76
LUCID_DigitizationToolBox::m_NoiseCharge
int m_NoiseCharge
Definition: LUCID_DigitizationToolBox.h:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
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:63
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:85
LUCID_DigitizationToolBox::m_npeThreshold
std::vector< double > m_npeThreshold
Definition: LUCID_DigitizationToolBox.h:81
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:62
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:65
AtlasHitsVector::end
const_iterator end() const
Definition: AtlasHitsVector.h:134
LUCID_DigitizationToolBox::m_npeGas
unsigned short m_npeGas
Definition: LUCID_DigitizationToolBox.h:87
TimedHitCollection::const_iterator
TimedVector::const_iterator const_iterator
Definition: TimedHitCollection.h:20
PileUpToolBase::m_firstXing
Gaudi::Property< int > m_firstXing
Definition: PileUpToolBase.h:54
AtlasHitsVector::size
size_type size() const
Definition: AtlasHitsVector.h:143
LUCID_DigitizationToolBox::m_numDyinodes
int m_numDyinodes
Definition: LUCID_DigitizationToolBox.h:72
SubEventIterator
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition: IPileUpTool.h:22
LUCID_DigitizationToolBox::m_AmpFactor
double m_AmpFactor
Definition: LUCID_DigitizationToolBox.h:69
LUCID_DigitizationToolBox::DynodeChainSimulation
double DynodeChainSimulation(double npe, CLHEP::HepRandomEngine *rndEngine) const
Definition: LUCID_DigitizationToolBox.cxx:242
LUCID_DigitizationToolBox::m_pmtScaling
std::vector< double > m_pmtScaling
Definition: LUCID_DigitizationToolBox.h:79
LUCID_DigitizationToolBox::m_qdcFedNoiseFactor
double m_qdcFedNoiseFactor
Definition: LUCID_DigitizationToolBox.h:64
TimedHitCollection
Definition: TimedHitCollection.h:15
AtlasHitsVector::push_back
void push_back(const T &t)
Definition: AtlasHitsVector.h:145