Belle II Software development
TrgEclDatabaseImporter Class Reference

Database importer of TRGECL. More...

#include <TrgEclDatabaseImporter.h>

Public Member Functions

 TrgEclDatabaseImporter ()
 TrgEclDatabaseImporter Constructor.
 
virtual ~TrgEclDatabaseImporter ()
 TrgEclDatabaseImporter Destructor.
 
void setRunNumber (int start, int end)
 Set Run Number.
 
void setExpNumber (int start, int end)
 Set Experiment Number.
 
void importFAMParameter (std::string, std::string, std::string)
 Import FAM Parameters.
 
void importTMMParameter (std::string)
 Import TMM Parameters.
 
void importETMParameter (std::string)
 Import ETM Parameters.
 
void importBadRunNumber (std::string)
 Import Bad Run Number.
 
void printTCThreshold ()
 Print TC energy Threshold.
 

Private Attributes

int m_startExp
 Start Experiment Number.
 
int m_startRun
 Start Run Number.
 
int m_endExp
 End Experiment Number.
 
int m_endRun
 End Run Number.
 

Detailed Description

Database importer of TRGECL.

Definition at line 22 of file TrgEclDatabaseImporter.h.

Constructor & Destructor Documentation

◆ TrgEclDatabaseImporter()

TrgEclDatabaseImporter Constructor.

Definition at line 36 of file TrgEclDatabaseImporter.cc.

36 :
37 m_startExp(0), m_startRun(0), m_endExp(-1), m_endRun(-1)
38{}
int m_startExp
Start Experiment Number.
int m_endExp
End Experiment Number.

◆ ~TrgEclDatabaseImporter()

virtual ~TrgEclDatabaseImporter ( )
inlinevirtual

TrgEclDatabaseImporter Destructor.

Definition at line 29 of file TrgEclDatabaseImporter.h.

29{}

Member Function Documentation

◆ importBadRunNumber()

void importBadRunNumber ( std::string InputFileName)

Import Bad Run Number.

Definition at line 260 of file TrgEclDatabaseImporter.cc.

261{
262 std::ifstream stream;
263 stream.open(InputFileName.c_str());
264 if (!stream) {
265 B2ERROR("openFile: " << InputFileName << " *** failed to open");
266 return;
267 }
268
269 DBImportArray<TRGECLBadRun> badrun;
270
271 int BadRunNumber;
272 while (!stream.eof()) {
273
274 stream >> BadRunNumber ;
275 badrun.appendNew(BadRunNumber);
276 }
277 stream.close();
278
279 //Import to DB
280 IntervalOfValidity iov(m_startExp, m_startRun, m_endExp, m_endRun);
281
282 badrun.import(iov);
283
284 B2RESULT("BadRunList are imported to database.");
285
286}
T * appendNew()
Construct a new T object at the end of the array.
bool import(const IntervalOfValidity &iov)
Import the object to database.

◆ importETMParameter()

void importETMParameter ( std::string InputFileName)

Import ETM Parameters.

Definition at line 201 of file TrgEclDatabaseImporter.cc.

