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

#include <LArCompleteToFlat.h>

Inheritance diagram for LArCompleteToFlat:
Collaboration diagram for LArCompleteToFlat:

Public Member Functions

 LArCompleteToFlat (const std::string &name, ISvcLocator *pSvcLocator)
 Constructor with parameters: More...
 
virtual ~LArCompleteToFlat ()
 Destructor: More...
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
virtual StatusCode stop ()
 
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 ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

 LArCompleteToFlat ()
 Default constructor: More...
 
CondAttrListCollectionsingleFloatFlat (const char *blobName, const LArConditionsContainer< LArSingleFloatP > *input, const std::string &outputName, const unsigned nGain, const bool withFCAL=true)
 
CondAttrListCollectionDAC2uAFlat (const ILArDAC2uA *input, const std::string &outputName)
 
CondAttrListCollectionuA2MeVFlat (const ILAruA2MeV *input, const std::string &outputName)
 
CondAttrListCollectionpedestalFlat (const ILArPedestal *input, const std::string &outputName)
 
CondAttrListCollectionrampFlat (const ILArRamp *input, const std::string &outputName)
 
CondAttrListCollectionofcFlat (const ILArOFC *input, const std::string &outputName, const LArfSamplSC *weights=nullptr)
 
CondAttrListCollectionshapeFlat (const LArShapeComplete *input, const std::string &outputName)
 
AthenaAttributeListDSPThresholdsFlat (const LArDSPThresholdsComplete *input, const std::string &outputName)
 
void errIfConnected (const HWIdentifier chid, const int gain, const char *objName, const char *message=0) const
 
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

unsigned m_hashMax
 
const LArOnlineID_Basem_onlineID
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKeySC {this,"CablingSCKey","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object"}
 
SG::ReadCondHandleKey< LArfSamplSCm_weightsKeySC {this,"WeightsSCKey","","SG Key of weights object"}
 
std::string m_uA2MeVInput
 InputSGKeys. More...
 
std::string m_DAC2uAInput
 
std::string m_HVScaleCorrInput
 
std::string m_PedestalInput
 
std::string m_RampInput
 
std::string m_MphysOverMcalInput
 
std::string m_OFCInput
 
std::string m_OFCCaliInput
 
std::string m_ShapeInput
 
std::string m_DSPThresholdsInput
 
std::string m_nameOfSet
 
bool m_isSC
 
bool m_forceStop
 
bool m_fakeEMBPSLowGain
 
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

Definition at line 32 of file LArCompleteToFlat.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArCompleteToFlat() [1/2]

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

Constructor with parameters:

Definition at line 41 of file LArCompleteToFlat.cxx.

42  :
43  ::AthAlgorithm( name, pSvcLocator ),
44  m_hashMax(0),
45  m_onlineID(nullptr),
46  m_isSC(false)
47 {
48  declareProperty("isSC",m_isSC);
49  declareProperty("uA2MeVInput",m_uA2MeVInput);//="LAruA2MeV");
50  declareProperty("DAC2uAVInput",m_DAC2uAInput);//="LArDAC2uA");
51  declareProperty("HVScaleCorrInput",m_HVScaleCorrInput);//="LArHVScaleCorr");
52  declareProperty("PedestalInput",m_PedestalInput);//="Pedestal");
53  declareProperty("RampInput",m_RampInput);//="LArRamp");
54  declareProperty("MphysOverMcalInput",m_MphysOverMcalInput);//="LArMphysOverMcal");
55  declareProperty("OFCInput",m_OFCInput);//="LArOFC");
56  declareProperty("OFCCaliInput",m_OFCCaliInput);//="LArOFC");
57  declareProperty("ShapeInput",m_ShapeInput);//="LArShape");
58  declareProperty("DSPThresholdsInput",m_DSPThresholdsInput);//="LArDSPThresholds");
59  declareProperty("NameOfSet",m_nameOfSet); // for DSPThreshold
60 
61  declareProperty("ForceStop",m_forceStop=true);
62 
63  declareProperty("FakeEMBPSLowGain",m_fakeEMBPSLowGain=false);
64 
65 
66 }

◆ ~LArCompleteToFlat()

LArCompleteToFlat::~LArCompleteToFlat ( )
virtualdefault

Destructor:

◆ LArCompleteToFlat() [2/2]

LArCompleteToFlat::LArCompleteToFlat ( )
private

Default constructor:

Member Function Documentation

◆ DAC2uAFlat()

CondAttrListCollection * LArCompleteToFlat::DAC2uAFlat ( const ILArDAC2uA input,
const std::string &  outputName 
)
private

Definition at line 554 of file LArCompleteToFlat.cxx.

554  {
555  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
556  spec->extend("DAC2uA", "blob");
557  spec->extend<unsigned>("version");
560  (*attrList)["version"].setValue(0U);
561  coral::Blob& blob=(*attrList)["DAC2uA"].data<coral::Blob>();
562  blob.resize(m_hashMax*sizeof(float));
563  float* pblob=static_cast<float*>(blob.startingAddress());
564  for (unsigned hs=0;hs<m_hashMax;++hs) {
565  const HWIdentifier chid=m_onlineID->channel_Id(hs);
566  pblob[hs]=input->DAC2UA(chid);
567  }
568  coll->add(1,*attrList);
569  //delete attrList;//???
570  StatusCode sc=detStore()->record(coll,outputName);
571  if (sc.isFailure()) {
572  ATH_MSG_ERROR( "Failed to record CondAttrListCollection with key" << outputName );
573  return nullptr;
574  }
575  return coll;
576 }

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

◆ DSPThresholdsFlat()

AthenaAttributeList * LArCompleteToFlat::DSPThresholdsFlat ( const LArDSPThresholdsComplete input,
const std::string &  outputName 
)
private

Definition at line 603 of file LArCompleteToFlat.cxx.

603  {
604 
605  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
606  spec->extend("tQThr", "blob");
607  spec->extend("samplesThr", "blob");
608  spec->extend("trigSumThr","blob");
609  //spec->extend<unsigned>("version");
610  spec->extend("Name","string");
611 
613  //(*attrList)["version"].setValue(0U);
614  (*attrList)["Name"].setValue(m_nameOfSet);
615  coral::Blob& QBlob=(*attrList)["tQThr"].data<coral::Blob>();
616  coral::Blob& SamplesBlob=(*attrList)["samplesThr"].data<coral::Blob>();
617  coral::Blob& TrigBlob=(*attrList)["trigSumThr"].data<coral::Blob>();
618 
619  QBlob.resize(m_hashMax*sizeof(float));
620  SamplesBlob.resize(m_hashMax*sizeof(float));
621  TrigBlob.resize(m_hashMax*sizeof(float));
622  float* ptQThr=static_cast<float*>(QBlob.startingAddress());
623  float* pSamplesThr=static_cast<float*>(SamplesBlob.startingAddress());
624  float* pTrigThr=static_cast<float*>(TrigBlob.startingAddress());
625 
626  for (unsigned hs=0;hs<m_hashMax;++hs) {
627  const HWIdentifier chid=m_onlineID->channel_Id(hs);
628 
629  ptQThr[hs] = input->tQThr(chid);
630  pSamplesThr[hs] = input->samplesThr(chid);
631  pTrigThr[hs] = input->trigSumThr(chid);
632 
633  ATH_MSG_INFO( "hwid: "<<chid.getString()<<" "<<hs<<" | "<<ptQThr[hs]<<" : "<<pSamplesThr[hs]<<" | "<<pTrigThr[hs] );
634  }//end loop over hash ids
635 
636  AthenaAttributeList* coll=new AthenaAttributeList(*attrList);
637 
638  StatusCode sc=detStore()->record(coll,outputName);
639  if (sc.isFailure()) {
640  ATH_MSG_ERROR( "Failed to record AthenaAttributeList DSPThresholds with key " << outputName );
641  return nullptr;
642  }
643 
644  return coll;
645 }

◆ errIfConnected()

void LArCompleteToFlat::errIfConnected ( const HWIdentifier  chid,
const int  gain,
const char *  objName,
const char *  message = 0 
) const
private

Definition at line 898 of file LArCompleteToFlat.cxx.

898  {
899 
900  const LArOnOffIdMapping* cabling(nullptr);
901  if(m_isSC){
903  cabling=*cablingHdl;
904  }else{
906  cabling=*cablingHdl;
907  }
908  if(!cabling) {
909  ATH_MSG_ERROR( "Do not have cabling mapping from key " << m_cablingKey.key() );
910  return;
911  }
912 
913  if (cabling->isOnlineConnected(chid)) {
914  if (gain!=2 || !m_onlineID->isEMBPS(chid)) { //No LG Presampler calibration
915  ATH_MSG_ERROR( "No valid " << objName << " found for channel " << m_onlineID->channel_name(chid) << ", gain " << gain << ". ");
916  if (message) ATH_MSG_ERROR( message );
917  ATH_MSG_ERROR( " Filling with default value." );
918  }
919  }
920  }

◆ 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 LArCompleteToFlat::execute ( )
inline

Definition at line 47 of file LArCompleteToFlat.h.

47 {return StatusCode::SUCCESS;}

◆ 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()

StatusCode LArCompleteToFlat::finalize ( )
inline

Definition at line 48 of file LArCompleteToFlat.h.

48 {return StatusCode::SUCCESS;}

◆ initialize()

StatusCode LArCompleteToFlat::initialize ( )

Definition at line 75 of file LArCompleteToFlat.cxx.

76 {
80  return StatusCode::SUCCESS;
81 }

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

◆ ofcFlat()

CondAttrListCollection * LArCompleteToFlat::ofcFlat ( const ILArOFC input,
const std::string &  outputName,
const LArfSamplSC weights = nullptr 
)
private

Definition at line 211 of file LArCompleteToFlat.cxx.

211  {
212 
213  ATH_MSG_INFO("LArCompleteToFlat::ofcFlat, starting");
214  unsigned nChannels=0;
215  unsigned nCopiedEMPS=0;
216  unsigned nDefault=0;
217 
218  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
219  spec->extend("OFCa", "blob");
220  spec->extend("OFCb", "blob");
221  spec->extend("TimeOffset","blob");
222  spec->extend<unsigned>("nSamples");
223  spec->extend<unsigned>("version");
225  int phase = 0;
226  const unsigned nGain = m_isSC ? 1 : 3;
227  for (unsigned gain=0;gain<nGain;++gain) {
228 
229  //Auto-detect the number of samples (at least in theory, could be different for each gain)
230  unsigned nSamples=0;
231  for (unsigned hs=0;hs<m_hashMax && nSamples==0;++hs) {
232  const HWIdentifier chid=m_onlineID->channel_Id(hs);
233  LArOFCFlat::OFCRef_t ofca= input->OFC_a(chid,gain);
234  if ( input->nTimeBins(chid,gain) > 23 ){
235  phase = 23;
236  ofca = input->OFC_a(chid,gain,phase);
237  }
238 
239  nSamples=ofca.size();
240  }
241  if (nSamples==0) {
242  ATH_MSG_ERROR( "All input OFCs for gain " << gain << " have 0 samples!" );
243  continue;//jump to the next gain
244  }
245 
246  ATH_MSG_INFO( "Gain " << gain <<": Found " << nSamples << " OFC samples in input data" );
247 
249  (*attrList)["version"].setValue(0U);
250  coral::Blob& ofcaBlob=(*attrList)["OFCa"].data<coral::Blob>();
251  coral::Blob& ofcbBlob=(*attrList)["OFCb"].data<coral::Blob>();
252  coral::Blob& toBlob=(*attrList)["TimeOffset"].data<coral::Blob>();
253 
254  (*attrList)["nSamples"].setValue(nSamples);
255 
256  ofcaBlob.resize(m_hashMax*sizeof(float)*nSamples);
257  ofcbBlob.resize(m_hashMax*sizeof(float)*nSamples);
258  toBlob.resize(m_hashMax*sizeof(float));
259  float* pOfca=static_cast<float*>(ofcaBlob.startingAddress());
260  float* pOfcb=static_cast<float*>(ofcbBlob.startingAddress());
261  float* pTimeOffset=static_cast<float*>(toBlob.startingAddress());
262  for (unsigned hs=0;hs<m_hashMax;++hs) {
263  const HWIdentifier chid=m_onlineID->channel_Id(hs);
264  LArOFCFlat::OFCRef_t ofca= input->OFC_a(chid,gain,phase);
265  LArOFCFlat::OFCRef_t ofcb= input->OFC_b(chid,gain,phase);
266  float timeOffset=input->timeOffset(chid,gain);
267  if (ofca.size()==0 && gain==2 && m_fakeEMBPSLowGain) {
268  ofca= input->OFC_a(chid,1,phase);
269  ofcb= input->OFC_b(chid,1,phase);
270  timeOffset=input->timeOffset(chid,1);
271  ++nCopiedEMPS;
272  }
273 
274  if (ofca.size()==nSamples) {
275  for (unsigned i=0;i<nSamples;++i) {
276  pOfca[hs*nSamples+i]=ofca[i];
277  }
278  }
279  else {
280  std::stringstream message;
281  message <<"Number of samples don't match. Expect " << nSamples << ", got " << ofca.size() << ".";
282  errIfConnected(chid,gain,"OFCa", message.str().c_str());
283  for (unsigned i=0;i<nSamples;++i) {
284  pOfca[hs*nSamples+i]=1.0;
285  }
286  ++nDefault;
287  }
288 
289  if (ofcb.size()==nSamples) {
290  for (unsigned i=0;i<nSamples;++i) {
291  pOfcb[hs*nSamples+i]=ofcb[i];
292  // FIXME: it should be replaced by proper conditions per channel
293  // HERE - multiplying HEC OFCb by 1.5 for SCs
294  // https://its.cern.ch/jira/browse/ATLLARONL-1784
295  //if (m_isSC && m_onlineID->isHECchannel(chid)){
296  // pOfcb[hs*nSamples+i]=ofcb[i]*1.5;
297  // ATH_MSG_WARNING("NOTE: this OFC for channel "<<chid<<" was multiplied by 1.5. This should be a HEC SC("<<m_onlineID->channel_name(chid)<<"). Was "<<ofcb[i]<<" now "<<pOfcb[hs*nSamples+i]);
298  //}
299  if (m_isSC && weights) pOfcb[hs*nSamples+i] *= weights->FSAMPL(chid);
300  if (weights && weights->FSAMPL(chid) != 1.) ATH_MSG_WARNING("NOTE: this OFC for channel "<<chid<<" was multiplied by "<<weights->FSAMPL(chid)<<" This should be a SC("<<m_onlineID->channel_name(chid)<<"). Was "<<ofcb[i]<<" now "<<pOfcb[hs*nSamples+i]);
301  }
302  }
303  else {
304  std::stringstream message;
305  message <<"Number of samples don't match. Expect " << nSamples << ", got " << ofcb.size() << ".";
306  errIfConnected(chid,gain,"OFCb", message.str().c_str());
307  for (unsigned i=0;i<nSamples;++i) {
308  pOfcb[hs*nSamples+i]=1.0;
309  }
310  }
311  pTimeOffset[hs]=timeOffset;
312  ++nChannels;
313 
314  }//end loop over hash ids
315  collOFC->add(gain,*attrList);
316  }//end loop over gains
317 
318  StatusCode sc=detStore()->record(collOFC,outputName);//"/LAR/ElecCalibFlat/OFC");
319  if (sc.isFailure()) {
320  ATH_MSG_ERROR( "Failed to record CondAttrListCollection OFC with key " << outputName );
321  return nullptr;
322  }
323 
324  ATH_MSG_INFO( "Converted OFCs to inline storage. Total number of channels=" << nChannels );
325  ATH_MSG_INFO( "Number of channels filled with default OFCs {1,1,1,1} " << nDefault << " (including disconnected)" );
326  if (nCopiedEMPS)
327  ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
328  return collOFC;
329 }

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

◆ pedestalFlat()

CondAttrListCollection * LArCompleteToFlat::pedestalFlat ( const ILArPedestal input,
const std::string &  outputName 
)
private

Definition at line 147 of file LArCompleteToFlat.cxx.

147  {
148  ATH_MSG_INFO("LArCompleteToFlat::pedestalFlat, starting");
149 
150  unsigned nChannels=0;
151  unsigned nCopiedEMPS=0;
152 
153  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
154  spec->extend("Pedestal", "blob");
155  spec->extend("PedestalRMS", "blob");
156  spec->extend<unsigned>("version");
157 
159 
160  const unsigned nGain = m_isSC ? 1 : 3;
161  for (unsigned gain=0;gain<nGain;++gain) {
163  (*attrList)["version"].setValue(0U);
164  coral::Blob& blobPed=(*attrList)["Pedestal"].data<coral::Blob>();
165  coral::Blob& blobRMS=(*attrList)["PedestalRMS"].data<coral::Blob>();
166  blobPed.resize(m_hashMax*sizeof(float));
167  blobRMS.resize(m_hashMax*sizeof(float));
168  float* pblobPed=static_cast<float*>(blobPed.startingAddress());
169  float* pblobRMS=static_cast<float*>(blobRMS.startingAddress());
170  int nDefault=0;
171  for (unsigned hs=0;hs<m_hashMax;++hs) {
172  const HWIdentifier chid=m_onlineID->channel_Id(hs);
173  float ped=input->pedestal(chid,gain);
174  float pedRMS=input->pedestalRMS(chid,gain);
175  if (gain==0){
176  if (ped<0){
177  ped = 1000;
178  pedRMS = 1;
179  ++nDefault;
180  }
181 
182 
183  }
184  if (ped<0 && gain==2 && m_fakeEMBPSLowGain) {
185  ped=input->pedestal(chid,1);
186  pedRMS=input->pedestalRMS(chid,1);
187  ++nCopiedEMPS;
188  }
189 
190  pblobPed[hs]=ped;
191  pblobRMS[hs]=pedRMS;
192  ++nChannels;
193  }//end loop over hash ids
194  collPed->add(gain,*attrList);
195  ATH_MSG_INFO( "Number of channels filled with default Pedestal (1000) and PedestalRMS (1) "<< nDefault << " (including disconnected)" );
196  }//end loop over gains
197 
198  StatusCode sc=detStore()->record(collPed,outputName);//"/LAR/ElecCalibFlat/Pedestal");
199  if (sc.isFailure()) {
200  ATH_MSG_ERROR( "Failed to record CondAttrListCollection for pedestal with key " << outputName );
201  return nullptr;
202  }
203  ATH_MSG_INFO( "Converted Pedestal to inline storage. Total number of channels=" << nChannels );
204  if (nCopiedEMPS)
205  ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
206 
207  return collPed;
208 }

◆ rampFlat()

CondAttrListCollection * LArCompleteToFlat::rampFlat ( const ILArRamp input,
const std::string &  outputName 
)
private

Definition at line 443 of file LArCompleteToFlat.cxx.

443  {
444 
445  ATH_MSG_INFO("LArCompleteToFlat::rampFlat, starting");
446 
447  unsigned nChannels=0;
448  unsigned nCopiedEMPS=0;
449  unsigned nDefault=0;
450 
451  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
452  spec->extend("RampVec", "blob");
453  spec->extend<unsigned>("nPoints");
454  spec->extend<unsigned>("version");
456 
457  std::vector<float> defaultRamp={0.0,1.0};
458 
459  const LArOnOffIdMapping* cabling(nullptr);
460  if(m_isSC){
462  cabling=*cablingHdl;
463  }else{
465  cabling=*cablingHdl;
466  }
467  if(!cabling) {
468  ATH_MSG_ERROR( "Do not have cabling mapping from key " << m_cablingKey.key() );
469  return coll;
470  }
471 
472  const unsigned nGain = m_isSC ? 1 : 3;
473  for (unsigned gain=0;gain<nGain;++gain) {
474 
475  unsigned nPoints=0;
476  for (unsigned hs=0;hs<m_hashMax && nPoints==0;++hs) {
477  const HWIdentifier chid=m_onlineID->channel_Id(hs);
478  const ILArRamp::RampRef_t ramp= input->ADC2DAC(chid,gain);
479  nPoints=ramp.size();
480  }
481  if (nPoints==0) {
482  ATH_MSG_ERROR( "All input Ramps for gain " << gain << " have 0 points!" );
483  continue;//jump to the next gain
484  }
485 
486  defaultRamp.resize(nPoints,0.0); //fill remaining points if needed
487  ATH_MSG_INFO( "Gain " << gain << ": Found a ramp polynom of degree " << nPoints << " in input data" );
489  (*attrList)["version"].setValue(0U);
490  coral::Blob& blobRamp=(*attrList)["RampVec"].data<coral::Blob>();
491  (*attrList)["nPoints"].setValue(nPoints);
492  blobRamp.resize(m_hashMax*sizeof(float)*nPoints);
493  float* pblobRamp=static_cast<float*>(blobRamp.startingAddress());
494 
495  for (unsigned hs=0;hs<m_hashMax;++hs) {
496  const HWIdentifier chid=m_onlineID->channel_Id(hs);
497  std::vector<float> rampVec(input->ADC2DAC(chid,gain).asVector());
498  if(rampVec.size()>=2 && rampVec[1]>500) {
499  ATH_MSG_WARNING("Protection against crazy ramp values, set 500");
500  rampVec[1]=500.;
501  }
502  if (rampVec.empty() && gain==2 && m_fakeEMBPSLowGain && cabling->isOnlineConnected(chid) ) {
503  rampVec=input->ADC2DAC(chid,1).asVector();
504  if(rampVec.empty()) {
505  ATH_MSG_WARNING("Filling EMBPS ramp with default values 0,10");
506  rampVec.resize(2);
507  rampVec[0]=0.;
508  rampVec[1]=10.;
509  } else {
510  rampVec[1]*=10.0;
511  if(rampVec[1]>500) {
512  ATH_MSG_WARNING("Protection against crazy ramp values, set 500");
513  rampVec[1]=500.;
514  }
515  }
516  ++nCopiedEMPS;
517  }
518 
519  if (rampVec.size()>=nPoints) {
520  for (size_t i=0;i<nPoints;++i) {
521  pblobRamp[nPoints*hs+i]=rampVec[i];
522  }
523  }
524  else {
525  std::stringstream message;
526  message <<"Polynom degree doesn't match. Expect " << nPoints << ", got " << rampVec.size() << ".";
527  errIfConnected(chid,gain,"Ramp", message.str().c_str());
528  for (size_t i=0;i<nPoints;++i) {
529  pblobRamp[nPoints*hs+i]=defaultRamp[i];
530  }
531  ++nDefault;
532  }
533  ++nChannels;
534  }//end loop over hash ids
535  coll->add(gain,*attrList);
536  }//end loop over gains
537 
538  StatusCode sc=detStore()->record(coll,outputName);//"/LAR/ElecCalibFlat/Ramp");
539  if (sc.isFailure()) {
540  ATH_MSG_ERROR( "Failed to record CondAttrListCollection for ramp with key " << outputName );
541  return nullptr;
542  }
543 
544  ATH_MSG_INFO( "Converted Ramps to inline storage. Total number of channels " << nChannels );
545  ATH_MSG_INFO( "Number of channels filled with default ramp {0,1} " << nDefault << " (including disconnected)" );
546  if (nCopiedEMPS)
547  ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain (applied factor 10)" << nCopiedEMPS );
548 
549 
550  return coll;
551 }

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

◆ shapeFlat()

CondAttrListCollection * LArCompleteToFlat::shapeFlat ( const LArShapeComplete input,
const std::string &  outputName 
)
private

Definition at line 332 of file LArCompleteToFlat.cxx.

332  {
333 
334  ATH_MSG_INFO("LArCompleteToFlat::shapeFlat, starting");
335 
336  unsigned nChannels=0;
337  unsigned nCopiedEMPS=0;
338  unsigned nDefault=0;
339 
340  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
341  spec->extend("Shape", "blob");
342  spec->extend("ShapeDer", "blob");
343  spec->extend("TimeOffset","blob");
344  spec->extend<unsigned>("nSamples");
345  spec->extend<unsigned>("version");
347 
348  const unsigned nGain = m_isSC ? 1 : 3;
349  for (unsigned gain=0;gain<nGain;++gain) {
350 
351  unsigned nSamples=0;
352  for (unsigned hs=0;hs<m_hashMax && nSamples==0;++hs) {
353  const HWIdentifier chid=m_onlineID->channel_Id(hs);
354  ILArShape::ShapeRef_t shape= input->Shape(chid,gain);
355  nSamples=shape.size();
356  }
357  if (nSamples==0) {
358  ATH_MSG_ERROR( "All input Shapes for gain " << gain << " have 0 samples!" );
359  continue;//jump to the next gain
360  }
361 
362  ATH_MSG_INFO( "Gain " << gain <<": Found " << nSamples << " shape samples in input data" );
363 
365  (*attrList)["version"].setValue(0U);
366  coral::Blob& shapeBlob=(*attrList)["Shape"].data<coral::Blob>();
367  coral::Blob& shapeDerBlob=(*attrList)["ShapeDer"].data<coral::Blob>();
368  coral::Blob& toBlob=(*attrList)["TimeOffset"].data<coral::Blob>();
369 
370  (*attrList)["nSamples"].setValue(nSamples);
371 
372  shapeBlob.resize(m_hashMax*sizeof(float)*nSamples);
373  shapeDerBlob.resize(m_hashMax*sizeof(float)*nSamples);
374  toBlob.resize(m_hashMax*sizeof(float));
375  float* pShape=static_cast<float*>(shapeBlob.startingAddress());
376  float* pShapeDer=static_cast<float*>(shapeDerBlob.startingAddress());
377  float* pTimeOffset=static_cast<float*>(toBlob.startingAddress());
378  for (unsigned hs=0;hs<m_hashMax;++hs) {
379  const HWIdentifier chid=m_onlineID->channel_Id(hs);
380 
381  ILArShape::ShapeRef_t shape= input->Shape(chid,gain);
382  ILArShape::ShapeRef_t shapeDer= input->ShapeDer(chid,gain);
383  float timeOffset=input->timeOffset(chid,gain);
384  if (shape.size()==0 && gain==2 && m_fakeEMBPSLowGain) {
385  shape=input->Shape(chid,1);
386  shapeDer=input->ShapeDer(chid,1);
387  timeOffset=input->timeOffset(chid,1);
388  ++nCopiedEMPS;
389  }
390 
391  if (shape.size()==nSamples) {
392  for (unsigned i=0;i<nSamples;++i) {
393  pShape[hs*nSamples+i]=shape[i];
394  }
395  }
396  else {
397  std::stringstream message;
398  message <<"Number of samples don't match. Expect " << nSamples << ", got " << shape.size() << ".";
399  errIfConnected(chid,gain,"Shape", message.str().c_str());
400  for (unsigned i=0;i<nSamples;++i) {
401  pShape[hs*nSamples+i]=0.0;
402  }
403  ++nDefault;
404  }
405 
406 
407  if (shapeDer.size()==nSamples) {
408  for (unsigned i=0;i<nSamples;++i) {
409  pShapeDer[hs*nSamples+i]=shapeDer[i];
410  }
411  }
412  else {
413  std::stringstream message;
414  message <<"Number of samples don't match. Expect " << nSamples << ", got " << shapeDer.size() << ".";
415  errIfConnected(chid,gain,"ShapeDer", message.str().c_str());
416  for (unsigned i=0;i<nSamples;++i) {
417  pShapeDer[hs*nSamples+i]=0.0;
418  }
419  }
420  pTimeOffset[hs]=timeOffset;
421  ++nChannels;
422 
423  }//end loop over hash ids
424  coll->add(gain,*attrList);
425  }//end loop over gains
426 
427  StatusCode sc=detStore()->record(coll,outputName);//"/LAR/ElecCalibFlat/SHAPE");
428  if (sc.isFailure()) {
429  ATH_MSG_ERROR( "Failed to record CondAttrListCollection Shape with key " << outputName );
430  return nullptr;
431  }
432 
433  ATH_MSG_INFO( "Converted Shapes to inline storage. Total number of channels=" << nChannels );
434  ATH_MSG_INFO( "Number of channels filled with default shape {0,0,0,0} " << nDefault << " (including disconnected)" );
435  if (nCopiedEMPS)
436  ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
437 
438  return coll;
439 }

◆ singleFloatFlat()

CondAttrListCollection * LArCompleteToFlat::singleFloatFlat ( const char *  blobName,
const LArConditionsContainer< LArSingleFloatP > *  input,
const std::string &  outputName,
const unsigned  nGain,
const bool  withFCAL = true 
)
private

Definition at line 85 of file LArCompleteToFlat.cxx.

86  {
87 
88  unsigned nChannels=0;
89  unsigned nCopiedEMPS=0;
90  unsigned nDefault=0;
91 
92  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
93  spec->extend(blobName, "blob");
94  spec->extend<unsigned>("version");
96  for (unsigned gain=0;gain<nGain;++gain) {
98  (*attrList)["version"].setValue(0U);
99  coral::Blob& blob=(*attrList)[blobName].data<coral::Blob>();
100  blob.resize(m_hashMax*sizeof(float));
101  float* pblob=static_cast<float*>(blob.startingAddress());
102  for (unsigned hs=0;hs<m_hashMax;++hs) {
103  const HWIdentifier chid=m_onlineID->channel_Id(hs);
104  float value;
105  if (!withFCAL && m_onlineID->isFCALchannel(chid)) {
106  value=1.0; //Fill fcal channels with 1.0. for MPhysOverMcal
107  }
108  else
109  value=input->get(chid,gain).m_data;
110 
111  if (value<0 && gain==2 && m_fakeEMBPSLowGain) {
112  //Fill medium gain for EMB PS low gain
113  value=input->get(chid,1).m_data;
114  ++nCopiedEMPS;
115  }
116  if (value < 0) {
117  errIfConnected(chid,gain,blobName);
118  value=1.0; //Default vaue is 1.0, since these are multiplicative constants
119  ++nDefault;
120  }
121  pblob[hs]=value;
122  ++nChannels;
123  }
124  unsigned coolChan=gain;
125  //Special case: Store single-gain constant in channel 1
126  //To avoid AttrList vs AttrListCollection confusion in Athena DB infrastructure
127  if (nGain==1) coolChan=1;
128 
129  coll->add(coolChan,*attrList);
130  //delete attrList;//???
131  }
132 
133  ATH_MSG_INFO( "Converted " << blobName << " to inline storage. Total number of channels=" << nChannels );
134  ATH_MSG_INFO( "Number of channels filled with default value (1.0) " << nDefault << " (including disconnected)" );
135  if (nCopiedEMPS)
136  ATH_MSG_INFO( "\t Number of low gain EMBPS channels copied from medium gain" << nCopiedEMPS );
137  StatusCode sc=detStore()->record(coll,outputName);
138  if (sc.isFailure()) {
139  ATH_MSG_ERROR( "Failed to record CondAttrListCollection with key" << outputName );
140  return nullptr;
141  }
142  return coll;
143 }

◆ stop()

StatusCode LArCompleteToFlat::stop ( )
virtual

Definition at line 649 of file LArCompleteToFlat.cxx.

649  {
650  std::string flatName = "/LAR/ElecCalibFlat";
651  StatusCode sc;
652  if(m_isSC){
653  flatName += "SC";
654  const LArOnline_SuperCellID* ll = nullptr;
655  sc = detStore()->retrieve(ll, "LArOnline_SuperCellID");
656  if (sc.isFailure()) {
657  ATH_MSG_ERROR( "Could not get LArOnlineID helper !" );
658  return StatusCode::FAILURE;
659  }
660  else {
661  m_onlineID = (const LArOnlineID_Base*)ll;
662  ATH_MSG_DEBUG("Found the LArOnlineID helper");
663  }
664  }else{
665  const LArOnlineID* ll = nullptr;
666  sc = detStore()->retrieve(ll, "LArOnlineID");
667  if (sc.isFailure()) {
668  ATH_MSG_ERROR( "Could not get LArOnlineID helper !" );
669  return StatusCode::FAILURE;
670  }
671  else {
672  m_onlineID = (const LArOnlineID_Base*)ll;
673  ATH_MSG_DEBUG(" Found the LArOnlineID helper. ");
674  }
675 
676  }
677 
679 
680  if (!m_uA2MeVInput.empty()) {
681  const ILAruA2MeV* uA2MeVComplete = nullptr;
682  sc=detStore()->retrieve(uA2MeVComplete,m_uA2MeVInput);
683  if (sc.isFailure()) {
684  if(m_forceStop) {
685  ATH_MSG_ERROR( "Failed to get LAruA2MeV with key " << m_uA2MeVInput );
686  return sc;
687  } else {
688  ATH_MSG_WARNING( "Will not process LAruA2MeV" );
689  }
690  } else {
691  uA2MeVFlat(uA2MeVComplete, flatName+"/uA2MeV");
692  }
693  }//end if have m_uA2MeV
694 
695 
696  if (!m_DAC2uAInput.empty()) {
697  const ILArDAC2uA* DAC2uAComplete = nullptr;
698  sc=detStore()->retrieve(DAC2uAComplete,m_DAC2uAInput);
699  if (sc.isFailure()) {
700  if(m_forceStop) {
701  ATH_MSG_ERROR( "Failed to get LArDAC2uA with key " << m_DAC2uAInput );
702  return sc;
703  } else {
704  ATH_MSG_WARNING( "Will not process LArDAC2uA" );
705  }
706  } else {
707  DAC2uAFlat(DAC2uAComplete, flatName+"/DAC2uA");
708  }
709  }//end if have m_DAC2uAInput
710 
711  if (!m_MphysOverMcalInput.empty()) {
714  if (sc.isFailure()) {
715  if(m_forceStop) {
716  ATH_MSG_ERROR( "Failed to get LArMphysOverMcal with key " << m_MphysOverMcalInput );
717  return sc;
718  } else {
719  ATH_MSG_WARNING( "Will not process LArMphysOverMcal" );
720  }
721  } else {
722  const int nGain = m_isSC ? 1 : 3;
723  const bool wfcal = m_isSC ? true : false;
724  singleFloatFlat("MphysOverMcal", MphysOverMcalComplete, flatName+"/MphysOverMcal",nGain,wfcal); //No MphysOverMCal for FCAL
725  }
726  }//end if have m_MphysOverMcalInput
727 
728 
729  if (!m_HVScaleCorrInput.empty()) {
730  const LArHVScaleCorrComplete* HVScaleCorrComplete = nullptr;
731  sc=detStore()->retrieve(HVScaleCorrComplete,m_HVScaleCorrInput);
732  if (sc.isFailure()) {
733  if(m_forceStop) {
734  ATH_MSG_ERROR( "Failed to get LArHVScaleCorr with key " << m_HVScaleCorrInput );
735  return sc;
736  } else {
737  ATH_MSG_WARNING( "Will not process LArHVScaleCorr" );
738  }
739  } else {
740  singleFloatFlat("HVScaleCorr", HVScaleCorrComplete, flatName+"/HVScaleCorr",1);
741  }
742  }//end if have m_HVScaleCorrInput
743 
744  if (!m_PedestalInput.empty()) {
745  const LArPedestalComplete* pedComplete = nullptr;
746  sc=detStore()->retrieve(pedComplete,m_PedestalInput);
747  if (sc.isFailure()) {
748  if(m_forceStop) {
749  ATH_MSG_ERROR( "Failed to get LArPedestal" );
750  return sc;
751  } else {
752  ATH_MSG_WARNING( "Will not process LArPedestal" );
753  }
754  } else {
755  pedestalFlat(pedComplete,flatName+"/Pedestal");
756 
757  /*
758  CondAttrListCollection* coll=pedestalFlat(pedComplete,"/LAR/ElecCalibFlat/Pedestal");
759  LArPedestalFlat* pf=new LArPedestalFlat(coll);
760 
761  sc=detStore()->record(pf,"PedestalFlat");
762  if (sc.isFailure()) {
763  ATH_MSG_ERROR( "Failed to record LArPedestalFlat" );
764  }
765 
766  ILArPedestal* iped=pf;
767  sc=detStore()->symLink(pf,iped);
768  if (sc.isFailure()) {
769  ATH_MSG_ERROR( "Failed to symlink LArPedestalFlat" );
770  }
771  }
772  */
773  }
774  }//end if have m_pedestalInput
775 
776  //OFC:
777  if (!m_OFCInput.empty()) {
778  const LArOFCComplete* ofcComplete = nullptr;
779  sc=detStore()->retrieve(ofcComplete,m_OFCInput);
780  if (sc.isFailure()) {
781  if(m_forceStop) {
782  ATH_MSG_ERROR( "Failed to get LArOFCComplete object" );
783  return sc;
784  } else {
785  ATH_MSG_WARNING( "Will not process LArOFCComplete" );
786  }
787  } else {
788  const LArfSamplSC* weightsComplete(nullptr);
789  if(m_isSC && !m_weightsKeySC.empty()) {
791  weightsComplete=*wHdl;
792  if(!weightsComplete) {
793  ATH_MSG_WARNING("Do not have OFCb weights !!!! Not applying");
794  }
795  }
796  ofcFlat(ofcComplete,flatName+"/OFC",weightsComplete);
797  }
798  }//end have m_OFCInput
799  if (!m_OFCCaliInput.empty()) {
800  const LArOFCComplete* ofcComplete = nullptr;
801  sc=detStore()->retrieve(ofcComplete,m_OFCCaliInput);
802  if (sc.isFailure()) {
803  if(m_forceStop) {
804  ATH_MSG_ERROR( "Failed to get LArOFCComplete object (cali)" );
805  return sc;
806  } else {
807  ATH_MSG_WARNING( "Will not process LArOFCComplete (cali)" );
808  }
809  } else {
810  ofcFlat(ofcComplete,flatName+"/OFCCali");
811 
812  }
813  }//end have m_OFCInput
814  //Shape:
815  if (!m_ShapeInput.empty()) {
816  const LArShapeComplete* shapeComplete = nullptr;
817  sc=detStore()->retrieve(shapeComplete,m_ShapeInput);
818  if (sc.isFailure()) {
819  if(m_forceStop) {
820  ATH_MSG_ERROR( "Failed to get LArShapeComplete object" );
821  return sc;
822  } else {
823  ATH_MSG_WARNING( "Will not process LArShapeComplete" );
824  }
825  } else {
826  shapeFlat(shapeComplete,flatName+"/Shape");
827  /*
828  CondAttrListCollection* coll=shapeFlat(shapeComplete,"/LAR/ElecCalibFlat/Shape");
829 
830  LArShapeFlat* sf=new LArShapeFlat(coll);
831 
832  sc=detStore()->record(sf,"ShapeFlat");
833  if (sc.isFailure()) {
834  ATH_MSG_ERROR( "Failed to record LArShapeFlat" );
835  }
836 
837  ILArShape* ishape=sf;
838  sc=detStore()->symLink(sf,ishape);
839  if (sc.isFailure()) {
840  ATH_MSG_ERROR( "Failed to symlink LArShapeFlat" );
841  }
842  */
843  }
844  }//end if have m_shapeInput
845 
846  //Ramp
847  if (!m_RampInput.empty()) {
848  const LArRampComplete* rampComplete = nullptr;
849  sc=detStore()->retrieve(rampComplete,m_RampInput);
850  if (sc.isFailure()) {
851  if(m_forceStop) {
852  ATH_MSG_ERROR( "Failed to get LArRampComplete object" );
853  return sc;
854  } else {
855  ATH_MSG_WARNING( "Will not process LArRampComplete" );
856  }
857  } else {
858  rampFlat(rampComplete,flatName+"/Ramp");
859  }
860  }
861 
862  if(!m_DSPThresholdsInput.empty()) {
863  //DSPThresh:
864  const LArDSPThresholdsComplete* DSPTComplete = nullptr;
865  sc=detStore()->retrieve(DSPTComplete,m_DSPThresholdsInput);
866  if (sc.isFailure()) {
867  if(m_forceStop) {
868  ATH_MSG_ERROR( "Failed to get LArDSPThresholdsComplete object" );
869  return sc;
870  } else {
871  ATH_MSG_WARNING( "Will not process LArDSPThresholdsComplete" );
872  }
873  }
874  DSPThresholdsFlat(DSPTComplete,"/LAR/Configuration/DSPThresholdFlat/Templates");
875  /*
876  AthenaAttributeList *cl=DSPThresholdsFlat(DSPTComplete,"/LAR/Configuration/DSPThresholdFlat/Templates");
877 
878  LArDSPThresholdsFlat* df;
879  if(cl) {
880  df=new LArDSPThresholdsFlat(cl);
881 
882  sc=detStore()->record(df,"DSPThresholdsFlat");
883  if (sc.isFailure()) {
884  ATH_MSG_ERROR( "Failed to record LArDSPThresholdsFlat" );
885  }
886  }
887  */
888  } //end if have m__DSPThresholdsInput
889 
890 
891  return StatusCode::SUCCESS;
892 }

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

◆ uA2MeVFlat()

CondAttrListCollection * LArCompleteToFlat::uA2MeVFlat ( const ILAruA2MeV input,
const std::string &  outputName 
)
private

Definition at line 579 of file LArCompleteToFlat.cxx.

579  {
580  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
581  spec->extend("uA2MeV", "blob");
582  spec->extend<unsigned>("version");
585  (*attrList)["version"].setValue(0U);
586  coral::Blob& blob=(*attrList)["uA2MeV"].data<coral::Blob>();
587  blob.resize(m_hashMax*sizeof(float));
588  float* pblob=static_cast<float*>(blob.startingAddress());
589  for (unsigned hs=0;hs<m_hashMax;++hs) {
590  const HWIdentifier chid=m_onlineID->channel_Id(hs);
591  pblob[hs]=input->UA2MEV(chid);
592  }
593  coll->add(1,*attrList);
594  //delete attrList;//???
595  StatusCode sc=detStore()->record(coll,outputName);
596  if (sc.isFailure()) {
597  ATH_MSG_ERROR( "Failed to record CondAttrListCollection with key" << outputName );
598  return nullptr;
599  }
600  return coll;
601 }

◆ 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> LArCompleteToFlat::m_cablingKey {this,"CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"}
private

Definition at line 72 of file LArCompleteToFlat.h.

◆ m_cablingKeySC

SG::ReadCondHandleKey<LArOnOffIdMapping> LArCompleteToFlat::m_cablingKeySC {this,"CablingSCKey","LArOnOffIdMapSC","SG Key of LArOnOffIdMapping object"}
private

Definition at line 73 of file LArCompleteToFlat.h.

◆ m_DAC2uAInput

std::string LArCompleteToFlat::m_DAC2uAInput
private

Definition at line 78 of file LArCompleteToFlat.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_DSPThresholdsInput

std::string LArCompleteToFlat::m_DSPThresholdsInput
private

Definition at line 86 of file LArCompleteToFlat.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_fakeEMBPSLowGain

bool LArCompleteToFlat::m_fakeEMBPSLowGain
private

Definition at line 93 of file LArCompleteToFlat.h.

◆ m_forceStop

bool LArCompleteToFlat::m_forceStop
private

Definition at line 92 of file LArCompleteToFlat.h.

◆ m_hashMax

unsigned LArCompleteToFlat::m_hashMax
private

Definition at line 69 of file LArCompleteToFlat.h.

◆ m_HVScaleCorrInput

std::string LArCompleteToFlat::m_HVScaleCorrInput
private

Definition at line 79 of file LArCompleteToFlat.h.

◆ m_isSC

bool LArCompleteToFlat::m_isSC
private

Definition at line 91 of file LArCompleteToFlat.h.

◆ m_MphysOverMcalInput

std::string LArCompleteToFlat::m_MphysOverMcalInput
private

Definition at line 82 of file LArCompleteToFlat.h.

◆ m_nameOfSet

std::string LArCompleteToFlat::m_nameOfSet
private

Definition at line 89 of file LArCompleteToFlat.h.

◆ m_OFCCaliInput

std::string LArCompleteToFlat::m_OFCCaliInput
private

Definition at line 84 of file LArCompleteToFlat.h.

◆ m_OFCInput

std::string LArCompleteToFlat::m_OFCInput
private

Definition at line 83 of file LArCompleteToFlat.h.

◆ m_onlineID

const LArOnlineID_Base* LArCompleteToFlat::m_onlineID
private

Definition at line 70 of file LArCompleteToFlat.h.

◆ m_PedestalInput

std::string LArCompleteToFlat::m_PedestalInput
private

Definition at line 80 of file LArCompleteToFlat.h.

◆ m_RampInput

std::string LArCompleteToFlat::m_RampInput
private

Definition at line 81 of file LArCompleteToFlat.h.

◆ m_ShapeInput

std::string LArCompleteToFlat::m_ShapeInput
private

Definition at line 85 of file LArCompleteToFlat.h.

◆ m_uA2MeVInput

std::string LArCompleteToFlat::m_uA2MeVInput
private

InputSGKeys.

Definition at line 77 of file LArCompleteToFlat.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.

◆ m_weightsKeySC

SG::ReadCondHandleKey<LArfSamplSC> LArCompleteToFlat::m_weightsKeySC {this,"WeightsSCKey","","SG Key of weights object"}
private

Definition at line 74 of file LArCompleteToFlat.h.


The documentation for this class was generated from the following files:
LArCompleteToFlat::m_OFCCaliInput
std::string m_OFCCaliInput
Definition: LArCompleteToFlat.h:84
LArCompleteToFlat::m_uA2MeVInput
std::string m_uA2MeVInput
InputSGKeys.
Definition: LArCompleteToFlat.h:77
LArCompleteToFlat::rampFlat
CondAttrListCollection * rampFlat(const ILArRamp *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:443
ReadOfcFromCool.phase
phase
Definition: ReadOfcFromCool.py:127
LArCompleteToFlat::m_PedestalInput
std::string m_PedestalInput
Definition: LArCompleteToFlat.h:80
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
LArRampComplete
Definition: LArRampComplete.h:50
LArParamsProperties::MphysOverMcalComplete
@ MphysOverMcalComplete
Definition: LArParamsProperties.h:85
CaloCondBlobAlgs_fillNoiseFromASCII.spec
spec
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:47
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArDSPThresholdsComplete
Definition: LArDSPThresholdsComplete.h:21
ILAruA2MeV
Definition: ILAruA2MeV.h:13
LArPedestalComplete
This class implements the ILArPedestal interface.
Definition: LArPedestalComplete.h:26
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
LArShapeComplete
This class implements the ILArShape interface.
Definition: LArShapeComplete.h:26
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
athena.value
value
Definition: athena.py:122
ILArDAC2uA
Definition: ILArDAC2uA.h:13
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
HWIdentifier
Definition: HWIdentifier.h:13
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
ReweightUtils.message
message
Definition: ReweightUtils.py:15
LArHVScaleCorrComplete
This class implements the ILArHVScaleCorr interface.
Definition: LArHVScaleCorrComplete.h:18
LArCompleteToFlat::m_forceStop
bool m_forceStop
Definition: LArCompleteToFlat.h:92
LArCompleteToFlat::m_RampInput
std::string m_RampInput
Definition: LArCompleteToFlat.h:81
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
LArCompleteToFlat::m_cablingKeySC
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
Definition: LArCompleteToFlat.h:73
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
LArCompleteToFlat::m_isSC
bool m_isSC
Definition: LArCompleteToFlat.h:91
LArCompleteToFlat::m_nameOfSet
std::string m_nameOfSet
Definition: LArCompleteToFlat.h:89
LArOnlineID_Base::isFCALchannel
bool isFCALchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1657
LArCompleteToFlat::ofcFlat
CondAttrListCollection * ofcFlat(const ILArOFC *input, const std::string &outputName, const LArfSamplSC *weights=nullptr)
Definition: LArCompleteToFlat.cxx:211
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
LArCompleteToFlat::shapeFlat
CondAttrListCollection * shapeFlat(const LArShapeComplete *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:332
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
LArCompleteToFlat::m_hashMax
unsigned m_hashMax
Definition: LArCompleteToFlat.h:69
LArMphysOverMcalComplete
This class implements the ILArMphysOverMcal interface.
Definition: LArMphysOverMcalComplete.h:29
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:92
CreatePhysValWebPage.hs
hs
Definition: CreatePhysValWebPage.py:107
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
LArCompleteToFlat::uA2MeVFlat
CondAttrListCollection * uA2MeVFlat(const ILAruA2MeV *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:579
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
LArCompleteToFlat::m_onlineID
const LArOnlineID_Base * m_onlineID
Definition: LArCompleteToFlat.h:70
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:1569
LArCompleteToFlat::m_MphysOverMcalInput
std::string m_MphysOverMcalInput
Definition: LArCompleteToFlat.h:82
LArCompleteToFlat::m_DAC2uAInput
std::string m_DAC2uAInput
Definition: LArCompleteToFlat.h:78
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthenaAttributeList
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
Definition: PersistentDataModel/PersistentDataModel/AthenaAttributeList.h:45
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
LArfSamplSC
Definition: LArfSamplSC.h:18
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
LArOnlineID_Base
Helper for the Liquid Argon Calorimeter cell identifiers.
Definition: LArOnlineID_Base.h:105
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
LArCompleteToFlat::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArCompleteToFlat.h:72
LArOnlineID_Base::channelHashMax
size_type channelHashMax(void) const
Define channel hash tables max size.
Definition: LArOnlineID_Base.cxx:1901
LArCompleteToFlat::singleFloatFlat
CondAttrListCollection * singleFloatFlat(const char *blobName, const LArConditionsContainer< LArSingleFloatP > *input, const std::string &outputName, const unsigned nGain, const bool withFCAL=true)
Definition: LArCompleteToFlat.cxx:85
LArCompleteToFlat::m_OFCInput
std::string m_OFCInput
Definition: LArCompleteToFlat.h:83
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArOnlineID
Definition: LArOnlineID.h:20
LArCompleteToFlat::m_weightsKeySC
SG::ReadCondHandleKey< LArfSamplSC > m_weightsKeySC
Definition: LArCompleteToFlat.h:74
LArOnline_SuperCellID
Definition: LArOnline_SuperCellID.h:20
lumiFormat.outputName
string outputName
Definition: lumiFormat.py:71
Example_ReadSampleNoise.ped
ped
Definition: Example_ReadSampleNoise.py:45
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
LArCompleteToFlat::pedestalFlat
CondAttrListCollection * pedestalFlat(const ILArPedestal *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:147
Identifier::getString
std::string getString() const
Provide a string form of the identifier - hexadecimal.
Definition: Identifier.cxx:25
a
TList * a
Definition: liststreamerinfos.cxx:10
LArCompleteToFlat::m_ShapeInput
std::string m_ShapeInput
Definition: LArCompleteToFlat.h:85
h
LArCompleteToFlat::DSPThresholdsFlat
AthenaAttributeList * DSPThresholdsFlat(const LArDSPThresholdsComplete *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:603
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArOnlineID_Base::isEMBPS
bool isEMBPS(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1665
LArCompleteToFlat::DAC2uAFlat
CondAttrListCollection * DAC2uAFlat(const ILArDAC2uA *input, const std::string &outputName)
Definition: LArCompleteToFlat.cxx:554
LArCompleteToFlat::m_HVScaleCorrInput
std::string m_HVScaleCorrInput
Definition: LArCompleteToFlat.h:79
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
LArDigits2NtupleDumper.nSamples
nSamples
Definition: LArDigits2NtupleDumper.py:70
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
LArfSamplSC::FSAMPL
virtual const float & FSAMPL(const HWIdentifier &chid) const
Definition: LArfSamplSC.cxx:34
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
LArCompleteToFlat::m_DSPThresholdsInput
std::string m_DSPThresholdsInput
Definition: LArCompleteToFlat.h:86
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:218
LArCompleteToFlat::m_fakeEMBPSLowGain
bool m_fakeEMBPSLowGain
Definition: LArCompleteToFlat.h:93
LArCompleteToFlat::errIfConnected
void errIfConnected(const HWIdentifier chid, const int gain, const char *objName, const char *message=0) const
Definition: LArCompleteToFlat.cxx:898
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LArOFCComplete
This class implements the ILArOFC interface.
Definition: LArOFCComplete.h:25
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
fitman.k
k
Definition: fitman.py:528
LArVectorProxy
Proxy for accessing a range of float values like a vector.
Definition: LArVectorProxy.h:38
DiTauMassTools::TauTypes::ll
@ ll
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:49
ServiceHandle< ICondSvc >
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20