ATLAS Offline Software
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 12 of file LArCalibParams.cxx.

12  :
13  m_onlineHelper(nullptr),
14  m_uniqueConfig(false)
15 {}

◆ ~LArCalibParams()

LArCalibParams::~LArCalibParams ( )
virtual

Definition at line 41 of file LArCalibParams.cxx.

42 {
43  //std::cout << "Destructor of LArCalibParams" << std::endl;
44 }

Member Function Documentation

◆ DAC()

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

Definition at line 147 of file LArCalibParams.cxx.

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

◆ Delay()

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

Definition at line 128 of file LArCalibParams.cxx.

129 {if (calibLineID.get_compact()==0) return 0; //Disconnected channel
130  if (m_uniqueConfig && !m_mCalibBoards.empty())
131  return m_mCalibBoards.begin()->second.Delay(event);
132  else {
133  if (!m_onlineHelper) {
134  MsgStream log(Athena::getMessageSvc(), "LArCalibParams::Delay");
135  log << MSG::ERROR << "LArOnlineID not defined! Can't determine Delay value." << endmsg;
136  return 0;
137  }
138  const HWIdentifier calibModuleID=m_onlineHelper->calib_module_Id(calibLineID);
139  const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
140  if (map_it==m_mCalibBoards.end())
141  return 0; //Can't find Board configuration -> Assume board is not configured.
142  else
143  return map_it->second.Delay(event);
144  }
145 }

◆ getNumberConfig()

unsigned LArCalibParams::getNumberConfig ( const HWIdentifier  calibModuleID) const

Definition at line 190 of file LArCalibParams.cxx.

191 { //Number of configurations is nDAC*nDelay*nPattern
192  if (m_uniqueConfig && !m_mCalibBoards.empty()) {
193  const unsigned nConfig=m_mCalibBoards.begin()->second.m_DAC.size()*
194  m_mCalibBoards.begin()->second.m_Delay.size()*m_mCalibBoards.begin()->second.m_Pattern.size()/4;
195  return nConfig;
196  }
197  else {
198  const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
199  if (map_it==m_mCalibBoards.end())
200  return 1; //Can't find Board configuration -> Assume board is not configured.(always the same values)
201  else {
202  const unsigned nConfig=map_it->second.m_DAC.size()*
203  map_it->second.m_Delay.size()*map_it->second.m_Pattern.size()/4;
204  return nConfig;
205  }
206  }
207 }

◆ getNumberPatterns()

unsigned LArCalibParams::getNumberPatterns ( const HWIdentifier  calibModuleID) const

Definition at line 233 of file LArCalibParams.cxx.

234 { //Number of configurations is nDAC*nDelay*nPattern
235  if ((m_uniqueConfig && m_mCalibBoards.size()==1) || // one calib board configured
236  calibModuleID == HWIdentifier(0)) { // assuming equal config for all b. boards configured
237  const unsigned nPatt = m_mCalibBoards.begin()->second.m_Pattern.size()/4;
238  return nPatt;
239  }
240  else {
241  const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
242  if (map_it==m_mCalibBoards.end())
243  return 0; //Can't find Board configuration -> Assume board is not configured.
244  else {
245  const unsigned nPatt = map_it->second.m_Pattern.size()/4;
246  return nPatt;
247  }
248  }
249 }

◆ initialize()

StatusCode LArCalibParams::initialize ( )
virtual

Definition at line 17 of file LArCalibParams.cxx.

18 {
19  //Get online Helper via DetectorStore
20  ISvcLocator* svcLoc = Gaudi::svcLocator( );
22  MsgStream log(Athena::getMessageSvc(), "LArCalibParams");
23  StatusCode sc = svcLoc->service( "DetectorStore",detStore);
24  if (sc.isSuccess()) {
25  sc=detStore->retrieve(m_onlineHelper, "LArOnlineID");
26  if (sc.isFailure()) {
27  log << MSG::ERROR << "LArCalibParams: Can't get LArOnlineID" << endmsg;
28  return (StatusCode::FAILURE);
29  }
30  }
31  else {
32  log << MSG::ERROR << "LArCalibParams: Can't get DetectorStore" << endmsg;
33  return (StatusCode::FAILURE);
34  }
35 
36  return (StatusCode::SUCCESS);
37 
38 }

◆ isPulsed()

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

Definition at line 167 of file LArCalibParams.cxx.

168 {
169  if (calibLineID.get_compact()==0) return false; //Disconnected channel
170  if (!m_onlineHelper) {
171  MsgStream log(Athena::getMessageSvc(), "LArCalibParams::isPulsed");
172  log << MSG::ERROR << "LArOnlineID not defined! Can't determine isPulsed value." << endmsg;
173  return false;
174  }
175  const int line=m_onlineHelper->channel(calibLineID);
176  if (m_uniqueConfig && !m_mCalibBoards.empty())
177  return m_mCalibBoards.begin()->second.isPulsed(event, line);
178  else
179  {const HWIdentifier calibModuleID=m_onlineHelper->calib_module_Id(calibLineID);
180  const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
181  if (map_it==m_mCalibBoards.end()) {
182  return false;//Can't find Board configuration -> Assume board is not configured.
183  }
184  else
185  return map_it->second.isPulsed(event,line);
186  }
187 }

◆ NTrigger()

unsigned LArCalibParams::NTrigger ( const HWIdentifier  calibModuleID) const

Definition at line 211 of file LArCalibParams.cxx.

212 {
213  if (m_uniqueConfig && !m_mCalibBoards.empty())
214  return m_mCalibBoards.begin()->second.m_nTrigger;
215  else {
216  const std::map<HWIdentifier, CalibBoard>::const_iterator map_it=m_mCalibBoards.find(calibModuleID);
217  if (map_it==m_mCalibBoards.end())
218  return 0xFFFFFFFF; //Can't find Board configuration -> Assume board is not configured.(nothing ever changes)
219  else
220  return map_it->second.m_nTrigger;
221  }
222 }

◆ 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 46 of file LArCalibParams.cxx.

49 {if (m_uniqueConfig) //Had unique configuration before
50  {m_mCalibBoards.clear(); //Clear parameters
51  m_uniqueConfig=false;
52  }
53  m_mCalibBoards[CalibModuleID].m_nTrigger=nTrigger;
54  for (unsigned i=0;i<DAC.size();i++)
55  m_mCalibBoards[CalibModuleID].m_DAC.push_back(DAC[i]);
56  for (unsigned i=0;i<Delay.size();i++)
57  m_mCalibBoards[CalibModuleID].m_Delay.push_back(Delay[i]);
58  for (unsigned i=0;i<Pattern.size();i++) {
59  m_mCalibBoards[CalibModuleID].m_Pattern.push_back(Pattern[i]);
60  }
61  return;
62 }

◆ 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 65 of file LArCalibParams.cxx.

67 {// Assume only one set of parameters, valid for all boards.
68  m_mCalibBoards.clear();
69  m_uniqueConfig=true;
70  const HWIdentifier CalibModuleID(0);
71  m_mCalibBoards[CalibModuleID].m_nTrigger=nTrigger;
72  for (unsigned i=0;i<DAC.size();i++)
73  m_mCalibBoards[CalibModuleID].m_DAC.push_back(DAC[i]);
74  for (unsigned i=0;i<Delay.size();i++)
75  m_mCalibBoards[CalibModuleID].m_Delay.push_back(Delay[i]);
76  for (unsigned i=0;i<Pattern.size();i++)
77  m_mCalibBoards[CalibModuleID].m_Pattern.push_back(Pattern[i]);
78  return;
79 }

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:
checkFileSG.line
line
Definition: checkFileSG.py:75
LArCalibParams::m_uniqueConfig
bool m_uniqueConfig
Definition: LArCalibParams.h:74
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
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
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:1967
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
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:147
LArCalibParams::Delay
unsigned Delay(const unsigned event, const HWIdentifier calibLineID) const
Definition: LArCalibParams.cxx:128
Trk::Pattern
@ Pattern
Definition: ParametersCommon.h:29
Identifier::get_compact
value_type get_compact(void) const
Get the compact id.
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20