202{
203
204 std::ifstream stream;
205 stream.open(InputFileName.c_str());
206 if (!stream) {
207 B2ERROR("openFile: " << InputFileName << " *** failed to open");
208 return;
209 }
210
211 // get data from InputFileName
212 std::vector<string> v_par_name;
213 std::vector<double> v_par_value;
214 string str_line;
215 int cnt_par = 0;
216 while (getline(stream, str_line)) {
217 if (str_line.find("#")) {
218 std::stringstream sss;
219 sss << str_line;
220 int tmp_id;
221 char tmp_name[100];
222 double tmp_value;
223 if (sscanf(sss.str().data(),
224 "%i%99s%lf",
225 &tmp_id, tmp_name, &tmp_value) == 3) {
226 string str_tmp_name = string(tmp_name);
227 v_par_name.push_back(str_tmp_name);
228 v_par_value.push_back(tmp_value);
229 cnt_par++;
230 }
231 }
232 }
233 stream.close();
234
235 B2INFO("[TrgEclDatabaseImporter] The number of parameters in "
236 << InputFileName
237 << " = "
238 << cnt_par);
239
240 DBImportObjPtr<TRGECLETMParameters> etmpara;
241 etmpara.construct();
242
243 etmpara->setnpar(cnt_par);
244
245 for (int iii = 0; iii < cnt_par; iii++) {
246 etmpara->setparMap(v_par_name[iii], v_par_value[iii]);
247 }
248
249 //Import to DB
250 IntervalOfValidity iov(m_startExp, m_startRun, m_endExp, m_endRun);
251
252 etmpara.import(iov);
253
254 B2RESULT("ETM Parameters are imported to database.");
255
256}
void construct(Args &&... params)
Construct an object of type T in this DBImportObjPtr using the provided constructor arguments.

◆ importFAMParameter()

void importFAMParameter ( std::string InputFileName,
std::string InputFileSignalPDF,
std::string InputFileNoise )

Import FAM Parameters.

Definition at line 40 of file TrgEclDatabaseImporter.cc.

43{
44 std::ifstream stream;
45 stream.open(InputFileName.c_str());
46 if (!stream) {
47 B2ERROR("openFile: " << InputFileName << " *** failed to open");
48 return;
49 }
50 std::ifstream stream1;
51 stream1.open(InputFileSignalPDF.c_str());
52 if (!stream1) {
53 B2ERROR("openFile: " << InputFileSignalPDF << " *** failed to open");
54 return;
55 }
56
57 std::ifstream stream2;
58 stream2.open(InputFileNoise.c_str());
59 if (!stream2) {
60 B2ERROR("openFile: " << InputFileNoise << " *** failed to open");
61 return;
62 }
63
64 TrgEclMapping* m_map = new TrgEclMapping();
65
66 DBImportArray<TRGECLFAMPara> fampara;
67 // fampara.construct();
68
69 std::vector<int> FPGAversion;
70 std::vector<int> TCId;
71 std::vector<int> FAMId;
72 std::vector<int> ChannelId;
73 std::vector<int> TEreconstruction;
74 std::vector<int> Threshold;
75 std::vector<double> Conversionfactor;
76 std::vector<int> Toffset;
77 std::vector<int> Wavemean;
78 std::vector<int> Wavesigma;
79 FPGAversion.clear();
80 TCId.clear();
81 FAMId.clear();
82 ChannelId.clear();
83 TEreconstruction.clear();
84 Threshold.clear();
85 Conversionfactor.clear();
86 Toffset.clear();
87 Wavemean.clear();
88 Wavesigma.clear();
89
90 FPGAversion.resize(624, 0);
91 TCId.resize(624, 0);
92 FAMId.resize(624, 0);
93 ChannelId.resize(624, 0);
94 TEreconstruction.resize(624, 0);
95 Threshold.resize(624, 0);
96 Conversionfactor.resize(624, 0);
97 Toffset.resize(624, 0);
98
99 Wavemean.resize(624, 0);
100 Wavesigma.resize(624, 0);
101
102
103 std::vector<std::vector<double> > SignalPDF;
104 SignalPDF.clear();
105 std::vector<std::vector<double> > NoiseCovarianceMatrix;
106 NoiseCovarianceMatrix.clear();
107 SignalPDF.resize(624, std::vector<double>(8, 0));
108 NoiseCovarianceMatrix.resize(624, std::vector<double>(78, 0));
109
110 int Id = 0;
111 while (!stream.eof()) {
112 stream >> FAMId[Id] >> ChannelId[Id] >> FPGAversion [Id]
113 >> TEreconstruction[Id] >> Threshold[Id] >> Conversionfactor[Id]
114 >> Toffset[Id] >> Wavemean[Id] >> Wavesigma[Id];
115 TCId[Id] = m_map->getTCIdFromFAMChannel(FAMId[Id], ChannelId[Id]);
116 Id++;
117 }
118 stream.close();
119 Id = 0;
120 int line = 0;
121
122 while (!stream1.eof()) {
123 stream1 >> SignalPDF[Id][line];
124 line++;
125 if (line == 8) {
126 line = 0;
127 Id++;
128 }
129
130 }
131 stream1.close();
132
133 Id = 0;
134 line = 0;
135 while (!stream2.eof()) {
136 stream2 >> NoiseCovarianceMatrix[Id][line];
137 line++;
138 if (line == 78) {
139 line = 0;
140 Id++;
141 }
142
143 }
144 stream2.close();
145
146
147 //Import to DB
148 for (int iTCId = 0; iTCId < 624; iTCId++) {
149 fampara.appendNew(FPGAversion[iTCId],
150 TCId[iTCId],
151 FAMId[iTCId],
152 ChannelId[iTCId],
153 TEreconstruction[iTCId],
154 Conversionfactor[iTCId],
155 Toffset[iTCId],
156 Threshold[iTCId],
157 Wavemean[iTCId],
158 Wavesigma[iTCId],
159 SignalPDF[iTCId],
160 NoiseCovarianceMatrix[iTCId]
161 );
162 }
163
164 IntervalOfValidity iov(m_startExp, m_startRun, m_endExp, m_endRun);
165
166 fampara.import(iov);
167
168 delete m_map ;
169 B2RESULT("FAM parameters are imported to database.");
170
171}
int getTCIdFromFAMChannel(int, int)
Get TC from FAM # and Channel #.

◆ importTMMParameter()

void importTMMParameter ( std::string InputFileName)

Import TMM Parameters.

Definition at line 175 of file TrgEclDatabaseImporter.cc.

176{
177 std::ifstream stream;
178 stream.open(InputFileName.c_str());
179 if (!stream) {
180 B2ERROR("openFile: " << InputFileName << " *** failed to open");
181 return;
182 }
183
184 DBImportArray<TRGECLTMMPara> tmmpara;
185
186 int FPGAversion;
187 stream >> FPGAversion ;
188 tmmpara.appendNew(FPGAversion);
189 stream.close();
190 //Import to DB
191 IntervalOfValidity iov(m_startExp, m_startRun, m_endExp, m_endRun);
192
193 tmmpara.import(iov);
194
195 B2RESULT("TMM parameters are imported to database.");
196
197}

◆ printTCThreshold()

void printTCThreshold ( )

Print TC energy Threshold.

Definition at line 290 of file TrgEclDatabaseImporter.cc.

291{
292
293 DBObjPtr<TRGECLFAMPara> para ;
294
295 para->Dump();
296
297}

◆ setExpNumber()

void setExpNumber ( int start,
int end )
inline

Set Experiment Number.

Definition at line 37 of file TrgEclDatabaseImporter.h.

38 {
39 m_startExp = start;
40 m_endExp = end;
41 }

◆ setRunNumber()

void setRunNumber ( int start,
int end )
inline

Set Run Number.

Definition at line 31 of file TrgEclDatabaseImporter.h.

32 {
33 m_startRun = start;
34 m_endRun = end;
35 }

Member Data Documentation

◆ m_endExp

int m_endExp
private

End Experiment Number.

Definition at line 63 of file TrgEclDatabaseImporter.h.

◆ m_endRun

int m_endRun
private

End Run Number.

Definition at line 65 of file TrgEclDatabaseImporter.h.

◆ m_startExp

int m_startExp
private

Start Experiment Number.

Definition at line 59 of file TrgEclDatabaseImporter.h.

◆ m_startRun

int m_startRun
private

Start Run Number.

Definition at line 61 of file TrgEclDatabaseImporter.h.


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