ATLAS Offline Software
Loading...
Searching...
No Matches
LArCalibParams Class Reference

#include <LArCalibParams.h>

Collaboration diagram for LArCalibParams:

Classes

class  CalibBoard

Public Member Functions

 LArCalibParams ()
virtual ~LArCalibParams ()
virtual StatusCode initialize ()
void set (const HWIdentifier CalibModuleID, const unsigned nTrigger, const std::vector< unsigned > &Pattern, const std::vector< unsigned > &DAC, const std::vector< unsigned > &Delay)
void set (const unsigned nTrigger, const std::vector< unsigned > &Pattern, const std::vector< unsigned > &DAC, const std::vector< unsigned > &Delay)
unsigned Delay (const unsigned event, const HWIdentifier calibLineID) const
unsigned DAC (const unsigned event, const HWIdentifier calibLineID) const
bool isPulsed (const unsigned event, const HWIdentifier calibLineID) const
unsigned NTrigger (const HWIdentifier calibModuleID) const
unsigned getNumberConfig (const HWIdentifier calibModuleID) const
unsigned getNumberPatterns (const HWIdentifier calibModuleID) const

Private Attributes

std::map< HWIdentifier, CalibBoardm_mCalibBoards
const LArOnlineIDm_onlineHelper
bool m_uniqueConfig

Detailed Description

Definition at line 28 of file LArCalibParams.h.

Constructor & Destructor Documentation

◆ LArCalibParams()

LArCalibParams::LArCalibParams ( )

Definition at line 11 of file LArCalibParams.cxx.

11 :
12 m_onlineHelper(nullptr),
13 m_uniqueConfig(false)
14{}
const LArOnlineID * m_onlineHelper

◆ ~LArCalibParams()

LArCalibParams::~LArCalibParams ( )
virtual

Definition at line 26 of file LArCalibParams.cxx.

27{
28}

Member Function Documentation

◆ DAC()

unsigned LArCalibParams::DAC ( const unsigned event,
const HWIdentifier calibLineID ) const

Definition at line 131 of file LArCalibParams.cxx.

132{if (calibLineID.get_compact()==0) return 0; //Disconnected channel
133 if (m_uniqueConfig && !m_mCalibBoards.empty())
134 return m_mCalibBoards.begin()->second.DAC(event);
135 else {
136 if (!m_onlineHelper) {
137 MsgStream log(Athena::getMessageSvc(), "LArCalibParams::DAC");
138 log << MSG::ERROR << "LArOnlineID not defined! Can't determine DAC value." << endmsg;
139 return 0;
140 }
141 const HWIdentifier calibModuleID=m_onlineHelper->calib_module_Id(calibLineID);
142 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
143 if (map_it==m_mCalibBoards.end())
144 return 0; //Can't find Board configuration -> Assume board is not configured.
145 else
146 return map_it->second.DAC(event);
147 }
148}
#define endmsg
value_type get_compact() const
Get the compact id.
std::map< HWIdentifier, CalibBoard > m_mCalibBoards
IMessageSvc * getMessageSvc(bool quiet=false)

◆ Delay()

unsigned LArCalibParams::Delay ( const unsigned event,
const HWIdentifier calibLineID ) const

Definition at line 112 of file LArCalibParams.cxx.

113{if (calibLineID.get_compact()==0) return 0; //Disconnected channel
114 if (m_uniqueConfig && !m_mCalibBoards.empty())
115 return m_mCalibBoards.begin()->second.Delay(event);
116 else {
117 if (!m_onlineHelper) {
118 MsgStream log(Athena::getMessageSvc(), "LArCalibParams::Delay");
119 log << MSG::ERROR << "LArOnlineID not defined! Can't determine Delay value." << endmsg;
120 return 0;
121 }
122 const HWIdentifier calibModuleID=m_onlineHelper->calib_module_Id(calibLineID);
123 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
124 if (map_it==m_mCalibBoards.end())
125 return 0; //Can't find Board configuration -> Assume board is not configured.
126 else
127 return map_it->second.Delay(event);
128 }
129}

◆ getNumberConfig()

unsigned LArCalibParams::getNumberConfig ( const HWIdentifier calibModuleID) const

Definition at line 174 of file LArCalibParams.cxx.

175{ //Number of configurations is nDAC*nDelay*nPattern
176 if (m_uniqueConfig && !m_mCalibBoards.empty()) {
177 const unsigned nConfig=m_mCalibBoards.begin()->second.m_DAC.size()*
178 m_mCalibBoards.begin()->second.m_Delay.size()*m_mCalibBoards.begin()->second.m_Pattern.size()/4;
179 return nConfig;
180 }
181 else {
182 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
183 if (map_it==m_mCalibBoards.end())
184 return 1; //Can't find Board configuration -> Assume board is not configured.(always the same values)
185 else {
186 const unsigned nConfig=map_it->second.m_DAC.size()*
187 map_it->second.m_Delay.size()*map_it->second.m_Pattern.size()/4;
188 return nConfig;
189 }
190 }
191}

◆ getNumberPatterns()

unsigned LArCalibParams::getNumberPatterns ( const HWIdentifier calibModuleID) const

Definition at line 217 of file LArCalibParams.cxx.

