Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
FixLArElecCalib Class Reference

fix electronic calibration constants for MC. More...

#include <FixLArElecCalib.h>

Inheritance diagram for FixLArElecCalib:
Collaboration diagram for FixLArElecCalib:

Public Member Functions

 FixLArElecCalib (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~FixLArElecCalib ()=default
 
virtual StatusCode initialize () override
 
virtual StatusCode execute () override
 
virtual StatusCode finalize () override
 
virtual StatusCode stop ATLAS_NOT_THREAD_SAFE () override
 
StatusCode fix1 (const LArOnOffIdMapping *cabling)
 
StatusCode fix2 (const LArOnOffIdMapping *cabling)
 
StatusCode fix3 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix4 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix5 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix6 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix7 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix8 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix9 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix10 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix11 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix12 (const LArOnOffIdMapping *cabling)
 
StatusCode fix13 (const LArOnOffIdMapping *cabling)
 
StatusCode fix14 (const LArOnOffIdMapping *cabling)
 
StatusCode fix15 ATLAS_NOT_THREAD_SAFE ()
 
StatusCode fix16 ATLAS_NOT_THREAD_SAFE ()
 
StatusCode fix17 ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
StatusCode fix18 (const LArCalibLineMapping *clmap)
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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 Member Functions

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...
 

Private Types

typedef std::pair< HWIdentifier, std::vector< float > > ROW_t
 
typedef std::vector< ROW_tVROW_t
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode ReadFile (const std::string &filename, const LArOnOffIdMapping *cabling, bool EM, bool withGain, int nvar)
 
StatusCode ReadFileAll (const std::string &filename, const LArOnOffIdMapping *cabling, bool withGain, int nvar)
 
StatusCode update_DAC2uA (const std::string &em_filename, const std::string &hec_filename)
 
template<class T >
StatusCode update_EM_HEC ATLAS_NOT_THREAD_SAFE (const std::string &em_filename, const std::string &hec_filename, const LArOnOffIdMapping *cabling, bool withGain, int nvar)
 
template<class T >
StatusCode update_All ATLAS_NOT_THREAD_SAFE (const std::string &filename, const LArOnOffIdMapping *cabling, bool withGain, int nvar)
 
void print_object (const std::string &msg, const LArNoiseMC::LArCondObj &obj)
 
void set_object (LArNoiseMC::LArCondObj &obj, const std::vector< float > &v)
 
void print_object (const std::string &msg, const LArAutoCorrMC::LArCondObj &obj)
 
void set_object (LArAutoCorrMC::LArCondObj &obj, const std::vector< float > &v)
 
void print_object (const std::string &msg, const LArRampMC::LArCondObj &obj)
 
void set_object (LArRampMC::LArCondObj &obj, const std::vector< float > &v)
 
void print_object (const std::string &msg, const LArShape32MC::LArCondObj &obj)
 
void set_object (LArShape32MC::LArCondObj &obj, const std::vector< float > &v)
 
void print_object (const std::string &msg, const LArSingleFloatP &obj)
 
void set_object (LArSingleFloatP &obj, const std::vector< float > &v)
 
StatusCode addMphysOverMcal (const LArOnOffIdMapping *cabling)
 
StatusCode fixDACuAMeV ATLAS_NOT_THREAD_SAFE ()
 
StatusCode updateEMfSampl ATLAS_NOT_THREAD_SAFE (const std::string &filename, const LArOnOffIdMapping *cabling)
 
StatusCode updateMinBias ATLAS_NOT_THREAD_SAFE (const std::string &filename, const LArOnOffIdMapping *cabling)
 
StatusCode updateEM_DACuAMeV ATLAS_NOT_THREAD_SAFE (const std::string &filename, const LArOnOffIdMapping *cabling)
 
StatusCode updateHADfSampl ATLAS_NOT_THREAD_SAFE (const LArOnOffIdMapping *cabling)
 
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

SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
SG::ReadCondHandleKey< LArCalibLineMappingm_CLKey {this, "CalibLineKey", "LArCalibLineMap", "calib line key"}
 
IntegerProperty m_fixFlag {this, "FixFlag", 1, "which fix to apply"}
 
StringProperty m_g4Phys {this, "G4Phys", "", "which physics list to use"}
 
StringProperty m_infile {this, "InputFile", "", "name of inpput file"}
 
const LArEM_IDm_em_idhelper
 
const LArHEC_IDm_hec_idhelper
 
const LArFCAL_IDm_fcal_idhelper
 
const LArOnlineIDm_online_idhelper
 
const LArEM_SuperCell_IDm_sem_idhelper
 
const LArHEC_SuperCell_IDm_shec_idhelper
 
const LArOnline_SuperCellIDm_sonline_idhelper
 
const CaloCell_SuperCell_IDm_scell_idhelper
 
VROW_t m_cache [3]
 
DataObjIDColl m_extendedExtraObjects
 
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

fix electronic calibration constants for MC.

Author
Hong Ma hma@b.nosp@m.nl.g.nosp@m.ov Purpose: read in the LAr electronic calib data, and fix them ready to be written out again as a new version.

This should be used with FixLArElecCalib_jobOptions.py to write a new POOL file.

Implemented fixes:

  1. Flag = 1 Replacing values for barrel in LArDAC2uAMC Input barrel_dac2ua_oct06.txt
  2. Flag=2 fix FCAL conditions data for new mapping in release 13.
  3. Flag=3 replace fsampl for 4.8.2 June 13,2007: FCAL numbers updated by P. Krieger. Junly 10, 2007: updated the number for 13.0.20
  4. Flag=4 replace uA2MeV DAC2uA with that in dac2ua_ua2mev_rel13.txt
  5. Flag=5 replace FCAL noise and minbiasRMS from Sven Menke's new number for release 13.

6 Flag=6 replace All FCAL noise and ADC2DAC, uA2MeV and DAC2uA. <HG/MG> = 9.96 +/- 0.01 <MG/LG> = 9.67 +/- 0.01

7 Flag=7 replace sampling fraction for QGSP_BERT from 13.0.30.

8 Flag=8 replace EM/HEC autoCorr, noise, dac2ua, mphys, ramp, shape, ua2mev

9 Flag=9 fix FCAL AutoCorr

10 Flag=10 fix FCAL ramp. The scaling factor were inverted. Ramp_M = Ramp_H*9.96 Ramp_L = Ramp_H*9.96*9.67

11 Flag=11 Update HEC Ramp

12 Flag=12 Fill the LArMinBiasMC and LArMinBiasAverageMC from ntuple created by LArMinBiasAlg (in CaloCondPhysAlgs)
13 Flag=13 Filling the OnlOflMap for SC

14 Flag=14 Fill the LArMinBiasAverageMC type in LArPileupAverage folder for BCID correction from ntuple created by LArMinBiasAlg (in CaloCondPhysAlgs)

15 Flag=15 Scale the MinBiasAverage by constant

16 Flag=16 Fix the EMEC-A FT 7 slot 11 OnOfIdMap cable swap

17 Flag=17 replace All shape

18 Flag=18 Fix the calib. line mapping for the EMF, where all channels in EMB-A FT 0 has CL=channel

Definition at line 38 of file FixLArElecCalib.h.

Member Typedef Documentation

◆ ROW_t

typedef std::pair<HWIdentifier,std::vector<float> > FixLArElecCalib::ROW_t
private

Definition at line 138 of file FixLArElecCalib.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ VROW_t

typedef std::vector<ROW_t> FixLArElecCalib::VROW_t
private

Definition at line 139 of file FixLArElecCalib.h.

Constructor & Destructor Documentation

◆ FixLArElecCalib()

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

Definition at line 111 of file FixLArElecCalib.cxx.

111  :
112  AthAlgorithm(name,pSvcLocator),
113  m_fixFlag(0),
114  m_em_idhelper(nullptr),
115  m_hec_idhelper(nullptr),
116  m_fcal_idhelper(nullptr),
117  m_online_idhelper(nullptr),
118  m_sem_idhelper(nullptr),
119  m_shec_idhelper(nullptr),
120  m_sonline_idhelper(nullptr),
121  m_scell_idhelper(nullptr)
122 {
123 
124 }

◆ ~FixLArElecCalib()

virtual FixLArElecCalib::~FixLArElecCalib ( )
virtualdefault

Member Function Documentation

◆ addMphysOverMcal()

StatusCode FixLArElecCalib::addMphysOverMcal ( const LArOnOffIdMapping cabling)
private

Definition at line 1424 of file FixLArElecCalib.cxx.

1424  {
1425  // add the contain to DetStore.
1426  // fill 1 for all FCAL/HEC channels
1427 
1428  ATH_MSG_INFO ( " addMphysOverMcal() " );
1429  // create LArMphysOverMcal with FCAL numbers = 1.
1430 
1431  std::unique_ptr<LArMphysOverMcalMC> mphys = std::make_unique<LArMphysOverMcalMC>();
1432  mphys->setGroupingType(LArConditionsContainerBase::SingleGroup);
1433  ATH_CHECK( mphys->initialize() );
1434 
1435  int n=0;
1436 
1437  std::string filename("FCal_noise_minbias_adc2mev.txt");
1438 
1439  std::ifstream infile(filename.c_str() ) ;
1440 
1441  if(! infile.good() )
1442  {
1443  ATH_MSG_ERROR(" fail to open file "<<filename);
1444  return StatusCode::FAILURE;
1445  }
1446 
1447 
1448  char s[200];
1449 
1450  ATH_MSG_INFO("Opened FCAL file");
1451  for(int i = 0;i<27;++i){
1452  infile.getline(s,200);
1453  ATH_MSG_INFO(s);
1454  }
1455 
1456  std::string str_id;
1457 
1458  float vol,noise_p,noise_h, noise_m,noise_l;
1459  float ramp_val,ua2MeV_val,dac2uA_val;
1460  std::string channel_type;
1461  while ( infile>>str_id >>vol>>noise_p >> noise_h>>noise_m>>noise_l
1462  >>channel_type>> ramp_val>>ua2MeV_val>>dac2uA_val )
1463  {
1464  const char* ch_id = str_id.c_str();
1465 
1466  if(str_id.substr(0,1)!=std::string("A")){
1467  ATH_MSG_INFO(" skipping string"<<str_id);
1468  continue;
1469  }
1470 
1471  int mod,phi,eta;
1472  sscanf(ch_id, "A%d.%d.%d", &mod,&phi,&eta);
1473  if(phi>7){
1474  ATH_MSG_INFO(" skipping phi"<<str_id<<" phi="<<phi);
1475  continue;
1476  }
1477 
1478  ++n;
1479 
1480  ATH_MSG_INFO(" Setting channel "<<str_id);
1482  HWIdentifier hid = cabling->createSignalChannelID(id);
1483 
1485  t.m_data =1. ;
1486  mphys->setPdata(hid,t,0);
1487  mphys->setPdata(hid,t,1);
1488  mphys->setPdata(hid,t,2);
1489  }
1490 
1491  ATH_MSG_INFO(" MphysOverMcal added "<<n<<" FCAL channels");
1492 
1493  bool EM=false ;
1494  bool withGain=false;
1495  int nvar = 1;
1496  std::string hec_filename("mphys_hec.txt");
1497  ATH_CHECK( ReadFile(hec_filename,cabling,EM,withGain,nvar) );
1498 
1499  int igain=0;
1500  n=0;
1501  for( ROW_t &it : m_cache[igain])
1502  {
1503  HWIdentifier hid = it.first;
1505  t.m_data =1. ;
1506  mphys->setPdata(hid,t,0);
1507  mphys->setPdata(hid,t,1);
1508  mphys->setPdata(hid,t,2);
1509  ++n;
1510 
1511  }
1512 
1513  ATH_CHECK( detStore()->record(std::move(mphys),"LArMphysOverMcal") );
1514  ILArMphysOverMcal* imphys=nullptr;
1515  ATH_CHECK (detStore()->symLink(mphys.get(),imphys) );
1516 
1517  ATH_MSG_ERROR(" Number of HEC channel added "<<n <<" per gain ");
1518  return StatusCode::SUCCESS ;
1519 }

◆ ATLAS_NOT_THREAD_SAFE() [1/20]

StatusCode fix15 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( )

◆ ATLAS_NOT_THREAD_SAFE() [2/20]

StatusCode fix16 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( )

◆ ATLAS_NOT_THREAD_SAFE() [3/20]

StatusCode fixDACuAMeV FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( )
private

◆ ATLAS_NOT_THREAD_SAFE() [4/20]

virtual StatusCode stop FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ ATLAS_NOT_THREAD_SAFE() [5/20]

StatusCode fix3 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [6/20]

StatusCode fix4 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [7/20]

StatusCode fix5 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [8/20]

StatusCode fix6 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [9/20]

StatusCode fix7 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [10/20]

StatusCode fix8 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [11/20]

StatusCode fix9 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [12/20]

StatusCode fix10 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [13/20]

StatusCode fix11 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [14/20]

StatusCode fix17 FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)

◆ ATLAS_NOT_THREAD_SAFE() [15/20]

StatusCode updateHADfSampl FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const LArOnOffIdMapping cabling)
private

◆ ATLAS_NOT_THREAD_SAFE() [16/20]

template<class T >
StatusCode update_EM_HEC FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const std::string &  em_filename,
const std::string &  hec_filename,
const LArOnOffIdMapping cabling,
bool  withGain,
int  nvar 
)
private

◆ ATLAS_NOT_THREAD_SAFE() [17/20]

StatusCode updateEMfSampl FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const std::string &  filename,
const LArOnOffIdMapping cabling 
)
private

◆ ATLAS_NOT_THREAD_SAFE() [18/20]

StatusCode updateMinBias FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const std::string &  filename,
const LArOnOffIdMapping cabling 
)
private

◆ ATLAS_NOT_THREAD_SAFE() [19/20]

StatusCode updateEM_DACuAMeV FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const std::string &  filename,
const LArOnOffIdMapping cabling 
)
private

◆ ATLAS_NOT_THREAD_SAFE() [20/20]

template<class T >
StatusCode update_All FixLArElecCalib::ATLAS_NOT_THREAD_SAFE ( const std::string &  filename,
const LArOnOffIdMapping cabling,
bool  withGain,
int  nvar 
)
private

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< 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< 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< 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< 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< 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< 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< 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< 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< 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< 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< 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< 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< 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 FixLArElecCalib::execute ( )
overridevirtual

Definition at line 144 of file FixLArElecCalib.cxx.

