ATLAS Offline Software
LArHitEMapToDigitAlg.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef LARDIGITIZATION_LARHITEMPATTODIGITALG_H
6 #define LARDIGITIZATION_LARHITEMPATTODIGITALG_H
7 // +======================================================================+
8 // + +
9 // + Author ........: Denis O. Damazio +
10 // + Institut ......: BNL +
11 // + Creation date .: 16/02/2022 +
12 // + +
13 // +======================================================================+
14 //
15 // ....... include
16 //
17 
19 
21 
24 #include "StoreGate/WriteHandle.h"
25 
32 #include "LArElecCalib/ILArNoise.h"
33 #include "LArElecCalib/ILArOFC.h"
35 #include "LArElecCalib/ILArShape.h"
40 #include <boost/container/static_vector.hpp>
41 
42 // services
44 
45 #include "AthAllocators/DataPool.h"
46 namespace CLHEP {
47  class HepRandomEngine;
48 }
49 class StoreGateSvc;
50 class ITriggerTime;
51 class LArOnlineID;
52 class LArEM_ID;
53 class LArHEC_ID;
54 class LArFCAL_ID;
55 class CaloCell_ID;
56 
57 #define MAXADC 4096 // Maximal Adc count + 1 ( used for the overflows)
58 
60 {
61 public:
62  // Constructor
63  LArHitEMapToDigitAlg(const std::string& name, ISvcLocator* pSvcLocator);
64 
65  // initialize all condition keys
66  virtual StatusCode initialize();
67  // Just do it
68  virtual StatusCode execute(const EventContext& context) const;
69 
70 protected:
71  static constexpr int s_MaxNSamples = 8;
72  using staticVecDouble_t = boost::container::static_vector<double,s_MaxNSamples> ;
73  using staticVecFloat_t = boost::container::static_vector<float,s_MaxNSamples> ;
74 
75  // access to many conditions
76  template<class T> const T* pointerFromKey(const EventContext& context, const SG::ReadCondHandleKey<T>& key) const;
77 
78  StatusCode MakeDigit(const EventContext& ctx,
79  const Identifier& cellId,
80  const HWIdentifier& ch_id,
81  LArDigit*& Digit,
82  DataPool<LArDigit>& dataItemsPool,
83  LArDigit*& Digit_DigiHSTruth,
84  const std::vector<std::pair<float, float> >* TimeE,
85  const LArDigit* rndm_digit,
86  CLHEP::HepRandomEngine* engine,
87  const std::vector<std::pair<float, float> >* TimeE_DigiHSTruth = nullptr) const;
88 
89  StatusCode ConvertHits2Samples(const EventContext& ctx, const Identifier & cellId, HWIdentifier ch_id,
91  const std::vector<std::pair<float,float> > *TimeE, staticVecDouble_t& sampleList) const;
92 
93  // Keys to many conditions
94  SG::ReadCondHandleKey<ILArNoise> m_noiseKey{this,"NoiseKey","LArNoiseSym","SG Key of ILArNoise object"};
95  SG::ReadCondHandleKey<ILArfSampl> m_fSamplKey{this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"};
96  SG::ReadCondHandleKey<ILArOFC> m_OFCKey{this, "OFCKey", "LArOFC", "SG Key of OFC conditions object"};
97  SG::ReadCondHandleKey<ILArPedestal> m_pedestalKey{this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"};
98  SG::ReadCondHandleKey<ILArShape> m_shapeKey{this,"ShapeKey","LArShapeSym","SG Key of LArShape object"};
99  SG::ReadCondHandleKey<LArADC2MeV> m_adc2mevKey{this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"};
100  SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey{this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
101  const LArOnOffIdMapping* m_cabling{}; //Set in perpareEvent, used also in mergeEvent
102 
103  SG::ReadCondHandleKey<LArAutoCorrNoise> m_autoCorrNoiseKey{this,"AutoCorrNoiseKey","LArAutoCorrNoise","SG Key of AutoCorrNoise conditions object"};
104 
105  SG::ReadCondHandleKey<LArBadChannelCont> m_bcContKey {this, "BadChanKey", "LArBadChannel", "SG key for LArBadChan object"};
106  SG::ReadCondHandleKey<LArBadFebCont> m_badFebKey{this, "BadFebKey", "LArBadFeb", "Key of BadFeb object in ConditionsStore"};
107  Gaudi::Property<std::vector<std::string> > m_problemsToMask{this,"ProblemsToMask",{},"Bad-Channel categories to mask entirly"};
109 
110  SG::ReadCondHandleKey<CaloDetDescrManager> m_caloMgrKey{this,"CaloDetDescrManager", "CaloDetDescrManager"};
111 
112  // keys to inputs
113  SG::ReadHandleKey<LArHitEMap> m_hitMapKey{this,"LArHitEMapKey","LArHitEMap"};
114  SG::ReadHandleKey<LArHitEMap> m_hitMapKey_DigiHSTruth{this,"LArHitEMap_DigiHSTruthKey","LArHitEMap_DigiHSTruth"};
116  "Name of input digit container"}; // input digit container name
117  // keys to output
118  SG::WriteHandleKey<LArDigitContainer> m_DigitContainerName{this, "DigitContainer", "LArDigitContainer_MC",
119  "Name of output digit container"}; // output digit container name list
121  "LArDigitContainer_DigiHSTruth", "Name of output signal digit container"}; // output digit container name list
122  Gaudi::Property<std::string> m_randomStreamName{this, "RandomStreamName", "LArDigitization", ""};
123 
124  // services needed
125  ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "RndmSvc", "AthRNGSvc", ""};
126  Gaudi::Property<uint32_t> m_randomSeedOffset{this, "RandomSeedOffset", 2, ""}; //
127  Gaudi::Property<bool> m_useLegacyRandomSeeds{this, "UseLegacyRandomSeeds", false,
128  "Use MC16-style random number seeding"};
129 
131  double m_LowGainThresh[4]{};
132  double m_HighGainThresh[4]{};
133  // Some properties for digits production
134  Gaudi::Property<double> m_EnergyThresh{this, "EnergyThresh", -99.,
135  "Hit energy threshold (default=-99)"}; // Zero suppression energy threshold
136  Gaudi::Property<int> m_NSamples{this, "Nsamples", 5,
137  "Number of ADC samples (default=5)"}; // number of samples in Digit
138  Gaudi::Property<bool> m_NoiseOnOff{this, "NoiseOnOff", true,
139  "put electronic noise (default=true)"}; // noise (in all sub-detectors) is on if true
140  Gaudi::Property<int> m_firstSample{this, "firstSample", 0,
141  "First sample to use for the shape for in-time signal"}; // first sample to use for pulse shape for in time energy deposit (use a negative value to include preceeding digits)
142  Gaudi::Property<bool> m_usePhase{this, "UsePhase", false,
143  "use 1ns binned pulse shape (default=false)"}; // use tbin phase to get shape (default = false for Atlas)
144  Gaudi::Property<bool> m_RndmEvtOverlay{this, "RndmEvtOverlay", false,
145  "Pileup and/or noise added by overlaying random events (default=false)"}; // Pileup and noise added by overlaying random events
146  Gaudi::Property<bool> m_isMcOverlay{this, "isMcOverlay", false,
147  "Is input Overlay from MC or data (default=false, from data)"}; // true if input RDO for overlay are from MC, false if from data
148  Gaudi::Property<bool> m_doDigiTruth{this, "DoDigiTruthReconstruction", false,
149  "Also create information about reconstructed digits for HS hits"};
150  // Switches (true by default) on Noise for each sub-detector (can be combined)
151  Gaudi::Property<bool> m_NoiseInEMB {this, "NoiseInEMB", true,
152  "put noise in EMB (default=true)"}; // noise in Barrel is off if false
153  Gaudi::Property<bool> m_NoiseInEMEC{this, "NoiseInEMEC", true,
154  "put noise in EMEC (default=true)"}; // noise in EndCap is off if false
155  Gaudi::Property<bool> m_NoiseInHEC{this, "NoiseInHEC", true,
156  "put noise in HEC (default=true)"}; // noise in HEC is off if false
157  Gaudi::Property<bool> m_NoiseInFCAL{this, "NoiseInFCAL", true,
158  "put noise in FCAL (default=true)"}; // noise in FCAL is off if false
159  Gaudi::Property<bool> m_pedestalNoise{this, "PedestalNoise", false,
160  "Use noise from Pedestal structure instead of LArNoise (default=false)"};
161  Gaudi::Property<bool> m_roundingNoNoise{this, "RoundingNoNoise", true,
162  "if true add random number [0:1[ in no noise case before rounding ADC to integer, if false add only 0.5 average"}; // flag used in NoNoise case: if true add random number [0;1[ in ADC count, if false add only average of 0.5
163  Gaudi::Property<bool> m_Windows{this, "Windows", false,
164  "Window mode (produce digits only around true e/photon) (default=false)"};
165  Gaudi::Property<float> m_WindowsEtaSize{this, "WindowsEtaSize", 0.4,
166  "Eta size of window (default=0.4)"};
167  Gaudi::Property<float> m_WindowsPhiSize{this, "WindowsPhiSize", 0.5,
168  "Phi size of window (default=0.5)"};
169  Gaudi::Property<float> m_WindowsPtCut{this, "WindowsPtCut", 5000.,
170  "Pt cut on e/photons for window mode (Default=5GeV)"};
171 
172 
178 
179 };
180 
181 template<class T>
182 const T* LArHitEMapToDigitAlg::pointerFromKey(const EventContext& context, const SG::ReadCondHandleKey<T>& key) const {
183  SG::ReadCondHandle<T> aHandle(key, context);
184  const T* object = *aHandle;
185  if (object == nullptr) ATH_MSG_ERROR("Object could not be fetched with key " << aHandle.key() );
186  return object;
187 }
188 
189 #endif
190 
LArHitEMapToDigitAlg::m_OFCKey
SG::ReadCondHandleKey< ILArOFC > m_OFCKey
Definition: LArHitEMapToDigitAlg.h:96
LArHitEMapToDigitAlg::m_shapeKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Definition: LArHitEMapToDigitAlg.h:98
LArHitEMapToDigitAlg::m_NoiseInEMEC
Gaudi::Property< bool > m_NoiseInEMEC
Definition: LArHitEMapToDigitAlg.h:153
LArHitEMapToDigitAlg::CaloNum
CaloNum
Definition: LArHitEMapToDigitAlg.h:130
LArHitEMapToDigitAlg::m_NoiseInFCAL
Gaudi::Property< bool > m_NoiseInFCAL
Definition: LArHitEMapToDigitAlg.h:157
ILArNoise.h
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
LArHitEMapToDigitAlg::m_autoCorrNoiseKey
SG::ReadCondHandleKey< LArAutoCorrNoise > m_autoCorrNoiseKey
Definition: LArHitEMapToDigitAlg.h:103
LArHitEMapToDigitAlg::s_MaxNSamples
static constexpr int s_MaxNSamples
Definition: LArHitEMapToDigitAlg.h:71
LArHitEMapToDigitAlg::m_badFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_badFebKey
Definition: LArHitEMapToDigitAlg.h:106
LArHitEMapToDigitAlg::m_randomSeedOffset
Gaudi::Property< uint32_t > m_randomSeedOffset
Definition: LArHitEMapToDigitAlg.h:126
LArHitEMapToDigitAlg::m_NoiseOnOff
Gaudi::Property< bool > m_NoiseOnOff
Definition: LArHitEMapToDigitAlg.h:138
LArHitEMapToDigitAlg::m_hitMapKey_DigiHSTruth
SG::ReadHandleKey< LArHitEMap > m_hitMapKey_DigiHSTruth
Definition: LArHitEMapToDigitAlg.h:114
LArHitEMapToDigitAlg::m_WindowsPtCut
Gaudi::Property< float > m_WindowsPtCut
Definition: LArHitEMapToDigitAlg.h:169
LArHitEMapToDigitAlg::m_larfcal_id
const LArFCAL_ID * m_larfcal_id
Definition: LArHitEMapToDigitAlg.h:176
LArHitEMapToDigitAlg::m_laronline_id
const LArOnlineID * m_laronline_id
Definition: LArHitEMapToDigitAlg.h:177
LArHEC_ID
Helper class for LArHEC offline identifiers.
Definition: LArHEC_ID.h:85
LArHitEMapToDigitAlg::initialize
virtual StatusCode initialize()
Definition: LArHitEMapToDigitAlg.cxx:46
LArHitEMapToDigitAlg::m_RndmEvtOverlay
Gaudi::Property< bool > m_RndmEvtOverlay
Definition: LArHitEMapToDigitAlg.h:144
LArHitEMapToDigitAlg::FCAL
@ FCAL
Definition: LArHitEMapToDigitAlg.h:130
ILArOFC.h
LArHitEMapToDigitAlg::m_rndmGenSvc
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
Definition: LArHitEMapToDigitAlg.h:125
SG::ReadHandleKey< LArHitEMap >
HWIdentifier
Definition: HWIdentifier.h:13
LArAutoCorrNoise.h
LArHitEMapToDigitAlg::m_noiseKey
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
Definition: LArHitEMapToDigitAlg.h:94
LArHitEMapToDigitAlg::m_inputDigitContainerKey
SG::ReadHandleKey< LArDigitContainer > m_inputDigitContainerKey
Definition: LArHitEMapToDigitAlg.h:115
ReadCondHandle.h
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
LArHitEMapToDigitAlg::m_fSamplKey
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
Definition: LArHitEMapToDigitAlg.h:95
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
LArHitEMapToDigitAlg::m_bcContKey
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Definition: LArHitEMapToDigitAlg.h:105
LArHitEMapToDigitAlg::m_pedestalKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Definition: LArHitEMapToDigitAlg.h:97
LArHitEMapToDigitAlg::m_Windows
Gaudi::Property< bool > m_Windows
Definition: LArHitEMapToDigitAlg.h:163
LArBadChannelCont.h
LArADC2MeV.h
LArHitEMapToDigitAlg::m_NoiseInEMB
Gaudi::Property< bool > m_NoiseInEMB
Definition: LArHitEMapToDigitAlg.h:151
WriteHandle.h
Handle class for recording to StoreGate.
LArHitEMapToDigitAlg::pointerFromKey
const T * pointerFromKey(const EventContext &context, const SG::ReadCondHandleKey< T > &key) const
Definition: LArHitEMapToDigitAlg.h:182
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:125
LArOnOffIdMapping.h
LArHitEMap.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::WriteHandleKey< LArDigitContainer >
LArHitEMapToDigitAlg::m_adc2mevKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
Definition: LArHitEMapToDigitAlg.h:99
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
LArHitEMapToDigitAlg
Definition: LArHitEMapToDigitAlg.h:60
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LArHitEMapToDigitAlg::m_roundingNoNoise
Gaudi::Property< bool > m_roundingNoNoise
Definition: LArHitEMapToDigitAlg.h:161
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
LArHitEMapToDigitAlg::staticVecFloat_t
boost::container::static_vector< float, s_MaxNSamples > staticVecFloat_t
Definition: LArHitEMapToDigitAlg.h:73
LArHitEMapToDigitAlg::m_HighGainThresh
double m_HighGainThresh[4]
Definition: LArHitEMapToDigitAlg.h:132
LArHitEMapToDigitAlg::m_bcMask
LArBadChannelMask m_bcMask
Definition: LArHitEMapToDigitAlg.h:108
LArHitEMapToDigitAlg::MakeDigit
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
Definition: LArHitEMapToDigitAlg.cxx:202
LArHitEMapToDigitAlg::m_NSamples
Gaudi::Property< int > m_NSamples
Definition: LArHitEMapToDigitAlg.h:136
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
WriteCellNoiseToCool.igain
igain
Definition: WriteCellNoiseToCool.py:338
LArHitEMapToDigitAlg::ConvertHits2Samples
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
Definition: LArHitEMapToDigitAlg.cxx:646
DataPool.h
LArHitEMapToDigitAlg::m_WindowsPhiSize
Gaudi::Property< float > m_WindowsPhiSize
Definition: LArHitEMapToDigitAlg.h:167
AthReentrantAlgorithm.h
LArHitEMapToDigitAlg::m_LowGainThresh
double m_LowGainThresh[4]
Definition: LArHitEMapToDigitAlg.h:131
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
ILArShape.h
LArHitEMapToDigitAlg::m_usePhase
Gaudi::Property< bool > m_usePhase
Definition: LArHitEMapToDigitAlg.h:142
LArHitEMapToDigitAlg::staticVecDouble_t
boost::container::static_vector< double, s_MaxNSamples > staticVecDouble_t
Definition: LArHitEMapToDigitAlg.h:72
LArHitEMapToDigitAlg::LArHitEMapToDigitAlg
LArHitEMapToDigitAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArHitEMapToDigitAlg.cxx:23
LArHitEMapToDigitAlg::m_NoiseInHEC
Gaudi::Property< bool > m_NoiseInHEC
Definition: LArHitEMapToDigitAlg.h:155
LArHitEMapToDigitAlg::m_larem_id
const LArEM_ID * m_larem_id
Definition: LArHitEMapToDigitAlg.h:174
LArHitEMapToDigitAlg::m_WindowsEtaSize
Gaudi::Property< float > m_WindowsEtaSize
Definition: LArHitEMapToDigitAlg.h:165
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
ITriggerTime
interface to a tool that returns the time offset of the current trigger. Used by PileUpMergeSvc
Definition: ITriggerTime.h:19
LArOnlineID
Definition: LArOnlineID.h:20
LArDigitContainer.h
LArHitEMapToDigitAlg::m_larhec_id
const LArHEC_ID * m_larhec_id
Definition: LArHitEMapToDigitAlg.h:175
LArHitEMapToDigitAlg::EMIW
@ EMIW
Definition: LArHitEMapToDigitAlg.h:130
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
LArHitEMapToDigitAlg::m_problemsToMask
Gaudi::Property< std::vector< std::string > > m_problemsToMask
Definition: LArHitEMapToDigitAlg.h:107
LArHitEMapToDigitAlg::m_isMcOverlay
Gaudi::Property< bool > m_isMcOverlay
Definition: LArHitEMapToDigitAlg.h:146
SG::ReadCondHandleKey
Definition: ReadCondHandleKey.h:20
LArHitEMapToDigitAlg::m_pedestalNoise
Gaudi::Property< bool > m_pedestalNoise
Definition: LArHitEMapToDigitAlg.h:159
LArHitEMapToDigitAlg::m_DigitContainerName_DigiHSTruth
SG::WriteHandleKey< LArDigitContainer > m_DigitContainerName_DigiHSTruth
Definition: LArHitEMapToDigitAlg.h:120
LArHitEMapToDigitAlg::m_cabling
const LArOnOffIdMapping * m_cabling
Definition: LArHitEMapToDigitAlg.h:101
ILArPedestal.h
LArHitContainer.h
LArHitEMapToDigitAlg::m_DigitContainerName
SG::WriteHandleKey< LArDigitContainer > m_DigitContainerName
Definition: LArHitEMapToDigitAlg.h:118
DataPool
a typed memory pool that saves time spent allocation small object. This is typically used by containe...
Definition: DataPool.h:47
LArHitEMapToDigitAlg::execute
virtual StatusCode execute(const EventContext &context) const
Definition: LArHitEMapToDigitAlg.cxx:102
LArHitEMapToDigitAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArHitEMapToDigitAlg.h:100
LArHitEMapToDigitAlg::m_EnergyThresh
Gaudi::Property< double > m_EnergyThresh
Definition: LArHitEMapToDigitAlg.h:134
pickleTool.object
object
Definition: pickleTool.py:30
LArHitEMapToDigitAlg::m_calocell_id
const CaloCell_ID * m_calocell_id
Definition: LArHitEMapToDigitAlg.h:173
LArEM_ID
Helper class for LArEM offline identifiers.
Definition: LArEM_ID.h:118
SG::ReadCondHandle::key
const std::string & key() const
Definition: ReadCondHandle.h:59
CaloGain.h
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
LArBadChannelMask.h
LArHitEMapToDigitAlg::EM
@ EM
Definition: LArHitEMapToDigitAlg.h:130
LArHitEMapToDigitAlg::m_randomStreamName
Gaudi::Property< std::string > m_randomStreamName
Definition: LArHitEMapToDigitAlg.h:122
LArHitEMapToDigitAlg::m_hitMapKey
SG::ReadHandleKey< LArHitEMap > m_hitMapKey
Definition: LArHitEMapToDigitAlg.h:113
LArHitEMapToDigitAlg::m_firstSample
Gaudi::Property< int > m_firstSample
Definition: LArHitEMapToDigitAlg.h:140
ILArfSampl.h
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
LArHitEMapToDigitAlg::m_doDigiTruth
Gaudi::Property< bool > m_doDigiTruth
Definition: LArHitEMapToDigitAlg.h:148
LArHitEMapToDigitAlg::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArHitEMapToDigitAlg.h:110
IAthRNGSvc.h
ServiceHandle< IAthRNGSvc >
LArHitEMapToDigitAlg::m_useLegacyRandomSeeds
Gaudi::Property< bool > m_useLegacyRandomSeeds
Definition: LArHitEMapToDigitAlg.h:127
LArBadChannelMask
Definition: LArBadChannelMask.h:18
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
LArHitEMapToDigitAlg::HEC
@ HEC
Definition: LArHitEMapToDigitAlg.h:130
Identifier
Definition: IdentifierFieldParser.cxx:14