218{ //Number of configurations is nDAC*nDelay*nPattern
219 if ((m_uniqueConfig && m_mCalibBoards.size()==1) || // one calib board configured
220 calibModuleID == HWIdentifier(0)) { // assuming equal config for all b. boards configured
221 const unsigned nPatt = m_mCalibBoards.begin()->second.m_Pattern.size()/4;
222 return nPatt;
223 }
224 else {
225 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
226 if (map_it==m_mCalibBoards.end())
227 return 0; //Can't find Board configuration -> Assume board is not configured.
228 else {
229 const unsigned nPatt = map_it->second.m_Pattern.size()/4;
230 return nPatt;
231 }
232 }
233}

◆ initialize()

StatusCode LArCalibParams::initialize ( )
virtual

Definition at line 16 of file LArCalibParams.cxx.

17{
18 //Get online Helper via DetectorStore
19 ServiceHandle<StoreGateSvc> detStore("DetectorStore", "LArCalibParams");
20 CHECK_WITH_CONTEXT( detStore.isValid(), "LArCalibParams" );
21 CHECK_WITH_CONTEXT( detStore->retrieve(m_onlineHelper, "LArOnlineID"), "LArCalibParams" );
22 return (StatusCode::SUCCESS);
23}
#define CHECK_WITH_CONTEXT(...)
Evaluate an expression and check for errors, with an explicitly specified context name.

◆ isPulsed()

bool LArCalibParams::isPulsed ( const unsigned event,
const HWIdentifier calibLineID ) const

Definition at line 151 of file LArCalibParams.cxx.

152{
153 if (calibLineID.get_compact()==0) return false; //Disconnected channel
154 if (!m_onlineHelper) {
155 MsgStream log(Athena::getMessageSvc(), "LArCalibParams::isPulsed");
156 log << MSG::ERROR << "LArOnlineID not defined! Can't determine isPulsed value." << endmsg;
157 return false;
158 }
159 const int line=m_onlineHelper->channel(calibLineID);
160 if (m_uniqueConfig && !m_mCalibBoards.empty())
161 return m_mCalibBoards.begin()->second.isPulsed(event, line);
162 else
163 {const HWIdentifier calibModuleID=m_onlineHelper->calib_module_Id(calibLineID);
164 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
165 if (map_it==m_mCalibBoards.end()) {
166 return false;//Can't find Board configuration -> Assume board is not configured.
167 }
168 else
169 return map_it->second.isPulsed(event,line);
170 }
171}

◆ NTrigger()

unsigned LArCalibParams::NTrigger ( const HWIdentifier calibModuleID) const

Definition at line 195 of file LArCalibParams.cxx.

196{
197 if (m_uniqueConfig && !m_mCalibBoards.empty())
198 return m_mCalibBoards.begin()->second.m_nTrigger;
199 else {
200 const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
201 if (map_it==m_mCalibBoards.end())
202 return 0xFFFFFFFF; //Can't find Board configuration -> Assume board is not configured.(nothing ever changes)
203 else
204 return map_it->second.m_nTrigger;
205 }
206}

◆ set() [1/2]

void LArCalibParams::set ( const HWIdentifier CalibModuleID,
const unsigned nTrigger,
const std::vector< unsigned > & Pattern,
const std::vector< unsigned > & DAC,
const std::vector< unsigned > & Delay )

Definition at line 30 of file LArCalibParams.cxx.

33{if (m_uniqueConfig) //Had unique configuration before
34 {m_mCalibBoards.clear(); //Clear parameters
35 m_uniqueConfig=false;
36 }
37 m_mCalibBoards[CalibModuleID].m_nTrigger=nTrigger;
38 for (unsigned i=0;i<DAC.size();i++)
39 m_mCalibBoards[CalibModuleID].m_DAC.push_back(DAC[i]);
40 for (unsigned i=0;i<Delay.size();i++)
41 m_mCalibBoards[CalibModuleID].m_Delay.push_back(Delay[i]);
42 for (unsigned i=0;i<Pattern.size();i++) {
43 m_mCalibBoards[CalibModuleID].m_Pattern.push_back(Pattern[i]);
44 }
45 return;
46}
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const

◆ set() [2/2]

void LArCalibParams::set ( const unsigned nTrigger,
const std::vector< unsigned > & Pattern,
const std::vector< unsigned > & DAC,
const std::vector< unsigned > & Delay )

Definition at line 49 of file LArCalibParams.cxx.

51{// Assume only one set of parameters, valid for all boards.
52 m_mCalibBoards.clear();
53 m_uniqueConfig=true;
54 const HWIdentifier CalibModuleID(0);
55 m_mCalibBoards[CalibModuleID].m_nTrigger=nTrigger;
56 for (unsigned i=0;i<DAC.size();i++)
57 m_mCalibBoards[CalibModuleID].m_DAC.push_back(DAC[i]);
58 for (unsigned i=0;i<Delay.size();i++)
59 m_mCalibBoards[CalibModuleID].m_Delay.push_back(Delay[i]);
60 for (unsigned i=0;i<Pattern.size();i++)
61 m_mCalibBoards[CalibModuleID].m_Pattern.push_back(Pattern[i]);
62 return;
63}

Member Data Documentation

◆ m_mCalibBoards

std::map< HWIdentifier, CalibBoard> LArCalibParams::m_mCalibBoards
private

Definition at line 72 of file LArCalibParams.h.

◆ m_onlineHelper

const LArOnlineID* LArCalibParams::m_onlineHelper
private

Definition at line 73 of file LArCalibParams.h.

◆ m_uniqueConfig

bool LArCalibParams::m_uniqueConfig
private

Definition at line 74 of file LArCalibParams.h.


The documentation for this class was generated from the following files: