ATLAS Offline Software
Classes | Public Member Functions | Private Attributes | List of all members
LArADC2MeV Class Reference

#include <LArADC2MeV.h>

Collaboration diagram for LArADC2MeV:

Classes

struct  validVec_t
 

Public Member Functions

 LArADC2MeV ()=delete
 
 LArADC2MeV (const LArOnlineID_Base *onlineID, const LArOnOffIdMapping *cabling, const size_t nGains, const unsigned rampDegree)
 
 ~LArADC2MeV ()
 
const LArVectorProxy ADC2MEV (const HWIdentifier &id, int gain) const
 
const LArVectorProxy ADC2MEV (const IdentifierHash &hid, int gain) const
 
const LArVectorProxy ADC2MEV (const Identifier &offid, int gain) const
 
bool set (const IdentifierHash &hid, const int gain, const std::vector< float > &adc2mev)
 

Private Attributes

std::array< validVec_t, CaloGain::LARNGAINm_adc2MeV
 
const LArOnlineID_Basem_onlineID
 
const LArOnOffIdMappingm_cabling
 
const unsigned m_rampDegree
 

Detailed Description

Definition at line 21 of file LArADC2MeV.h.

Constructor & Destructor Documentation

◆ LArADC2MeV() [1/2]

LArADC2MeV::LArADC2MeV ( )
delete

◆ LArADC2MeV() [2/2]

LArADC2MeV::LArADC2MeV ( const LArOnlineID_Base onlineID,
const LArOnOffIdMapping cabling,
const size_t  nGains,
const unsigned  rampDegree = 2 
)

Definition at line 9 of file LArADC2MeV.cxx.

9  :
10  m_onlineID(onlineID),
12  m_rampDegree(rampSize){
13  assert(m_onlineID);
14  assert(nGains<=CaloGain::LARNGAIN && nGains>0);
15 
16  for (size_t i=0;i<nGains;++i) {
17  m_adc2MeV[i].data.resize(onlineID->channelHashMax()*m_rampDegree,1.0);
18  }
19 }

◆ ~LArADC2MeV()

LArADC2MeV::~LArADC2MeV ( )

Definition at line 21 of file LArADC2MeV.cxx.

21 {}

Member Function Documentation

◆ ADC2MEV() [1/3]

const LArVectorProxy LArADC2MeV::ADC2MEV ( const HWIdentifier id,
int  gain 
) const
inline

Definition at line 32 of file LArADC2MeV.h.

32  {
34  return ADC2MEV(h,gain);
35  }

◆ ADC2MEV() [2/3]

const LArVectorProxy LArADC2MeV::ADC2MEV ( const Identifier offid,
int  gain 
) const
inline

Definition at line 47 of file LArADC2MeV.h.

47  {
48  const HWIdentifier hwid=m_cabling->createSignalChannelID(offid);
49  return ADC2MEV(hwid,gain);
50  }

◆ ADC2MEV() [3/3]

const LArVectorProxy LArADC2MeV::ADC2MEV ( const IdentifierHash hid,
int  gain 
) const
inline

Definition at line 37 of file LArADC2MeV.h.

37  {
38  if (!m_adc2MeV[gain].valid.test(hid)) {
39  return LArVectorProxy();
40  }
41  else {
42  const float* ptr1=&(m_adc2MeV[gain].data[hid*m_rampDegree]);
43  return LArVectorProxy(ptr1,ptr1+m_rampDegree);
44  }
45  };

◆ set()

bool LArADC2MeV::set ( const IdentifierHash hid,
const int  gain,
const std::vector< float > &  adc2mev 
)

Definition at line 23 of file LArADC2MeV.cxx.

23  {
24  if (gain>=(int)m_adc2MeV.size() || hid*m_rampDegree >= m_adc2MeV[gain].data.size()) {
25  //std::cout << "hid="<< hid << ",size overrun: " << gain << " ," << m_adc2MeV.size() << " ," << hid*m_rampDegree << " ," << m_adc2MeV[gain].data.size() << std::endl;
26  return false;
27  }
28  if (adc2mev.size()!=m_rampDegree) {
29  //std::cout << "hid="<< hid << ", Got deg " << adc2mev.size() << ", expected " << m_rampDegree << std::endl;
30  return false;
31  }
32  m_adc2MeV[gain].valid.set(hid);
34  std::copy(adc2mev.begin(),adc2mev.end(),it);
35 
36  return true;
37 }

Member Data Documentation

◆ m_adc2MeV

std::array<validVec_t,CaloGain::LARNGAIN> LArADC2MeV::m_adc2MeV
private

Definition at line 61 of file LArADC2MeV.h.

◆ m_cabling

const LArOnOffIdMapping* LArADC2MeV::m_cabling
private

Definition at line 64 of file LArADC2MeV.h.

◆ m_onlineID

const LArOnlineID_Base* LArADC2MeV::m_onlineID
private

Definition at line 63 of file LArADC2MeV.h.

◆ m_rampDegree

const unsigned LArADC2MeV::m_rampDegree
private

Definition at line 65 of file LArADC2MeV.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
LArADC2MeV::ADC2MEV
const LArVectorProxy ADC2MEV(const HWIdentifier &id, int gain) const
Definition: LArADC2MeV.h:32
LArOnlineID_Base::channel_Hash
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
Definition: LArOnlineID_Base.cxx:1636
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
skel.it
it
Definition: skel.GENtoEVGEN.py:423
HWIdentifier
Definition: HWIdentifier.h:13
LArADC2MeV::m_rampDegree
const unsigned m_rampDegree
Definition: LArADC2MeV.h:65
calibdata.valid
list valid
Definition: calibdata.py:45
lumiFormat.i
int i
Definition: lumiFormat.py:92
LArADC2MeV::m_adc2MeV
std::array< validVec_t, CaloGain::LARNGAIN > m_adc2MeV
Definition: LArADC2MeV.h:61
LArOnOffIdMapping::createSignalChannelID
HWIdentifier createSignalChannelID(const Identifier &id) const
create a HWIdentifier from an Identifier (not inline)
Definition: LArOnOffIdMapping.h:126
LArOnlineID_Base::channelHashMax
size_type channelHashMax(void) const
Define channel hash tables max size.
Definition: LArOnlineID_Base.cxx:1901
h
LArADC2MeV::m_onlineID
const LArOnlineID_Base * m_onlineID
Definition: LArADC2MeV.h:63
LArADC2MeV::m_cabling
const LArOnOffIdMapping * m_cabling
Definition: LArADC2MeV.h:64
calibdata.copy
bool copy
Definition: calibdata.py:27
IdentifierHash
Definition: IdentifierHash.h:38
LArVectorProxy
Proxy for accessing a range of float values like a vector.
Definition: LArVectorProxy.h:38