ATLAS Offline Software
Loading...
Searching...
No Matches
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
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
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
virtual StatusCode processAllSubEvents (const EventContext &ctx) override final
 perform the digitization - used by LUCID_DigiTop::execute
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
virtual bool filterPassed () const override
 dummy implementation of passing filter
virtual void resetFilter () override
 dummy implementation of filter reset
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 :
20 PileUpToolBase (type, name, parent),
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}
std::string m_digitsContainerName
std::string m_key_digitCnt
std::string m_SimHitCollectionName
PileUpToolBase(const std::string &type, const std::string &name, const IInterface *parent)

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
155 m_digitContainer->push_back(new LUCID_Digit(m_tubeID,
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}
LUCID_DigitContainer * m_digitContainer
double DynodeChainSimulation(double npe, CLHEP::HepRandomEngine *rndEngine) const
static unsigned int roundoff(double x)

◆ 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}
static double DynodeGainSmearing(double npe, CLHEP::HepRandomEngine *rndEngine)

◆ 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
207
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}
CONT::const_iterator const_iterator
const_iterator begin() const
const_iterator end() const
StatusCode createAndStoreDigit(unsigned short tubeID, CLHEP::HepRandomEngine *rndEngine)

◆ 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
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}
bool nextDetectorElement(const_iterator &b, const_iterator &e)
sets an iterator range with the hits of current detector element returns a bool when done
TimedVector::const_iterator const_iterator

◆ 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
94 {
96 ATH_MSG_DEBUG ( "Retrieved ROOT tree" );
97 }
98
99 return StatusCode::SUCCESS;
100}
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
AtlasHitsVector< LUCID_SimHit > LUCID_SimHitCollection
ServiceHandle< IAthRNGSvc > m_randomSvc
ServiceHandle< PileUpMergeSvc > m_mergeSvc
LUCID_SimHitCollection * m_mergedhitList

◆ 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}
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition RNGWrapper.h:169
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition RNGWrapper.h:134
StatusCode fillDigitContainer(TimedHitCollection< LUCID_SimHit > &, CLHEP::HepRandomEngine *)
Gaudi::Property< std::string > m_randomStreamName

◆ 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
110 m_mergedhitList->clear();
111
112 return StatusCode::SUCCESS;
113}
#define CHECK(...)
Evaluate an expression and check for errors.
StatusCode recordContainers(const ServiceHandle< StoreGateSvc > &, const std::string &)

◆ processAllSubEvents()

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
182 TimedHitCollection<LUCID_SimHit> thpclucid;
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}
#define ATH_MSG_VERBOSE(x)
void insert(const PileUpTimeEventIndex &timeEventIndex, const AtlasHitsVector< HIT > *inputCollection)
std::list< value_t > type
type of the collection of timed data object

◆ 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}
#define ATH_MSG_ERROR(x)
std::vector< xAOD::EventInfo::SubEvent >::const_iterator SubEventIterator
Definition IPileUpTool.h:22
size_type size() const
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.

◆ 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
234 m_digitContainer = new LUCID_DigitContainer();
235
236 StatusCode sc = digitsStore->record(m_digitContainer, key_digitCnt);
237
238 return sc;
239}
static Double_t sc
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ 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}
#define x

◆ 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 }
Gaudi::Property< int > m_firstXing
Gaudi::Property< int > m_lastXing

Member Data Documentation

◆ m_AmpFactor

double LUCID_DigitizationToolBox::m_AmpFactor {}
protectedinherited

Definition at line 69 of file LUCID_DigitizationToolBox.h.

69{};

◆ m_ChargeToQdcFactor

double LUCID_DigitizationToolBox::m_ChargeToQdcFactor {}
protectedinherited

Definition at line 76 of file LUCID_DigitizationToolBox.h.

76{};

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

59{};

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

73{};

◆ m_fillRootTree

bool LUCID_DigitizationToolBox::m_fillRootTree {}
protectedinherited

Definition at line 83 of file LUCID_DigitizationToolBox.h.

83{};

◆ m_filterPassed

bool PileUpToolBase::m_filterPassed {true}
protectedinherited

Definition at line 60 of file PileUpToolBase.h.

60{true};

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

54 {this, "FirstXing", -999,
55 "First bunch-crossing in which det is live"};

◆ m_gainPerDynode

double LUCID_DigitizationToolBox::m_gainPerDynode {}
protectedinherited

Definition at line 75 of file LUCID_DigitizationToolBox.h.

75{};

◆ m_gasScaling

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

Definition at line 80 of file LUCID_DigitizationToolBox.h.

80{};

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

56 {this, "LastXing", 999,
57 "Last bunch-crossing in which det is live"};