144  {
145 
146  const EventContext& ctx = Gaudi::Hive::currentContext();
147 
149  const LArOnOffIdMapping* cabling{*cablingHdl};
150  if(!cabling) {
151  ATH_MSG_WARNING( "Do not have cabling mapping from key " << m_cablingKey.key() );
152  }
153  if(m_fixFlag==13)
154  return fix13(cabling);
155 
156  return StatusCode::SUCCESS;
157 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< 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 & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

virtual StatusCode FixLArElecCalib::finalize ( )
inlineoverridevirtual

Definition at line 46 of file FixLArElecCalib.h.

46 {return StatusCode::SUCCESS;}

◆ fix1()

StatusCode FixLArElecCalib::fix1 ( const LArOnOffIdMapping cabling)

Definition at line 219 of file FixLArElecCalib.cxx.

219  {
220 
221  ATH_MSG_INFO ( " in fix1() " );
222 
223  // Fix1 is for updating the EM DAC2uA, assuming symmetry.
224  // Input should be MC Conditions data with DetDescrVersion=ATLAS-DC3-05
225 
226  // Pointer to StoreGate
227  const LArEM_ID* em_idhelper = nullptr;
228  ATH_CHECK( detStore()->retrieve(em_idhelper) );
229 
230  const LArOnlineID* online_idhelper = nullptr;
231  ATH_CHECK( detStore()->retrieve(online_idhelper) );
232 
233  // retrieve DetDescrManager
234  SmartIF<IToolSvc> toolSvc{Gaudi::svcLocator()->service("ToolSvc")};
235  ATH_CHECK(toolSvc.isValid());
236 
237  LArDAC2uAMC * dac2ua = nullptr;
238  ATH_CHECK( detStore()->retrieve(dac2ua) );
239 
240  // read in the file
241 
242  std::ifstream infile("barrel_dac2ua_oct06.txt") ;
243  if(! infile.good() )
244  {
245  ATH_MSG_ERROR(" fail to open file ");
246  return StatusCode::FAILURE;
247  }
248 
249 
250  int det,samp,reg,eta;
251  float value ;
252  int n = 0;
253  while ( infile>>det>>samp>>reg>>eta>>value )
254  {
255  ++n;
256  ATH_MSG_DEBUG(" det,samp,reg,eta,value="
257  <<det<<" "
258  <<samp<<" "
259  <<reg<<" "
260  <<eta<<" "
261  <<value<<" " );
262 
263  Identifier id ;
264  if ( det==1 && samp==1 && reg==0 && eta==0 ){
265  // eta=0 for strip, not connected, but keep it
266  // Removed disconnected channels: 03/2016 RDS
267  // ATH_MSG_DEBUG(" disconnected strip ");
268  // id = em_idhelper->disc_channel_id(det,samp,reg,eta,0);
269  }else
270  id = em_idhelper->channel_id(det,samp,reg,eta,0);
271 
272  HWIdentifier hid = cabling->createSignalChannelID(id);
273  LArDAC2uAComplete::LArCondObj & t = dac2ua->get(hid,0);
274  ATH_MSG_DEBUG(" online id = "<<online_idhelper->print_to_string(hid));
275 
276  if( t.isEmpty() )
277  {
278  ATH_MSG_WARNING(" No existing conditions data " );
279  continue ;
280  }
281  ATH_MSG_DEBUG(" Old DAC2uA = "<< t.m_data<< " " );
282 
283  t.m_data = value ;
284 
285  const LArDAC2uAComplete::LArCondObj & t3 = dac2ua->get(hid,0);
286  ATH_MSG_DEBUG(" New DAC2uA = "<< t3.m_data << " " );
287 
288  }
289 
290  ATH_MSG_DEBUG(" Number of entries changes = " <<n );
291  return StatusCode::SUCCESS;
292 }

◆ fix12()

StatusCode FixLArElecCalib::fix12 ( const LArOnOffIdMapping cabling)

Definition at line 2004 of file FixLArElecCalib.cxx.

2004  {
2005 
2006  ATH_MSG_INFO ( " in fix12() " );
2007 
2008  // Fix12 is for filling the MinBiasRMS and MinBiasAverage from ntuple
2009 
2010  // Will try to regenerate from scratch
2011  // Create new container
2012  std::unique_ptr<LArMinBiasMC> minbias = std::make_unique<LArMinBiasMC>();
2013  ATH_CHECK( minbias->setGroupingType("Single", msg()) );
2014  ATH_CHECK( minbias->initialize() );
2015  std::unique_ptr<LArMinBiasAverageMC> minbias_av = std::make_unique<LArMinBiasAverageMC>();
2016  ATH_CHECK( minbias_av->setGroupingType("Single", msg()) );
2017  ATH_CHECK( minbias_av->initialize() );
2018  //
2019  std::unique_ptr<TFile> fin= std::make_unique<TFile>("ntuple_av.root");
2020  TTree *tin=dynamic_cast<TTree*>(fin->Get("m_tree"));
2021  int ncell;
2022  int identifier[2862];
2023  int layer[2862];
2024  int region[2862];
2025  int ieta[2862];
2026  float eta[2862];
2027  double average[2862];
2028  double rms[2862];
2029  TBranch *b_ncell;
2030  TBranch *b_identifier;
2031  TBranch *b_layer;
2032  TBranch *b_region;
2033  TBranch *b_ieta;
2034  TBranch *b_eta;
2035  TBranch *b_average;
2036  TBranch *b_rms;
2037  tin->SetMakeClass(1);
2038  tin->SetBranchAddress("ncell", &ncell, &b_ncell);
2039  tin->SetBranchAddress("identifier", identifier, &b_identifier);
2040  tin->SetBranchAddress("layer", layer, &b_layer);
2041  tin->SetBranchAddress("region", region, &b_region);
2042  tin->SetBranchAddress("ieta", ieta, &b_ieta);
2043  tin->SetBranchAddress("eta", eta, &b_eta);
2044  tin->SetBranchAddress("average", average, &b_average);
2045  tin->SetBranchAddress("rms", rms, &b_rms);
2046  tin->GetEntry(0);
2047 
2048 
2049  for(int icell=0; icell<ncell; ++icell) {
2050 
2051  Identifier32 id32(identifier[icell]);
2052  Identifier id(id32);
2053  HWIdentifier hid = cabling->createSignalChannelID(id);
2054 
2055  minbias->set(hid, rms[icell]);
2056  minbias_av->set(hid, average[icell]);
2057 
2058  }
2059 
2060  ATH_MSG_INFO(" number of channels in intuple ="<<ncell);
2061 
2062  ATH_MSG_INFO ( "Stored container " << minbias->totalNumberOfConditions() << " conditions, key LArMinBias " );
2063  ATH_CHECK( detStore()->record(std::move(minbias),"LArMinBias") );
2064  ATH_CHECK( detStore()->symLink(minbias.get(), dynamic_cast<ILArMinBias*>(minbias.get())) );
2065  ATH_MSG_INFO ( "Stored container " << minbias_av->totalNumberOfConditions() << " conditions, key LArMinBiasAverage " );
2066  ATH_CHECK( detStore()->record(std::move(minbias_av),"LArMinBiasAverage") );
2067  ATH_CHECK( detStore()->symLink(minbias_av.get(), dynamic_cast<ILArMinBiasAverage*>(minbias_av.get())) );
2068 
2069  return StatusCode::SUCCESS;
2070 }

◆ fix13()

StatusCode FixLArElecCalib::fix13 ( const LArOnOffIdMapping cabling)

Definition at line 1733 of file FixLArElecCalib.cxx.

1733  {
1734 
1735  ATH_MSG_INFO ( " in fix13() " );
1736  // update EM/HEC 7 data objects.
1737 
1738  ToolHandle<ICaloSuperCellIDTool> scidtool("CaloSuperCellIDTool");
1739  if ( scidtool.retrieve().isFailure() ) {
1740  ATH_MSG_ERROR ( " Could not retrieve scitool " );
1741  }
1742 
1743  std::set<Identifier> scidset;
1744  std::map<HWIdentifier,int> sslot_schannel_idx;
1745  std::vector<unsigned int> OrderOnlHash_OffID;
1746  std::vector<unsigned int> OrderOffHash_OnlID;
1747  OrderOnlHash_OffID.resize(40000,0);
1748  OrderOffHash_OnlID.resize(40000,0);
1749 
1751  unsigned int min_onl_hash = 999999;
1752  unsigned int max_onl_hash = 0;
1753  unsigned int min_off_hash = 999999;
1754  unsigned int max_off_hash = 0;
1755  std::ofstream hashes("AllHashChannels_All.txt");
1756  std::ofstream of("AllChannels_EM.txt");
1757 
1758  for(size_t i = 0; i < channel_size ; i++) {
1760  bool isEM = ( m_em_idhelper->is_em_barrel( chid ) || m_em_idhelper->is_em_endcap( chid ) ) ;
1761  if ( ! isEM ) continue;
1762  Identifier SCID = scidtool->offlineToSuperCellID(chid);
1763  if ( scidset.find(SCID) == scidset.end() && (m_scell_idhelper->calo_cell_hash( SCID ).value() < 99999) )
1764  scidset.insert(SCID);
1765  else continue;
1766  HWIdentifier hwid = cabling->createSignalChannelID(chid);
1767  if ( i == 0 ){
1768  of << "Off ID\t\tSCID\t\tOnl ID\t\tFT\tslot\tB-E pos_neg\tSamp\teta\tphi\tFEB_ID\t\tSHWID\t" << std::endl;
1769  }
1770  of << chid.get_identifier32().get_compact() << "\t0x" <<
1771  SCID.get_identifier32().get_compact() << "\t0x" <<
1772  hwid.get_identifier32().get_compact() ;
1773  Identifier regId = m_em_idhelper->region_id( chid );
1774  int reg = m_em_idhelper->region( chid );
1775  IdentifierHash regHash = m_em_idhelper->region_hash( regId );
1776  int samp = m_em_idhelper->sampling( chid );
1777  int feedthrough = m_online_idhelper->feedthrough( hwid );
1778  int bar_ec = m_online_idhelper->barrel_ec( hwid );
1779  int pos_neg = m_online_idhelper->pos_neg( hwid );
1780  int slot = m_online_idhelper->slot( hwid );
1781  float etaG = m_em_idhelper->etaGranularity(regHash);
1782  float phiG = m_em_idhelper->phiGranularity(regHash);
1783  float eta0 = m_em_idhelper->eta0(regHash);
1784  float phi0 = m_em_idhelper->phi0(regHash);
1785  float eta = etaG*m_em_idhelper->eta( chid ) + eta0;
1786  float phi = phiG*m_em_idhelper->phi( chid ) + phi0;
1787  char etaChar[10];
1788  char phiChar[10];
1789  sprintf(etaChar,"%5.4f",eta);
1790  sprintf(phiChar,"%5.4f",phi);
1791  of << std::dec << "\t" << feedthrough << "\t" << slot;
1792  of << "\t" << bar_ec << " " << pos_neg << "\t\t" << samp << "\t";
1793  of << etaChar << " " << phiChar << "\t0x";
1794  HWIdentifier feb_id = m_online_idhelper->feb_Id(hwid);
1795  int sslot=1;
1796  bool InSlot= m_em_idhelper->is_em_endcap_inner ( chid );
1797  bool OutSlot= m_em_idhelper->is_em_endcap_outer ( chid ) ;
1798  bool secondOutSlot=false;
1799  if ( OutSlot ) {
1800  if ( (samp==1) && (reg==5) ) secondOutSlot=true;
1801  if ( (samp==2) && (reg==1) && ( m_em_idhelper->eta( chid )>=39 ) )
1802  secondOutSlot=true;
1803  if ( (samp==3) && (reg==0) && ( m_em_idhelper->eta( chid )>=18 ) )
1804  secondOutSlot=true;
1805  }
1806  HWIdentifier sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot);
1807 
1808  if ( InSlot ) {
1809  sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough-1,sslot+1);
1810  }
1811  if ( secondOutSlot ) {
1812  sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot+1);
1813  }
1814  if ( sslot_schannel_idx.find(sfeb_id) == sslot_schannel_idx.end() )
1815  sslot_schannel_idx[sfeb_id]=0;
1816  else sslot_schannel_idx[sfeb_id]++;
1817  HWIdentifier shwid = m_sonline_idhelper->channel_Id(sfeb_id,sslot_schannel_idx[sfeb_id]);
1818  unsigned int onl_hash = m_sonline_idhelper->channel_Hash( shwid ).value();
1819  if ( onl_hash > max_onl_hash ) max_onl_hash = onl_hash;
1820  if ( onl_hash < min_onl_hash ) min_onl_hash = onl_hash;
1821  unsigned int off_hash = m_scell_idhelper->calo_cell_hash( SCID ).value();
1822  if ( off_hash > max_off_hash ) max_off_hash = off_hash;
1823  if ( off_hash < min_off_hash ) min_off_hash = off_hash;
1824  of << std::hex;
1825  of << feb_id.get_identifier32().get_compact();
1826  of << "\t0x" << shwid.get_identifier32().get_compact();
1827  of << " " << m_online_idhelper->channel_name(hwid) << " " << m_sonline_idhelper->channel_name(shwid);
1828  of << std::dec;
1829  of << " " << onl_hash << " " << off_hash;
1830  of << std::endl;
1831 
1832  if ( m_scell_idhelper->calo_cell_hash( SCID ).value() < 40000 )
1833  OrderOffHash_OnlID[m_scell_idhelper->calo_cell_hash( SCID ).value()] = shwid.get_identifier32().get_compact();
1834  if ( m_sonline_idhelper->channel_Hash( shwid ).value() < 40000 )
1835  OrderOnlHash_OffID[m_sonline_idhelper->channel_Hash( shwid ).value()] = SCID.get_identifier32().get_compact();
1836  }
1837  of << "Hash check. Onl : " << min_onl_hash << " " << max_onl_hash;
1838  of << "; Off : " << min_off_hash << " " << max_off_hash << std::endl;;
1839  of.close();
1840 
1841  channel_size = m_hec_idhelper->channel_hash_max();
1842  min_onl_hash = 999999;
1843  max_onl_hash = 0;
1844  min_off_hash = 999999;
1845  max_off_hash = 0;
1846  std::ofstream of1("AllChannels_HEC.txt");
1847 
1848  of1 << "Off ID\t\tSCID\t\tOnl ID\t\tFT\tslot\tB-E pos_neg\tSamp\teta\tphi\tFEB_ID\t\tSHWID\t" << std::endl;
1849  for(size_t i = 0; i < channel_size ; i++) {
1851  if ( ! ( m_hec_idhelper->is_lar_hec( chid ) ) ) continue;
1852  Identifier SCID = scidtool->offlineToSuperCellID(chid);
1853  if ( scidset.find(SCID) == scidset.end() )
1854  scidset.insert(SCID);
1855  else continue;
1856  HWIdentifier hwid = cabling->createSignalChannelID(chid);
1857  of1 << chid.get_identifier32().get_compact() << "\t0x" <<
1858  SCID.get_identifier32().get_compact() << "\t0x" <<
1859  hwid.get_identifier32().get_compact() ;
1860  Identifier regId = m_hec_idhelper->region_id( chid );
1861  IdentifierHash regHash = m_hec_idhelper->region_hash( regId );
1862  int samp = m_hec_idhelper->sampling( chid );
1863  int feedthrough = m_online_idhelper->feedthrough( hwid );
1864  int bar_ec = m_online_idhelper->barrel_ec( hwid );
1865  int pos_neg = m_online_idhelper->pos_neg( hwid );
1866  int slot = m_online_idhelper->slot( hwid );
1867  float etaG = m_hec_idhelper->etaGranularity(regHash);
1868  float phiG = m_hec_idhelper->phiGranularity(regHash);
1869  float eta0 = m_hec_idhelper->eta0(regHash);
1870  float phi0 = m_hec_idhelper->phi0(regHash);
1871  float eta = etaG*m_hec_idhelper->eta( chid ) + eta0;
1872  float phi = phiG*m_hec_idhelper->phi( chid ) + phi0;
1873  char etaChar[10];
1874  char phiChar[10];
1875  sprintf(etaChar,"%5.4f",eta);
1876  sprintf(phiChar,"%5.4f",phi);
1877  of1 << std::dec << "\t" << feedthrough << "\t" << slot;
1878  of1 << "\t" << bar_ec << " " << pos_neg << "\t\t" << samp << "\t";
1879  of1 << etaChar << " " << phiChar << "\t0x";
1880  HWIdentifier feb_id = m_online_idhelper->feb_Id(hwid);
1881  int sslot=1;
1882  int subtract=0;
1883  HWIdentifier sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot);
1884  if ( sslot_schannel_idx.find(sfeb_id) == sslot_schannel_idx.end() )
1885  sslot_schannel_idx[sfeb_id]=0;
1886  else sslot_schannel_idx[sfeb_id]++;
1887  if ( (feedthrough==6) && (bar_ec==1) && (slot>9) ) {
1888  sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot+1);
1889  subtract=192;
1890  }
1891  HWIdentifier shwid = m_sonline_idhelper->channel_Id(sfeb_id,sslot_schannel_idx[sfeb_id]-subtract);
1892  unsigned int onl_hash = m_sonline_idhelper->channel_Hash( shwid ).value();
1893  if ( onl_hash > max_onl_hash ) max_onl_hash = onl_hash;
1894  if ( onl_hash < min_onl_hash ) min_onl_hash = onl_hash;
1895  unsigned int off_hash = m_scell_idhelper->calo_cell_hash( SCID ).value();
1896  if ( off_hash > max_off_hash ) max_off_hash = off_hash;
1897  if ( off_hash < min_off_hash ) min_off_hash = off_hash;
1898  of1 << std::hex;
1899  of1 << feb_id.get_identifier32().get_compact();
1900  of1 << "\t0x" << shwid.get_identifier32().get_compact();
1901  of1 << " " << m_online_idhelper->channel_name(hwid) << " " << m_sonline_idhelper->channel_name(shwid);
1902  of1 << std::dec;
1903  of1 << " " << onl_hash << " " << off_hash;
1904  of1 << std::endl;
1905 
1906  OrderOffHash_OnlID[m_scell_idhelper->calo_cell_hash( SCID ).value()] = shwid.get_identifier32().get_compact();
1907  OrderOnlHash_OffID[m_sonline_idhelper->channel_Hash( shwid ).value()] = SCID.get_identifier32().get_compact();
1908  }
1909 
1910  channel_size = m_fcal_idhelper->channel_hash_max();
1911  min_onl_hash = 999999;
1912  max_onl_hash = 0;
1913  min_off_hash = 999999;
1914  max_off_hash = 0;
1915  std::ofstream of3("AllChannels_FCAL.txt");
1916 
1917  of3 << "Off ID\t\tSCID\t\tOnl ID\t\tFT\tslot\tB-E pos_neg\tSamp\teta\tphi\tFEB_ID\t\tSHWID\t" << std::endl;
1918  for(size_t i = 0; i < channel_size ; i++) {
1920  if ( ! ( m_fcal_idhelper->is_lar_fcal( chid ) ) ) continue;
1921  Identifier SCID = scidtool->offlineToSuperCellID(chid);
1922  if ( scidset.find(SCID) == scidset.end() )
1923  scidset.insert(SCID);
1924  else continue;
1925  HWIdentifier hwid = cabling->createSignalChannelID(chid);
1926  of3 << chid.get_identifier32().get_compact() << "\t0x" <<
1927  SCID.get_identifier32().get_compact() << "\t0x" <<
1928  hwid.get_identifier32().get_compact() ;
1929  int samp = 0;
1930  int feedthrough = m_online_idhelper->feedthrough( hwid );
1931  int bar_ec = m_online_idhelper->barrel_ec( hwid );
1932  int pos_neg = m_online_idhelper->pos_neg( hwid );
1933  int slot = m_online_idhelper->slot( hwid );
1934  of3 << std::dec << "\t" << feedthrough << "\t" << slot;
1935  of3 << "\t" << bar_ec << " " << pos_neg << "\t\t" << samp << "\t";
1936  HWIdentifier feb_id = m_online_idhelper->feb_Id(hwid);
1937  int sslot=1;
1938  HWIdentifier sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot);
1939  if ( (feedthrough==6) && (bar_ec==1) && (slot>9) ) {
1940  sfeb_id = m_sonline_idhelper->feb_Id(bar_ec,pos_neg,feedthrough,sslot+1);
1941  }
1942  if ( sslot_schannel_idx.find(sfeb_id) == sslot_schannel_idx.end() )
1943  sslot_schannel_idx[sfeb_id]=0;
1944  else sslot_schannel_idx[sfeb_id]++;
1945  HWIdentifier shwid = m_sonline_idhelper->channel_Id(sfeb_id,sslot_schannel_idx[sfeb_id]);
1946  unsigned int onl_hash = m_sonline_idhelper->channel_Hash( shwid ).value();
1947  if ( onl_hash > max_onl_hash ) max_onl_hash = onl_hash;
1948  if ( onl_hash < min_onl_hash ) min_onl_hash = onl_hash;
1949  unsigned int off_hash = m_scell_idhelper->calo_cell_hash( SCID ).value();
1950  if ( off_hash > max_off_hash ) max_off_hash = off_hash;
1951  if ( off_hash < min_off_hash ) min_off_hash = off_hash;
1952  of3 << std::hex;
1953  of3 << feb_id.get_identifier32().get_compact();
1954  of3 << "\t0x" << shwid.get_identifier32().get_compact();
1955  of3 << " " << m_online_idhelper->channel_name(hwid) << " " << m_sonline_idhelper->channel_name(shwid);
1956  of3 << std::dec;
1957  of3 << " " << onl_hash << " " << off_hash;
1958  of3 << std::endl;
1959 
1960  OrderOffHash_OnlID[m_scell_idhelper->calo_cell_hash( SCID ).value()] = shwid.get_identifier32().get_compact();
1961  OrderOnlHash_OffID[m_sonline_idhelper->channel_Hash( shwid ).value()] = SCID.get_identifier32().get_compact();
1962  }
1963 
1964  of3 << "Hash check. Onl : " << min_onl_hash << " " << max_onl_hash;
1965  of3 << "; Off : " << min_off_hash << " " << max_off_hash << std::endl;;
1966  of3.close();
1967 
1968 
1969 
1970  const uint32_t onlHashMax=m_sonline_idhelper->channelHashMax();
1971  coral::AttributeListSpecification *spec_onOff = new coral::AttributeListSpecification();
1972  spec_onOff->extend("OnlineHashToOfflineId", "blob");
1973  spec_onOff->extend<unsigned>("version");
1974  std::unique_ptr<AthenaAttributeList> al_onOff = std::make_unique<AthenaAttributeList>(*spec_onOff);
1975  coral::Blob& blobOnOff=(*al_onOff)["OnlineHashToOfflineId"].data<coral::Blob>();
1976  (*al_onOff)["version"].setValue(0U);
1977  blobOnOff.resize(onlHashMax*sizeof(uint32_t));
1978  uint32_t* pBlobOnOff=static_cast<uint32_t*>(blobOnOff.startingAddress());
1979  unsigned nConn=0;
1980 
1981  const uint32_t emptyId=Identifier().get_identifier32().get_compact();
1982  for(size_t ii=0;ii<onlHashMax;ii++) {
1983  if (OrderOnlHash_OffID[ii] != 0) {
1984  pBlobOnOff[ii]=OrderOnlHash_OffID[ii];
1985  nConn++;
1986  }
1987  else
1988  pBlobOnOff[ii]=emptyId;
1989  }
1990 
1991  ATH_MSG_INFO ( "HashMax=" << onlHashMax << ", connected=" << nConn );
1992 
1993  ATH_CHECK( detStore()->record(std::move(al_onOff),"/LAR/IdentifierOfl/OnOffIdMap_SC") );
1994 
1995  hashes << "idx \t Off2OnlId \t Onl2OffId" << std::endl;
1996  for(size_t ii=0;ii<40000;ii++)
1997  if ( (OrderOffHash_OnlID[ii] != 0) || ( OrderOnlHash_OffID[ii] != 0 ) )
1998  hashes << std::dec << ii << std::hex << " \t " << OrderOffHash_OnlID[ii] << " \t\t " << OrderOnlHash_OffID[ii] << std::endl;
1999  hashes.close();
2000 
2001  return StatusCode::SUCCESS;
2002 }

