|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef LARDIGITIZATION_LARHITEMPATTODIGITALG_H
6 #define LARDIGITIZATION_LARHITEMPATTODIGITALG_H
40 #include <boost/container/static_vector.hpp>
47 class HepRandomEngine;
57 #define MAXADC 4096 // Maximal Adc count + 1 ( used for the overflows)
84 const std::vector<std::pair<float, float> >* TimeE,
86 CLHEP::HepRandomEngine* engine,
87 const std::vector<std::pair<float, float> >* TimeE_DigiHSTruth =
nullptr)
const;
91 const std::vector<std::pair<float,float> > *TimeE,
staticVecDouble_t& sampleList)
const;
107 Gaudi::Property<std::vector<std::string> >
m_problemsToMask{
this,
"ProblemsToMask",{},
"Bad-Channel categories to mask entirly"};
116 "Name of input digit container"};
119 "Name of output digit container"};
121 "LArDigitContainer_DigiHSTruth",
"Name of output signal digit container"};
128 "Use MC16-style random number seeding"};
135 "Hit energy threshold (default=-99)"};
137 "Number of ADC samples (default=5)"};
139 "put electronic noise (default=true)"};
141 "First sample to use for the shape for in-time signal"};
143 "use 1ns binned pulse shape (default=false)"};
145 "Pileup and/or noise added by overlaying random events (default=false)"};
147 "Is input Overlay from MC or data (default=false, from data)"};
148 Gaudi::Property<bool>
m_doDigiTruth{
this,
"DoDigiTruthReconstruction",
false,
149 "Also create information about reconstructed digits for HS hits"};
152 "put noise in EMB (default=true)"};
154 "put noise in EMEC (default=true)"};
156 "put noise in HEC (default=true)"};
158 "put noise in FCAL (default=true)"};
160 "Use noise from Pedestal structure instead of LArNoise (default=false)"};
162 "if true add random number [0:1[ in no noise case before rounding ADC to integer, if false add only 0.5 average"};
164 "Window mode (produce digits only around true e/photon) (default=false)"};
166 "Eta size of window (default=0.4)"};
168 "Phi size of window (default=0.5)"};
170 "Pt cut on e/photons for window mode (Default=5GeV)"};
184 const T*
object = *aHandle;
185 if (
object ==
nullptr)
ATH_MSG_ERROR(
"Object could not be fetched with key " << aHandle.
key() );
SG::ReadCondHandleKey< ILArOFC > m_OFCKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Gaudi::Property< bool > m_NoiseInEMEC
Gaudi::Property< bool > m_NoiseInFCAL
SG::ReadCondHandleKey< LArAutoCorrNoise > m_autoCorrNoiseKey
static constexpr int s_MaxNSamples
SG::ReadCondHandleKey< LArBadFebCont > m_badFebKey
Gaudi::Property< uint32_t > m_randomSeedOffset
Gaudi::Property< bool > m_NoiseOnOff
SG::ReadHandleKey< LArHitEMap > m_hitMapKey_DigiHSTruth
Gaudi::Property< float > m_WindowsPtCut
const LArFCAL_ID * m_larfcal_id
const LArOnlineID * m_laronline_id
Helper class for LArHEC offline identifiers.
virtual StatusCode initialize()
Gaudi::Property< bool > m_RndmEvtOverlay
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
SG::ReadHandleKey< LArDigitContainer > m_inputDigitContainerKey
Definition of CaloDetDescrManager.
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Gaudi::Property< bool > m_Windows
Gaudi::Property< bool > m_NoiseInEMB
Handle class for recording to StoreGate.
const T * pointerFromKey(const EventContext &context, const SG::ReadCondHandleKey< T > &key) const
The Athena Transient Store API.
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
Liquid Argon digit base class.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_roundingNoNoise
boost::container::static_vector< float, s_MaxNSamples > staticVecFloat_t
double m_HighGainThresh[4]
LArBadChannelMask m_bcMask
StatusCode MakeDigit(const EventContext &ctx, const Identifier &cellId, const HWIdentifier &ch_id, LArDigit *&Digit, DataPool< LArDigit > &dataItemsPool, LArDigit *&Digit_DigiHSTruth, const std::vector< std::pair< float, float > > *TimeE, const LArDigit *rndm_digit, CLHEP::HepRandomEngine *engine, const std::vector< std::pair< float, float > > *TimeE_DigiHSTruth=nullptr) const
Gaudi::Property< int > m_NSamples
Helper class for offline cell identifiers.
StatusCode ConvertHits2Samples(const EventContext &ctx, const Identifier &cellId, HWIdentifier ch_id, CaloGain::CaloGain igain, const std::vector< std::pair< float, float > > *TimeE, staticVecDouble_t &sampleList) const
Gaudi::Property< float > m_WindowsPhiSize
double m_LowGainThresh[4]
Property holding a SG store/key/clid from which a WriteHandle is made.
Gaudi::Property< bool > m_usePhase
boost::container::static_vector< double, s_MaxNSamples > staticVecDouble_t
LArHitEMapToDigitAlg(const std::string &name, ISvcLocator *pSvcLocator)
Gaudi::Property< bool > m_NoiseInHEC
const LArEM_ID * m_larem_id
Gaudi::Property< float > m_WindowsEtaSize
interface to a tool that returns the time offset of the current trigger. Used by PileUpMergeSvc
const LArHEC_ID * m_larhec_id
Gaudi::Property< std::vector< std::string > > m_problemsToMask
Gaudi::Property< bool > m_isMcOverlay
Gaudi::Property< bool > m_pedestalNoise
SG::WriteHandleKey< LArDigitContainer > m_DigitContainerName_DigiHSTruth
const LArOnOffIdMapping * m_cabling
SG::WriteHandleKey< LArDigitContainer > m_DigitContainerName
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
virtual StatusCode execute(const EventContext &context) const
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Gaudi::Property< double > m_EnergyThresh
const CaloCell_ID * m_calocell_id
Helper class for LArEM offline identifiers.
const std::string & key() const
Helper class for LArFCAL offline identifiers.
Gaudi::Property< std::string > m_randomStreamName
SG::ReadHandleKey< LArHitEMap > m_hitMapKey
Gaudi::Property< int > m_firstSample
Gaudi::Property< bool > m_doDigiTruth
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Gaudi::Property< bool > m_useLegacyRandomSeeds