Belle II Software development
ARICHFebTest.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <TObject.h>
12#include <string>
13#include <vector>
14#include <utility>
15#include <TTimeStamp.h>
16#include <TH2F.h>
17#include <TH3F.h>
18
19#include <TClass.h>
20
21namespace Belle2 {
26
30 class ARICHFebTest: public TObject {
31 public:
32
36 ARICHFebTest(): m_serial(0), m_dna(""), m_runSlowC(""), m_timeSlowC(), m_tmon0(0.0), m_tmon1(0.0), m_vdd(0.0), m_v2p(0.0),
37 m_v2n(0.0), m_vss(0.0), m_vth1(0.0), m_vth2(0.0), m_vcc12(0.0), m_vcc15(0.0), m_vcc25(0.0), m_v38p(0.0), m_runLV(""), m_timeLV(),
40
41
45 explicit ARICHFebTest(int serial): m_serial(serial), m_dna(""), m_runSlowC(""), m_timeSlowC(), m_tmon0(0.0), m_tmon1(0.0),
46 m_vdd(0.0), m_v2p(0.0), m_v2n(0.0), m_vss(0.0), m_vth1(0.0), m_vth2(0.0), m_vcc12(0.0), m_vcc15(0.0), m_vcc25(0.0), m_v38p(0.0),
49 m_comment("") {};
50
55
60 int getFebSerial() const {return m_serial; }
61
66 void setFebSerial(int serial) {m_serial = serial; }
67
72 std::string getFebDna() const {return m_dna; }
73
78 void setFebDna(const std::string& dna) {m_dna = dna; }
79
84 std::string getRunSlowC() const {return m_runSlowC; }
85
90 void setRunSlowC(const std::string& runSlowC) {m_runSlowC = runSlowC; }
91
96 TTimeStamp getTimeSlowC() const {return m_timeSlowC; }
97
102 void setTimeSlowC(TTimeStamp timeSlowC) {m_timeSlowC = timeSlowC; }
103
108 float getTemperature0() const {return m_tmon0; }
109
114 void setTemperature0(float tmon0) {m_tmon0 = tmon0; }
115
120 float getTemperature1() const {return m_tmon1; }
121
126 void setTemperature1(float tmon1) {m_tmon1 = tmon1; }
127
132 float getVdd() const {return m_vdd; }
133
138 void setVdd(float vdd) {m_vdd = vdd; }
139
144 float getV2p() const {return m_v2p; }
145
150 void setV2p(float v2p) {m_v2p = v2p; }
151
156 float getV2n() const {return m_v2n; }
157
162 void setV2n(float v2n) {m_v2n = v2n; }
163
168 float getVss() const {return m_vss; }
169
174 void setVss(float vss) {m_vss = vss; }
175
180 float getVth1() const {return m_vth1; }
181
186 void setVth1(float vth1) {m_vth1 = vth1; }
187
192 float getVth2() const {return m_vth2; }
193
198 void setVth2(float vth2) {m_vth2 = vth2; }
199
204 float getVcc12() const {return m_vcc12; }
205
210 void setVcc12(float vcc12) {m_vcc12 = vcc12; }
211
216 float getVcc15() const {return m_vcc15; }
217
222 void setVcc15(float vcc15) {m_vcc15 = vcc15; }
223
228 float getVcc25() const {return m_vcc25; }
229
234 void setVcc25(float vcc25) {m_vcc25 = vcc25; }
235
240 float getV38p() const {return m_v38p; }
241
246 void setV38p(float v38p) {m_v38p = v38p; }
247
252 std::string getRunLV() const {return m_runLV; }
253
258 void setRunLV(const std::string& runLV) {m_runLV = runLV; }
259
264 TTimeStamp getTimeLV() const {return m_timeLV; }
265
270 void setTimeLV(TTimeStamp timeLV) {m_timeLV = timeLV; }
271
276 float getCurrentV20p() const {return m_currentV20p; }
277
282 void setCurrentV20p(float currentV20p) {m_currentV20p = currentV20p; }
283
288 float getCurrentV21n() const {return m_currentV21n; }
289
294 void setCurrentV21n(float currentV21n) {m_currentV21n = currentV21n; }
295
300 float getCurrentV38p() const {return m_currentV38p; }
301
306 void setCurrentV38p(float currentV38p) {m_currentV38p = currentV38p; }
307
312 std::string getRunHV() const {return m_runHV; }
313
318 void setRunHV(const std::string& runHV) {m_runHV = runHV; }
319
324 TTimeStamp getTimeHV() const {return m_timeHV; }
325
330 void setTimeHV(TTimeStamp timeHV) {m_timeHV = timeHV; }
331
336 float getCurrentV99p() const {return m_currentV99p; }
337
342 void setCurrentV99p(float currentV99p) {m_currentV99p = currentV99p; }
343
349 int getDeadChannel(unsigned int i) const;
350
355 void appendDeadChannel(int channel) {m_deadChannel.push_back(channel); }
356
361 void setDeadChannels(const std::vector<int>& deadChannels) {m_deadChannel = deadChannels; }
362
367 int getDeadChannelsSize() const {return m_deadChannel.size();}
368
373 TH2F* getTestPulse2D() const {return m_testPulse;}
374
379 void setTestPulse2D(TH2F* testPulse) { m_testPulse = testPulse;}
380
385 TH3F* getOffsetRough3D() const {return m_offsetRough;}
386
391 void setOffsetRough3D(TH3F* offsetRough) { m_offsetRough = offsetRough;}
392
397 TH3F* getOffsetFine3D() const {return m_offsetFine;}
398
403 void setOffsetFine3D(TH3F* offsetFine) { m_offsetFine = offsetFine;}
404
410 float getSlopeRough(unsigned int i) const;
411
416 void appendSlopeRough(float slope) {m_slopesRough.push_back(slope); }
417
422 void setSlopesRough(const std::vector<float>& slopesRough) {m_slopesRough = slopesRough; }
423
428 int getSlopesRoughSize() const {return m_slopesRough.size();}
429
435 float getSlopeFine(unsigned int i) const;
436
441 void appendSlopeFine(float slope) {m_slopesFine.push_back(slope); }
442
447 void setSlopesFine(const std::vector<float>& slopesFine) {m_slopesFine = slopesFine; }
448
453 int getSlopesFineSize() const {return m_slopesFine.size();}
454
460 std::pair<float, float> getFWHM(unsigned int i) const;
461
466 void appendFWHM(const std::pair<float, float>& fwhm) {m_fwhm.push_back(fwhm); }
467
472 void setFWHM(const std::vector<std::pair<float, float>>& fwhm) {m_fwhm = fwhm; }
473
478 int getFWHMSize() const {return m_fwhm.size();}
479
485 float getFWHMvalue(unsigned int i) const;
486
492 float getFWHMsigma(unsigned int i) const;
493
498 std::string getComment() const {return m_comment; }
499
504 void setComment(const std::string& comment) {m_comment = comment; }
505
506 private:
507
509 std::string m_dna;
510 std::string m_runSlowC;
511 TTimeStamp m_timeSlowC;
512 float m_tmon0;
513 float m_tmon1;
514 float m_vdd;
515 float m_v2p;
516 float m_v2n;
517 float m_vss;
518 float m_vth1;
519 float m_vth2;
520 float m_vcc12;
521 float m_vcc15;
522 float m_vcc25;
523 float m_v38p;
524 std::string m_runLV;
525 TTimeStamp m_timeLV;
529 std::string m_runHV;
530 TTimeStamp m_timeHV;
532 std::vector<int> m_deadChannel;
536 std::vector<float> m_slopesRough;
537 std::vector<float> m_slopesFine;
538 std::vector<std::pair<float, float>> m_fwhm;
539 std::string m_comment;
540
542 };
543
544} // end namespace Belle2
std::string m_comment
Optional comment.
std::vector< float > m_slopesRough
Slopes for each channel (rough settings) [mV/step].
TTimeStamp m_timeHV
Test Date of FEB high voltage test.
std::string m_runLV
Run number of FEB low voltage test.
int getSlopesRoughSize() const
Get size of the list of slopes (rough settings).
std::vector< std::pair< float, float > > m_fwhm
FWHM and sigma for each channel.
void setTimeSlowC(TTimeStamp timeSlowC)
Set Test date (slow-control measurement).
void setCurrentV21n(float currentV21n)
Set current at voltage (-2.0) V.
void setFebSerial(int serial)
Set FEB serial number.
float m_vcc15
Voltage - supply voltage 1.5 V.
std::string m_dna
FEB dna.
void setVth1(float vth1)
Set voltage - threshold voltage 1.
void setTimeLV(TTimeStamp timeLV)
Set test date (LV test).
void setVcc15(float vcc15)
Set voltage - supply voltage 1.5 V.
float getVth2() const
Get voltage - threshold voltage 2.
float getVcc15() const
Get voltage - supply voltage 1.5 V.
std::string getComment() const
Get comment.
std::vector< int > m_deadChannel
List of dead channels on the FEB.
float m_vcc12
Voltage - supply voltage 1.2 V.
void setSlopesRough(const std::vector< float > &slopesRough)
Set vector of slopes (rough settings).
void setV2p(float v2p)
Set voltage - (+2.0) V.
void setCurrentV99p(float currentV99p)
Set current at voltage (+99) V.
float m_currentV38p
Current at 3.8 V.
float getVth1() const
Get voltage - threshold voltage 1.
float m_vth2
Voltage - threshold voltage 2.
void setOffsetFine3D(TH3F *offsetFine)
Set threshold scans with fine offset settings.
float m_tmon1
Temperature 1.
void setVss(float vss)
Set voltage - negative supply voltage.
float getSlopeFine(unsigned int i) const
Get slope[mV/offset step] for i-th channel (fine settings).
float m_v2n
Voltage - (-2.0) V.
void appendSlopeRough(float slope)
Add slope[mV/offset step] for i-th channel (rough settings).
float m_vss
Voltage - negative supply voltage.
float getVdd() const
Get voltage - positive supply voltage.
std::vector< float > m_slopesFine
Slopes for each channel (fine settings) [mV/step].
std::string m_runSlowC
Run number of FEB slow control measurements.
float getV2n() const
Get voltage - (-2.0) V.
std::string getRunLV() const
Get LV test number.
ClassDef(ARICHFebTest, 2)
ClassDef.
float m_currentV21n
Current at -2.1 V.
float getV2p() const
Get voltage - (+2.0) V.
int getDeadChannelsSize() const
Get size of the list of dead channels.
void setRunSlowC(const std::string &runSlowC)
Set slow-control run number.
float getTemperature1() const
Get temperature 1.
float m_vth1
Voltage - threshold voltage 1.
void setFebDna(const std::string &dna)
Set FEB dna number.
float getTemperature0() const
Get temperature 0.
void appendSlopeFine(float slope)
Add slope[mV/offset step] for i-th channel (fine settings).
void setTimeHV(TTimeStamp timeHV)
Set test date (HV test).
float getCurrentV21n() const
Get current at voltage (-2.0) V.
float getVss() const
Get voltage - negative supply voltage.
TTimeStamp m_timeLV
Test Date of FEB low voltage test.
float getSlopeRough(unsigned int i) const
Get slope[mV/offset step] for i-th channel (rough settings).
void setOffsetRough3D(TH3F *offsetRough)
Set threshold scans with rough offset settings.
float m_tmon0
Temperature 0.
TH3F * getOffsetFine3D() const
Get threshold scans with fine offset settings.
float getVcc12() const
Get voltage - supply voltage 1.2 V.
~ARICHFebTest()
Destructor.
int m_serial
FEB serial number.
std::string getFebDna() const
Get FEB dna number.
float m_v2p
Voltage - (+2.0) V.
void setVth2(float vth2)
Set voltage - threshold voltage 2.
void setDeadChannels(const std::vector< int > &deadChannels)
Set vector of dead channel numbers.
void setCurrentV38p(float currentV38p)
Set current at voltage (+3.8) V.
void appendFWHM(const std::pair< float, float > &fwhm)
Add FWHM value&sigma for i-th channel.
int getFWHMSize() const
Get size of the list of FWHM.
void setTemperature1(float tmon1)
Set temperature 1.
TTimeStamp getTimeSlowC() const
Get test date (slow-control measurement).
TTimeStamp m_timeSlowC
Test Date of FEB slow control measurements.
float getFWHMsigma(unsigned int i) const
Get FWHM sigma for i-th channel.
float getFWHMvalue(unsigned int i) const
Get FWHM value for i-th channel.
TH2F * m_testPulse
Test pulse scan.
int getSlopesFineSize() const
Get size of the list of slopes (fine settings).
ARICHFebTest()
Default constructor.
std::string getRunHV() const
Get HV test number.
TH3F * getOffsetRough3D() const
Get threshold scans with rough offset settings.
void appendDeadChannel(int channel)
Add a channel number to the list of dead channels.
float m_vdd
Voltage - positive supply voltage.
TH3F * m_offsetFine
Threshold scans with fine offset settings.
TH2F * getTestPulse2D() const
Get test pulse.
int getDeadChannel(unsigned int i) const
Get a channel number from the list of dead channels.
void setV38p(float v38p)
Set voltage - (+3.8) V.
float getCurrentV38p() const
Get current at voltage (+3.8) V.
void setTestPulse2D(TH2F *testPulse)
Set test pulse.
std::pair< float, float > getFWHM(unsigned int i) const
Get FWHM value&sigma for i-th channel.
void setSlopesFine(const std::vector< float > &slopesFine)
Set vector of slopes (fine settings).
void setCurrentV20p(float currentV20p)
Set current at voltage (+2.0) V.
void setVcc12(float vcc12)
Set voltage - supply voltage 1.2 V.
float getCurrentV99p() const
Get current at voltage (+99) V.
float m_v38p
Voltage - (+3.8) V.
float getCurrentV20p() const
Get current at voltage (+2.0) V.
void setRunLV(const std::string &runLV)
Set LV test run number.
TTimeStamp getTimeHV() const
Get test date (HV test).
float getVcc25() const
Get voltage - supply voltage 2.5 V.
float getV38p() const
Get voltage - (+3.8) V.
void setVdd(float vdd)
Set voltage - positive supply voltage.
float m_currentV99p
Current at 99 V.
int getFebSerial() const
Get FEB serial number.
TH3F * m_offsetRough
Threshold scans with rough offset settings.
void setV2n(float v2n)
Set voltage - (-2.0) V.
void setComment(const std::string &comment)
Set comment.
std::string getRunSlowC() const
Get slow-control run number.
float m_currentV20p
Current at 2.0 V.
void setTemperature0(float tmon0)
Set temperature 0.
float m_vcc25
Voltage - supply voltage 2.5 V.
std::string m_runHV
Run number of FEB high voltage test.
void setRunHV(const std::string &runHV)
Set HV test run number.
ARICHFebTest(int serial)
Constructor.
void setVcc25(float vcc25)
Set voltage - supply voltage 2.5 V.
void setFWHM(const std::vector< std::pair< float, float > > &fwhm)
Set vector of FWHM values&sigma.
TTimeStamp getTimeLV() const
Get test date (LV test).
Abstract base class for different kinds of events.