◆ fix14()

StatusCode FixLArElecCalib::fix14 ( const LArOnOffIdMapping cabling)

Definition at line 2072 of file FixLArElecCalib.cxx.

2072  {
2073 
2074  ATH_MSG_INFO ( " in fix14() " );
2075 
2076  // Fix14 is for filling the LArPileupAverage from ntuple
2077 
2078  const ILArfSampl* larfSampl = nullptr;
2079  ATH_CHECK( detStore()->retrieve(larfSampl,"") );
2080  // Will try to regenerate from scratch
2081  // Create new container
2082  std::unique_ptr<LArMinBiasAverageMC> minbias_av = std::make_unique<LArMinBiasAverageMC>();
2083  ATH_CHECK( minbias_av->setGroupingType("Single", msg()) );
2084  ATH_CHECK( minbias_av->initialize() );
2085  //
2086  std::unique_ptr<TFile> fin= std::make_unique<TFile>(m_infile.value().c_str());
2087  TTree *tin=dynamic_cast<TTree*>(fin->Get("m_tree"));
2088  int ncell;
2089  int identifier[2862];
2090  int layer[2862];
2091  int region[2862];
2092  int ieta[2862];
2093  float eta[2862];
2094  double average[2862];
2095  double rms[2862];
2096  TBranch *b_ncell;
2097  TBranch *b_identifier;
2098  TBranch *b_layer;
2099  TBranch *b_region;
2100  TBranch *b_ieta;
2101  TBranch *b_eta;
2102  TBranch *b_average;
2103  TBranch *b_rms;
2104  tin->SetMakeClass(1);
2105  tin->SetBranchAddress("ncell", &ncell, &b_ncell);
2106  tin->SetBranchAddress("identifier", identifier, &b_identifier);
2107  tin->SetBranchAddress("layer", layer, &b_layer);
2108  tin->SetBranchAddress("region", region, &b_region);
2109  tin->SetBranchAddress("ieta", ieta, &b_ieta);
2110  tin->SetBranchAddress("eta", eta, &b_eta);
2111  tin->SetBranchAddress("average", average, &b_average);
2112  tin->SetBranchAddress("rms", rms, &b_rms);
2113  tin->GetEntry(0);
2114 
2115 
2116  for(int icell=0; icell<ncell; ++icell) {
2117 
2118  Identifier32 id32(identifier[icell]);
2119  Identifier id(id32);
2120  HWIdentifier hid = cabling->createSignalChannelID(id);
2121  float fsampl = larfSampl->FSAMPL(hid);
2122  minbias_av->set(hid, 6.31*average[icell]/fsampl);
2123 
2124  }
2125 
2126  ATH_MSG_INFO(" number of channels in intuple ="<<ncell);
2127 
2128  ATH_MSG_INFO ( "Stored container " << minbias_av->totalNumberOfConditions() << " conditions, key LArPileupAverage " );
2129  ATH_CHECK( detStore()->record(std::move(minbias_av),"LArPileupAverage") );
2130  ATH_CHECK( detStore()->symLink(minbias_av.get(), dynamic_cast<ILArMinBiasAverage*>(minbias_av.get())) );
2131 
2132  return StatusCode::SUCCESS;
2133 }

◆ fix18()

StatusCode FixLArElecCalib::fix18 ( const LArCalibLineMapping clmap)

Definition at line 2232 of file FixLArElecCalib.cxx.

2232  {
2233 
2234  ATH_MSG_INFO ( " in fix18() " );
2235 
2236  const uint32_t onlHashMax=m_online_idhelper->channelHashMax();
2237 
2238  coral::AttributeListSpecification* spec_calib = new coral::AttributeListSpecification();
2239  spec_calib->extend("OnlineHashToCalibIds", "blob");
2240  spec_calib->extend<unsigned>("version");
2241  std::unique_ptr<AthenaAttributeList> al_calib = std::make_unique<AthenaAttributeList>(*spec_calib);
2242  coral::Blob& blobCalib=(*al_calib)["OnlineHashToCalibIds"].data<coral::Blob>();
2243  (*al_calib)["version"].setValue(0U);
2244  blobCalib.resize(onlHashMax*sizeof(uint32_t)*4); //Bigger than necessary
2245 
2246  spec_calib->release();
2247  // cppcheck-suppress memleak
2248  spec_calib = nullptr;
2249 
2250  uint32_t* pBlobCalib=static_cast<uint32_t*>(blobCalib.startingAddress());
2251  size_t calibIndex=0;
2252 
2253 
2254  // loop over all online hashes
2255  for (unsigned i=0;i<onlHashMax;++i) {
2257 
2258  const std::vector<HWIdentifier>& calibIDs=cabling->calibSlotLine(hwid);
2259  const size_t nCalibLines=calibIDs.size();
2260 
2261  if (m_online_idhelper->isEMBchannel(hwid) && m_online_idhelper->pos_neg(hwid) == 1 && m_online_idhelper->feedthrough(hwid) == 0 ) { // EMB-A FT 0
2262  if(nCalibLines > 1) { //should not be in our channels
2263  ATH_MSG_ERROR("Wrong number of CL in our channels");
2264  return StatusCode::FAILURE;
2265  }
2266  if(nCalibLines==0) {
2267  pBlobCalib[calibIndex++]=0;
2268  } else {
2269  const HWIdentifier cmodule = m_online_idhelper->calib_module_Id(calibIDs[0]);
2270  const HWIdentifier newcl = m_online_idhelper->calib_channel_Id(cmodule, m_online_idhelper->channel(hwid) );
2271  if(!m_online_idhelper->isCalibration(newcl)) {
2272  ATH_MSG_ERROR("Something wrong, new CL not a calibration");
2273  ATH_MSG_ERROR("Channel: "<<hwid.get_identifier32().get_compact()<<" old CL: "<< calibIDs[0].get_identifier32().get_compact()<<" new CL: "<<newcl.get_identifier32().get_compact());
2274  return StatusCode::FAILURE;
2275  }
2276  ATH_MSG_INFO("Channel: "<<hwid.get_identifier32().get_compact()<<" old CL: "<< calibIDs[0].get_identifier32().get_compact()<<" new CL: "<<newcl.get_identifier32().get_compact());
2277  pBlobCalib[calibIndex++]=1;
2278  pBlobCalib[calibIndex++]=newcl.get_identifier32().get_compact();
2279  }
2280  } else {
2281  pBlobCalib[calibIndex++]=nCalibLines;
2282  for(uint32_t iCalib=0;iCalib<nCalibLines;++iCalib)
2283  pBlobCalib[calibIndex++]=calibIDs[iCalib].get_identifier32().get_compact();
2284  }
2285  }
2286  blobCalib.resize(calibIndex*sizeof(uint32_t)); //Size down to actual size
2287  ATH_MSG_INFO( "BlobSize CalibId:" << calibIndex);
2288 
2289  // and now record the blob to SG
2290  ATH_CHECK(detStore()->record(std::move(al_calib),"/LAR/Identifier/CalibIdMap_EMF"));
2291 
2292  return StatusCode::SUCCESS;
2293 }

◆ fix2()

StatusCode FixLArElecCalib::fix2 ( const LArOnOffIdMapping cabling)

Definition at line 295 of file FixLArElecCalib.cxx.

295  {
296 
297  ATH_MSG_INFO ( " in fix2() " );
298 
299  // Fix2 is for updating the FCAL conditions data after IdFix7
300  // Input should be MC Conditions data with DetDescrVersion=ATLAS-DC3-05
301 
302  const LArFCAL_ID* fcal_idhelper = nullptr;
303  ATH_CHECK( detStore()->retrieve(fcal_idhelper) );
304 
305  const LArOnlineID* online_idhelper = nullptr;
306  ATH_CHECK( detStore()->retrieve(online_idhelper) );
307 
308  // retrieve DetDescrManager
309  SmartIF<IToolSvc> toolSvc{Gaudi::svcLocator()->service("ToolSvc")};
310  ATH_CHECK(toolSvc.isValid());
311 
312  LArDAC2uAMC * dac2ua = nullptr;
313  ATH_CHECK( detStore()->retrieve(dac2ua) );
314 
315  LAruA2MeVMC * ua2mev = nullptr;
316  ATH_CHECK( detStore()->retrieve(ua2mev) );
317 
318  LArRampMC * ramp = nullptr;
319  ATH_CHECK( detStore()->retrieve(ramp) );
320 
321  LArShape32MC * shape = nullptr;
322  ATH_CHECK( detStore()->retrieve(shape) );
323 
324  LArNoiseMC * noise = nullptr;
326 
327  LArfSamplMC * fsampl = nullptr;
328  ATH_CHECK( detStore()->retrieve(fsampl) );
329 
330  LArMinBiasMC * minbias = nullptr;
331  ATH_CHECK( detStore()->retrieve(minbias) );
332 
333  LArAutoCorrMC * ac = nullptr;
334  ATH_CHECK( detStore()->retrieve(ac) );
335 
336 
337  for( unsigned int gain=0;gain<3;++gain)
338  {
339  // loop over all the old data
342 
343  int n=0;
344  for (; it!=it_e;++it)
345  {
346  HWIdentifier hid = it.channelId();
347  if( (*it).isEmpty() ) continue;
348  if(cabling->isOnlineConnected(hid)){
349  continue;
350  }else
351  {
352  ATH_MSG_DEBUG(" unconnected channel"
353  << online_idhelper->print_to_string(hid) );
355  ramp->get(hid,gain) = LArRampComplete::LArCondObj();
356  shape->get(hid,gain) = LArShape32MC::LArCondObj();
357  noise->get(hid,gain) = LArNoiseComplete::LArCondObj();
358  if(gain==0){
359  dac2ua->get(hid,gain) = LArDAC2uAComplete::LArCondObj();
360  ua2mev->get(hid,gain) = LAruA2MeVComplete::LArCondObj();
361  fsampl->get(hid,gain) = LArfSamplComplete::LArCondObj();
362  minbias->get(hid,gain) = LArMinBiasComplete::LArCondObj();
363  }
364  ++n ;
365  }
366 
367  }
368  ATH_MSG_DEBUG(" Gain="<<gain<<
369  " Number of entries removed = " <<n );
370  }
371 
372 
373  HWIdentifier hid_mod[3];
374  hid_mod[0] = online_idhelper->channel_Id(1,1,6,1,33);
375  hid_mod[1] = online_idhelper->channel_Id(1,1,6,10,12);
376  hid_mod[2] = online_idhelper->channel_Id(1,1,6,14,12);
377 
378  // loop over all FCAL channels
379  std::vector<Identifier>::const_iterator it= fcal_idhelper->fcal_begin();
380  std::vector<Identifier>::const_iterator it_e= fcal_idhelper->fcal_end();
381  int n = 0;
382  for(;it!=it_e; ++it)
383  {
384  Identifier id = *it;
385  int pn = fcal_idhelper->pos_neg(id);
386  if(pn!=2) continue;
387  int phi = fcal_idhelper->phi(id);
388  if (phi>7) continue;
389 
390  int module = fcal_idhelper->module(id)-1;
391 
392  HWIdentifier hid = cabling->createSignalChannelID(id);
393 
394  for(unsigned int gain = 0;gain<3;++gain){
395 
396  LArRampComplete::LArCondObj& rampP = ramp->get(hid,gain) ;
397  if (!rampP.isEmpty()) continue ;
398 
399  ATH_MSG_DEBUG(" channel needs repair "
400  << online_idhelper->print_to_string(hid) );
401  ATH_MSG_DEBUG ( fcal_idhelper->print_to_string(id) );
402  ATH_MSG_DEBUG ( "module = "<<module );
403 
404  ++n;
405 
406  LArRampComplete::LArCondObj ramp_std = ramp->get(hid_mod[module],gain) ;
407  ramp->setPdata(hid,ramp_std,gain);
408 
409  LArAutoCorrComplete::LArCondObj ac_std = ac->get(hid_mod[module],gain) ;
410  ac->setPdata(hid,ac_std,gain);
411 
412  LArShape32MC::LArCondObj shape_std = shape->get(hid_mod[module],gain) ;
413  shape->setPdata(hid,shape_std,gain);
414 
415  LArNoiseComplete::LArCondObj noise_std = noise->get(hid_mod[module],gain) ;
416  noise->setPdata(hid,noise_std,gain);
417 
418  if(gain==0){
419 
420  LAruA2MeVComplete::LArCondObj ua2mev_std = ua2mev->get(hid_mod[module],gain) ;
421  ua2mev->setPdata(hid,ua2mev_std,gain);
422 
423  LArDAC2uAComplete::LArCondObj dac2ua_std = dac2ua->get(hid_mod[module],gain) ;
424  dac2ua->setPdata(hid,dac2ua_std,gain);
425 
426  LArfSamplComplete::LArCondObj fsampl_std = fsampl->get(hid_mod[module],gain) ;
427  fsampl->setPdata(hid,fsampl_std,gain);
428 
429  LArMinBiasComplete::LArCondObj minbias_std = minbias->get(hid_mod[module],gain) ;
430  minbias->setPdata(hid,minbias_std,gain);
431 
432  }
433 
434  }
435  }
436 
437  ATH_MSG_DEBUG( " Number of entries fixed " <<n );
438  return StatusCode::SUCCESS;
439 }

