ATLAS Offline Software
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, V, H > &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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &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_em_idhelper(nullptr),
114  m_hec_idhelper(nullptr),
115  m_fcal_idhelper(nullptr),
116  m_online_idhelper(nullptr),
117  m_sem_idhelper(nullptr),
118  m_shec_idhelper(nullptr),
119  m_sonline_idhelper(nullptr),
120  m_scell_idhelper(nullptr)
121 {
122 
123 }

◆ ~FixLArElecCalib()

virtual FixLArElecCalib::~FixLArElecCalib ( )
virtualdefault

Member Function Documentation

◆ addMphysOverMcal()

StatusCode FixLArElecCalib::addMphysOverMcal ( const LArOnOffIdMapping cabling)
private

Definition at line 1423 of file FixLArElecCalib.cxx.

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

◆ 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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 143 of file FixLArElecCalib.cxx.

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

◆ 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 218 of file FixLArElecCalib.cxx.

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

◆ fix12()

StatusCode FixLArElecCalib::fix12 ( const LArOnOffIdMapping cabling)

Definition at line 2003 of file FixLArElecCalib.cxx.

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

◆ fix13()

StatusCode FixLArElecCalib::fix13 ( const LArOnOffIdMapping cabling)

Definition at line 1732 of file FixLArElecCalib.cxx.

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

◆ fix14()

StatusCode FixLArElecCalib::fix14 ( const LArOnOffIdMapping cabling)

Definition at line 2071 of file FixLArElecCalib.cxx.

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

◆ fix18()

StatusCode FixLArElecCalib::fix18 ( const LArCalibLineMapping clmap)

Definition at line 2231 of file FixLArElecCalib.cxx.

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

◆ fix2()

StatusCode FixLArElecCalib::fix2 ( const LArOnOffIdMapping cabling)

Definition at line 294 of file FixLArElecCalib.cxx.

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

◆ initialize()

StatusCode FixLArElecCalib::initialize ( )
overridevirtual

Definition at line 125 of file FixLArElecCalib.cxx.

125  {
126  ATH_MSG_INFO ( " in initialize " );
127 
136 
139 
140  return StatusCode::SUCCESS;
141 }

◆ 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 1300 of file FixLArElecCalib.cxx.

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

◆ print_object() [2/5]

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

Definition at line 1280 of file FixLArElecCalib.cxx.

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

◆ print_object() [3/5]

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

Definition at line 1327 of file FixLArElecCalib.cxx.

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

◆ print_object() [4/5]

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

Definition at line 1356 of file FixLArElecCalib.cxx.

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

◆ print_object() [5/5]

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

Definition at line 1400 of file FixLArElecCalib.cxx.

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

◆ ReadFile()

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

Definition at line 1141 of file FixLArElecCalib.cxx.

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

◆ ReadFileAll()

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

Definition at line 1213 of file FixLArElecCalib.cxx.

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

◆ 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 1314 of file FixLArElecCalib.cxx.

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

◆ set_object() [2/5]

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

Definition at line 1289 of file FixLArElecCalib.cxx.

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

◆ set_object() [3/5]

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

Definition at line 1341 of file FixLArElecCalib.cxx.

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

◆ set_object() [4/5]

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

Definition at line 1375 of file FixLArElecCalib.cxx.

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

◆ set_object() [5/5]

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

Definition at line 1409 of file FixLArElecCalib.cxx.

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

◆ 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
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:846
python.ZdcOnlineRecMonitorConfig.pn
pn
Definition: ZdcOnlineRecMonitorConfig.py:341
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)
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
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:109
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.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
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
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:209
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:729
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
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
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:836
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:418
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
IdentifierHash::value
value_type value() const
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:1732
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DeMoScan.first
bool first
Definition: DeMoScan.py:534
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:1265
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:23
FixLArElecCalib::ReadFile
StatusCode ReadFile(const std::string &filename, const LArOnOffIdMapping *cabling, bool EM, bool withGain, int nvar)
Definition: FixLArElecCalib.cxx:1141
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
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
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:801
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
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