ATLAS Offline Software
RpcCalibDBEntry.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
9 #include <stdlib.h>
10 #include <iostream>
11 #include <sstream>
12 #include <algorithm>
13 
14 namespace MuonCalib{
15 
17  // free nmemory used for data
18  for(unsigned int k=0;k<m_theEtaData.size();k++) delete m_theEtaData[k];
19  for(unsigned int k=0;k<m_thePhiData.size();k++) delete m_thePhiData[k];
20  }
21 
22  RpcCalibDBEntry::RpcCalibDBEntry(Identifier gapID, std::string_view payLoad):m_nRecEta(0),m_nDetEta(0), m_nRecPhi1(0),m_nRecPhi2(0),m_nDetPhi1(0),m_nDetPhi2(0),m_theGap(gapID) {
23 
24 
25  std::string::size_type end=payLoad.find("END ");
26  std::string_view etaRec=payLoad.substr(0,end);
27  payLoad=payLoad.substr(end+4,payLoad.size()-end-4);
28 
29  end=payLoad.find("END ");
30  std::string_view etaDet=payLoad.substr(0,end);
31  payLoad=payLoad.substr(end+4,payLoad.size()-end-4);
32 
33  end=payLoad.find("END ");
34  std::string_view phiRec1=payLoad.substr(0,end);
35  payLoad=payLoad.substr(end+4,payLoad.size()-end-4);
36 
37  end=payLoad.find("END ");
38  std::string_view phiRec2=payLoad.substr(0,end);
39  payLoad=payLoad.substr(end+4,payLoad.size()-end-4);
40 
41  end=payLoad.find("END ");
42  std::string_view phiDet1=payLoad.substr(0,end);
43  payLoad=payLoad.substr(end+4,payLoad.size()-end-4);
44 
45  end=payLoad.find("END ");
46  std::string_view phiDet2=payLoad.substr(0,end);
47 
48  this->initData(std::string(etaRec), std::string(etaDet),std::string(phiRec1),std::string(phiRec2),std::string(phiDet1),std::string(phiDet2));
49 
50  }
51 
52  void RpcCalibDBEntry::initData(std::string etaRec, std::string etaDet, std::string phiRec1, std::string phiRec2, std::string phiDet1, std::string phiDet2){
53 
54 
55  unsigned long int pos = 0;
56  std::string::size_type start = etaRec.find_first_not_of(' ',pos);
57  if(start == std::string::npos) {
58  std::cout << "RpcCalibDBEntry::initData -- problems extracting m_nRecEta -- crashing." << std::endl;
59  std::abort();
60  }
61  std::string::size_type stop = etaRec.find_first_of(' ',start+1);
62  if (stop == std::string::npos) stop = etaRec.size();
63  m_nRecEta = std::stoi(etaRec.substr(start,stop-start),nullptr);
64  etaRec.erase(pos,stop-pos);
65 
66  pos = 0;
67  start = phiRec1.find_first_not_of(' ',pos);
68  if(start == std::string::npos) {
69  std::cout << "RpcCalibDBEntry::initData -- problems extracting m_nRecPhi1 -- crashing." << std::endl;
70  std::abort();
71  }
72  stop = phiRec1.find_first_of(' ',start+1);
73  if (stop == std::string::npos) stop = phiRec1.size();
74  m_nRecPhi1 = std::stoi(phiRec1.substr(start,stop-start),nullptr);
75  phiRec1.erase(pos,stop-pos);
76 
77  std::istringstream etaRec_str;
78  std::istringstream etaDet_str;
79  std::istringstream phiRec1_str;
80  std::istringstream phiRec2_str;
81  std::istringstream phiDet1_str;
82  std::istringstream phiDet2_str;
83 
84  etaRec_str.str(etaRec);
85  etaDet_str.str(etaDet);
86  phiRec1_str.str(phiRec1);
87  phiRec2_str.str(phiRec2);
88  phiDet1_str.str(phiDet1);
89  phiDet2_str.str(phiDet2);
90 
91  etaDet_str>>m_nDetEta;
92  phiRec2_str>>m_nRecPhi2;
93  phiDet1_str>>m_nDetPhi1;
94  phiDet2_str>>m_nDetPhi2;
95 
96  float eff, errEff, res1, res2, resX, errRes1, errRes2, errResX, time, errTime, noise, errNoise, noiseC, errNoiseC, cs, errCs;
97 
98  // start with eta processing, 41 strips
99 
100  for(int k=0;k<m_nRecEta;k++){
101 
102  etaRec_str>>eff>>errEff>>res1>>errRes1>>res2>>errRes2>>resX>>errResX>>time>>errTime;
103  etaDet_str>>noise>>errNoise>>noiseC>>errNoiseC>>cs>>errCs;
104 
105  RpcCalibData * etaData=new RpcCalibData;
106 
107  etaData->setId(k);
108  etaData->setEff(eff);
109  etaData->setErrEff(errEff);
110  etaData->setRes1(res1);
111  etaData->setRes2(res2);
112  etaData->setResX(resX);
113  etaData->setErrRes1(errRes1);
114  etaData->setErrRes2(errRes2);
115  etaData->setErrResX(errResX);
116  etaData->setTime(time);
117  etaData->setErrTime(errTime);
118  etaData->setNoise(noise);
119  etaData->setNoiseC(noiseC);
120  etaData->setErrNoise(errNoise);
121  etaData->setErrNoiseC(errNoiseC);
122  etaData->setCs(cs);
123  etaData->setErrCs(errCs);
124 
125  m_theEtaData.push_back(etaData);
126 
127  }
128 
129  // now phi
130 
131  for(int k=0;k<m_nRecPhi1;k++){
132 
133  phiRec1_str>>eff>>res1>>res2>>resX>>time;
134  phiRec2_str>>errEff>>errRes1>>errRes2>>errResX>>errTime;
135  phiDet1_str>>noise>>errNoise>>noiseC>>errNoiseC>>cs>>errCs;
136 
137  RpcCalibData * phiData=new RpcCalibData;
138 
139  phiData->setId(k);
140  phiData->setEff(eff);
141  phiData->setErrEff(errEff);
142  phiData->setRes1(res1);
143  phiData->setRes2(res2);
144  phiData->setResX(resX);
145  phiData->setErrRes1(errRes1);
146  phiData->setErrRes2(errRes2);
147  phiData->setErrResX(errResX);
148  phiData->setTime(time);
149  phiData->setErrTime(errTime);
150  phiData->setNoise(noise);
151  phiData->setNoiseC(noiseC);
152  phiData->setErrNoise(errNoise);
153  phiData->setErrNoiseC(errNoiseC);
154  phiData->setCs(cs);
155  phiData->setErrCs(errCs);
156 
157  m_thePhiData.push_back(phiData);
158 
159  }
160 
161 
162  }
163 
164  // initialize from db columns
165 
166  RpcCalibDBEntry::RpcCalibDBEntry(Identifier gapID, const std::string& etaRec, const std::string& etaDet, const std::string& phiRec1, const std::string& phiRec2, const std::string& phiDet1, const std::string& phiDet2 ):m_nRecEta(0),m_nDetEta(0), m_nRecPhi1(0),m_nRecPhi2(0),m_nDetPhi1(0),m_nDetPhi2(0),m_theGap(gapID)
167  {
168 
169  this->initData(etaRec, etaDet,phiRec1,phiRec2,phiDet1,phiDet2);
170 
171 
172  }
173 
174 
176 
177  return m_theGap;
178 
179  }
180 
181  void RpcCalibDBEntry::getColumns(std::string &recEta, std::string &detEta,std::string &recPhi1, std::string &recPhi2, std::string &detPhi1,std::string &detPhi2) const{
182 
183 
184  std::ostringstream recEta_str,detEta_str,recPhi1_str,recPhi2_str,detPhi1_str,detPhi2_str;
185 
186  float eff, errEff, res1, res2, resX, errRes1, errRes2, errResX, time, errTime, noise, errNoise, noiseC, errNoiseC, cs, errCs;
187 
188  recEta_str<<m_nRecEta<<' ';
189  detEta_str<<m_nDetEta<<' ';
190 
191  recPhi1_str<<m_nRecPhi1<<' ';
192  detPhi1_str<<m_nDetPhi1<<' ';
193 
194  recPhi2_str<<m_nRecPhi2<<' ';
195  detPhi2_str<<m_nDetPhi2<<' ';
196 
197 
198 
199  for(int k=0;k<m_nRecEta;k++){
200 
201  const RpcCalibData * theData=m_theEtaData[k];
202 
203  eff=theData->getEff();
204  errEff=theData->getErrEff();
205  res1=theData->getRes1();
206  res2=theData->getRes2();
207  resX=theData->getResX();
208  errRes1=theData->getErrRes1();
209  errRes2=theData->getErrRes2();
210  errResX=theData->getErrResX();
211  time=theData->getTime();
212  errTime=theData->getErrTime();
213  noise=theData->getNoise();
214  noiseC=theData->getNoiseC();
215  errNoise=theData->getErrNoise();
216  errNoiseC=theData->getErrNoiseC();
217  cs=theData->getCs();
218  errCs=theData->getErrCs();
219 
220  recEta_str<< eff<< ' '<<errEff<< ' '<<res1<< ' '<<errRes1<< ' '<<res2<< ' '<<errRes2<< ' '<<resX<< ' '<<errResX<< ' '<<time<< ' '<<errTime<< ' ';
221  detEta_str<<noise<< ' '<<errNoise<< ' '<<noiseC<< ' '<<errNoiseC<< ' '<<cs<< ' '<<errCs<< ' ';
222 
223 
224  }
225 
226  for(int k=0;k<m_nRecPhi1;k++){
227 
228  const RpcCalibData * theData=m_thePhiData[k];
229 
230  eff=theData->getEff();
231  errEff=theData->getErrEff();
232  res1=theData->getRes1();
233  res2=theData->getRes2();
234  resX=theData->getResX();
235  errRes1=theData->getErrRes1();
236  errRes2=theData->getErrRes2();
237  errResX=theData->getErrResX();
238  time=theData->getTime();
239  errTime=theData->getErrTime();
240  noise=theData->getNoise();
241  noiseC=theData->getNoiseC();
242  errNoise=theData->getErrNoise();
243  errNoiseC=theData->getErrNoiseC();
244  cs=theData->getCs();
245  errCs=theData->getErrCs();
246 
247  recPhi1_str<<eff<<' ' <<res1<<' ' <<res2<<' ' <<resX<<' ' <<time<< ' ';
248  recPhi2_str<<errEff<<' ' <<errRes1<<' ' <<errRes2<<' ' <<errResX<<' ' <<errTime<< ' ';
249  detPhi1_str<<noise<<' ' <<errNoise<<' ' <<noiseC<<' ' <<errNoiseC<<' ' <<cs<<' ' <<errCs<< ' ';
250 
251 
252  }
253 
254  // give back strings
255 
256  recEta=recEta_str.str();
257  detEta=detEta_str.str();
258  recPhi1=recPhi1_str.str();
259  recPhi2=recPhi2_str.str();
260  detPhi1=detPhi1_str.str();
261  detPhi2=detPhi2_str.str();
262 
263  }
264 
265 }// End namespace MuonCalib
MuonCalib::RpcCalibDBEntry::m_thePhiData
std::vector< RpcCalibData * > m_thePhiData
Definition: RpcCalibDBEntry.h:46
MuonCalib::RpcCalibData::getErrNoiseC
float getErrNoiseC() const
Definition: RpcCalibData.cxx:73
MuonCalib::RpcCalibData::setRes1
void setRes1(float theRes1)
Definition: RpcCalibData.cxx:40
MuonCalib::RpcCalibDBEntry::m_theEtaData
std::vector< RpcCalibData * > m_theEtaData
Definition: RpcCalibDBEntry.h:47
MuonCalib::RpcCalibData::getRes2
float getRes2() const
Definition: RpcCalibData.cxx:63
MuonCalib::RpcCalibDBEntry::m_nRecPhi2
int m_nRecPhi2
Definition: RpcCalibDBEntry.h:44
MuonCalib::RpcCalibData::setErrEff
void setErrEff(float theErrEff)
Definition: RpcCalibData.cxx:39
MuonCalib::RpcCalibData::setNoiseC
void setNoiseC(float theNoiseC)
Definition: RpcCalibData.cxx:49
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
MuonCalib::RpcCalibData::getErrResX
float getErrResX() const
Definition: RpcCalibData.cxx:67
MuonCalib::RpcCalibData::getErrRes1
float getErrRes1() const
Definition: RpcCalibData.cxx:65
MuonCalib::RpcCalibData::setErrTime
void setErrTime(float theErrTime)
Definition: RpcCalibData.cxx:47
MuonCalib::RpcCalibDBEntry::m_nDetPhi1
int m_nDetPhi1
Definition: RpcCalibDBEntry.h:44
MuonCalib::RpcCalibData::setEff
void setEff(float theEff)
Definition: RpcCalibData.cxx:38
MuonCalib::RpcCalibData::getErrRes2
float getErrRes2() const
Definition: RpcCalibData.cxx:66
MuonCalib::RpcCalibData::getTime
float getTime() const
Definition: RpcCalibData.cxx:68
MuonCalib::RpcCalibData::getNoise
float getNoise() const
Definition: RpcCalibData.cxx:70
MuonCalib::RpcCalibDBEntry::m_nDetPhi2
int m_nDetPhi2
Definition: RpcCalibDBEntry.h:44
MuonCalib::RpcCalibData::setTime
void setTime(float theTime)
Definition: RpcCalibData.cxx:46
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
MuonCalib::RpcCalibDBEntry::RpcCalibDBEntry
RpcCalibDBEntry()
Definition: RpcCalibDBEntry.h:29
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
MuonCalib::RpcCalibData::getErrEff
float getErrEff() const
Definition: RpcCalibData.cxx:61
MuonCalib::RpcCalibData::setNoise
void setNoise(float theNoise)
Definition: RpcCalibData.cxx:48
MuonCalib::RpcCalibDBEntry::getColumns
void getColumns(std::string &recEta, std::string &detEta, std::string &recPhi1, std::string &recPhi2, std::string &detPhi1, std::string &detPhi2) const
Definition: RpcCalibDBEntry.cxx:181
MuonCalib::RpcCalibDBEntry::~RpcCalibDBEntry
~RpcCalibDBEntry()
Definition: RpcCalibDBEntry.cxx:16
MuonCalib::RpcCalibData::setResX
void setResX(float theResX)
Definition: RpcCalibData.cxx:42
MuonCalib::RpcCalibData::getRes1
float getRes1() const
Definition: RpcCalibData.cxx:62
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
RpcCalibDBEntry.h
MuonCalib::RpcCalibData
holds all conditions data for rpc strip.
Definition: RpcCalibData.h:30
MuonCalib::RpcCalibData::setErrNoise
void setErrNoise(float theErrNoise)
Definition: RpcCalibData.cxx:50
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
MuonCalib::RpcCalibDBEntry::m_nDetEta
int m_nDetEta
Definition: RpcCalibDBEntry.h:44
MuonCalib::RpcCalibData::getEff
float getEff() const
Definition: RpcCalibData.cxx:60
RpcCondParType.h
MuonCalib::RpcCalibDBEntry::initData
void initData(std::string etaRec, std::string etaDet, std::string phiRec1, std::string phiRec2, std::string phiDet1, std::string phiDet2)
Definition: RpcCalibDBEntry.cxx:52
MuonCalib::RpcCalibDBEntry::m_theGap
Identifier m_theGap
Definition: RpcCalibDBEntry.h:45
MuonCalib::RpcCalibData::getResX
float getResX() const
Definition: RpcCalibData.cxx:64
MuonCalib::RpcCalibData::getErrCs
float getErrCs() const
Definition: RpcCalibData.cxx:75
MuonCalib::RpcCalibData::setRes2
void setRes2(float theRes2)
Definition: RpcCalibData.cxx:41
MuonCalib::RpcCalibData::getErrNoise
float getErrNoise() const
Definition: RpcCalibData.cxx:72
MuonCalib::RpcCalibData::setErrRes2
void setErrRes2(float theErrRes2)
Definition: RpcCalibData.cxx:44
MuonCalib::RpcCalibData::getCs
float getCs() const
Definition: RpcCalibData.cxx:74
MuonCalib::RpcCalibData::setErrResX
void setErrResX(float theErrResX)
Definition: RpcCalibData.cxx:45
MuonCalib::RpcCalibData::setErrNoiseC
void setErrNoiseC(float theErrNoiseC)
Definition: RpcCalibData.cxx:51
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
RpcCalibData.h
MuonCalib::RpcCalibDBEntry::m_nRecPhi1
int m_nRecPhi1
Definition: RpcCalibDBEntry.h:44
MuonCalib::RpcCalibData::getNoiseC
float getNoiseC() const
Definition: RpcCalibData.cxx:71
MuonCalib::RpcCalibDBEntry::getGapID
const Identifier getGapID() const
Definition: RpcCalibDBEntry.cxx:175
MuonCalib::RpcCalibData::setCs
void setCs(float theCs)
Definition: RpcCalibData.cxx:52
dqt_zlumi_alleff_HIST.eff
int eff
Definition: dqt_zlumi_alleff_HIST.py:113
MuonCalib::RpcCalibData::setErrRes1
void setErrRes1(float theErrRes1)
Definition: RpcCalibData.cxx:43
MuonCalib::RpcCalibData::setId
void setId(int stripId)
Definition: RpcCalibData.cxx:37
MuonCalib::RpcCalibData::getErrTime
float getErrTime() const
Definition: RpcCalibData.cxx:69
MuonCalib::RpcCalibDBEntry::m_nRecEta
int m_nRecEta
Definition: RpcCalibDBEntry.h:44
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
fitman.k
k
Definition: fitman.py:528
MuonCalib::RpcCalibData::setErrCs
void setErrCs(float theErrCs)
Definition: RpcCalibData.cxx:53