◆ initialize()

StatusCode FixLArElecCalib::initialize ( )
overridevirtual

Definition at line 126 of file FixLArElecCalib.cxx.

126  {
127  ATH_MSG_INFO ( " in initialize " );
128 
137 
140 
141  return StatusCode::SUCCESS;
142 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< 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.

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< 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< 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< 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.

◆ print_object() [1/5]

void FixLArElecCalib::print_object ( const std::string &  msg,
const LArAutoCorrMC::LArCondObj obj 
)
private

Definition at line 1301 of file FixLArElecCalib.cxx.

1302 {
1303  if( obj.isEmpty()){
1304  ATH_MSG_INFO(" LArAutoCorrMC " << s << " is empty" );
1305  }else
1306  {
1307  msg()<<MSG::DEBUG<<" LArAutoCorrMC" << s ;
1308  for (unsigned int i =0 ; i<obj.m_vAutoCorr.size();++i)
1309  msg()<< " " << obj.m_vAutoCorr[i];
1310  msg()<<endmsg;
1311  }
1312  return ;
1313 }

◆ print_object() [2/5]

void FixLArElecCalib::print_object ( const std::string &  msg,
const LArNoiseMC::LArCondObj obj 
)
private

Definition at line 1281 of file FixLArElecCalib.cxx.

1282 {
1283  if( obj.isEmpty()){
1284  ATH_MSG_INFO(" LArNoiseMC " << msg << " is empty" );
1285  }else
1286  ATH_MSG_DEBUG(" LArNoiseMC" << msg << obj.m_Noise );
1287  return ;
1288 }

◆ print_object() [3/5]

void FixLArElecCalib::print_object ( const std::string &  msg,
const LArRampMC::LArCondObj obj 
)
private

Definition at line 1328 of file FixLArElecCalib.cxx.

1329 {
1330  if( obj.isEmpty()){
1331  ATH_MSG_INFO(" LArRampMC " << s << " is empty" );
1332  }else
1333  {
1334  msg()<<MSG::DEBUG<<" LArRampMC" << s ;
1335  for (unsigned int i =0 ; i<obj.m_vRamp.size();++i)
1336  msg()<< " " << obj.m_vRamp[i];
1337  msg()<<endmsg;
1338  }
1339  return ;
1340 }

◆ print_object() [4/5]

void FixLArElecCalib::print_object ( const std::string &  msg,
const LArShape32MC::LArCondObj obj 
)
private

Definition at line 1357 of file FixLArElecCalib.cxx.

1358 {
1359  if( obj.isEmpty()){
1360  ATH_MSG_INFO(" LArShape32MC " << s << " is empty" );
1361  }else
1362  {
1363  msg()<<MSG::DEBUG<<" LArShape" << s ;
1364  for (unsigned int i =0 ; i<obj.m_vShape.size();++i)
1365  msg()<< " " << obj.m_vShape[i];
1366  msg()<<endmsg;
1367 
1368  msg()<<MSG::DEBUG<<" LArShapeDer" << s ;
1369  for (unsigned int i =0 ; i<obj.m_vShapeDer.size();++i)
1370  msg()<< " " << obj.m_vShapeDer[i];
1371  msg()<<endmsg;
1372  }
1373  return ;
1374 }

◆ print_object() [5/5]

void FixLArElecCalib::print_object ( const std::string &  msg,
const LArSingleFloatP obj 
)
private

Definition at line 1401 of file FixLArElecCalib.cxx.

1402 {
1403  if( obj.isEmpty()){
1404  ATH_MSG_INFO(" LArSingleFloatP " << msg << " is empty" );
1405  }else
1406  ATH_MSG_DEBUG(" LArSingleFloatP " << msg << obj.m_data );
1407  return ;
1408 }

◆ ReadFile()

StatusCode FixLArElecCalib::ReadFile ( const std::string &  filename,
const LArOnOffIdMapping cabling,
bool  EM,
bool  withGain,
int  nvar 
)
private

Definition at line 1142 of file FixLArElecCalib.cxx.

1142  {
1143 
1144  std::ifstream infile(filename.c_str() ) ;
1145 
1146  if(! infile.good() )
1147  {
1148  ATH_MSG_ERROR(" fail to open file "<<filename );
1149  return StatusCode::FAILURE;
1150  }
1151 
1152  ATH_MSG_INFO(" Opened file "<<filename );
1153 
1154  m_cache[0].clear();
1155  m_cache[1].clear();
1156  m_cache[2].clear();
1157 
1158  char s[200];
1159  infile.getline(s,200);
1160  ATH_MSG_INFO(" first line of the file "<<s);
1161 
1162  int det=2;
1163  int samp,reg,eta;
1164  int first;
1165  while ( infile>>first )
1166  {
1167  if (EM) {
1168  det = first;
1169  infile>>samp>>reg>>eta;
1170  }else
1171  {
1172  samp=first;
1173  infile>>reg>>eta;
1174  }
1175 
1176  int gain=0;
1177  if(withGain) infile>>gain ;
1178  std::vector<float> vfl;
1179  float x;
1180 
1181  for (int i=0;i<nvar;++i)
1182  {
1183  infile>>x;
1184  vfl.push_back(x);
1185  }
1186  ATH_MSG_DEBUG(" det,samp,reg,eta,values="
1187  <<det<<" "
1188  <<samp<<" "
1189  <<reg<<" "
1190  <<eta<<" " );
1191 
1192  Identifier id ;
1193  if (EM)
1194  {
1195  if ( det==1 && samp==1 && reg==0 && eta==0 ){
1196  // eta=0 for strip, not connected, but keep it
1197  // Removed disconnected channels: 03/2016 RDS
1198  ATH_MSG_DEBUG(" disconnected strip ");
1199  }else
1200  id = m_em_idhelper->channel_id(det,samp,reg,eta,0);
1201  }else //HEC
1202  {
1203  id = m_hec_idhelper->channel_id(2,samp,reg,eta,0);
1204  }
1205  HWIdentifier hid = cabling->createSignalChannelID(id);
1206 
1207  if (gain >= 0 && gain < 3)
1208  m_cache[gain].push_back(ROW_t(hid,vfl));
1209  }
1210 
1211  return StatusCode::SUCCESS;
1212 }

◆ ReadFileAll()

StatusCode FixLArElecCalib::ReadFileAll ( const std::string &  filename,
const LArOnOffIdMapping cabling,
bool  withGain,
int  nvar 
)
private

Definition at line 1214 of file FixLArElecCalib.cxx.

1214  {
1215 
1216  std::ifstream infile(filename.c_str() ) ;
1217 
1218  if(! infile.good() )
1219  {
1220  ATH_MSG_ERROR(" fail to open file "<<filename );
1221  return StatusCode::FAILURE;
1222  }
1223 
1224  ATH_MSG_INFO(" Opened file "<<filename );
1225 
1226  m_cache[0].clear();
1227  m_cache[1].clear();
1228  m_cache[2].clear();
1229 
1230  char s[200];
1231  infile.getline(s,200);
1232  ATH_MSG_INFO(" first line of the file "<<s);
1233 
1234  int det,samp,reg,eta;
1235  int first;
1236  while ( infile>>first>>samp>>reg>>eta ) {
1237  Identifier id ;
1238  int gain=0;
1239  float x;
1240  if(first <= 2) { // Calo 0,1,2 is EM
1241  det = first+1;
1242  if ( det==1 && samp==1 && reg==0 && eta==0 ){
1243  // eta=0 for strip, not connected, but keep it
1244  // Removed disconnected channels: 03/2016 RDS
1245  ATH_MSG_DEBUG(" disconnected strip ");
1246  // id = m_em_idhelper->disc_channel_id(det,samp,reg,eta,0);
1247  }else
1248  id = m_em_idhelper->channel_id(det,samp,reg,eta,0);
1249  } else if (first == 3) { // HEC
1250  id = m_hec_idhelper->channel_id(2,samp,reg,eta,0);
1251  } else if (first == 4) { // FCAL
1252  id = m_fcal_idhelper->channel_id(2,samp+1,eta,0);
1253  } else {
1254  ATH_MSG_WARNING(" Wrong calo number "<<first<<" skipping !!!");
1255  if(withGain) infile>>gain ;
1256  for (int i=0;i<nvar;++i) infile>>x;
1257  continue;
1258  }
1259  if(withGain) infile>>gain ;
1260  std::vector<float> vfl;
1261 
1262  for (int i=0;i<nvar;++i)
1263  {
1264  infile>>x;
1265  vfl.push_back(x);
1266  }
1267  ATH_MSG_DEBUG(" first, det,samp,reg,eta,values="
1268  <<first<<" " <<det<<" " <<samp<<" " <<reg<<" " <<eta<<" " );
1269 
1270  HWIdentifier hid = cabling->createSignalChannelID(id);
1271 
1272  if (gain >= 0 && gain < 3) m_cache[gain].push_back(ROW_t(hid,vfl));
1273  else {
1274  ATH_MSG_WARNING(" Wrong gain " <<gain<<" skipping !");
1275  }
1276  }// while
1277 
1278  return StatusCode::SUCCESS;
1279 }

◆ 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< 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< 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  }

◆ set_object() [1/5]

void FixLArElecCalib::set_object ( LArAutoCorrMC::LArCondObj obj,
const std::vector< float > &  v 
)
private

Definition at line 1315 of file FixLArElecCalib.cxx.

1316 {
1317  if (v.size()<4 )
1318  {
1319  ATH_MSG_ERROR( "for LArAutoCorrMC, size of vector = "<< v.size()<<" is less then 4" );
1320  return ;
1321  }
1322 
1323  obj.m_vAutoCorr.resize(4);
1324  std::copy_n(v.begin(), 4, obj.m_vAutoCorr.begin());
1325  return;
1326 }

◆ set_object() [2/5]

void FixLArElecCalib::set_object ( LArNoiseMC::LArCondObj obj,
const std::vector< float > &  v 
)
private

Definition at line 1290 of file FixLArElecCalib.cxx.

1291 {
1292  if (v.size()!=1)
1293  {
1294  ATH_MSG_ERROR ("for LArNoiseMC, size of vector = "<< v.size() <<" differs from one");
1295  return ;
1296  }
1297  obj.m_Noise = v[0];
1298  return;
1299 }

◆ set_object() [3/5]

void FixLArElecCalib::set_object ( LArRampMC::LArCondObj obj,
const std::vector< float > &  v 
)
private

Definition at line 1342 of file FixLArElecCalib.cxx.

1343 {
1344  if (v.size()!=1 )
1345  {
1346  ATH_MSG_ERROR ("for LArRampMC, size of vector = "<< v.size());
1347  return ;
1348  }
1349  obj.m_vRamp.resize(3);
1350  obj.m_vRamp[0]=0;
1351  obj.m_vRamp[1]=v[0];
1352  obj.m_vRamp[2]=0;
1353 
1354  return;
1355 }

◆ set_object() [4/5]

void FixLArElecCalib::set_object ( LArShape32MC::LArCondObj obj,
const std::vector< float > &  v 
)
private

Definition at line 1376 of file FixLArElecCalib.cxx.

1377 {
1378 
1379  if (v.size()!=64 && v.size()!=32 )
1380  {
1381  ATH_MSG_ERROR ("for LArShape32MC, size of vector = "<< v.size());
1382  return ;
1383  }
1384 
1385  unsigned int size = 32;
1386  obj.m_vShape.resize(size);
1387  obj.m_vShapeDer.resize(size);
1388 
1389  for(unsigned int i=0;i<size;++i){
1390  obj.m_vShape[i]=v[i];
1391  if(v.size() == 64 ) obj.m_vShapeDer[i]=v[i+size]; else obj.m_vShapeDer[i]=0.;
1392  }
1393 
1394  return;
1395 }

◆ set_object() [5/5]

void FixLArElecCalib::set_object ( LArSingleFloatP obj,
const std::vector< float > &  v 
)
private

Definition at line 1410 of file FixLArElecCalib.cxx.

1411 {
1412  if (v.size()!=1)
1413  {
1414  ATH_MSG_ERROR( "for LArSingleFloatP, size of vector = "<< v.size() );
1415  return ;
1416  }
1417  obj.m_data = v[0];
1418  return;
1419 }

◆ sysInitialize()

StatusCode AthAlgorithm::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< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< 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.

◆ update_DAC2uA()

StatusCode FixLArElecCalib::update_DAC2uA ( const std::string &  em_filename,
const std::string &  hec_filename 
)
private

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< 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_cablingKey

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

Definition at line 70 of file FixLArElecCalib.h.

◆ m_cache

VROW_t FixLArElecCalib::m_cache[3]
private

Definition at line 141 of file FixLArElecCalib.h.

◆ m_CLKey

SG::ReadCondHandleKey<LArCalibLineMapping> FixLArElecCalib::m_CLKey {this, "CalibLineKey", "LArCalibLineMap", "calib line key"}
private

Definition at line 71 of file FixLArElecCalib.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_em_idhelper

const LArEM_ID* FixLArElecCalib::m_em_idhelper
private

Definition at line 126 of file FixLArElecCalib.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_fcal_idhelper

const LArFCAL_ID* FixLArElecCalib::m_fcal_idhelper
private

Definition at line 128 of file FixLArElecCalib.h.

◆ m_fixFlag

IntegerProperty FixLArElecCalib::m_fixFlag {this, "FixFlag", 1, "which fix to apply"}
private

Definition at line 73 of file FixLArElecCalib.h.

◆ m_g4Phys

StringProperty FixLArElecCalib::m_g4Phys {this, "G4Phys", "", "which physics list to use"}
private

Definition at line 74 of file FixLArElecCalib.h.

◆ m_hec_idhelper

const LArHEC_ID* FixLArElecCalib::m_hec_idhelper
private

Definition at line 127 of file FixLArElecCalib.h.

◆ m_infile

StringProperty FixLArElecCalib::m_infile {this, "InputFile", "", "name of inpput file"}
private

Definition at line 75 of file FixLArElecCalib.h.

◆ m_online_idhelper

const LArOnlineID* FixLArElecCalib::m_online_idhelper
private

Definition at line 129 of file FixLArElecCalib.h.

◆ m_scell_idhelper

const CaloCell_SuperCell_ID* FixLArElecCalib::m_scell_idhelper
private

Definition at line 133 of file FixLArElecCalib.h.

◆ m_sem_idhelper

const LArEM_SuperCell_ID* FixLArElecCalib::m_sem_idhelper
private

Definition at line 130 of file FixLArElecCalib.h.

◆ m_shec_idhelper

const LArHEC_SuperCell_ID* FixLArElecCalib::m_shec_idhelper
private

Definition at line 131 of file FixLArElecCalib.h.

◆ m_sonline_idhelper

const LArOnline_SuperCellID* FixLArElecCalib::m_sonline_idhelper
private

