![]() |
ATLAS Offline Software
|
This AlgTool merges TileHits from different AthenaHitVectors and stores the result in a TileHitContainer. More...
#include <TileHitVecToCntTool.h>
Public Member Functions | |
| TileHitVecToCntTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| Constructor. | |
| StatusCode | initialize () override final |
| virtual StatusCode | prepareEvent (const EventContext &ctx, unsigned int) override final |
| virtual StatusCode | mergeEvent (const EventContext &ctx) override final |
| virtual StatusCode | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final |
| virtual StatusCode | processAllSubEvents (const EventContext &ctx) override final |
| virtual StatusCode | processAllSubEvents (const EventContext &ctx) const |
| StatusCode | finalize () override final |
Private Types | |
| enum | CELL_TOWER { E1_TOWER = 10 } |
Private Member Functions | |
| StatusCode | createContainers () |
| void | processHitVectorForOverlay (const TileHitVector *inputHits, std::unique_ptr< TileHitNonConstContainer > &hits, int &nHit, double &eHitTot) const |
| void | processHitVectorForPileUp (const TileHitVector *inputHits, double SubEvtTimOffset, std::vector< std::unique_ptr< TileHit > > &allHits, std::vector< std::unique_ptr< TileHit > > &allHits_DigiHSTruth, int &nHit, double &eHitTot, bool isSignal=false) const |
| void | processHitVectorWithoutPileUp (const TileHitVector *inputHits, int &nHit, double &eHitTot, TileHitNonConstContainer *hitCont, CLHEP::HepRandomEngine *engine) const |
| double | applyPhotoStatistics (double energy, Identifier pmt_id, CLHEP::HepRandomEngine *engine, const TileSamplingFraction *samplingFraction, int drawerIdx) const |
| void | findAndMergeE1 (TileHitCollection *coll, int frag_id, TileHitNonConstContainer *hitCont) const |
| void | findAndMergeMBTS (TileHitCollection *coll, int frag_id, TileHitNonConstContainer *hitCont) const |
| void | findAndMergeMultipleHitsInChannel (std::unique_ptr< TileHitNonConstContainer > &hitCont) const |
| void | mergeExtraHitToChannelHit (TileHit *extraHit, TileHit *channelHit) const |
| void | putAllHitsInContainer (std::vector< std::unique_ptr< TileHit > > &allHits, std::vector< std::unique_ptr< TileHit > > &allHits_DigiHSTruth, std::unique_ptr< TileHitNonConstContainer > &hits, std::unique_ptr< TileHitNonConstContainer > &hits_DigiHSTruth, SG::OwnershipPolicy ownPolicy) const |
| StatusCode | commitContainers (const EventContext &ctx, std::unique_ptr< TileHitNonConstContainer > &hits, std::unique_ptr< TileHitNonConstContainer > &hits_DigiHSTruth, SG::OwnershipPolicy ownPolicy) const |
| void | prepareAllHits (std::vector< std::unique_ptr< TileHit > > &allHits) const |
| int | mbts_index (int side, int phi, int eta) const |
| int | e4pr_index (int phi) const |
Private Attributes | |
| Gaudi::Property< bool > | m_onlyUseContainerName {this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."} |
| StringArrayProperty | m_inputKeys |
| vector with the names of TileHitVectors to use | |
| SG::ReadHandleKeyArray< TileHitVector > | m_hitVectorKeys {this, "TileHitVectorKeys", {}, "Do not set manually!"} |
| std::vector< std::string > | m_hitVectorNames {} |
| SG::WriteHandleKey< TileHitContainer > | m_hitContainerKey |
| SG::WriteHandleKey< TileHitContainer > | m_hitContainer_DigiHSTruthKey |
| SG::ReadCondHandleKey< TileSamplingFraction > | m_samplingFractionKey |
| Name of TileSamplingFraction in condition store. | |
| bool | m_run2 {false} |
| if true => RUN2 geometry with E4' and merged E1 | |
| bool | m_run2plus {false} |
| if true => RUN2+ geometry with merged E1 (and E4' in RUN2) | |
| Gaudi::Property< bool > | m_pileUp |
| if true => pileup mode is activated | |
| Gaudi::Property< double > | m_deltaT |
| minimal time granularity for TileHit | |
| Gaudi::Property< int > | m_timeFlag |
| special options to deal with times of hits for cosmics and TB | |
| Gaudi::Property< double > | m_triggerTime |
| fixed trigger time value (default=0) | |
| Gaudi::Property< double > | m_maxHitTime |
| all sub-hits with time above m_maxHitTime will be ignored | |
| Gaudi::Property< double > | m_photoStatisticsWindow |
| sum up energy in [-m_photoStatWindow,+m_photoStatWindow] and use it for photostatistics | |
| Gaudi::Property< int > | m_photoElectronStatistics |
| photoelectron statistics type: 0 - Poisson, 1 - "new" Poisson + Gauss, 2 - Poisson->Gauss | |
| Gaudi::Property< bool > | m_skipNoHit |
| if true => skip events with no Tile hits | |
| Gaudi::Property< bool > | m_rndmEvtOverlay |
| If true => overlay with random event (zero-luminosity pile-up) | |
| Gaudi::Property< bool > | m_useTriggerTime |
| if true => take trigger time from external tool or from m_triggerTime | |
| Gaudi::Property< bool > | m_doDigiTruth |
| Gaudi::Property< bool > | m_usePhotoStatistics |
| Gaudi::Property< bool > | m_mergeMultipleHitsInChannel |
| SG::ReadHandleKey< CosTrigTime > | m_triggerTimeKey {this,"CosTimeKey", "", "To take the trigger time from"} |
| ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "PileUpMergeSvc", "PileUpMergeSvc", ""} |
| const TileID * | m_tileID {nullptr} |
| Pointer to TileID helper. | |
| const TileTBID * | m_tileTBID {nullptr} |
| Pointer to TileID helper. | |
| const TileHWID * | m_tileHWID {nullptr} |
| Pointer to TileID helper. | |
| ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
| Random number generator engine to use. | |
| Gaudi::Property< std::string > | m_randomStreamName {this, "RandomStreamName", "Tile_HitVecToCnt", ""} |
| Random Stream Name. | |
| std::vector< std::unique_ptr< TileHit > > | m_allHits |
| vector for all TileHits | |
| std::vector< std::unique_ptr< TileHit > > | m_allHits_DigiHSTruth |
| vector for all TileHits | |
| std::unique_ptr< TileHitNonConstContainer > | m_hits {} |
| pointer to hits container | |
| std::unique_ptr< TileHitNonConstContainer > | m_hits_DigiHSTruth {} |
| pointer to hits container | |
| int | m_mbtsOffset {0} |
| ServiceHandle< TileCablingSvc > | m_cablingSvc {this, "TileCablingSvc", "TileCablingSvc", ""} |
| const TileCablingService * | m_cabling {} |
| TileFragHash | m_fragHashFunc |
| std::vector< bool > | m_E1merged |
| std::vector< bool > | m_MBTSmerged |
Static Private Attributes | |
| static const int | N_SIDE = 2 |
| static const int | N_PHI = 8 |
| static const int | N_ETA = 2 |
| static const int | N_MBTS_CELLS = N_SIDE * N_PHI * N_ETA |
| static const int | E4_SIDE = -1 |
| static const int | E4_ETA = 2 |
| static const int | E4_N_PHI = 4 |
| static const int | N_E4PRIME_CELLS = E4_N_PHI |
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} |
This AlgTool merges TileHits from different AthenaHitVectors and stores the result in a TileHitContainer.
TileHitVecToCntTool copies all TileHits from TileHitVector (AthenaHitsVector) to TileHitContainer (identifiable container) without any corrections If pileup option is set, all hits are merged, if several hits have the same ID, energy and time from all of them is stored in vectors inside single TileHit
Definition at line 85 of file TileHitVecToCntTool.h.
|
private |
| TileHitVecToCntTool::TileHitVecToCntTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Constructor.
Definition at line 46 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 950 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 798 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 180 of file TileHitVecToCntTool.cxx.
|
inlineprivate |
Definition at line 197 of file TileHitVecToCntTool.h.
|
inlineoverridevirtualinherited |
|
finaloverride |
Definition at line 940 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 1030 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 1088 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 1147 of file TileHitVecToCntTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 53 of file TileHitVecToCntTool.cxx.
|
inlineprivate |
Definition at line 190 of file TileHitVecToCntTool.h.
|
finaloverridevirtual |
Definition at line 931 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 1188 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 1202 of file TileHitVecToCntTool.cxx.
|
finaloverridevirtual |
Definition at line 216 of file TileHitVecToCntTool.cxx.
|
virtual |
Definition at line 652 of file TileHitVecToCntTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 647 of file TileHitVecToCntTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 576 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 230 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 276 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 379 of file TileHitVecToCntTool.cxx.
|
private |
Definition at line 766 of file TileHitVecToCntTool.cxx.
|
inlineoverridevirtualinherited |
dummy implementation of filter reset
Reimplemented in MergeTruthJetsTool.
Definition at line 51 of file PileUpToolBase.h.
|
inlineoverridevirtualinherited |
the method this base class helps implementing
Reimplemented in MergeHijingParsTool, and MergeTrackRecordCollTool.
Definition at line 32 of file PileUpToolBase.h.
|
staticprivate |
Definition at line 194 of file TileHitVecToCntTool.h.
|
staticprivate |
Definition at line 195 of file TileHitVecToCntTool.h.
|
staticprivate |
Definition at line 193 of file TileHitVecToCntTool.h.
|
private |
vector for all TileHits
Definition at line 180 of file TileHitVecToCntTool.h.
|
private |
vector for all TileHits
Definition at line 181 of file TileHitVecToCntTool.h.
|
private |
Definition at line 202 of file TileHitVecToCntTool.h.
|
private |
Definition at line 201 of file TileHitVecToCntTool.h.
|
private |
minimal time granularity for TileHit
Definition at line 145 of file TileHitVecToCntTool.h.
|
private |
Definition at line 163 of file TileHitVecToCntTool.h.
|
private |
Definition at line 204 of file TileHitVecToCntTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
private |
Definition at line 203 of file TileHitVecToCntTool.h.
|
private |
Definition at line 132 of file TileHitVecToCntTool.h.
|
private |
Definition at line 129 of file TileHitVecToCntTool.h.
|
private |
|
private |
|
private |
Definition at line 126 of file TileHitVecToCntTool.h.
|
private |
Definition at line 127 of file TileHitVecToCntTool.h.
|
private |
vector with the names of TileHitVectors to use
Definition at line 124 of file TileHitVecToCntTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
all sub-hits with time above m_maxHitTime will be ignored
Definition at line 151 of file TileHitVecToCntTool.h.
|
private |
Definition at line 205 of file TileHitVecToCntTool.h.
|
private |
Definition at line 185 of file TileHitVecToCntTool.h.
|
private |
Definition at line 167 of file TileHitVecToCntTool.h.
|
private |
Definition at line 170 of file TileHitVecToCntTool.h.
|
private |
Definition at line 123 of file TileHitVecToCntTool.h.
|
private |
photoelectron statistics type: 0 - Poisson, 1 - "new" Poisson + Gauss, 2 - Poisson->Gauss
Definition at line 155 of file TileHitVecToCntTool.h.
|
private |
sum up energy in [-m_photoStatWindow,+m_photoStatWindow] and use it for photostatistics
Definition at line 153 of file TileHitVecToCntTool.h.
|
private |
if true => pileup mode is activated
Definition at line 143 of file TileHitVecToCntTool.h.
|
private |
Definition at line 178 of file TileHitVecToCntTool.h.
|
private |
If true => overlay with random event (zero-luminosity pile-up)
Definition at line 159 of file TileHitVecToCntTool.h.
|
private |
Random number generator engine to use.
Definition at line 176 of file TileHitVecToCntTool.h.
|
private |
if true => RUN2 geometry with E4' and merged E1
Definition at line 141 of file TileHitVecToCntTool.h.
|
private |
if true => RUN2+ geometry with merged E1 (and E4' in RUN2)
Definition at line 142 of file TileHitVecToCntTool.h.
|
private |
Name of TileSamplingFraction in condition store.
Definition at line 138 of file TileHitVecToCntTool.h.
|
private |
if true => skip events with no Tile hits
Definition at line 157 of file TileHitVecToCntTool.h.
|
private |
|
private |
|
private |
|
private |
special options to deal with times of hits for cosmics and TB
Definition at line 147 of file TileHitVecToCntTool.h.
|
private |
fixed trigger time value (default=0)
Definition at line 149 of file TileHitVecToCntTool.h.
|
private |
Definition at line 169 of file TileHitVecToCntTool.h.
|
private |
Definition at line 165 of file TileHitVecToCntTool.h.
|
private |
if true => take trigger time from external tool or from m_triggerTime
Definition at line 161 of file TileHitVecToCntTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.
|
staticprivate |
Definition at line 196 of file TileHitVecToCntTool.h.
|
staticprivate |
Definition at line 188 of file TileHitVecToCntTool.h.
Definition at line 189 of file TileHitVecToCntTool.h.
|
staticprivate |
Definition at line 187 of file TileHitVecToCntTool.h.
|
staticprivate |
Definition at line 186 of file TileHitVecToCntTool.h.