ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
MuonCalib::RtDataFromFile Class Reference

Manages the I/O of the Rt realtions from/to file. More...

#include <RtDataFromFile.h>

Collaboration diagram for MuonCalib::RtDataFromFile:

Public Types

typedef RtData_t_r_reso RtRelation
 
typedef std::vector< RtRelation * > RtRelations
 

Public Member Functions

 RtDataFromFile ()
 
 ~RtDataFromFile ()=default
 
unsigned int nRts () const
 return number of rt relations More...
 
RtRelationgetRt (unsigned int regionId) const
 retrieve rt-relation for a give regionId More...
 
void setNRts (unsigned int nrts)
 set total number of regions More...
 
bool addRt (int regionId, RtRelation *rt)
 RtDataFromFile takes ownership of rt. More...
 
bool addRt (int regionId, RtRelation *rt, const RtFullInfo *info)
 
std::istream & read (std::istream &is)
 
std::ostream & write (std::ostream &os, int region) const
 
std::ostream & write (std::ostream &os) const
 
void write_forDB (FILE *frt, FILE *frtt, FILE *frtr, FILE *frts, int region) const
 
void write_forDB (FILE *frt, FILE *frtt, FILE *frtr, FILE *frts) const
 
void setVersion (int major, int minor)
 

Private Attributes

unsigned int m_rts
 total number of regions More...
 
RtRelations m_rtRelations
 rt relations More...
 
std::vector< const RtFullInfo * > m_fullInfo
 
int m_major_version
 format version More...
 
int m_minor_version
 

Detailed Description

Manages the I/O of the Rt realtions from/to file.

Definition at line 21 of file RtDataFromFile.h.

Member Typedef Documentation

◆ RtRelation

Definition at line 23 of file RtDataFromFile.h.

◆ RtRelations

Definition at line 24 of file RtDataFromFile.h.

Constructor & Destructor Documentation

◆ RtDataFromFile()

MuonCalib::RtDataFromFile::RtDataFromFile ( )
inline

Definition at line 27 of file RtDataFromFile.h.

◆ ~RtDataFromFile()

MuonCalib::RtDataFromFile::~RtDataFromFile ( )
default

Member Function Documentation

◆ addRt() [1/2]

bool MuonCalib::RtDataFromFile::addRt ( int  regionId,
RtRelation rt 
)
inline

RtDataFromFile takes ownership of rt.

Definition at line 51 of file RtDataFromFile.h.

51  {
52  if (regionId < 0 || regionId >= (int)m_rts) {
53  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
54  log << MSG::WARNING << "addRt() <regionId out of range> " << regionId << " size " << m_rts << endmsg;
55  return false;
56  }
57  if (m_rtRelations[regionId] != 0) {
58  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
59  log << MSG::WARNING << "addRt() <rt already set>" << endmsg;
60  return false;
61  }
62 
63  m_rtRelations[regionId] = rt;
64 
65  return true;
66  }

◆ addRt() [2/2]

bool MuonCalib::RtDataFromFile::addRt ( int  regionId,
RtRelation rt,
const RtFullInfo info 
)
inline

Definition at line 67 of file RtDataFromFile.h.

67  {
68  bool result = addRt(regionId, rt);
69  if (result) { m_fullInfo[regionId] = info; }
70  return result;
71  }

◆ getRt()

RtRelation* MuonCalib::RtDataFromFile::getRt ( unsigned int  regionId) const
inline

retrieve rt-relation for a give regionId

Definition at line 34 of file RtDataFromFile.h.

34  {
35  if (regionId >= (unsigned int)m_rts) {
36  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
37  log << MSG::WARNING << "getRt() <regionId out of range> " << regionId << " size " << m_rts << endmsg;
38  return 0;
39  }
40  return m_rtRelations[regionId];
41  }

◆ nRts()

unsigned int MuonCalib::RtDataFromFile::nRts ( ) const
inline

return number of rt relations

Definition at line 31 of file RtDataFromFile.h.

31 { return m_rts; }

◆ read()

std::istream & MuonCalib::RtDataFromFile::read ( std::istream &  is)

Definition at line 17 of file RtDataFromFile.cxx.

17  {
18  std::string version;
19  std::string rts_str;
20 
21  // read number of rts in file
22  is >> version >> rts_str;
23 
24  unsigned long int pos = 0;
25  std::string::size_type start = rts_str.find_first_not_of(' ', pos);
26  if (start == std::string::npos)
27  throw std::runtime_error(
28  Form("File: %s, Line: %d\nRtDataFromFile::read() - problems extracting m_rts, exiting", __FILE__, __LINE__));
29 
30  std::string::size_type stop = rts_str.find_first_of(' ', start + 1);
31  if (stop == std::string::npos) stop = rts_str.size();
32  m_rts = std::stoi(rts_str.substr(start, stop - start), nullptr);
33 
35  for (unsigned int i = 0; i < m_rts; ++i) {
36  if (version != "v0.0") {
37  // read in additional information
38  RtFullInfo fi;
39  is >> fi;
40  }
41  // create empty rt
42  RtRelation* rt = new RtRelation();
43 
44  // read rt from file
45  is >> *rt;
46 
47  // store rt
48  m_rtRelations.push_back(rt);
49  }
50 
51  return is;
52  }

◆ setNRts()

void MuonCalib::RtDataFromFile::setNRts ( unsigned int  nrts)
inline

set total number of regions

Definition at line 44 of file RtDataFromFile.h.

44  {
45  m_rts = nrts;
46  m_rtRelations.resize(nrts);
47  m_fullInfo.resize(nrts);
48  }

◆ setVersion()

void MuonCalib::RtDataFromFile::setVersion ( int  major,
int  minor 
)
inline

Definition at line 77 of file RtDataFromFile.h.

77  {
78  m_major_version = major;
79  m_minor_version = minor;
80  }

◆ write() [1/2]

std::ostream & MuonCalib::RtDataFromFile::write ( std::ostream &  os) const

Definition at line 70 of file RtDataFromFile.cxx.

70  {
71  if (m_rts != m_rtRelations.size()) {
72  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
73  log << MSG::WARNING << "write() <inconsistent rt count>" << endmsg;
74  }
75 
76  os << "v1.0 " << m_rts; // full info added
77 
78  for (unsigned int i = 0; i < m_rtRelations.size(); ++i) {
79  if (m_fullInfo[i]) os << *(m_fullInfo[i]);
80  if (m_rtRelations[i]) os << *(m_rtRelations[i]);
81  }
82  return os;
83  }

◆ write() [2/2]

std::ostream & MuonCalib::RtDataFromFile::write ( std::ostream &  os,
int  region 
) const

Definition at line 54 of file RtDataFromFile.cxx.

54  {
55  if (m_rts != m_rtRelations.size()) {
56  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
57  log << MSG::WARNING << "write() <inconsistent rt count>" << endmsg;
58  }
59  if (region >= static_cast<int>(m_rts)) {
60  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
61  log << MSG::WARNING << "write() <requested not existent region>" << endmsg;
62  }
63  os << "v" << m_major_version << "." << m_minor_version << " 1"; // full info added
64 
65  if (m_fullInfo[region]) os << *(m_fullInfo[region]);
66  if (m_rtRelations[region]) os << *(m_rtRelations[region]);
67  return os;
68  }

◆ write_forDB() [1/2]

void MuonCalib::RtDataFromFile::write_forDB ( FILE *  frt,
FILE *  frtt,
FILE *  frtr,
FILE *  frts 
) const

Definition at line 99 of file RtDataFromFile.cxx.

99  {
100  if (m_rts != m_rtRelations.size()) {
101  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
102  log << MSG::WARNING << "write_forDB() <inconsistent rt count>" << endmsg;
103  }
104 
105  for (unsigned int i = 0; i < m_rtRelations.size(); ++i) {
106  if (m_rtRelations[i]) { (m_rtRelations[i])->write_forDB(frtt, frtr, frts); }
107  if (m_fullInfo[i]) { (m_fullInfo[i])->write_forDB(frt); }
108  }
109  return;
110  }

◆ write_forDB() [2/2]

void MuonCalib::RtDataFromFile::write_forDB ( FILE *  frt,
FILE *  frtt,
FILE *  frtr,
FILE *  frts,
int  region 
) const

Definition at line 85 of file RtDataFromFile.cxx.

85  {
86  if (m_rts != m_rtRelations.size()) {
87  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
88  log << MSG::WARNING << "write_forDB() <inconsistent rt count>" << endmsg;
89  }
90  if (region >= static_cast<int>(m_rts)) {
91  MsgStream log(Athena::getMessageSvc(), "RtDataFromFile");
92  log << MSG::WARNING << "write_forDB() <requested not existent region>" << endmsg;
93  }
94  if (m_fullInfo[region]) { (m_fullInfo[region])->write_forDB(frt); }
95  if (m_rtRelations[region]) { (m_rtRelations[region])->write_forDB(frtt, frtr, frts); }
96  return;
97  }

Member Data Documentation

◆ m_fullInfo

std::vector<const RtFullInfo*> MuonCalib::RtDataFromFile::m_fullInfo
private

Definition at line 88 of file RtDataFromFile.h.

◆ m_major_version

int MuonCalib::RtDataFromFile::m_major_version
private

format version

Definition at line 90 of file RtDataFromFile.h.

◆ m_minor_version

int MuonCalib::RtDataFromFile::m_minor_version
private

Definition at line 90 of file RtDataFromFile.h.

◆ m_rtRelations

RtRelations MuonCalib::RtDataFromFile::m_rtRelations
private

rt relations

Definition at line 87 of file RtDataFromFile.h.

◆ m_rts

unsigned int MuonCalib::RtDataFromFile::m_rts
private

total number of regions

Definition at line 84 of file RtDataFromFile.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
get_generator_info.result
result
Definition: get_generator_info.py:21
MuonCalib::RtDataFromFile::RtRelation
RtData_t_r_reso RtRelation
Definition: RtDataFromFile.h:23
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
M_MAX_RTS
#define M_MAX_RTS
Definition: RtDataFromFile.cxx:13
MuonCalib::RtDataFromFile::m_major_version
int m_major_version
format version
Definition: RtDataFromFile.h:90
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
MuonCalib::RtDataFromFile::m_rtRelations
RtRelations m_rtRelations
rt relations
Definition: RtDataFromFile.h:87
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
MuonCalib::RtDataFromFile::addRt
bool addRt(int regionId, RtRelation *rt)
RtDataFromFile takes ownership of rt.
Definition: RtDataFromFile.h:51
MuonCalib::RtDataFromFile::m_rts
unsigned int m_rts
total number of regions
Definition: RtDataFromFile.h:84
MuonCalib::RtDataFromFile::m_minor_version
int m_minor_version
Definition: RtDataFromFile.h:90
MuonCalib::RtDataFromFile::write_forDB
void write_forDB(FILE *frt, FILE *frtt, FILE *frtr, FILE *frts, int region) const
Definition: RtDataFromFile.cxx:85
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
get_generator_info.version
version
Definition: get_generator_info.py:33
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
checkFileSG.fi
fi
Definition: checkFileSG.py:65
MuonCalib::RtDataFromFile::m_fullInfo
std::vector< const RtFullInfo * > m_fullInfo
Definition: RtDataFromFile.h:88