◆ m_mergedhitList

LUCID_SimHitCollection* LUCID_PileUpTool::m_mergedhitList {}
private

Definition at line 70 of file LUCID_PileUpTool.h.

70{};

◆ m_mergeSvc

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

Definition at line 61 of file LUCID_PileUpTool.h.

61{this, "mergeSvc", "PileUpMergeSvc", ""};

◆ m_NoiseCharge

int LUCID_DigitizationToolBox::m_NoiseCharge {}
protectedinherited

Definition at line 71 of file LUCID_DigitizationToolBox.h.

71{};

◆ m_npe

double LUCID_DigitizationToolBox::m_npe {}
protectedinherited

Definition at line 86 of file LUCID_DigitizationToolBox.h.

86{};

◆ m_npeGas

unsigned short LUCID_DigitizationToolBox::m_npeGas {}
protectedinherited

Definition at line 87 of file LUCID_DigitizationToolBox.h.

87{};

◆ m_npePmt

unsigned short LUCID_DigitizationToolBox::m_npePmt {}
protectedinherited

Definition at line 88 of file LUCID_DigitizationToolBox.h.

88{};

◆ m_npeThreshold

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

Definition at line 81 of file LUCID_DigitizationToolBox.h.

81{};

◆ m_numDyinodes

int LUCID_DigitizationToolBox::m_numDyinodes {}
protectedinherited

Definition at line 72 of file LUCID_DigitizationToolBox.h.

72{};

◆ m_numTubes

int LUCID_DigitizationToolBox::m_numTubes {}
protectedinherited

Definition at line 61 of file LUCID_DigitizationToolBox.h.

61{};

◆ m_pmtScaling

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

Definition at line 79 of file LUCID_DigitizationToolBox.h.

79{};

◆ m_pmtSmearing

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

Definition at line 78 of file LUCID_DigitizationToolBox.h.

78{};

◆ m_Q1bin

double LUCID_DigitizationToolBox::m_Q1bin {}
protectedinherited

Definition at line 70 of file LUCID_DigitizationToolBox.h.

70{};

◆ m_qdc

unsigned short LUCID_DigitizationToolBox::m_qdc {}
protectedinherited

Definition at line 89 of file LUCID_DigitizationToolBox.h.

89{};

◆ m_qdcChannelsPerPE

double LUCID_DigitizationToolBox::m_qdcChannelsPerPE {}
protectedinherited

Definition at line 62 of file LUCID_DigitizationToolBox.h.

62{};

◆ m_qdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_qdcFedNoiseFactor {}
protectedinherited

Definition at line 64 of file LUCID_DigitizationToolBox.h.

64{};

◆ m_qdcPedestal

double LUCID_DigitizationToolBox::m_qdcPedestal {}
protectedinherited

Definition at line 63 of file LUCID_DigitizationToolBox.h.

63{};

◆ m_randomStreamName

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

Definition at line 63 of file LUCID_PileUpTool.h.

63{this, "RandomStreamName", "LUCIDRndEng", ""};

◆ m_randomSvc

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

Definition at line 62 of file LUCID_PileUpTool.h.

62{this, "RndmSvc", "AthRNGSvc", ""};

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

91{};

◆ m_tdcFedNoiseFactor

double LUCID_DigitizationToolBox::m_tdcFedNoiseFactor {}
protectedinherited

Definition at line 66 of file LUCID_DigitizationToolBox.h.

66{};

◆ m_tdcPmtNoiseFactor

double LUCID_DigitizationToolBox::m_tdcPmtNoiseFactor {}
protectedinherited

Definition at line 65 of file LUCID_DigitizationToolBox.h.

65{};

◆ m_tdcTot

double LUCID_DigitizationToolBox::m_tdcTot {}
protectedinherited

Definition at line 90 of file LUCID_DigitizationToolBox.h.

90{};

◆ m_TotalPMTgain

double LUCID_DigitizationToolBox::m_TotalPMTgain {}
protectedinherited

Definition at line 68 of file LUCID_DigitizationToolBox.h.

68{};

◆ m_tubeID

unsigned short LUCID_DigitizationToolBox::m_tubeID {}
protectedinherited

Definition at line 85 of file LUCID_DigitizationToolBox.h.

85{};

◆ m_tubeInfo

TTree* LUCID_DigitizationToolBox::m_tubeInfo {}
protectedinherited

Definition at line 93 of file LUCID_DigitizationToolBox.h.

93{};

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

58 {this, "VetoPileUpTruthLinks", true,
59 "Ignore links to suppressed pile-up truth"};

The documentation for this class was generated from the following files: