ATLAS Offline Software
Loading...
Searching...
No Matches
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),
11 m_cabling(cabling),
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}
const LArOnOffIdMapping * m_cabling
Definition LArADC2MeV.h:64
std::array< validVec_t, CaloGain::LARNGAIN > m_adc2MeV
Definition LArADC2MeV.h:61
const unsigned m_rampDegree
Definition LArADC2MeV.h:65
const LArOnlineID_Base * m_onlineID
Definition LArADC2MeV.h:63
size_type channelHashMax() const
Define channel hash tables max size.

◆ ~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 {
33 const IdentifierHash h=m_onlineID->channel_Hash(id);
34 return ADC2MEV(h,gain);
35 }
const LArVectorProxy ADC2MEV(const HWIdentifier &id, int gain) const
Definition LArADC2MeV.h:32

◆ 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 };
list valid
Definition calibdata.py:44

◆ 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);
33 std::vector<float>::iterator it=m_adc2MeV[gain].data.begin()+hid*m_rampDegree;
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: