Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Member Functions | Private Attributes | List of all members
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 {}

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

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

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

◆ 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:
CHECK_WITH_CONTEXT
#define CHECK_WITH_CONTEXT(...)
Evaluate an expression and check for errors, with an explicitly specified context name.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:396
collListGuids.line
string line
Definition: collListGuids.py:77
LArCalibParams::m_uniqueConfig
bool m_uniqueConfig
Definition: LArCalibParams.h:74
Identifier::get_compact
value_type get_compact() const
Get the compact id.
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
HWIdentifier
Definition: HWIdentifier.h:13
LArCalibParams::m_mCalibBoards
std::map< HWIdentifier, CalibBoard > m_mCalibBoards
Definition: LArCalibParams.h:72
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
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
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
lumiFormat.i
int i
Definition: lumiFormat.py:85
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LArCalibParams::m_onlineHelper
const LArOnlineID * m_onlineHelper
Definition: LArCalibParams.h:73
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
LArCalibParams::DAC
unsigned DAC(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:131
LArCalibParams::Delay
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:112
Trk::Pattern
@ Pattern
Definition: ParametersCommon.h:29
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
ServiceHandle< StoreGateSvc >