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

Condition object to keep Tile DCS status from DB. More...

#include <TileDCSState.h>

Collaboration diagram for TileDCSState:

Public Types

enum  TileDCSStatus {
  NON_EXISTING = 0 , UNKNOWN = 1 , OK_DRAWER = 10 , OK_KNOWNBADPMT ,
  OK , WARNING_DRAWER = 20 , WARNING_KNOWNBADPMT , WARNING ,
  ALERT_DRAWER = 30 , ALERT_KNOWNBADPMT , ALERT
}
 Describes Tile DCS status. More...

Public Member Functions

 TileDCSState ()
virtual ~TileDCSState ()
float getChannelHV (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return measured HV reported by DCS for given Tile channel.
void setChannelHV (unsigned int ros, unsigned int drawer, unsigned int channel, float hv)
 Store measured HV reported by DCS for given Tile channel.
float getChannelHVSet (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return requested HV reported by DCS for given Tile channel.
void setChannelHVSet (unsigned int ros, unsigned int drawer, unsigned int channel, float hvSet)
 Store requested HV reported by DCS for given Tile channel.
int getDrawerStates (unsigned int ros, unsigned int drawer) const
 Return Tile drawer summary states per LVPS reported by DCS.
void setDrawerStates (unsigned int ros, unsigned int drawer, int states)
 Store Tile drawer summary states per LVPS reported by DCS.
TileDCSStatus getDCSHVStatus (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return TileDCSstatus for given Tile channel determined by deviation between measured and requested HV.
void setDCSHVStatus (unsigned int ros, unsigned int drawer, unsigned int channel, TileDCSStatus status)
 Store TileDCSstatus for given Tile channel determined by deviation between measured and requested HV.
TileDCSStatus getDCSStatus (unsigned int ros, unsigned int drawer) const
 Return TileDCSstatus for given Tile drawer determined by summary states per LVPS.
TileDCSStatus getDCSStatus (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return TileDCSstatus for given Tile channel determined by summary states per LVPS and deviation between measured and requested HV.
TileDCSStatus setDCSStatus (unsigned int ros, unsigned int drawer, unsigned int channel, TileDCSStatus status)
 Store TileDCSstatus for given Tile channel determined by summary states per LVPS and deviation between measured and requested HV.
bool isStatusHVBad (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return true if given Tile channel considered as bad by deviation between measured and requested HV otherwise return false.
bool isStatusBad (unsigned int ros, unsigned int drawer) const
 Return true if given Tile drawer considered as bad by summary drawer states per LVPS otherwise return false.
bool isStatusBad (unsigned int ros, unsigned int drawer, unsigned int channel) const
 Return true if given Tile channel considered as bad by summary drawer states per LVPS and deviation between measured and requested HV otherwise return false.
void setGoodDrawer (int goodDrawer)
 Store good Tile drawer summary states per LVPS as reference.
void setWarningDrawer (const std::vector< int > &warningDrawer)
 Store vector of warning Tile drawer summary states per LVPS as reference.

Private Types

enum  TileLimits {
  NUMBER_OF_ROSES = 4 , NUMBER_OF_CHANNELS = 48 , NUMBER_OF_HV_CHANNELS = 55 , NUMBER_OF_HVSET_CHANNELS = 68 ,
  NUMBER_OF_DRAWERS = 64
}

Private Member Functions

void checkDrawer (const std::string &description, unsigned int ros, unsigned int drawer) const
void checkChannel (const std::string &description, unsigned int ros, unsigned int drawer, unsigned int channel, unsigned int maxChannel) const

Private Attributes

int m_states [NUMBER_OF_ROSES][NUMBER_OF_DRAWERS]
float m_hv [NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HV_CHANNELS]
float m_hvSet [NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HVSET_CHANNELS]
TileDCSStatus m_status [NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_CHANNELS]
TileDCSStatus m_hvStatus [NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_CHANNELS]
int m_goodDrawer
std::vector< int > m_warningDrawer
int m_unknownValue

Detailed Description

Condition object to keep Tile DCS status from DB.

See Tile Calorimeter DCS on the twiki

Definition at line 24 of file TileDCSState.h.

Member Enumeration Documentation

◆ TileDCSStatus

Describes Tile DCS status.

Enumerator
NON_EXISTING 
UNKNOWN 
OK_DRAWER 
OK_KNOWNBADPMT 
OK 
WARNING_DRAWER 
WARNING_KNOWNBADPMT 
WARNING 
ALERT_DRAWER 
ALERT_KNOWNBADPMT 
ALERT 

Definition at line 32 of file TileDCSState.h.

◆ TileLimits

Enumerator
NUMBER_OF_ROSES 

Number of Tile ROSes.

NUMBER_OF_CHANNELS 

Number of Tile channels.

NUMBER_OF_HV_CHANNELS 

Number of Tile "channels" in DCS HV folder.

NUMBER_OF_HVSET_CHANNELS 

Number of Tile "channels" in DCS HVSET folder.

NUMBER_OF_DRAWERS 

Number of Tile drawers in one ROS.

Definition at line 193 of file TileDCSState.h.

193 {
194 NUMBER_OF_ROSES = 4,
195 NUMBER_OF_CHANNELS = 48,
199 };
@ NUMBER_OF_HVSET_CHANNELS
Number of Tile "channels" in DCS HVSET folder.
@ NUMBER_OF_DRAWERS
Number of Tile drawers in one ROS.
@ NUMBER_OF_ROSES
Number of Tile ROSes.
@ NUMBER_OF_CHANNELS
Number of Tile channels.
@ NUMBER_OF_HV_CHANNELS
Number of Tile "channels" in DCS HV folder.

Constructor & Destructor Documentation

◆ TileDCSState()

TileDCSState::TileDCSState ( )

Definition at line 12 of file TileDCSState.cxx.

13 : m_goodDrawer(212222),
14 m_unknownValue(-30) // should be negative
15{
16
17 std::fill(&m_states[0][0], &m_states[3][64], m_unknownValue);
18 std::fill(&m_hv[0][0][0], &m_hv[3][63][48], m_unknownValue);
19 std::fill(&m_hvSet[0][0][0], &m_hvSet[3][63][68], m_unknownValue);
20 std::fill(&m_status[0][0][0], &m_status[3][63][48], UNKNOWN);
21 std::fill(&m_hvStatus[0][0][0], &m_hvStatus[3][63][48], UNKNOWN);
22
23}
TileDCSStatus m_hvStatus[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_CHANNELS]
float m_hv[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HV_CHANNELS]
int m_states[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS]
TileDCSStatus m_status[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_CHANNELS]
float m_hvSet[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HVSET_CHANNELS]

◆ ~TileDCSState()

virtual TileDCSState::~TileDCSState ( )
inlinevirtual

Definition at line 38 of file TileDCSState.h.

38{};

Member Function Documentation

◆ checkChannel()

void TileDCSState::checkChannel ( const std::string & description,
unsigned int ros,
unsigned int drawer,
unsigned int channel,
unsigned int maxChannel ) const
inlineprivate

Definition at line 356 of file TileDCSState.h.

358 {
359
360 checkDrawer(description, ros, drawer);
361
362 if (channel >= maxChannel) {
363 throw TileCalib::IndexOutOfRange(description, channel, maxChannel);
364 }
365
366}
void checkDrawer(const std::string &description, unsigned int ros, unsigned int drawer) const
std::string description
glabal timer - how long have I taken so far?
Definition hcg.cxx:91

◆ checkDrawer()

void TileDCSState::checkDrawer ( const std::string & description,
unsigned int ros,
unsigned int drawer ) const
inlineprivate

Definition at line 341 of file TileDCSState.h.

342 {
343
344 if (ros > NUMBER_OF_ROSES) {
345 throw TileCalib::IndexOutOfRange(description, ros, NUMBER_OF_ROSES);
346 }
347
348 if (drawer >= NUMBER_OF_DRAWERS) {
349 throw TileCalib::IndexOutOfRange(description, drawer, NUMBER_OF_DRAWERS);
350 }
351
352}

◆ getChannelHV()

float TileDCSState::getChannelHV ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return measured HV reported by DCS for given Tile channel.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
measured HV reported by DCS for given Tile channel

Definition at line 227 of file TileDCSState.h.

227 {
228
229 checkChannel("TileDCSState::getChannelHV()", ros, drawer, channel, NUMBER_OF_HV_CHANNELS);
230
231 return m_hv[ros - 1][drawer][channel];
232}
void checkChannel(const std::string &description, unsigned int ros, unsigned int drawer, unsigned int channel, unsigned int maxChannel) const

◆ getChannelHVSet()

float TileDCSState::getChannelHVSet ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return requested HV reported by DCS for given Tile channel.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
requested HV reported by DCS for given Tile channel

Definition at line 243 of file TileDCSState.h.

243 {
244
245 checkChannel("TileDCSState::getChannelHVSet()", ros, drawer, channel, NUMBER_OF_HVSET_CHANNELS);
246
247 return m_hvSet[ros - 1][drawer][channel]; // Return the HVSET
248}

◆ getDCSHVStatus()

TileDCSState::TileDCSStatus TileDCSState::getDCSHVStatus ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return TileDCSstatus for given Tile channel determined by deviation between measured and requested HV.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
TileDCSstatus for given Tile channel determined by deviation between measured and requested HV

Definition at line 275 of file TileDCSState.h.

277 {
278
279 checkChannel("TileDCSState::getDCSHVStatus()", ros, drawer, channel, NUMBER_OF_CHANNELS);
280
281 return m_hvStatus[ros - 1][drawer][channel];
282}

◆ getDCSStatus() [1/2]

TileDCSState::TileDCSStatus TileDCSState::getDCSStatus ( unsigned int ros,
unsigned int drawer ) const

Return TileDCSstatus for given Tile drawer determined by summary states per LVPS.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
Returns
TileDCSstatus for given Tile drawer

Definition at line 27 of file TileDCSState.cxx.

27 {
28
30
31 int state = m_states[ros - 1][drawer];
32 if (state == m_goodDrawer) {
34 } else if (state == m_unknownValue) {
36 } else if (std::find(m_warningDrawer.begin(), m_warningDrawer.end(), state) !=
37 m_warningDrawer.end()) {
38
40 }
41
42 return status;
43}
TileDCSStatus
Describes Tile DCS status.
std::vector< int > m_warningDrawer
status
Definition merge.py:16

◆ getDCSStatus() [2/2]

TileDCSState::TileDCSStatus TileDCSState::getDCSStatus ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return TileDCSstatus for given Tile channel determined by summary states per LVPS and deviation between measured and requested HV.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
TileDCSstatus for given Tile channel

Definition at line 294 of file TileDCSState.h.

296 {
297
298 checkChannel("TileDCSState::getDCSStatus()", ros, drawer, channel, NUMBER_OF_CHANNELS);
299
300 return m_status[ros - 1][drawer][channel]; // final status - the worst of 2 statuses above
301}

◆ getDrawerStates()

int TileDCSState::getDrawerStates ( unsigned int ros,
unsigned int drawer ) const
inline

Return Tile drawer summary states per LVPS reported by DCS.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
Returns
Tile drawer states reported by DCS

Definition at line 259 of file TileDCSState.h.

259 {
260
261 checkDrawer("TileDCSState::getDrawerStates()", ros, drawer);
262
263 return m_states[ros - 1][drawer];
264}

◆ isStatusBad() [1/2]

bool TileDCSState::isStatusBad ( unsigned int ros,
unsigned int drawer ) const
inline

Return true if given Tile drawer considered as bad by summary drawer states per LVPS otherwise return false.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
Returns
TileDCSstatus for given channel

Definition at line 320 of file TileDCSState.h.

320 {
321 return getDCSStatus(ros, drawer) > WARNING;
322}
TileDCSStatus getDCSStatus(unsigned int ros, unsigned int drawer) const
Return TileDCSstatus for given Tile drawer determined by summary states per LVPS.

◆ isStatusBad() [2/2]

bool TileDCSState::isStatusBad ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return true if given Tile channel considered as bad by summary drawer states per LVPS and deviation between measured and requested HV otherwise return false.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
TileDCSstatus for given channel

Definition at line 325 of file TileDCSState.h.

325 {
326
327 checkChannel("TileDCSState::isStatusBad()", ros, drawer, channel, NUMBER_OF_CHANNELS);
328
329 return m_status[ros - 1][drawer][channel] > WARNING;
330}

◆ isStatusHVBad()

bool TileDCSState::isStatusHVBad ( unsigned int ros,
unsigned int drawer,
unsigned int channel ) const
inline

Return true if given Tile channel considered as bad by deviation between measured and requested HV otherwise return false.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
Returns
TileDCSstatus for given channel

Definition at line 315 of file TileDCSState.h.

315 {
316 return getDCSHVStatus(ros, drawer, channel) > WARNING;
317}
TileDCSStatus getDCSHVStatus(unsigned int ros, unsigned int drawer, unsigned int channel) const
Return TileDCSstatus for given Tile channel determined by deviation between measured and requested HV...

◆ setChannelHV()

void TileDCSState::setChannelHV ( unsigned int ros,
unsigned int drawer,
unsigned int channel,
float hv )
inline

Store measured HV reported by DCS for given Tile channel.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
hvmeasured HV reported by DCS for given Tile channel

Definition at line 235 of file TileDCSState.h.

235 {
236
237 checkChannel("TileDCSState::setChannelHV()", ros, drawer, channel, NUMBER_OF_HV_CHANNELS);
238
239 m_hv[ros - 1][drawer][channel] = hv;
240}

◆ setChannelHVSet()

void TileDCSState::setChannelHVSet ( unsigned int ros,
unsigned int drawer,
unsigned int channel,
float hvSet )
inline

Store requested HV reported by DCS for given Tile channel.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
hvSetrequested HV reported by DCS for given Tile channel

Definition at line 251 of file TileDCSState.h.

251 {
252
253 checkChannel("TileDCSState::setChannelHVSet()", ros, drawer, channel, NUMBER_OF_HVSET_CHANNELS);
254
255 m_hvSet[ros - 1][drawer][channel] = hvSet; // Set the HVSET
256}

◆ setDCSHVStatus()

void TileDCSState::setDCSHVStatus ( unsigned int ros,
unsigned int drawer,
unsigned int channel,
TileDCSState::TileDCSStatus status )
inline

Store TileDCSstatus for given Tile channel determined by deviation between measured and requested HV.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
statusTileDCSstatus for given Tile channel determined by deviation between measured and requested HV

Definition at line 285 of file TileDCSState.h.

286 {
287
288 checkChannel("TileDCSState::setDCSHVStatus()", ros, drawer, channel, NUMBER_OF_CHANNELS);
289
291}

◆ setDCSStatus()

TileDCSState::TileDCSStatus TileDCSState::setDCSStatus ( unsigned int ros,
unsigned int drawer,
unsigned int channel,
TileDCSState::TileDCSStatus status )
inline

Store TileDCSstatus for given Tile channel determined by summary states per LVPS and deviation between measured and requested HV.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
channelTile channel number in range [0..47]
statusTileDCSstatus for given Tile channel

Definition at line 304 of file TileDCSState.h.

307 {
308
309 checkChannel("TileDCSState::setDCSStatus()", ros, drawer, channel, NUMBER_OF_CHANNELS);
310
311 return m_status[ros - 1][drawer][channel] = status; // final status - the worst of 2 statuses above
312}

◆ setDrawerStates()

void TileDCSState::setDrawerStates ( unsigned int ros,
unsigned int drawer,
int states )
inline

Store Tile drawer summary states per LVPS reported by DCS.

Parameters
rosTile ROS number: 1 == LBA, 2 == LBC, 3 == EBA, 4 == EBC
drawerTile drawer number in range [0..63]
statesTile drawer states reported by DCS

Definition at line 267 of file TileDCSState.h.

267 {
268
269 checkDrawer("TileDCSState::setDrawerStates()", ros, drawer);
270
271 m_states[ros - 1][drawer] = states; // Set the drawer state
272}

◆ setGoodDrawer()

void TileDCSState::setGoodDrawer ( int goodDrawer)
inline

Store good Tile drawer summary states per LVPS as reference.

Parameters
goodDrawerTile drawer states considered as good

Definition at line 333 of file TileDCSState.h.

333{ m_goodDrawer = goodDrawer;}

◆ setWarningDrawer()

void TileDCSState::setWarningDrawer ( const std::vector< int > & warningDrawer)
inline

Store vector of warning Tile drawer summary states per LVPS as reference.

Parameters
warningDrawervector of Tile drawer states considered as warning

Definition at line 336 of file TileDCSState.h.

336 {
337 m_warningDrawer = warningDrawer;
338}

Member Data Documentation

◆ m_goodDrawer

int TileDCSState::m_goodDrawer
private

Definition at line 211 of file TileDCSState.h.

◆ m_hv

float TileDCSState::m_hv[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HV_CHANNELS]
private

Definition at line 206 of file TileDCSState.h.

◆ m_hvSet

float TileDCSState::m_hvSet[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS][NUMBER_OF_HVSET_CHANNELS]
private

Definition at line 207 of file TileDCSState.h.

◆ m_hvStatus

Definition at line 209 of file TileDCSState.h.

◆ m_states

int TileDCSState::m_states[NUMBER_OF_ROSES][NUMBER_OF_DRAWERS]
private

Definition at line 205 of file TileDCSState.h.

◆ m_status

Definition at line 208 of file TileDCSState.h.

◆ m_unknownValue

int TileDCSState::m_unknownValue
private

Definition at line 213 of file TileDCSState.h.

◆ m_warningDrawer

std::vector<int> TileDCSState::m_warningDrawer
private

Definition at line 212 of file TileDCSState.h.


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