ATLAS Offline Software
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
LArHitEMapToDigitAlg Class Reference

#include <LArHitEMapToDigitAlg.h>

Inheritance diagram for LArHitEMapToDigitAlg:
Collaboration diagram for LArHitEMapToDigitAlg:

Public Member Functions

 LArHitEMapToDigitAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual StatusCode initialize ()
 
virtual StatusCode execute (const EventContext &context) const
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Types

enum  CaloNum { EM, HEC, FCAL, EMIW }
 
using staticVecDouble_t = boost::container::static_vector< double, s_MaxNSamples >
 
using staticVecFloat_t = boost::container::static_vector< float, s_MaxNSamples >
 

Protected Member Functions

template<class T >
const T * pointerFromKey (const EventContext &context, const SG::ReadCondHandleKey< T > &key) const
 
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
 
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
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

SG::ReadCondHandleKey< ILArNoisem_noiseKey {this,"NoiseKey","LArNoiseSym","SG Key of ILArNoise object"}
 
SG::ReadCondHandleKey< ILArfSamplm_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"}
 
SG::ReadCondHandleKey< ILArOFCm_OFCKey {this, "OFCKey", "LArOFC", "SG Key of OFC conditions object"}
 
SG::ReadCondHandleKey< ILArPedestalm_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
 
SG::ReadCondHandleKey< ILArShapem_shapeKey {this,"ShapeKey","LArShapeSym","SG Key of LArShape object"}
 
SG::ReadCondHandleKey< LArADC2MeVm_adc2mevKey {this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"}
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
const LArOnOffIdMappingm_cabling {}
 
SG::ReadCondHandleKey< LArAutoCorrNoisem_autoCorrNoiseKey {this,"AutoCorrNoiseKey","LArAutoCorrNoise","SG Key of AutoCorrNoise conditions object"}
 
SG::ReadCondHandleKey< LArBadChannelContm_bcContKey {this, "BadChanKey", "LArBadChannel", "SG key for LArBadChan object"}
 
SG::ReadCondHandleKey< LArBadFebContm_badFebKey {this, "BadFebKey", "LArBadFeb", "Key of BadFeb object in ConditionsStore"}
 
Gaudi::Property< std::vector< std::string > > m_problemsToMask {this,"ProblemsToMask",{},"Bad-Channel categories to mask entirly"}
 
LArBadChannelMask m_bcMask
 
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
 
SG::ReadHandleKey< LArHitEMapm_hitMapKey {this,"LArHitEMapKey","LArHitEMap"}
 
SG::ReadHandleKey< LArHitEMapm_hitMapKey_DigiHSTruth {this,"LArHitEMap_DigiHSTruthKey","LArHitEMap_DigiHSTruth"}
 
SG::ReadHandleKey< LArDigitContainerm_inputDigitContainerKey
 
SG::WriteHandleKey< LArDigitContainerm_DigitContainerName
 
SG::WriteHandleKey< LArDigitContainerm_DigitContainerName_DigiHSTruth
 
Gaudi::Property< std::string > m_randomStreamName {this, "RandomStreamName", "LArDigitization", ""}
 
ServiceHandle< IAthRNGSvcm_rndmGenSvc {this, "RndmSvc", "AthRNGSvc", ""}
 
Gaudi::Property< uint32_t > m_randomSeedOffset {this, "RandomSeedOffset", 2, ""}
 
Gaudi::Property< bool > m_useLegacyRandomSeeds
 
double m_LowGainThresh [4] {}
 
double m_HighGainThresh [4] {}
 
Gaudi::Property< double > m_EnergyThresh
 
Gaudi::Property< int > m_NSamples
 
Gaudi::Property< bool > m_NoiseOnOff
 
Gaudi::Property< int > m_firstSample
 
Gaudi::Property< bool > m_usePhase
 
Gaudi::Property< bool > m_RndmEvtOverlay
 
Gaudi::Property< bool > m_isMcOverlay
 
Gaudi::Property< bool > m_doDigiTruth
 
Gaudi::Property< bool > m_NoiseInEMB
 
Gaudi::Property< bool > m_NoiseInEMEC
 
Gaudi::Property< bool > m_NoiseInHEC
 
Gaudi::Property< bool > m_NoiseInFCAL
 
Gaudi::Property< bool > m_pedestalNoise
 
Gaudi::Property< bool > m_roundingNoNoise
 
Gaudi::Property< bool > m_Windows
 
Gaudi::Property< float > m_WindowsEtaSize
 
Gaudi::Property< float > m_WindowsPhiSize
 
Gaudi::Property< float > m_WindowsPtCut
 
const CaloCell_IDm_calocell_id {}
 
const LArEM_IDm_larem_id {}
 
const LArHEC_IDm_larhec_id {}
 
const LArFCAL_IDm_larfcal_id {}
 
const LArOnlineIDm_laronline_id {}
 

Static Protected Attributes

static constexpr int s_MaxNSamples = 8
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 59 of file LArHitEMapToDigitAlg.h.

Member Typedef Documentation

◆ staticVecDouble_t

using LArHitEMapToDigitAlg::staticVecDouble_t = boost::container::static_vector<double,s_MaxNSamples>
protected

Definition at line 72 of file LArHitEMapToDigitAlg.h.

◆ staticVecFloat_t

using LArHitEMapToDigitAlg::staticVecFloat_t = boost::container::static_vector<float,s_MaxNSamples>
protected

Definition at line 73 of file LArHitEMapToDigitAlg.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ CaloNum

Enumerator
EM 
HEC 
FCAL 
EMIW 

Definition at line 130 of file LArHitEMapToDigitAlg.h.

130 {EM,HEC,FCAL,EMIW};

Constructor & Destructor Documentation

◆ LArHitEMapToDigitAlg()

LArHitEMapToDigitAlg::LArHitEMapToDigitAlg ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 23 of file LArHitEMapToDigitAlg.cxx.

23  :
24  AthReentrantAlgorithm(name,pSvcLocator)
25 {
26  // default properties
27  m_LowGainThresh[EM] = 3900;//ADC counts in MediumGain
28  m_HighGainThresh[EM] = 1300;//ADC counts in MediumGain
29  m_LowGainThresh[HEC] = 2500;//ADC counts in MediumGain
30  m_HighGainThresh[HEC] = 0;//-> high-gain never used for HEC
31  m_LowGainThresh[FCAL] = 2000.;//ADC counts in Medium Gain
32  m_HighGainThresh[FCAL] = 1100.;//ADCcounts in MediumGain
33  m_LowGainThresh[EMIW] = 3900;//ADC counts in MediumGain
34  m_HighGainThresh[EMIW] = 1300;//ADC counts in MediumGain
35  // given the enum, it seems complicated to do it with modern configuration
36  declareProperty("LowGainThreshEM",m_LowGainThresh[EM],"Medium/Low gain transition in EM");
37  declareProperty("HighGainThreshEM",m_HighGainThresh[EM],"Medium/High gain transition in EM");
38  declareProperty("LowGainThreshHEC",m_LowGainThresh[HEC],"Medium/Low gain transition in HEC");
39  declareProperty("HighGainThreshHEC",m_HighGainThresh[HEC],"Medium/High gain transition in HEC");
40  declareProperty("LowGainThreshFCAL",m_LowGainThresh[FCAL],"Medium/Low gain transition in FCAL");
41  declareProperty("HighGainThreshFCAL",m_HighGainThresh[FCAL],"Medium/High gain transition in FCAL");
42  declareProperty("LowGainThreshEMECIW",m_LowGainThresh[EMIW],"Medium/Low gain transition in EMEC IW");
43  declareProperty("HighGainThreshEMECIW",m_HighGainThresh[EMIW],"Medium/High gain transition in EMEC IW");
44 }

Member Function Documentation

◆ cardinality()

unsigned int AthReentrantAlgorithm::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ ConvertHits2Samples()

StatusCode LArHitEMapToDigitAlg::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
protected

Definition at line 646 of file LArHitEMapToDigitAlg.cxx.

650 {
651 // Converts hits of a particular LAr cell into energy samples
652 // declarations
653  int nsamples ;
654  int nsamples_der ;
655  int i ;
656  int j ;
657  float energy ;
658  float time ;
659 
661  const ILArShape* shape=*shapeHdl;
662 
663 
664 // ........ retrieve data (1/2) ................................
665 //
666  ILArShape::ShapeRef_t Shape = shape->Shape(ch_id,igain);
667  ILArShape::ShapeRef_t ShapeDer = shape->ShapeDer(ch_id,igain);
668 
669  nsamples = Shape.size();
670  nsamples_der = ShapeDer.size();
671 
672  if (nsamples==0) {
673  ATH_MSG_INFO(" No samples for cell = " << cellId );
674  return StatusCode::FAILURE;
675  }
676 
677 #ifndef NDEBUG
678  ATH_MSG_DEBUG(" Cellid " << m_larem_id->show_to_string(cellId));
679  for (i=0;i<nsamples;i++)
680  {
681  ATH_MSG_DEBUG(Shape[i] << " ");
682  }
683 #endif
684 
685  std::vector<std::pair<float,float> >::const_iterator first = TimeE->begin();
686  std::vector<std::pair<float,float> >::const_iterator last = TimeE->end();
687 
688  while (first != last)
689  {
690  energy = (*first).first;
691  time = (*first).second;
692 
693 #ifndef NDEBUG
694  ATH_MSG_DEBUG("m_NSamples, m_usePhase " << m_NSamples << " " << m_usePhase);
695 #endif
696 
697  // fix the shift +1 if HEC and nSamples 4 and firstSample 0
698  // in case of data overlay this should NOT be done as the pulse shape read from the database is already shifted
699  // but this should still be done in case of MC overlay
700  int ihecshift=0;
701  if((!m_RndmEvtOverlay || m_isMcOverlay) && m_larem_id->is_lar_hec(cellId) && m_NSamples.value() == 4 && m_firstSample.value() == 0) ihecshift=1;
702 
703 
704  if (!m_usePhase) {
705 
706  // Atlas like mode where we use 25ns binned pulse shape and derivative to deal with time offsets
707 
708 // shift between reference shape and this time
709  int ishift=(int)(rint(time*(1./25.)));
710  double dtime=time-25.*((double)(ishift));
711  for (i=0;i<m_NSamples.value();i++)
712  {
713  j = i - ishift + m_firstSample + ihecshift;
714 #ifndef NDEBUG
715  ATH_MSG_DEBUG(" time/i/j " << time << " "<< i << " " << j);
716 #endif
717  if (j >=0 && j < nsamples ) {
718  if (j<nsamples_der && std::abs(ShapeDer[j])<10. )
719  sampleList[i] += (Shape[j]- ShapeDer[j]*dtime)*energy ;
720  else sampleList[i] += Shape[j]*energy ;
721  }
722  }
723  }
724 // Mode to use phase (tbin) to get pulse shape ( pulse shape with fine time binning should be available)
725 
726  else {
727 
728  // FIXME hardcode 8phases3ns configuration (cannot access parameters from ILArShape interface now)
729  int nTimeBins = 8;
730  float timeBinWidth = 25./24.*3.;
731 
732 // -50<t<-25 phase=-t-25, shift by one peak time (for s2 uses shape(3) with tbin)
733 // for -25<t<0 phase = -t, no shift of peak time
734 // for 0<t<25 phase=25-t, shift by one peak time (for s2 uses shape(1) with tbin)
735 // 25<t<50 phase=50-t, shift by two
736 // etc...
737 
738  int ishift = (int)(time*(1./25.));
739  int tbin;
740  if (time>0) {
741  tbin = (int)(fmod(time,25)/timeBinWidth);
742  if (tbin>0) {
743  tbin=nTimeBins-tbin;
744  ishift +=1;
745  }
746  } else {
747  tbin = (int)(fmod(-time,25)/timeBinWidth);
748  }
749 
750  double dtime = time - ( 25.*((float)(ishift)) - timeBinWidth*tbin);
751 
752  Shape = shape->Shape(ch_id,igain,tbin);
753  ShapeDer = shape->ShapeDer(ch_id,igain,tbin);
754 
755  nsamples = Shape.size();
756  nsamples_der = ShapeDer.size();
757 
758 
759  for (i=0;i<m_NSamples.value();i++)
760  {
761  j = i - ishift+m_firstSample + ihecshift;
762 #ifndef NDEBUG
763  ATH_MSG_DEBUG(" time/i/j " << time << " "<< i << " " << j);
764 #endif
765  if (j >=0 && j < nsamples ) {
766  if (j<nsamples_der && std::abs(ShapeDer[j])<10. )
767  sampleList[i] += (Shape[j]- ShapeDer[j]*dtime)*energy ;
768  else sampleList[i] += Shape[j]*energy ;
769  }
770  }
771 
772  } // else if of m_usePhase
773 
774  ++first;
775  } // loop over hits
776 
777  return StatusCode::SUCCESS;
778 
779 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode LArHitEMapToDigitAlg::execute ( const EventContext &  context) const
virtual

Definition at line 102 of file LArHitEMapToDigitAlg.cxx.

102  {
103 
104  // load many conditions
105  const LArBadFebCont* badFebs = pointerFromKey<LArBadFebCont>(context,m_badFebKey);
107  const LArOnOffIdMapping* cabling=*cablingHdl;
108  if(!cabling) {
109  ATH_MSG_ERROR("Failed to retrieve LAr Cabling map with key " << m_cablingKey.key() );
110  return StatusCode::FAILURE;
111  }
112 
113  // Inputs
114  SG::ReadHandle<LArHitEMap> hitmap(m_hitMapKey,context);
115  const LArHitEMap* hitmapPtr = hitmap.cptr();
116  const LArHitEMap* hitmapPtr_DigiHSTruth = nullptr;
117  if ( m_doDigiTruth ) {
118  SG::ReadHandle<LArHitEMap> hitmap_DigitHSTruth(m_hitMapKey_DigiHSTruth,context);
119  hitmapPtr_DigiHSTruth = hitmap_DigitHSTruth.cptr();
120  }
121 
122  int it,it_end;
123  it = 0;
124  it_end = hitmapPtr->GetNbCells();
125 
126  // Prepare Output
127  //
128  // For the standard one lets use a DataPool
129  auto DigitContainer = std::make_unique<LArDigitContainer>(SG::VIEW_ELEMENTS);
130  DigitContainer->reserve(it_end);
131  DataPool<LArDigit> dataItemsPool(context);
132  dataItemsPool.reserve(it_end);
133  //
134  // HSTruth outputt might not be needed so avoid doing anything
135  // in that case
136  std::unique_ptr<LArDigitContainer> DigitContainer_DigiHSTruth = nullptr;
137  if (m_doDigiTruth){
138  DigitContainer_DigiHSTruth = std::make_unique<LArDigitContainer>();
139  DigitContainer_DigiHSTruth->reserve(it_end);
140  }
141  //
142  const std::vector<std::pair<float,float> >* TimeE;
143  const std::vector<std::pair<float,float> >* TimeE_DigiHSTruth = nullptr;
144 
145  ATHRNG::RNGWrapper* rngWrapper = m_rndmGenSvc->getEngine(this, m_randomStreamName);
146  CLHEP::HepRandomEngine * engine = rngWrapper->getEngine(context);
148  rngWrapper->setSeedLegacy( m_randomStreamName, context, m_randomSeedOffset, seedingmode );
149 
150  for( ; it!=it_end;++it) // now loop on cells
151  {
152  const LArHitList& hitlist = hitmapPtr->GetCell(it);
153 
154  if (!m_Windows || hitlist.inWindows()) {
155  TimeE = &(hitlist.getData());
156  if(m_doDigiTruth) {
157  const auto& hitlist_DigiHSTruth=hitmapPtr_DigiHSTruth->GetCell(it);
158  TimeE_DigiHSTruth = &(hitlist_DigiHSTruth.getData());
159  }
160 
161  if (!TimeE->empty() || m_NoiseOnOff || m_RndmEvtOverlay) {
163  HWIdentifier ch_id = cabling->createSignalChannelIDFromHash(IdentifierHash(it));
164  HWIdentifier febId = m_laronline_id->feb_Id(ch_id);
165  bool missing=!(badFebs->status(febId).good());
166  if (!missing) {
167  const LArDigit * digit = nullptr ;
168  if(m_RndmEvtOverlay) digit = hitmapPtr->GetDigit(it);
169  // MakeDigit called if in no overlay mode or
170  // if in overlay mode and random digit exists
171  if ((!m_RndmEvtOverlay) || (m_RndmEvtOverlay && digit)) {
172  LArDigit* Digit = nullptr;
173  LArDigit* Digit_DigiHSTruth = nullptr;
174  ATH_CHECK(MakeDigit(context, cellID, ch_id, Digit,
175  dataItemsPool,
176  Digit_DigiHSTruth, TimeE, digit, engine,
177  TimeE_DigiHSTruth));
178  DigitContainer->push_back(Digit);
179  if (DigitContainer_DigiHSTruth){
180  DigitContainer_DigiHSTruth->push_back(Digit_DigiHSTruth);
181  }
182  }
183  }
184  }
185  } // check window
186  } // end of loop over the cells
187 
188 
189  ATH_MSG_DEBUG(" number of created digits = " << DigitContainer->size());
190 
191  SG::WriteHandle<LArDigitContainer> DigitContainerHandle( m_DigitContainerName, context);
192  ATH_CHECK(DigitContainerHandle.record( std::move(DigitContainer) ) );
193  if ( DigitContainer_DigiHSTruth ){
194  SG::WriteHandle<LArDigitContainer> DigitContainer_DigiHSTruthHandle( m_DigitContainerName_DigiHSTruth, context);
195  ATH_CHECK(DigitContainer_DigiHSTruthHandle.record( std::move(DigitContainer_DigiHSTruth) ) );
196  }
197 
198 
199  return StatusCode::SUCCESS;
200 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ initialize()

StatusCode LArHitEMapToDigitAlg::initialize ( )
virtual

Definition at line 46 of file LArHitEMapToDigitAlg.cxx.

47 {
48 
49  if (m_NSamples > s_MaxNSamples) {
50  ATH_MSG_ERROR("Requested Nsamples " << m_NSamples << " larger than max "
51  << s_MaxNSamples);
52  return StatusCode::FAILURE;
53  }
56 
62  ATH_CHECK(m_bcContKey.initialize());
63  ATH_CHECK(m_badFebKey.initialize());
66 
68 
69  // helpers
70  //retrieve ID helpers
71  ATH_CHECK(detStore()->retrieve(m_calocell_id,"CaloCell_ID"));
72 
73 
74  const CaloIdManager* caloIdMgr = nullptr;
75  StatusCode sc = detStore()->retrieve(caloIdMgr);
76  if (sc.isFailure()) {
77  ATH_MSG_ERROR(" Unable to retrieve CaloIdManager from DetectoreStore");
78  return StatusCode::FAILURE;
79  }
80  m_larem_id = caloIdMgr->getEM_ID();
81  m_larhec_id = caloIdMgr->getHEC_ID();
82  m_larfcal_id = caloIdMgr->getFCAL_ID();
83 
84  sc = detStore()->retrieve(m_laronline_id);
85  if (sc.isFailure()) {
86  ATH_MSG_ERROR(" Unable to retrieve LArOnlineId from DetectoreStore");
87  return StatusCode::FAILURE;
88  }
90 
91  // Services
92  ATH_CHECK(m_rndmGenSvc.retrieve());
95 
98  return StatusCode::SUCCESS;
99 
100 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

bool AthReentrantAlgorithm::isClonable ( ) const
overridevirtualinherited

◆ MakeDigit()

StatusCode LArHitEMapToDigitAlg::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
protected

Retrieve BadChannels

Definition at line 202 of file LArHitEMapToDigitAlg.cxx.

212  {
213  bool createDigit_DigiHSTruth = true;
214 
215  int sampleGainChoice{2};
216  if (m_firstSample<0) sampleGainChoice-=m_firstSample;
217 
218  int i;
219  short Adc;
220  short Adc_DigiHSTruth;
221 
223  std::vector<short> AdcSample(m_NSamples);
224  std::vector<short> AdcSample_DigiHSTruth(m_NSamples);
225 
226  float MeV2GeV=0.001; // to convert hit from MeV to GeV before apply GeV->ADC
227 
228  float SF=1.;
229  float SigmaNoise;
230  staticVecFloat_t rndm_energy_samples(m_NSamples) ;
231 
232 
234  const LArADC2MeV* adc2MeVs=*adc2mevHdl;
235 
237  const ILArfSampl* fSampl=*fSamplHdl;
238 
240  const ILArPedestal* pedestal=*pedHdl;
241 
242  const ILArNoise* noise=nullptr;
245  noise=*noiseHdl;
246  }
247 
248  const LArAutoCorrNoise* autoCorrNoise=nullptr;
249  if ( !m_RndmEvtOverlay && m_NoiseOnOff) {
251  autoCorrNoise=*autoCorrNoiseHdl;
252  }
253 
256  const LArBadChannelCont* bcCont{*bch};
257 
258  int iCalo=0;
259  if(m_larem_id->is_lar_em(cellId)) {
260  if (m_larem_id->is_em_endcap_inner(cellId)) iCalo=EMIW;
261  else iCalo=EM;
262  }
263  if(m_larem_id->is_lar_hec(cellId)) iCalo=HEC;
264  if(m_larem_id->is_lar_fcal(cellId)) iCalo=FCAL;
265 
267  if (iCalo==HEC) initialGain = CaloGain::LARMEDIUMGAIN;
268 
270 
271 // ........ retrieve data (1/2) ................................
272 //
273  SF=fSampl->FSAMPL(ch_id);
274 
275 //
276 // ....... dump info ................................
277 //
278 #ifndef NDEBUG
279  ATH_MSG_DEBUG(" Cellid " << m_larem_id->show_to_string(cellId));
280  ATH_MSG_DEBUG(" SF: " << SF);
281 #endif
282 
284  staticVecDouble_t Samples_DigiHSTruth;
285  staticVecDouble_t Noise;
286  Samples.resize(m_NSamples,0);
287  if(m_doDigiTruth) Samples_DigiHSTruth.resize(m_NSamples,0);
288  Noise.resize(m_NSamples,0);
289 
290 //
291 // ....... make the five samples
292 //
293 
294 #ifndef NDEBUG
295  ATH_MSG_DEBUG(" number of hit for this cell " << TimeE->size());
296 #endif
297 
298 //
299 // convert Hits into energy samples and add result to Samples assuming LARHIGHGAIN for pulse shape
300 //
301  bool isDead = m_bcMask.cellShouldBeMasked(bcCont,ch_id);
302 
303 
304  if (!isDead) {
305  if( this->ConvertHits2Samples(ctx, cellId,ch_id,initialGain,TimeE, Samples).isFailure() ) {
306  return StatusCode::SUCCESS;
307  }
308  if(m_doDigiTruth){
309  if( this->ConvertHits2Samples(ctx, cellId,ch_id,initialGain,TimeE_DigiHSTruth, Samples_DigiHSTruth).isFailure() ) {
310  return StatusCode::SUCCESS;
311  }
312  }
313  }
314 
315 //
316 // .... add random event digit if needed
317 //
318  float energy2adc ;
319  float rAdc ;
320  if(m_RndmEvtOverlay && rndmEvtDigit ) // no overlay if missing random digit
321  {
322  rndmGain= rndmEvtDigit->gain();
323  auto polynom_adc2mev =adc2MeVs->ADC2MEV(cellId,rndmEvtDigit->gain());
324  if (polynom_adc2mev.size() > 1) {
325  float adc2energy = SF * polynom_adc2mev[1];
326  const std::vector<short> & rndm_digit_samples = rndmEvtDigit->samples() ;
327  float Pedestal = pedestal->pedestal(ch_id,rndmEvtDigit->gain());
328  if (Pedestal <= (1.0+LArElecCalib::ERRORCODE)) {
329  ATH_MSG_WARNING(" Pedestal not found in database for this channel offID " << cellId << " Use sample 0 for random");
330  Pedestal = rndm_digit_samples[0];
331  }
332  ATH_MSG_DEBUG(" Params for inverting LAr Digitization: pedestal " << Pedestal << " adc2energy " << adc2energy);
333 
334 // in case Medium or low gain, take into account ramp intercept in ADC->"energy" computation
335 // this requires to take into account the sum of the optimal filter coefficients, as they don't compute with ADC shift
336  float adc0=0.;
337  if (!m_isMcOverlay && rndmEvtDigit->gain()>0) {
339  if (larOFC.cptr() != nullptr) {
340  ILArOFC::OFCRef_t ofc_a = larOFC->OFC_a(ch_id,rndmEvtDigit->gain(),0);
341  float sumOfc=0.;
342  if (ofc_a.size()>0) {
343  for (unsigned int j=0;j<ofc_a.size();j++) sumOfc += ofc_a.at(j);
344  }
345  if (sumOfc>0) adc0 = polynom_adc2mev[0] * SF /sumOfc;
346  }
347  }
348 
349  int nmax=m_NSamples;
350  if ((int)(rndm_digit_samples.size()) < m_NSamples) {
352  "Less digit Samples than requested in digitization for cell "
353  << ch_id.get_compact() << " Digit has " << rndm_digit_samples.size()
354  << " samples. Digitization request " << m_NSamples);
355  nmax = rndm_digit_samples.size();
356  }
357  for(i=0 ; i<nmax ; i++)
358  {
359  rAdc = (rndm_digit_samples[i] - Pedestal ) * adc2energy + adc0;
360  rndm_energy_samples[i] = rAdc ;
361  Samples[i] += rAdc ;
362  }
363  }
364  else {
365  ATH_MSG_WARNING(" No ramp found for this random cell " << m_larem_id->show_to_string(cellId) << " for gain " << rndmEvtDigit->gain());
366  }
367  }
368 //...................................................................
369 
370 //
371 //........ choice of the gain
372 //
373 //
374 // fix the shift +1 if HEC and nSamples 4 and firstSample 0
375  int ihecshift=0;
376  if(iCalo == HEC && m_NSamples.value() == 4 && m_firstSample.value() == 0) ihecshift=1;
377  float samp2=Samples[sampleGainChoice-ihecshift]*MeV2GeV;
378  if ( samp2 <= m_EnergyThresh ) return(StatusCode::SUCCESS);
379 
380  if(m_doDigiTruth){
381  float Samp2_DigiHSTruth=Samples_DigiHSTruth[sampleGainChoice-ihecshift]*MeV2GeV;
382  if ( Samp2_DigiHSTruth <= m_EnergyThresh ) createDigit_DigiHSTruth = false;
383  }
384  //We choose the gain in applying thresholds on the 3rd Sample (index "2")
385  //converted in ADC counts in MediumGain (index "1" of (ADC2MEV)).
386  //Indeed, thresholds in ADC counts are defined with respect to the MediumGain.
387  //
388  // 1300 3900
389  // ---------------|----------------|--------------> ADC counts in MediumGain
390  // HighGain <--- MediumGain ---> LowGain
391 
392  float pseudoADC3;
393  float Pedestal = pedestal->pedestal(ch_id,CaloGain::LARMEDIUMGAIN);
394  if (Pedestal <= (1.0+LArElecCalib::ERRORCODE)) {
395  ATH_MSG_DEBUG(" Pedestal not found for medium gain ,cellID " << cellId << " assume 1000 ");
396  Pedestal=1000.;
397  }
398  auto polynom_adc2mev = adc2MeVs->ADC2MEV(cellId,CaloGain::LARMEDIUMGAIN);
399  if ( polynom_adc2mev.size() < 2) {
400  ATH_MSG_WARNING(" No medium gain ramp found for cell " << m_larem_id->show_to_string(cellId) << " no digit produced...");
401  return StatusCode::SUCCESS;
402  }
403  pseudoADC3 = Samples[sampleGainChoice-ihecshift]/(polynom_adc2mev[1])/SF + Pedestal ;
404  //
405  // ......... try a gain
406  //
407  if (pseudoADC3 <= m_HighGainThresh[iCalo]) {
409  } else if (pseudoADC3 <= m_LowGainThresh[iCalo]) {
411  } else {
413  }
414 
415  // check that select gain is never lower than random gain in case of overlay
418 
419 //
420 // recompute Samples if igain != HIGHGAIN
421 //
422  if (igain != initialGain ){
423  for (i=0;i<m_NSamples;i++) {
424  if(m_doDigiTruth) Samples_DigiHSTruth[i] = 0.;
425  if (m_RndmEvtOverlay) Samples[i]= rndm_energy_samples[i] ;
426  else Samples[i] = 0.;
427  }
428 
429  if (!isDead) {
430  if( this->ConvertHits2Samples(ctx, cellId,ch_id,igain,TimeE, Samples) == StatusCode::FAILURE ) {
431  return StatusCode::SUCCESS;
432  }
433  if(m_doDigiTruth){
434  if( this->ConvertHits2Samples(ctx, cellId,ch_id,igain,TimeE_DigiHSTruth, Samples_DigiHSTruth) == StatusCode::FAILURE ) {
435  return StatusCode::SUCCESS;
436  }
437  }
438  }
439  }
440 
441 //
442 // ........ add the noise ................................
443 //
444 
445  double Rndm[32]{};
446  int BvsEC=0;
447  if(iCalo==EM || iCalo==EMIW) BvsEC=std::abs(m_larem_id->barrel_ec(cellId));
448 
449  bool addedNoise=false;
450  if (m_NoiseOnOff &&
451  ((BvsEC == 1 && m_NoiseInEMB) || (BvsEC > 1 && m_NoiseInEMEC) ||
452  (iCalo == HEC && m_NoiseInHEC) || (iCalo == FCAL && m_NoiseInFCAL)))
453  // add the noise only in the wanted sub-detectors
454  {
455  if (!m_RndmEvtOverlay) {
456  if (!m_pedestalNoise) {
457  SigmaNoise = noise->noise(ch_id, igain);
458  } else {
459  float noise = pedestal->pedestalRMS(ch_id, igain);
460  if (noise >= (1.0 + LArElecCalib::ERRORCODE))
461  SigmaNoise = noise;
462  else
463  SigmaNoise = 0.;
464  }
465  // Sqrt of noise covariance matrix
466  const std::vector<float>& CorGen =
467  autoCorrNoise->autoCorrSqrt(cellId, igain);
468  if (CorGen.size() < (unsigned)m_NSamples * m_NSamples) {
469  ATH_MSG_ERROR("Noise AutoCorr too small, need "
470  << m_NSamples * m_NSamples << " points for "
471  << m_NSamples << " samples.");
472  return StatusCode::FAILURE;
473  }
474 
475  RandGaussZiggurat::shootArray(engine, m_NSamples, Rndm, 0., 1.);
476 
477  int index;
478  for (int i = 0; i < m_NSamples; i++) {
479  Noise[i] = 0.;
480  for (int j = 0; j <= i; j++) {
481  index = i * m_NSamples + j;
482  Noise[i] += Rndm[j] * CorGen[index];
483  }
484  Noise[i] = Noise[i] * SigmaNoise;
485  }
486  addedNoise = true;
487  } else {
488  // overlay case a priori don't add any noise
489  for (int i = 0; i < m_NSamples; i++)
490  Noise[i] = 0.;
491  // if gain from zerobias events is < gain from mixed events => add extra
492  // noise to account for gain vs noise dependance
493  // done in a simple way without taking into account the time
494  // correlation of this extra noise properly
495  if (rndmEvtDigit) {
496  // if gain of cell is different from ZB event gain
497  if (igain > rndmEvtDigit->gain()) {
498  double SigmaNoiseZB = 0.; // noise in ZB event for gain of ZB event
499  double SigmaNoise = 0.; // noise expected for new gain value
500  double SigmaExtraNoise = 0.; // quadratic difference of noise values
501  if (!m_pedestalNoise) {
502  SigmaNoiseZB = noise->noise(ch_id, rndmEvtDigit->gain());
503  SigmaNoise = noise->noise(ch_id, igain);
504  } else {
505  float noise = pedestal->pedestalRMS(ch_id, rndmEvtDigit->gain());
506  if (noise >= (1.0 + LArElecCalib::ERRORCODE))
507  SigmaNoiseZB = noise;
508  else
509  SigmaNoiseZB = 0.;
510  noise = pedestal->pedestalRMS(ch_id, igain);
511  if (noise >= (1.0 + LArElecCalib::ERRORCODE))
512  SigmaNoise = noise;
513  else
514  SigmaNoise = 0.;
515  }
516  // Convert SigmaNoiseZB in noise in ADC counts for igain conversion
517  auto polynom_adc2mevZB =
518  adc2MeVs->ADC2MEV(cellId, rndmEvtDigit->gain());
519  auto polynom_adc2mev = adc2MeVs->ADC2MEV(cellId, igain);
520  if (polynom_adc2mevZB.size() > 1 && polynom_adc2mev.size() > 1) {
521  if (polynom_adc2mev[1] > 0.) {
522  SigmaNoiseZB = SigmaNoiseZB * (polynom_adc2mevZB[1]) /
523  (polynom_adc2mev[1]);
524  if (SigmaNoise > SigmaNoiseZB)
525  SigmaExtraNoise = sqrt(SigmaNoise * SigmaNoise -
526  SigmaNoiseZB * SigmaNoiseZB);
527  }
528  } // check that AC2MeV factors are there
529  RandGaussZiggurat::shootArray(engine, m_NSamples, Rndm, 0.,
530  1.); // generate noise
531  for (int i = 0; i < m_NSamples; i++)
532  Noise[i] = SigmaExtraNoise * Rndm[i];
533  addedNoise = true;
534  } // different gains
535  } // rndm Digit is there
536  } // rndm Overlay test
537  } // add noise ?
538  //
539 // ......... convert into adc counts ................................
540 //
541  Pedestal = pedestal->pedestal(ch_id,igain);
542  if (Pedestal <= (1.0+LArElecCalib::ERRORCODE)) {
543  ATH_MSG_WARNING(" pedestal not found for cellId " << cellId << " assume 1000" );
544  Pedestal=1000.;
545  }
546  polynom_adc2mev = adc2MeVs->ADC2MEV(cellId,igain);
547  if (polynom_adc2mev.size() < 2) {
548  ATH_MSG_WARNING(" No ramp found for requested gain " << igain << " for cell " << m_larem_id->show_to_string(cellId) << " no digit made...");
549  return StatusCode::SUCCESS;
550  }
551 
552  energy2adc=1./(polynom_adc2mev[1])/SF;
553 
554 // in case Medium or low gain, take into account ramp intercept in energy->ADC computation
555 // this requires to take into account the sum of the optimal filter coefficients, as they don't compute with ADC shift
557  {
559  if (larOFC.cptr() != nullptr) {
560  float sumOfc=0.;
561  ILArOFC::OFCRef_t ofc_a = larOFC->OFC_a(ch_id,igain,0);
562  if (ofc_a.size()>0) {
563  for (unsigned int j=0;j<ofc_a.size();j++) sumOfc+= ofc_a.at(j);
564  }
565  if ((polynom_adc2mev[1])>0 && sumOfc>0) Pedestal = Pedestal - (polynom_adc2mev[0])/(polynom_adc2mev[1])/sumOfc;
566  ATH_MSG_DEBUG(" Params for final LAr Digitization gain: " << igain << " pedestal: " << Pedestal << " energy2adc: " << energy2adc);
567  }
568  }
569  for(i=0;i<m_NSamples;i++)
570  {
571  double xAdc;
572  double xAdc_DigiHSTruth = 0;
573 
574  if ( addedNoise ){
575  xAdc = Samples[i]*energy2adc + Noise[i] + Pedestal + 0.5;
576  if(m_doDigiTruth) {
577  xAdc_DigiHSTruth = Samples_DigiHSTruth[i]*energy2adc + Noise[i] + Pedestal + 0.5;
578  }
579  }
580 
581  else {
582  if (m_roundingNoNoise) {
583  float flatRndm = RandFlat::shoot(engine);
584  xAdc = Samples[i]*energy2adc + Pedestal + flatRndm;
585  if(m_doDigiTruth) {
586  xAdc_DigiHSTruth = Samples_DigiHSTruth[i]*energy2adc + Pedestal + flatRndm;
587  }
588 
589  }
590  else{
591  xAdc = Samples[i]*energy2adc + Pedestal + 0.5;
592  if(m_doDigiTruth) {
593  xAdc_DigiHSTruth = Samples_DigiHSTruth[i]*energy2adc + Pedestal + 0.5;
594  }
595  }
596 
597  }
598 
599 //
600 // ........ truncate at maximum value + 1
601 // add possibility to saturate at 0 for negative signals
602 //
603  if (xAdc <0) Adc=0;
604  else if (xAdc >= MAXADC) Adc=MAXADC;
605  else Adc = (short) xAdc;
606 
607  AdcSample[i]=Adc;
608 
609  if(m_doDigiTruth){
610  if (xAdc_DigiHSTruth <0) Adc_DigiHSTruth=0;
611  else if (xAdc_DigiHSTruth >= MAXADC) Adc_DigiHSTruth=MAXADC;
612  else Adc_DigiHSTruth = (short) xAdc_DigiHSTruth;
613  AdcSample_DigiHSTruth[i] = Adc_DigiHSTruth;
614  }
615 
616 #ifndef NDEBUG
617  ATH_MSG_DEBUG(" Sample " << i << " Energy= " << Samples[i] << " Adc=" << Adc);
618 #endif
619 
620  }
621 
622 //
623 // ...... create the LArDigit .............
624 //
625  Digit = dataItemsPool.nextElementPtr();
626  (*Digit)=LArDigit(ch_id,igain,std::move(AdcSample));
627 
628  if (m_doDigiTruth && createDigit_DigiHSTruth) {
629  createDigit_DigiHSTruth = false;
630  Digit_DigiHSTruth = nullptr;
631 
632  for (int i = 0; i < m_NSamples; i++) {
633  if (Samples_DigiHSTruth[i] != 0)
634  createDigit_DigiHSTruth = true;
635  }
636 
637  Digit_DigiHSTruth =
638  new LArDigit(ch_id, igain, std::move(AdcSample_DigiHSTruth));
639  }
640 
641  return StatusCode::SUCCESS;
642 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ pointerFromKey()

template<class T >
const T * LArHitEMapToDigitAlg::pointerFromKey ( const EventContext &  context,
const SG::ReadCondHandleKey< T > &  key 
) const
protected

Definition at line 182 of file LArHitEMapToDigitAlg.h.

182  {
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 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_adc2mevKey

SG::ReadCondHandleKey<LArADC2MeV> LArHitEMapToDigitAlg::m_adc2mevKey {this,"ADC2MeVKey","LArADC2MeV","SG Key of ADC2MeV conditions object"}
protected

Definition at line 99 of file LArHitEMapToDigitAlg.h.

◆ m_autoCorrNoiseKey

SG::ReadCondHandleKey<LArAutoCorrNoise> LArHitEMapToDigitAlg::m_autoCorrNoiseKey {this,"AutoCorrNoiseKey","LArAutoCorrNoise","SG Key of AutoCorrNoise conditions object"}
protected

Definition at line 103 of file LArHitEMapToDigitAlg.h.

◆ m_badFebKey

SG::ReadCondHandleKey<LArBadFebCont> LArHitEMapToDigitAlg::m_badFebKey {this, "BadFebKey", "LArBadFeb", "Key of BadFeb object in ConditionsStore"}
protected

Definition at line 106 of file LArHitEMapToDigitAlg.h.

◆ m_bcContKey

SG::ReadCondHandleKey<LArBadChannelCont> LArHitEMapToDigitAlg::m_bcContKey {this, "BadChanKey", "LArBadChannel", "SG key for LArBadChan object"}
protected

Definition at line 105 of file LArHitEMapToDigitAlg.h.

◆ m_bcMask

LArBadChannelMask LArHitEMapToDigitAlg::m_bcMask
protected

Definition at line 108 of file LArHitEMapToDigitAlg.h.

◆ m_cabling

const LArOnOffIdMapping* LArHitEMapToDigitAlg::m_cabling {}
protected

Definition at line 101 of file LArHitEMapToDigitAlg.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArHitEMapToDigitAlg::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
protected

Definition at line 100 of file LArHitEMapToDigitAlg.h.

◆ m_calocell_id

const CaloCell_ID* LArHitEMapToDigitAlg::m_calocell_id {}
protected

Definition at line 173 of file LArHitEMapToDigitAlg.h.

◆ m_caloMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> LArHitEMapToDigitAlg::m_caloMgrKey {this,"CaloDetDescrManager", "CaloDetDescrManager"}
protected

Definition at line 110 of file LArHitEMapToDigitAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DigitContainerName

SG::WriteHandleKey<LArDigitContainer> LArHitEMapToDigitAlg::m_DigitContainerName
protected
Initial value:
{this, "DigitContainer", "LArDigitContainer_MC",
"Name of output digit container"}

Definition at line 118 of file LArHitEMapToDigitAlg.h.

◆ m_DigitContainerName_DigiHSTruth

SG::WriteHandleKey<LArDigitContainer> LArHitEMapToDigitAlg::m_DigitContainerName_DigiHSTruth
protected
Initial value:
{this, "DigitContainer_DigiHSTruth",
"LArDigitContainer_DigiHSTruth", "Name of output signal digit container"}

Definition at line 120 of file LArHitEMapToDigitAlg.h.

◆ m_doDigiTruth

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_doDigiTruth
protected
Initial value:
{this, "DoDigiTruthReconstruction", false,
"Also create information about reconstructed digits for HS hits"}

Definition at line 148 of file LArHitEMapToDigitAlg.h.

◆ m_EnergyThresh

Gaudi::Property<double> LArHitEMapToDigitAlg::m_EnergyThresh
protected
Initial value:
{this, "EnergyThresh", -99.,
"Hit energy threshold (default=-99)"}

Definition at line 134 of file LArHitEMapToDigitAlg.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_firstSample

Gaudi::Property<int> LArHitEMapToDigitAlg::m_firstSample
protected
Initial value:
{this, "firstSample", 0,
"First sample to use for the shape for in-time signal"}

Definition at line 140 of file LArHitEMapToDigitAlg.h.

◆ m_fSamplKey

SG::ReadCondHandleKey<ILArfSampl> LArHitEMapToDigitAlg::m_fSamplKey {this,"fSamplKey","LArfSamplSym","SG Key of LArfSampl object"}
protected

Definition at line 95 of file LArHitEMapToDigitAlg.h.

◆ m_HighGainThresh

double LArHitEMapToDigitAlg::m_HighGainThresh[4] {}
protected

Definition at line 132 of file LArHitEMapToDigitAlg.h.

◆ m_hitMapKey

SG::ReadHandleKey<LArHitEMap> LArHitEMapToDigitAlg::m_hitMapKey {this,"LArHitEMapKey","LArHitEMap"}
protected

Definition at line 113 of file LArHitEMapToDigitAlg.h.

◆ m_hitMapKey_DigiHSTruth

SG::ReadHandleKey<LArHitEMap> LArHitEMapToDigitAlg::m_hitMapKey_DigiHSTruth {this,"LArHitEMap_DigiHSTruthKey","LArHitEMap_DigiHSTruth"}
protected

Definition at line 114 of file LArHitEMapToDigitAlg.h.

◆ m_inputDigitContainerKey

SG::ReadHandleKey<LArDigitContainer> LArHitEMapToDigitAlg::m_inputDigitContainerKey
protected
Initial value:
{this, "InputDigitContainer", "",
"Name of input digit container"}

Definition at line 115 of file LArHitEMapToDigitAlg.h.

◆ m_isMcOverlay

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_isMcOverlay
protected
Initial value:
{this, "isMcOverlay", false,
"Is input Overlay from MC or data (default=false, from data)"}

Definition at line 146 of file LArHitEMapToDigitAlg.h.

◆ m_larem_id

const LArEM_ID* LArHitEMapToDigitAlg::m_larem_id {}
protected

Definition at line 174 of file LArHitEMapToDigitAlg.h.

◆ m_larfcal_id

const LArFCAL_ID* LArHitEMapToDigitAlg::m_larfcal_id {}
protected

Definition at line 176 of file LArHitEMapToDigitAlg.h.

◆ m_larhec_id

const LArHEC_ID* LArHitEMapToDigitAlg::m_larhec_id {}
protected

Definition at line 175 of file LArHitEMapToDigitAlg.h.

◆ m_laronline_id

const LArOnlineID* LArHitEMapToDigitAlg::m_laronline_id {}
protected

Definition at line 177 of file LArHitEMapToDigitAlg.h.

◆ m_LowGainThresh

double LArHitEMapToDigitAlg::m_LowGainThresh[4] {}
protected

Definition at line 131 of file LArHitEMapToDigitAlg.h.

◆ m_NoiseInEMB

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_NoiseInEMB
protected
Initial value:
{this, "NoiseInEMB", true,
"put noise in EMB (default=true)"}

Definition at line 151 of file LArHitEMapToDigitAlg.h.

◆ m_NoiseInEMEC

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_NoiseInEMEC
protected
Initial value:
{this, "NoiseInEMEC", true,
"put noise in EMEC (default=true)"}

Definition at line 153 of file LArHitEMapToDigitAlg.h.

◆ m_NoiseInFCAL

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_NoiseInFCAL
protected
Initial value:
{this, "NoiseInFCAL", true,
"put noise in FCAL (default=true)"}

Definition at line 157 of file LArHitEMapToDigitAlg.h.

◆ m_NoiseInHEC

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_NoiseInHEC
protected
Initial value:
{this, "NoiseInHEC", true,
"put noise in HEC (default=true)"}

Definition at line 155 of file LArHitEMapToDigitAlg.h.

◆ m_noiseKey

SG::ReadCondHandleKey<ILArNoise> LArHitEMapToDigitAlg::m_noiseKey {this,"NoiseKey","LArNoiseSym","SG Key of ILArNoise object"}
protected

Definition at line 94 of file LArHitEMapToDigitAlg.h.

◆ m_NoiseOnOff

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_NoiseOnOff
protected
Initial value:
{this, "NoiseOnOff", true,
"put electronic noise (default=true)"}

Definition at line 138 of file LArHitEMapToDigitAlg.h.

◆ m_NSamples

Gaudi::Property<int> LArHitEMapToDigitAlg::m_NSamples
protected
Initial value:
{this, "Nsamples", 5,
"Number of ADC samples (default=5)"}

Definition at line 136 of file LArHitEMapToDigitAlg.h.

◆ m_OFCKey

SG::ReadCondHandleKey<ILArOFC> LArHitEMapToDigitAlg::m_OFCKey {this, "OFCKey", "LArOFC", "SG Key of OFC conditions object"}
protected

Definition at line 96 of file LArHitEMapToDigitAlg.h.

◆ m_pedestalKey

SG::ReadCondHandleKey<ILArPedestal> LArHitEMapToDigitAlg::m_pedestalKey {this,"PedestalKey","LArPedestal","SG Key of LArPedestal object"}
protected

Definition at line 97 of file LArHitEMapToDigitAlg.h.

◆ m_pedestalNoise

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_pedestalNoise
protected
Initial value:
{this, "PedestalNoise", false,
"Use noise from Pedestal structure instead of LArNoise (default=false)"}

Definition at line 159 of file LArHitEMapToDigitAlg.h.

◆ m_problemsToMask

Gaudi::Property<std::vector<std::string> > LArHitEMapToDigitAlg::m_problemsToMask {this,"ProblemsToMask",{},"Bad-Channel categories to mask entirly"}
protected

Definition at line 107 of file LArHitEMapToDigitAlg.h.

◆ m_randomSeedOffset

Gaudi::Property<uint32_t> LArHitEMapToDigitAlg::m_randomSeedOffset {this, "RandomSeedOffset", 2, ""}
protected

Definition at line 126 of file LArHitEMapToDigitAlg.h.

◆ m_randomStreamName

Gaudi::Property<std::string> LArHitEMapToDigitAlg::m_randomStreamName {this, "RandomStreamName", "LArDigitization", ""}
protected

Definition at line 122 of file LArHitEMapToDigitAlg.h.

◆ m_RndmEvtOverlay

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_RndmEvtOverlay
protected
Initial value:
{this, "RndmEvtOverlay", false,
"Pileup and/or noise added by overlaying random events (default=false)"}

Definition at line 144 of file LArHitEMapToDigitAlg.h.

◆ m_rndmGenSvc

ServiceHandle<IAthRNGSvc> LArHitEMapToDigitAlg::m_rndmGenSvc {this, "RndmSvc", "AthRNGSvc", ""}
protected

Definition at line 125 of file LArHitEMapToDigitAlg.h.

◆ m_roundingNoNoise

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_roundingNoNoise
protected
Initial value:
{this, "RoundingNoNoise", true,
"if true add random number [0:1[ in no noise case before rounding ADC to integer, if false add only 0.5 average"}

Definition at line 161 of file LArHitEMapToDigitAlg.h.

◆ m_shapeKey

SG::ReadCondHandleKey<ILArShape> LArHitEMapToDigitAlg::m_shapeKey {this,"ShapeKey","LArShapeSym","SG Key of LArShape object"}
protected

Definition at line 98 of file LArHitEMapToDigitAlg.h.

◆ m_useLegacyRandomSeeds

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_useLegacyRandomSeeds
protected
Initial value:
{this, "UseLegacyRandomSeeds", false,
"Use MC16-style random number seeding"}

Definition at line 127 of file LArHitEMapToDigitAlg.h.

◆ m_usePhase

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_usePhase
protected
Initial value:
{this, "UsePhase", false,
"use 1ns binned pulse shape (default=false)"}

Definition at line 142 of file LArHitEMapToDigitAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_Windows

Gaudi::Property<bool> LArHitEMapToDigitAlg::m_Windows
protected
Initial value:
{this, "Windows", false,
"Window mode (produce digits only around true e/photon) (default=false)"}

Definition at line 163 of file LArHitEMapToDigitAlg.h.

◆ m_WindowsEtaSize

Gaudi::Property<float> LArHitEMapToDigitAlg::m_WindowsEtaSize
protected
Initial value:
{this, "WindowsEtaSize", 0.4,
"Eta size of window (default=0.4)"}

Definition at line 165 of file LArHitEMapToDigitAlg.h.

◆ m_WindowsPhiSize

Gaudi::Property<float> LArHitEMapToDigitAlg::m_WindowsPhiSize
protected
Initial value:
{this, "WindowsPhiSize", 0.5,
"Phi size of window (default=0.5)"}

Definition at line 167 of file LArHitEMapToDigitAlg.h.

◆ m_WindowsPtCut

Gaudi::Property<float> LArHitEMapToDigitAlg::m_WindowsPtCut
protected
Initial value:
{this, "WindowsPtCut", 5000.,
"Pt cut on e/photons for window mode (Default=5GeV)"}

Definition at line 169 of file LArHitEMapToDigitAlg.h.

◆ s_MaxNSamples

constexpr int LArHitEMapToDigitAlg::s_MaxNSamples = 8
staticconstexprprotected

Definition at line 71 of file LArHitEMapToDigitAlg.h.


The documentation for this class was generated from the following files:
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
LArHitEMapToDigitAlg::m_OFCKey
SG::ReadCondHandleKey< ILArOFC > m_OFCKey
Definition: LArHitEMapToDigitAlg.h:96
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ILArPedestal::pedestal
virtual float pedestal(const HWIdentifier &id, int gain) const =0
LArAutoCorrNoise
Definition: LArAutoCorrNoise.h:13
LArADC2MeV::ADC2MEV
const LArVectorProxy ADC2MEV(const HWIdentifier &id, int gain) const
Definition: LArADC2MeV.h:32
ATHRNG::RNGWrapper::SeedingOptionType
SeedingOptionType
Options for seeding option=0 is setSeed as in MC20 option=1 is setSeedLegacy as in MC16 option=2 is s...
Definition: RNGWrapper.h:97
LArHitEMapToDigitAlg::m_shapeKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Definition: LArHitEMapToDigitAlg.h:98
LArHitEMapToDigitAlg::m_NoiseInEMEC
Gaudi::Property< bool > m_NoiseInEMEC
Definition: LArHitEMapToDigitAlg.h:153
xAOD::short
short
Definition: Vertex_v1.cxx:165
LArHitEMapToDigitAlg::m_NoiseInFCAL
Gaudi::Property< bool > m_NoiseInFCAL
Definition: LArHitEMapToDigitAlg.h:157
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AtlasDetectorID::is_lar_fcal
bool is_lar_fcal(Identifier id) const
Definition: AtlasDetectorID.h:839
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
index
Definition: index.py:1
LArHitEMapToDigitAlg::m_autoCorrNoiseKey
SG::ReadCondHandleKey< LArAutoCorrNoise > m_autoCorrNoiseKey
Definition: LArHitEMapToDigitAlg.h:103
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArHitEMapToDigitAlg::s_MaxNSamples
static constexpr int s_MaxNSamples
Definition: LArHitEMapToDigitAlg.h:71
ATHRNG::RNGWrapper::setSeedLegacy
void setSeedLegacy(const std::string &algName, size_t slot, uint64_t ev, uint64_t run, uint64_t offset, SeedingOptionType seeding, EventContext::ContextEvt_t evt=EventContext::INVALID_CONTEXT_EVT)
Set the random seed using a string (e.g.
Definition: RNGWrapper.cxx:104
ILArPedestal
Definition: ILArPedestal.h:12
LArBadXCont
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Definition: LArBadChannelCont.h:28
LArHitEMapToDigitAlg::m_badFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_badFebKey
Definition: LArHitEMapToDigitAlg.h:106
CaloIdManager::getEM_ID
const LArEM_ID * getEM_ID(void) const
Definition: CaloIdManager.cxx:80
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
AthCommonDataStore::renounce
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
Definition: AthCommonDataStore.h:380
ATHRNG::RNGWrapper::SeedingDefault
@ SeedingDefault
Definition: RNGWrapper.h:101
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
ILArShape::ShapeDer
virtual ShapeRef_t ShapeDer(const HWIdentifier &id, int gain, int tbin=0, int mode=0) const =0
LArHitEMapToDigitAlg::m_hitMapKey_DigiHSTruth
SG::ReadHandleKey< LArHitEMap > m_hitMapKey_DigiHSTruth
Definition: LArHitEMapToDigitAlg.h:114
skel.it
it
Definition: skel.GENtoEVGEN.py:423
TRT_PAI_gasdata::SF
const float SF[NF]
Cross sections for Fluor.
Definition: TRT_PAI_gasdata.h:285
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
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
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
LArBadChannelMask::buildBitMask
StatusCode buildBitMask(const std::vector< std::string > &problemsToMask, MsgStream &msg)
Definition: LArBadChannelMask.cxx:10
LArHitEMapToDigitAlg::m_RndmEvtOverlay
Gaudi::Property< bool > m_RndmEvtOverlay
Definition: LArHitEMapToDigitAlg.h:144
LArHitEMapToDigitAlg::FCAL
@ FCAL
Definition: LArHitEMapToDigitAlg.h:130
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LArHitEMapToDigitAlg::m_rndmGenSvc
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
Definition: LArHitEMapToDigitAlg.h:125
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
LArAutoCorrNoise::autoCorrSqrt
const std::vector< float > & autoCorrSqrt(const HWIdentifier &id, int gain) const
Definition: LArAutoCorrNoise.cxx:24
HWIdentifier
Definition: HWIdentifier.h:13
LArBadChannelMask::cellShouldBeMasked
bool cellShouldBeMasked(const LArBadChannelCont *bcCont, const HWIdentifier &hardwareId) const
Definition: LArBadChannelMask.h:42
LArBadXCont::status
LArBC_t status(const HWIdentifier channel) const
Query the status of a particular channel or FEB This is the main client access method.
LArHitEMapToDigitAlg::m_noiseKey
SG::ReadCondHandleKey< ILArNoise > m_noiseKey
Definition: LArHitEMapToDigitAlg.h:94
LArHitEMap::GetCell
const LArHitList & GetCell(const unsigned int index) const
Definition: LArHitEMap.h:43
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
ILArNoise
Definition: ILArNoise.h:12
LArHitEMapToDigitAlg::m_fSamplKey
SG::ReadCondHandleKey< ILArfSampl > m_fSamplKey
Definition: LArHitEMapToDigitAlg.h:95
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
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
LArHitEMap
Definition: LArHitEMap.h:22
LArHitList::getData
const LARLIST & getData() const
Definition: LArHitList.h:25
LArHitEMapToDigitAlg::m_NoiseInEMB
Gaudi::Property< bool > m_NoiseInEMB
Definition: LArHitEMapToDigitAlg.h:151
CaloIdManager::getHEC_ID
const LArHEC_ID * getHEC_ID(void) const
Definition: CaloIdManager.cxx:95
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloIdManager
This class initializes the Calo (LAr and Tile) offline identifiers.
Definition: CaloIdManager.h:45
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
LArHitEMapToDigitAlg::m_adc2mevKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2mevKey
Definition: LArHitEMapToDigitAlg.h:99
LArVectorProxy::at
value_type at(size_t i) const
Vector indexing with bounds check.
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
LArDigit
Liquid Argon digit base class.
Definition: LArDigit.h:25
lumiFormat.i
int i
Definition: lumiFormat.py:92
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
ILArfSampl::FSAMPL
virtual const float & FSAMPL(const HWIdentifier &id) const =0
CaloIdManager::getFCAL_ID
const LArFCAL_ID * getFCAL_ID(void) const
Definition: CaloIdManager.cxx:85
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
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LArHitEMapToDigitAlg::m_NSamples
Gaudi::Property< int > m_NSamples
Definition: LArHitEMapToDigitAlg.h:136
AtlasDetectorID::is_lar_hec
bool is_lar_hec(Identifier id) const
Definition: AtlasDetectorID.h:829
WriteCellNoiseToCool.igain
igain
Definition: WriteCellNoiseToCool.py:338
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
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
LArHitEMap::GetDigit
const LArDigit * GetDigit(unsigned int index) const
Definition: LArHitEMap.h:48
DataPool::nextElementPtr
pointer nextElementPtr()
obtain the next available element in pool by pointer pool is resized if its limit has been reached On...
ReadBchFromCool.bch
bch
Definition: ReadBchFromCool.py:446
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
LArOnlineID_Base::feb_Id
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Definition: LArOnlineID_Base.cxx:1483
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
LArHitEMapToDigitAlg::m_LowGainThresh
double m_LowGainThresh[4]
Definition: LArHitEMapToDigitAlg.h:131
LArHitList::inWindows
bool inWindows() const
Definition: LArHitList.h:26
LArHitList
Definition: LArHitList.h:9
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
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
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
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
LArEM_Base_ID::barrel_ec
int barrel_ec(const Identifier id) const
return barrel_ec according to :
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
CaloGain::LARHIGHGAIN
@ LARHIGHGAIN
Definition: CaloGain.h:18
CaloCell_Base_ID::cell_id
Identifier cell_id(const int subCalo, const int barec_or_posneg, const int sampling_or_fcalmodule, const int region_or_dummy, const int eta, const int phi) const
Make a cell (== channel) ID from constituting fields and subCalo index; for (Mini)FCAL,...
LArHitEMapToDigitAlg::m_larhec_id
const LArHEC_ID * m_larhec_id
Definition: LArHitEMapToDigitAlg.h:175
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
LArEM_Base_ID::is_em_endcap_inner
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
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
ReadOfcFromCool.nsamples
nsamples
Definition: ReadOfcFromCool.py:115
LArADC2MeV
Definition: LArADC2MeV.h:21
LArHitEMapToDigitAlg::m_pedestalNoise
Gaudi::Property< bool > m_pedestalNoise
Definition: LArHitEMapToDigitAlg.h:159
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
CaloGain::LARMEDIUMGAIN
@ LARMEDIUMGAIN
Definition: CaloGain.h:18
LArHitEMapToDigitAlg::m_DigitContainerName_DigiHSTruth
SG::WriteHandleKey< LArDigitContainer > m_DigitContainerName_DigiHSTruth
Definition: LArHitEMapToDigitAlg.h:120
DeMoScan.index
string index
Definition: DeMoScan.py:362
a
TList * a
Definition: liststreamerinfos.cxx:10
h
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
MAXADC
#define MAXADC
Definition: LArHitEMapToDigitAlg.h:57
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DeMoScan.first
bool first
Definition: DeMoScan.py:534
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
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
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
LArHitEMapToDigitAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArHitEMapToDigitAlg.h:100
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
LArHitEMapToDigitAlg::m_EnergyThresh
Gaudi::Property< double > m_EnergyThresh
Definition: LArHitEMapToDigitAlg.h:134
pickleTool.object
object
Definition: pickleTool.py:30
LArElecCalib::ERRORCODE
@ ERRORCODE
Definition: LArCalibErrorCode.h:17
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LArHitEMapToDigitAlg::m_calocell_id
const CaloCell_ID * m_calocell_id
Definition: LArHitEMapToDigitAlg.h:173
python.grid.Samples
def Samples(names)
Definition: grid.py:48
LArHitEMap::GetNbCells
int GetNbCells(void) const
Definition: LArHitEMap.cxx:65
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
CaloGain::LARLOWGAIN
@ LARLOWGAIN
Definition: CaloGain.h:18
IdentifierHash
Definition: IdentifierHash.h:38
ILArShape
Definition: ILArShape.h:13
ILArPedestal::pedestalRMS
virtual float pedestalRMS(const HWIdentifier &id, int gain) const =0
access to RMS of Pedestal index by Identifier, and gain setting
AtlasDetectorID::is_lar_em
bool is_lar_em(Identifier id) const
Definition: AtlasDetectorID.h:818
LArHitEMapToDigitAlg::EM
@ EM
Definition: LArHitEMapToDigitAlg.h:130
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
ATHRNG::RNGWrapper::MC16Seeding
@ MC16Seeding
Definition: RNGWrapper.h:99
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
nmax
const int nmax(200)
readCCLHist.float
float
Definition: readCCLHist.py:83
LArHitEMapToDigitAlg::m_firstSample
Gaudi::Property< int > m_firstSample
Definition: LArHitEMapToDigitAlg.h:140
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
LArHitEMapToDigitAlg::m_doDigiTruth
Gaudi::Property< bool > m_doDigiTruth
Definition: LArHitEMapToDigitAlg.h:148
fitman.k
k
Definition: fitman.py:528
LArHitEMapToDigitAlg::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArHitEMapToDigitAlg.h:110
LArVectorProxy
Proxy for accessing a range of float values like a vector.
Definition: LArVectorProxy.h:38
ILArfSampl
Definition: ILArfSampl.h:14
ServiceHandle< ICondSvc >
LArHitEMapToDigitAlg::m_useLegacyRandomSeeds
Gaudi::Property< bool > m_useLegacyRandomSeeds
Definition: LArHitEMapToDigitAlg.h:127
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
ILArShape::Shape
virtual ShapeRef_t Shape(const HWIdentifier &id, int gain, int tbin=0, int mode=0) const =0
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
LArHitEMapToDigitAlg::HEC
@ HEC
Definition: LArHitEMapToDigitAlg.h:130