Definition at line 132 of file FixLArElecCalib.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
python.root_lsr_rank.hashes
hashes
Definition: root_lsr_rank.py:34
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
Identifier32
Definition: Identifier32.h:25
LArEM_Base_ID::phi
int phi(const Identifier id) const
return phi according to :
LArOnlineID_Base::channel_Hash
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
Definition: LArOnlineID_Base.cxx:1632
LArConditionsContainer::setPdata
void setPdata(const HWIdentifier id, const T &payload, unsigned int gain=0)
put payload in persistent data
LArRampP1::isEmpty
bool isEmpty() const
Definition: LArRampP1.h:29
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
FixLArElecCalib::m_fixFlag
IntegerProperty m_fixFlag
Definition: FixLArElecCalib.h:73
LAruA2MeVMC
Implementation of the interface ILAruA2MeV for MC Derives from LAruA2MeVComplete, and implements the ...
Definition: LAruA2MeVMC.h:22
CaloCell_Base_ID::calo_cell_hash
IdentifierHash calo_cell_hash(const Identifier cellId) const
create hash id from 'global' cell id
LArHEC_Base_ID::eta
int eta(const Identifier id) const
return eta [0,9] outer part [0,3] inner part
LArMphysOverMcalMC::initialize
virtual StatusCode initialize()
Initialization done after creation or read back - derived classes may augment the functionality.
Definition: LArMphysOverMcalMC.cxx:13
run.infile
string infile
Definition: run.py:13
WriteCellNoiseToCool.icell
icell
Definition: WriteCellNoiseToCool.py:339
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
drawFromPickle.average
def average(lst)
Definition: drawFromPickle.py:38
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LArConditionsContainer< LArRampP1 >::LArCondObj
LArRampP1 LArCondObj
Definition: LArConditionsContainer.h:69
LArConditionsContainerBase::SingleGroup
@ SingleGroup
Definition: LArConditionsContainerBase.h:46
AtlasDetectorID::is_lar_fcal
bool is_lar_fcal(Identifier id) const
Definition: AtlasDetectorID.h:839
LArRampMC
Implementation of the interface ILArRamp for MC Derives from LArRampComplete, and implements the phi-...
Definition: LArRampMC.h:22
LArFCAL_Base_ID::pos_neg
int pos_neg(const Identifier id) const
pos_neg : +/- 2 (A/C side)
IdentifierHash::value
unsigned int value() const
CaloIDHelper::channel_hash_max
size_type channel_hash_max() const
One more than the largest channel (cell) hash code.
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LArEM_Base_ID::is_em_endcap_outer
bool is_em_endcap_outer(const Identifier id) const
test if the id belongs to the EM Endcap outer wheel
LArEM_Base_ID::region_hash
IdentifierHash region_hash(Identifier regionId) const
Convert a connected region Identifier to a hash code.
TRTCalib_Extractor.det
det
Definition: TRTCalib_Extractor.py:36
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LUCID_EventTPCnv_Dict::t3
std::vector< LUCID_RawData_p1 > t3
Definition: LUCID_EventTPCnvDict.h:28
LArSingleFloatP
Definition: LArSingleFloatP.h:11
LArEM_Base_ID::region_id
Identifier region_id(const ExpandedIdentifier &exp_id) const
Build a cell identifier from an expanded identifier.
LArConditionsContainerDB::iteratorT
Declaration of const iterator.
Definition: LArConditionsContainerDB.h:72
InDetAccessor::phi0
@ phi0
Definition: InDetAccessor.h:33
LArRampP1
Persistent data for LArRamp Copied from LAr.
Definition: LArRampP1.h:24
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
skel.it
it
Definition: skel.GENtoEVGEN.py:407
LArAutoCorrP1
c-struct reproducing the structure of the persistent data
Definition: LArAutoCorrP1.h:25
LArMinBiasAverageComplete::set
void set(const HWIdentifier &CellID, float vMinBiasAverage)
Definition: LArMinBiasAverageComplete.cxx:13
LArOnlineID_Base::slot
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
Definition: LArOnlineID_Base.cxx:1957
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
Identifier::get_identifier32
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
LArFCAL_Base_ID::module
int module(const Identifier id) const
module [1,3]
LArEM_Base_ID::region
int region(const Identifier id) const
return region according to :
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
athena.value
value
Definition: athena.py:124
LArEM_Base_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
ILArMinBiasAverage
Definition: ILArMinBiasAverage.h:13
FixLArElecCalib::m_sonline_idhelper
const LArOnline_SuperCellID * m_sonline_idhelper
Definition: FixLArElecCalib.h:132
LArOnlineID_Base::calib_module_Id
HWIdentifier calib_module_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Build calibration module identifier from fields.
Definition: LArOnlineID_Base.h:573
FixLArElecCalib::m_hec_idhelper
const LArHEC_ID * m_hec_idhelper
Definition: FixLArElecCalib.h:127
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
FixLArElecCalib::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: FixLArElecCalib.h:70
FixLArElecCalib::m_fcal_idhelper
const LArFCAL_ID * m_fcal_idhelper
Definition: FixLArElecCalib.h:128
xAOD::identifier
identifier
Definition: UncalibratedMeasurement_v1.cxx:15
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
HWIdentifier
Definition: HWIdentifier.h:13
LArOnlineID_Base::barrel_ec
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
Definition: LArOnlineID_Base.cxx:1938
x
#define x
LArHEC_Base_ID::region_id
Identifier region_id(const ExpandedIdentifier &exp_id) const
region identifier for a channel from ExpandedIdentifier
LArEM_Base_ID::channel_id
Identifier channel_id(const ExpandedIdentifier &exp_id) const
Build a cell identifier from an expanded identifier.
Identifier32::get_compact
value_type get_compact() const
Get the compact id.
Definition: Identifier32.h:44
FixLArElecCalib::m_shec_idhelper
const LArHEC_SuperCell_ID * m_shec_idhelper
Definition: FixLArElecCalib.h:131
LArEM_Base_ID::eta
int eta(const Identifier id) const
return eta according to :
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
LArMinBiasAverageMC::initialize
virtual StatusCode initialize()
Initialization done after creation or read back - derived classes may augment the functionality.
Definition: LArMinBiasAverageMC.cxx:10
AthCommonDataStore< AthCommonMsg< 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
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
python.ZdcRecConfig.pn
pn
Definition: ZdcRecConfig.py:560
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
LArConditionsContainer::totalNumberOfConditions
unsigned int totalNumberOfConditions() const
Statistics: total number of conditions.
python.PyAthena.module
module
Definition: PyAthena.py:131
LArFCAL_Base_ID::phi
int phi(const Identifier id) const
phi [0,15]
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1963
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
LArMinBiasMC
Implementation of the interface ILArMinBias for MC Derives from LArMinBiasComplete,...
Definition: LArMinBiasMC.h:19
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
maskDeadModules.mod
mod
Definition: maskDeadModules.py:36
Ringer::EM
@ EM
Definition: CaloRingsDefs.h:19
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
LArConditionsContainer::end
ConstConditionsMapIterator end(unsigned int gain) const
end of all channels for this gain
FixLArElecCalib::m_em_idhelper
const LArEM_ID * m_em_idhelper
Definition: FixLArElecCalib.h:126
FixLArElecCalib::m_sem_idhelper
const LArEM_SuperCell_ID * m_sem_idhelper
Definition: FixLArElecCalib.h:130
CaloIDHelper::etaGranularity
float etaGranularity(const IdentifierHash regHash) const
Return the eta granularity of a region, or NOT_VALID.
Definition: CaloIDHelper.cxx:185
lumiFormat.i
int i
Definition: lumiFormat.py:85
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArShapeP1
c-struct reproducing the structure of the persistent data
Definition: LArShapeP1.h:16
LArConditionsContainer::get
ConstReference get(const HWIdentifier id, unsigned int gain=0) const
get data with online identifier
ILArfSampl::FSAMPL
virtual const float & FSAMPL(const HWIdentifier &id) const =0
LArfSamplMC
Implementation of the interface ILArfSampl for MC Derives from LArfSamplComplete, and implements the ...
Definition: LArfSamplMC.h:23
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LArFCAL_Base_ID::channel_id
Identifier channel_id(const ExpandedIdentifier &exp_id) const
cell identifier for a channel from ExpandedIdentifier
FixLArElecCalib::m_online_idhelper
const LArOnlineID * m_online_idhelper
Definition: FixLArElecCalib.h:129
LArOnlineID_Base::channel_Id
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
Definition: LArOnlineID_Base.cxx:1565
LArOnlineID_Base::pos_neg
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
Definition: LArOnlineID_Base.cxx:1950
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AtlasDetectorID::is_lar_hec
bool is_lar_hec(Identifier id) const
Definition: AtlasDetectorID.h:829
WriteCellNoiseToCool.igain
igain
Definition: WriteCellNoiseToCool.py:338
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
ILArMinBias
Definition: ILArMinBias.h:13
LArNoiseP
Definition: LArNoiseP.h:12
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:1479
LArShape32MC
This class implements the ILArShape interface.
Definition: LArShape32MC.h:27
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
ReadCellNoiseFromCool.ncell
ncell
Definition: ReadCellNoiseFromCool.py:197
AtlasDetectorID::print_to_string
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:408
LArMinBiasMC::initialize
virtual StatusCode initialize()
Initialization done after creation or read back - derived classes may augment the functionality.
Definition: LArMinBiasMC.cxx:10
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
CaloIDHelper::eta0
float eta0(const IdentifierHash regHash) const
Return the minimum eta of region, or NOT_VALID.
Definition: CaloIDHelper.cxx:207
ILArMphysOverMcal
Definition: ILArMphysOverMcal.h:13
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArOnlineID_Base::channelHashMax
size_type channelHashMax(void) const
Define channel hash tables max size.
Definition: LArOnlineID_Base.cxx:1897
LArHEC_Base_ID::channel_id
Identifier channel_id(const ExpandedIdentifier &exp_id) const
channel identifier for a channel from ExpandedIdentifier
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArOnlineID
Definition: LArOnlineID.h:20
LArOnlineID_Base::isCalibration
bool isCalibration(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1783
LArOnlineID_Base::isEMBchannel
bool isEMBchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1648
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
LArFCAL_Base_ID::fcal_begin
id_iterator fcal_begin(void) const
begin iterator over full set of Fcal Identifiers for channels
python.PyAthena.v
v
Definition: PyAthena.py:154
FixLArElecCalib::m_cache
VROW_t m_cache[3]
Definition: FixLArElecCalib.h:141
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
LArMinBiasP
c-struct reproducing the structure of the persistent data
Definition: LArMinBiasP.h:15
LArOnlineID_Base::feedthrough
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
Definition: LArOnlineID_Base.cxx:1944
LArfSamplP
c-struct reproducing the structure of the persistent data
Definition: LArfSamplP.h:20
Muon::nsw::channel_type
channel_type
Definition: NSWDecodeHelper.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloIDHelper::phi0
float phi0(const IdentifierHash regHash) const
Return the minimum phi of region, or NOT_VALID.
Definition: CaloIDHelper.cxx:218
LArEM_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
FixLArElecCalib::fix13
StatusCode fix13(const LArOnOffIdMapping *cabling)
Definition: FixLArElecCalib.cxx:1733
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DeMoScan.first
bool first
Definition: DeMoScan.py:536
DEBUG
#define DEBUG
Definition: page_access.h:11
LArHEC_Base_ID::sampling
int sampling(const Identifier id) const
return sampling [0,3] (only 0 for supercells)
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
FixLArElecCalib::ROW_t
std::pair< HWIdentifier, std::vector< float > > ROW_t
Definition: FixLArElecCalib.h:138
LArConditionsContainer::begin
ConstConditionsMapIterator begin(unsigned int gain) const
get iterator for all channels for a gain
beamspotnt.rms
rms
Definition: bin/beamspotnt.py:1266
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
FixLArElecCalib::ReadFile
StatusCode ReadFile(const std::string &filename, const LArOnOffIdMapping *cabling, bool EM, bool withGain, int nvar)
Definition: FixLArElecCalib.cxx:1142
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
LArDAC2uAMC
Implementation of the interface ILArDAC2uA for MC Derives from LArDAC2uAComplete, and implements the ...
Definition: LArDAC2uAMC.h:21
compute_lumi.fin
fin
Definition: compute_lumi.py:19
LArAutoCorrComplete::LArCondObj
LArAutoCorrP1 LArCondObj
Definition: LArAutoCorrComplete.h:31
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LArEM_ID
Helper class for LArEM offline identifiers.
Definition: LArEM_ID.h:118
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
CaloIDHelper::phiGranularity
float phiGranularity(const IdentifierHash regHash) const
Return the phi granularity of a region, or NOT_VALID.
Definition: CaloIDHelper.cxx:196
LArFCAL_Base_ID::fcal_end
id_iterator fcal_end(void) const
end iterator over full set of Fcal Identifiers for channels
FixLArElecCalib::m_CLKey
SG::ReadCondHandleKey< LArCalibLineMapping > m_CLKey
Definition: FixLArElecCalib.h:71
Identifier::size_type
unsigned long long size_type
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:29
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
LArNoiseMC
Implementation of the interface ILArNoise for MC Derives from LArNoiseComplete, and implements the ph...
Definition: LArNoiseMC.h:20
LArOnlineID_Base::channel_name
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:219
python.PyAthena.obj
obj
Definition: PyAthena.py:132
LArFCAL_ID
Helper class for LArFCAL offline identifiers.
Definition: LArFCAL_ID.h:60
FixLArElecCalib::m_infile
StringProperty m_infile
Definition: FixLArElecCalib.h:75
LArOnlineID_Base::calib_channel_Id
HWIdentifier calib_channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create calibration channel identifiers from fields
Definition: LArOnlineID_Base.h:622
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
CaloIDHelper::region_hash
IdentifierHash region_hash(Identifier regionId) const
Convert a connected region Identifier to a hash code.
LArAutoCorrMC
Implementation of the interface ILArAutoCorr for MC Derives from LArAutoCorrComplete,...
Definition: LArAutoCorrMC.h:24
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
LArMinBiasComplete::set
void set(const HWIdentifier &CellID, float vMinBiasRMS)
Definition: LArMinBiasComplete.cxx:18
LArEM_Base_ID::is_em_endcap
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
fitman.k
k
Definition: fitman.py:528
ILArfSampl
Definition: ILArfSampl.h:14
LArHEC_Base_ID::phi
int phi(const Identifier id) const
return phi[0,63] outer part [0,31] inner part
ServiceHandle< ICondSvc >
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
FixLArElecCalib::m_scell_idhelper
const CaloCell_SuperCell_ID * m_scell_idhelper
Definition: FixLArElecCalib.h:133
Identifier
Definition: IdentifierFieldParser.cxx:14