![]() |
ATLAS Offline Software
|
#include <AFP_PileUpTool.h>
Public Member Functions | |
| AFP_PileUpTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual | ~AFP_PileUpTool () |
| virtual StatusCode | initialize () override final |
| virtual StatusCode | finalize () override final |
| StatusCode | recoSiHits (const EventContext &ctx, std::unique_ptr< AFP_SiDigiCollection > &siDigiCollection) const |
| Creates xAOD for silicon detector. | |
| StatusCode | recoToFHits (const EventContext &ctx, std::unique_ptr< AFP_TDDigiCollection > &digitCollection) const |
| Creates xAOD for time-of-flight detector. | |
| StatusCode | recoAll (const EventContext &ctx, std::unique_ptr< AFP_TDDigiCollection > &digitCollection, std::unique_ptr< AFP_SiDigiCollection > &siDigiCollection) const |
| 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 |
Protected Member Functions | |
| void | newXAODHitToF (std::unique_ptr< xAOD::AFPToFHitContainer > &tofHitContainer, std::unique_ptr< AFP_TDDigiCollection > &collection) const |
| Method that creates a new AFPToFHit and sets it valus according to #digi collection. | |
| void | newXAODHitSi (std::unique_ptr< xAOD::AFPSiHitContainer > &xAODSiHit, std::unique_ptr< AFP_SiDigiCollection > &collection) const |
| Method that creates a new AFPSiHit and sets it valus according to #digi collection. | |
Protected Attributes | |
| std::unique_ptr< AFP_TDDigiCollection > | m_digitCollection |
| std::unique_ptr< AFP_SiDigiCollection > | m_SiDigiCollection |
Private Types | |
| enum | QEFF_VER { QE1 =1 , QE2 =2 , nQEffOpts =3 } |
Private Member Functions | |
| StatusCode | fillTDDigiCollection (AFP_TDSimHitCollection &AFP_TDSimHitColl, CLHEP::HepRandomEngine *rndEngine, const EventContext &ctx) |
| StatusCode | fillTDDigiCollection (TimedHitCollection< AFP_TDSimHit > &thpcAFP, CLHEP::HepRandomEngine *, const EventContext &ctx, std::unique_ptr< AFP_TDDigiCollection > &digitCollection) |
| StatusCode | fillSiDigiCollection (AFP_SIDSimHitCollection &AFP_SIDSimHitColl, const EventContext &ctx) |
| StatusCode | fillSiDigiCollection (TimedHitCollection< AFP_SIDSimHit > &thpcAFP, const EventContext &ctx, std::unique_ptr< AFP_SiDigiCollection > &siDigiCollection) |
| void | createTDDigi (int Station, int Detector, int SensitiveElement, float GlobalTime, float WafeLength, CLHEP::HepRandomEngine *rndEngine) |
| StatusCode | StoreTDDigi (const EventContext &ctx, std::unique_ptr< AFP_TDDigiCollection > &digitCollection) const |
| void | createSiDigi (const EventContext &ctx, int Station, int Detector, int PixelRow, int PixelCol, float PreStepX, float PreStepY, float PreStepZ, float PostStepX, float PostStepY, float PostStepZ, float DepEnergy) |
| StatusCode | StoreSiDigi (const EventContext &ctx, std::unique_ptr< AFP_SiDigiCollection > &siDigiCollection) |
| void | setupQuantumEff () |
| void | setupTDCOffsets () |
| double | generateSiNoise (CLHEP::HepRandomEngine *rndEngine) const |
| Function that provides random noise (in charge units) | |
| double | generateSiCCE (CLHEP::HepRandomEngine *rndEngine) const |
| Function that provides charge collection efficiency. | |
| int | charge2tot (int) const |
| Function that converts quasi-continous charge to discrete time-over-threshold. | |
| int | tot2charge (int) const |
| Function that converts discrete time-over-threshold to discrete charge. | |
| void | addSignalFunc (TH1F &, double) const |
| Adds pre-calculated single photoelectron signal function stored in m_SignalVect to the passed histogram. | |
| double | getQE (double) const |
| Provides quantum efficiency for given wavelength (in nm) | |
| void | resetSignalHistograms () |
| Invokes Reset() on all m_SignalHist objects. | |
| bool | isPhotoelectronInduced (double, CLHEP::HepRandomEngine *) const |
| Returns random response if the photon of given wavelegth induces the photoelectron. | |
| void | addPhotoconvTimeSmear (double &, CLHEP::HepRandomEngine *) const |
| Modifies the hit time passed as an argument by the photoconversion time smearing. | |
| double | getTDC (const TH1F &) const |
| Returns the TDC determined from the signal shape passed as an argument. | |
| double | getADC (const TH1F &, const double) const |
| Returns the ADC determined from the signal shape passed as an (1st) argument; 2nd arg is peak value. | |
| double | SignalFun (double Time, double RiseTime, double FallTime, double offset=0.0) const |
Private Attributes | |
| Gaudi::Property< std::string > | m_totToChargeTransfExpr {this, "TotToChargeTransfExpr", "1909 + x*363 + x*x*141", "Function that transforms time-over-threshold to charge"} |
| Function that transforms time-over-threshold to charge. | |
| Gaudi::Property< std::string > | m_totToChargeTransfName {this, "TotToChargeTransfName", "TotToChargeTransfFunction", "Name of the function that transforms time-over-threshold to charge"} |
| TF1 | m_totToChargeTransformation |
| ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "mergeSvc", "PileUpMergeSvc", ""} |
| ServiceHandle< IAthRNGSvc > | m_randomSvc {this, "RndmSvc", "AthRNGSvc", ""} |
| Gaudi::Property< std::string > | m_randomStreamName {this, "RandomStreamName", "AFPRndEng", ""} |
| BooleanProperty | m_onlyUseContainerName {this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."} |
| SG::ReadHandleKey< AFP_TDSimHitCollection > | m_TDSimHitCollectionKey {this, "TDSimHitCollectionName", "AFP_TDSimHitCollection"} |
| std::string | m_TDSimHitCollectionName {""} |
| SG::WriteHandleKey< AFP_TDDigiCollection > | m_TDDigiCollectionKey {this, "TDDigiCollectionName", "AFP_TDDigiCollection", "Name of the Collection to hold the output from the AFP digitization, TD part"} |
| SG::WriteHandleKey< xAOD::AFPToFHitContainer > | m_AFPHitsContainerNameToF {this, "AFPHitsContainerNameToF", "AFPToFHitContainer"} |
| SG::ReadHandleKey< AFP_SIDSimHitCollection > | m_SIDSimHitCollectionKey {this, "SIDSimHitCollectionName", "AFP_SIDSimHitCollection"} |
| std::string | m_SIDSimHitCollectionName {""} |
| SG::WriteHandleKey< AFP_SiDigiCollection > | m_SiDigiCollectionKey {this, "SiDigiCollectionName", "AFP_SiDigiCollection", "Name of the Collection to hold the output from the AFP digitization, SiD part"} |
| SG::WriteHandleKey< xAOD::AFPSiHitContainer > | m_AFPSiHitsContainerName {this, "AFPSiHitsContainerName", "AFPSiHitContainer",""} |
| Gaudi::Property< double > | m_CollectionEff {this, "CollectionEff", 0.6, "Collection efficiency"} |
| Gaudi::Property< double > | m_ConversionSpr {this, "ConversionSpr", 40.0, " Photon-Electron conversion spread in ps"} |
| Gaudi::Property< double > | m_RiseTime {this, "RiseTime", 400., "Pulse rise time in ps"} |
| Gaudi::Property< double > | m_FallTime {this, "FallTime", 1200., "Pulse fall time in ps"} |
| Gaudi::Property< double > | m_TofSignalTimeRangeLength {this, "TofSignalTimeRangeLength", 4000., "in ps"} |
| Gaudi::Property< double > | m_TimeOffset {this, "TimeOffset", 104500., "Offset reflecting time that proton travels from IP to AFP"} |
| Gaudi::Property< double > | m_CfSignalDelay {this, "CfSignalDelay", 200., "Pulse delay for const. frac. discrimination"} |
| Gaudi::Property< double > | m_CfdThr {this, "CfdThr", 0.5, "Constant fraction threshold"} |
| Gaudi::Property< double > | m_SiT_ChargeCollEff {this, "SiT_ChargeCollEff", 0.55, "CCE, adjusted to describe data"} |
| Gaudi::Property< double > | m_SiT_ChargeCollEffSigma {this, "SiT_ChargeCollEffSigma", 0.2, "sigma(CCE), adjusted to describe data"} |
| Gaudi::Property< double > | m_SiT_NoiseMu {this, "SiT_NoiseMu", 160., "unit = number of eh pairs"} |
| Gaudi::Property< double > | m_SiT_NoiseSigma {this, "SiT_NoiseSigma", 10., "unit = number of eh pairs"} |
| Gaudi::Property< double > | m_SiT_Energy2ChargeFactor {this, "SiT_Energy2ChargeFactor", 1000000./3.6, "number of eh pairs per MeV"} |
| Gaudi::Property< int > | m_SiT_ToTThresholdForHit {this, "SiT_ChargeThresholdForHit", 1, ""} |
| Gaudi::Property< int > | m_QEffVer {this, "QEffVer", 1, "quantum efficiency version; QE1=1, QE2=2, nQEffOpts=3"} |
| AFP_TDSimHitCollection | m_mergedTDSimHitList |
| AFP_SIDSimHitCollection | m_mergedSIDSimHitList |
| double | m_QuantumEff_PMT [82] {} |
| double | m_TDC_offsets [4][4][4] {} |
| int | m_ChargeVsTot_LUT [16] {} |
| const int | m_ArrSize |
| std::vector< float > | m_deposited_charge |
| std::vector< float > | m_deposited_energy |
| std::vector< double > | m_SignalVect |
| vector with pre-calculated single signal from the photoelectron | |
| TH1F | m_SignalHist [4][4][4] {} |
| array of histograms storing final signals in the PMTs | |
structors and AlgTool implementation | |
| Gaudi::Property< int > | m_firstXing |
| Gaudi::Property< int > | m_lastXing |
| Gaudi::Property< int > | m_vetoPileUpTruthLinks |
| bool | m_filterPassed {true} |
| virtual bool | toProcess (int bunchXing) const override |
| the method this base class helps implementing | |
| virtual bool | filterPassed () const override |
| dummy implementation of passing filter | |
| virtual void | resetFilter () override |
| dummy implementation of filter reset | |
Definition at line 43 of file AFP_PileUpTool.h.
|
private |
| AFP_PileUpTool::AFP_PileUpTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 19 of file AFP_PileUpTool.cxx.
|
inlinevirtual |
Definition at line 50 of file AFP_PileUpTool.h.
|
private |
Modifies the hit time passed as an argument by the photoconversion time smearing.
Definition at line 523 of file AFP_PileUpTool.cxx.
|
private |
Adds pre-calculated single photoelectron signal function stored in m_SignalVect to the passed histogram.
Definition at line 707 of file AFP_PileUpTool.cxx.
|
private |
Function that converts quasi-continous charge to discrete time-over-threshold.
Definition at line 148 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 624 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 529 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 489 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 460 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 437 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 413 of file AFP_PileUpTool.cxx.
|
inlineoverridevirtualinherited |
|
finaloverridevirtual |
Definition at line 395 of file AFP_PileUpTool.cxx.
|
private |
Function that provides charge collection efficiency.
Definition at line 615 of file AFP_PileUpTool.cxx.
|
inlineprivate |
Function that provides random noise (in charge units)
Definition at line 656 of file AFP_PileUpTool.cxx.
|
private |
Returns the ADC determined from the signal shape passed as an (1st) argument; 2nd arg is peak value.
Definition at line 574 of file AFP_PileUpTool.cxx.
|
private |
Provides quantum efficiency for given wavelength (in nm)
Definition at line 723 of file AFP_PileUpTool.cxx.
|
private |
Returns the TDC determined from the signal shape passed as an argument.
Definition at line 555 of file AFP_PileUpTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 29 of file AFP_PileUpTool.cxx.
|
private |
Returns random response if the photon of given wavelegth induces the photoelectron.
Definition at line 516 of file AFP_PileUpTool.cxx.
|
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 376 of file AFP_PileUpTool.cxx.
|
protected |
Method that creates a new AFPSiHit and sets it valus according to #digi collection.
Definition at line 165 of file AFP_PileUpTool.cxx.
|
protected |
Method that creates a new AFPToFHit and sets it valus according to #digi collection.
Definition at line 202 of file AFP_PileUpTool.cxx.
|
finaloverridevirtual |
called before the subevts loop. Not (necessarily) able to access SubEvents
Definition at line 316 of file AFP_PileUpTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 220 of file AFP_PileUpTool.cxx.
|
finaloverridevirtual |
called for each active bunch-crossing to process current SubEvents bunchXing is in ns
Reimplemented from PileUpToolBase.
Definition at line 330 of file AFP_PileUpTool.cxx.
| StatusCode AFP_PileUpTool::recoAll | ( | const EventContext & | ctx, |
| std::unique_ptr< AFP_TDDigiCollection > & | digitCollection, | ||
| std::unique_ptr< AFP_SiDigiCollection > & | siDigiCollection ) const |
Definition at line 122 of file AFP_PileUpTool.cxx.
| StatusCode AFP_PileUpTool::recoSiHits | ( | const EventContext & | ctx, |
| std::unique_ptr< AFP_SiDigiCollection > & | siDigiCollection ) const |
Creates xAOD for silicon detector.
Definition at line 131 of file AFP_PileUpTool.cxx.
| StatusCode AFP_PileUpTool::recoToFHits | ( | const EventContext & | ctx, |
| std::unique_ptr< AFP_TDDigiCollection > & | digitCollection ) const |
Creates xAOD for time-of-flight detector.
Definition at line 185 of file AFP_PileUpTool.cxx.
|
inlineoverridevirtualinherited |
dummy implementation of filter reset
Reimplemented in MergeTruthJetsTool.
Definition at line 51 of file PileUpToolBase.h.
|
private |
Invokes Reset() on all m_SignalHist objects.
Definition at line 401 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 780 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 743 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 731 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 662 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 584 of file AFP_PileUpTool.cxx.
|
inlineoverridevirtualinherited |
the method this base class helps implementing
Reimplemented in MergeHijingParsTool, and MergeTrackRecordCollTool.
Definition at line 32 of file PileUpToolBase.h.
|
inlineprivate |
Function that converts discrete time-over-threshold to discrete charge.
Definition at line 159 of file AFP_PileUpTool.cxx.
|
private |
Definition at line 141 of file AFP_PileUpTool.h.
|
private |
Definition at line 146 of file AFP_PileUpTool.h.
|
private |
Definition at line 174 of file AFP_PileUpTool.h.
|
private |
Definition at line 156 of file AFP_PileUpTool.h.
|
private |
Definition at line 155 of file AFP_PileUpTool.h.
|
private |
Definition at line 172 of file AFP_PileUpTool.h.
|
private |
Definition at line 149 of file AFP_PileUpTool.h.
|
private |
Definition at line 150 of file AFP_PileUpTool.h.
|
private |
Definition at line 175 of file AFP_PileUpTool.h.
|
private |
Definition at line 176 of file AFP_PileUpTool.h.
|
protected |
Definition at line 192 of file AFP_PileUpTool.h.
|
private |
Definition at line 152 of file AFP_PileUpTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 168 of file AFP_PileUpTool.h.
|
private |
Definition at line 167 of file AFP_PileUpTool.h.
|
private |
Definition at line 133 of file AFP_PileUpTool.h.
|
private |
Definition at line 137 of file AFP_PileUpTool.h.
|
private |
Definition at line 165 of file AFP_PileUpTool.h.
|
private |
Definition at line 170 of file AFP_PileUpTool.h.
|
private |
Definition at line 135 of file AFP_PileUpTool.h.
|
private |
Definition at line 134 of file AFP_PileUpTool.h.
|
private |
Definition at line 151 of file AFP_PileUpTool.h.
|
protected |
Definition at line 193 of file AFP_PileUpTool.h.
|
private |
Definition at line 145 of file AFP_PileUpTool.h.
|
private |
Definition at line 143 of file AFP_PileUpTool.h.
|
private |
Definition at line 144 of file AFP_PileUpTool.h.
|
private |
array of histograms storing final signals in the PMTs
Definition at line 182 of file AFP_PileUpTool.h.
|
private |
vector with pre-calculated single signal from the photoelectron
Definition at line 179 of file AFP_PileUpTool.h.
|
private |
Definition at line 157 of file AFP_PileUpTool.h.
|
private |
Definition at line 158 of file AFP_PileUpTool.h.
|
private |
Definition at line 161 of file AFP_PileUpTool.h.
|
private |
Definition at line 159 of file AFP_PileUpTool.h.
|
private |
Definition at line 160 of file AFP_PileUpTool.h.
|
private |
Definition at line 162 of file AFP_PileUpTool.h.
|
private |
Definition at line 171 of file AFP_PileUpTool.h.
|
private |
Definition at line 140 of file AFP_PileUpTool.h.
|
private |
Definition at line 138 of file AFP_PileUpTool.h.
|
private |
Definition at line 139 of file AFP_PileUpTool.h.
|
private |
Definition at line 154 of file AFP_PileUpTool.h.
|
private |
Definition at line 153 of file AFP_PileUpTool.h.
|
private |
Function that transforms time-over-threshold to charge.
Solution has been adopted from AFP_Raw2DigiTool. The best solution would be to have a single tool providing this method, which would be used in AFP_PileUpTool and AFP_Raw2DigiTool.
Definition at line 129 of file AFP_PileUpTool.h.
|
private |
Definition at line 130 of file AFP_PileUpTool.h.
|
private |
Definition at line 131 of file AFP_PileUpTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.