1#ifndef __CALIBRATION_HH
2#define __CALIBRATION_HH
97 std::vector<unsigned short>
trace;
116 std::vector<float> x;
117 for(
unsigned short i = 0; i < t.size(); ++i )
119 std::unique_ptr<TGraph> g = std::make_unique<TGraph>(
120 t.size(), x.data(), t.data() );
121 return (TGraph*)g.get()->Clone();
123 inline TGraph*
GetGraph( std::vector<unsigned short> &t ) {
124 std::vector<float> y;
125 for(
unsigned short i = 0; i < t.size(); ++i )
126 y.push_back(
static_cast<float>(t[i]) );
156 float AdcEnergy(
unsigned char mod,
unsigned char ch,
unsigned int raw );
157 double AdcOffset(
unsigned char mod,
unsigned char ch );
158 double AdcGain(
unsigned char mod,
unsigned char ch );
159 double AdcGainQuadr(
unsigned char mod,
unsigned char ch );
160 unsigned int AdcThreshold(
unsigned char mod,
unsigned char ch );
161 long AdcTime(
unsigned char mod,
unsigned char ch );
164 float DgfEnergy(
unsigned char mod,
unsigned char ch,
unsigned int raw );
165 double DgfOffset(
unsigned char mod,
unsigned char ch );
166 double DgfGain(
unsigned char mod,
unsigned char ch );
167 double DgfGainQuadr(
unsigned char mod,
unsigned char ch );
168 unsigned int DgfThreshold(
unsigned char mod,
unsigned char ch );
169 long DgfTime(
unsigned char mod,
unsigned char ch );
172 float FebexEnergy(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int raw );
173 double FebexOffset(
unsigned char sfp,
unsigned char board,
unsigned char ch );
174 double FebexGain(
unsigned char sfp,
unsigned char board,
unsigned char ch );
175 double FebexGainQuadr(
unsigned char sfp,
unsigned char board,
unsigned char ch );
176 unsigned int FebexThreshold(
unsigned char sfp,
unsigned char board,
unsigned char ch );
177 std::string
FebexType(
unsigned char sfp,
unsigned char board,
unsigned char ch );
178 long FebexTime(
unsigned char sfp,
unsigned char board,
unsigned char ch );
179 FebexMWD DoMWD(
unsigned char sfp,
unsigned char board,
unsigned char ch, std::vector<unsigned short> trace );
182 void SetMWDDecay(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int decay );
183 void SetMWDRise(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int rise );
184 void SetMWDFlatTop(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int top );
185 void SetMWDBaseline(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int baseline_length );
186 void SetMWDWindow(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int window );
187 void SetCFDFraction(
unsigned char sfp,
unsigned char board,
unsigned char ch,
float fraction );
188 void SetCFDDelay(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int delay );
189 void SetCFDHoldOff(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int hold );
190 void SetCFDShapingTime(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int shaping );
191 void SetCFDIntegrationTime(
unsigned char sfp,
unsigned char board,
unsigned char ch,
unsigned int integration );
192 void SetCFDThreshold(
unsigned char sfp,
unsigned char board,
unsigned char ch,
int threshold );
195 unsigned int GetMWDDecay(
unsigned char sfp,
unsigned char board,
unsigned char ch );
196 unsigned int GetMWDRise(
unsigned char sfp,
unsigned char board,
unsigned char ch );
197 unsigned int GetMWDFlatTop(
unsigned char sfp,
unsigned char board,
unsigned char ch );
198 unsigned int GetMWDBaseline(
unsigned char sfp,
unsigned char board,
unsigned char ch );
199 unsigned int GetMWDWindow(
unsigned char sfp,
unsigned char board,
unsigned char ch );
200 float GetCFDFraction(
unsigned char sfp,
unsigned char board,
unsigned char ch );
201 unsigned int GetCFDDelay(
unsigned char sfp,
unsigned char board,
unsigned char ch );
202 unsigned int GetCFDHoldOff(
unsigned char sfp,
unsigned char board,
unsigned char ch );
203 unsigned int GetCFDShapingTime(
unsigned char sfp,
unsigned char board,
unsigned char ch );
205 int GetCFDThreshold(
unsigned char sfp,
unsigned char board,
unsigned char ch );
218 std::shared_ptr<MiniballSettings>
set;
235 std::vector< std::vector<std::vector<std::string>> >
fFebexType;
TGraph * GetGraph(std::vector< float > &t)
std::vector< float > GetStage2()
std::vector< float > GetStage3()
std::vector< float > stage3
unsigned int cfd_integration_time
std::vector< float > stage4
unsigned int baseline_length
std::vector< float > energy_list
TGraph * GetStage2Graph()
std::vector< float > GetEnergies()
std::vector< float > GetCfdTimes()
std::vector< unsigned short > trace
void SetWindow(unsigned int t)
void SetBaseline(unsigned int t)
std::vector< float > shaper
TGraph * GetStage4Graph()
std::vector< float > GetStage4()
void SetShapingTime(unsigned int t)
std::vector< float > differential
std::vector< float > GetStage1()
void SetFraction(float f)
void SetIntegrationTime(unsigned int t)
std::vector< float > stage2
void SetFlatTop(unsigned int t)
std::vector< float > stage1
unsigned int cfd_shaping_time
std::vector< float > GetCfd()
void SetDelayTime(unsigned int t)
float GetEnergy(unsigned int i)
TGraph * GetStage3Graph()
void SetRiseTime(unsigned int t)
void SetTrace(std::vector< unsigned short > t)
void SetHoldOff(unsigned int t)
TGraph * GetStage1Graph()
unsigned int NumberOfTriggers()
void SetThreshold(unsigned int t)
TGraph * GetGraph(std::vector< unsigned short > &t)
std::vector< float > cfd_list
float GetCfdTime(unsigned int i)
void SetDecayTime(float t)
double DgfGain(unsigned char mod, unsigned char ch)
float FebexEnergy(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int raw)
std::vector< std::vector< long > > fAdcTime
double AdcGain(unsigned char mod, unsigned char ch)
void SetFile(std::string filename)
int GetCFDThreshold(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< std::vector< unsigned int > > > fFebexCFD_Integration
unsigned int default_FebexCFD_HoldOff
void SetCFDDelay(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int delay)
long FebexTime(unsigned char sfp, unsigned char board, unsigned char ch)
long AdcTime(unsigned char mod, unsigned char ch)
FebexMWD DoMWD(unsigned char sfp, unsigned char board, unsigned char ch, std::vector< unsigned short > trace)
float default_FebexCFD_Fraction
void SetMWDDecay(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int decay)
void SetMWDRise(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int rise)
std::shared_ptr< MiniballSettings > set
long DgfTime(unsigned char mod, unsigned char ch)
std::vector< std::vector< double > > fDgfGain
double FebexGain(unsigned char sfp, unsigned char board, unsigned char ch)
unsigned int GetCFDDelay(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< std::vector< double > > > fFebexOffset
unsigned int default_FebexCFD_Delay
std::vector< std::vector< std::vector< unsigned int > > > fFebexThreshold
std::vector< std::vector< std::vector< unsigned int > > > fFebexMWD_Baseline
std::vector< std::vector< double > > fAdcGain
std::vector< std::vector< double > > fDgfGainQuadr
std::vector< std::vector< std::vector< unsigned int > > > fFebexMWD_Rise
double FebexOffset(unsigned char sfp, unsigned char board, unsigned char ch)
double DgfOffset(unsigned char mod, unsigned char ch)
unsigned int FebexThreshold(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< std::vector< long > > > fFebexTime
std::vector< std::vector< double > > fDgfOffset
float DgfEnergy(unsigned char mod, unsigned char ch, unsigned int raw)
float AdcEnergy(unsigned char mod, unsigned char ch, unsigned int raw)
double AdcOffset(unsigned char mod, unsigned char ch)
void SetCFDThreshold(unsigned char sfp, unsigned char board, unsigned char ch, int threshold)
std::vector< std::vector< std::vector< unsigned int > > > fFebexMWD_Top
std::vector< std::vector< std::vector< unsigned int > > > fFebexCFD_HoldOff
unsigned int GetMWDWindow(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< double > > fAdcOffset
void SetMWDBaseline(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int baseline_length)
int default_FebexCFD_Threshold
std::vector< std::vector< std::vector< unsigned int > > > fFebexMWD_Decay
void SetCFDIntegrationTime(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int integration)
void SetCFDFraction(unsigned char sfp, unsigned char board, unsigned char ch, float fraction)
std::vector< std::vector< long > > fDgfTime
std::vector< std::vector< std::vector< float > > > fFebexCFD_Fraction
unsigned int GetMWDDecay(unsigned char sfp, unsigned char board, unsigned char ch)
std::string FebexType(unsigned char sfp, unsigned char board, unsigned char ch)
std::unique_ptr< TRandom3 > fRand
unsigned int GetMWDFlatTop(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< double > > fAdcGainQuadr
std::vector< std::vector< std::vector< double > > > fFebexGainQuadr
unsigned int default_FebexCFD_Integration
float GetCFDFraction(unsigned char sfp, unsigned char board, unsigned char ch)
unsigned int default_FebexMWD_Rise
std::vector< std::vector< unsigned int > > fDgfThreshold
std::vector< std::vector< std::vector< int > > > fFebexCFD_Threshold
unsigned int GetCFDIntegrationTime(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< unsigned int > > fAdcThreshold
unsigned int AdcThreshold(unsigned char mod, unsigned char ch)
void SetCFDShapingTime(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int shaping)
unsigned int GetMWDRise(unsigned char sfp, unsigned char board, unsigned char ch)
double DgfGainQuadr(unsigned char mod, unsigned char ch)
unsigned int default_FebexMWD_Baseline
unsigned int default_FebexMWD_Decay
void SetCFDHoldOff(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int hold)
std::vector< std::vector< std::vector< unsigned int > > > fFebexCFD_Shaping
void SetMWDFlatTop(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int top)
std::vector< std::vector< std::vector< std::string > > > fFebexType
const std::string InputFile()
MiniballCalibration(std::string filename, std::shared_ptr< MiniballSettings > myset)
std::vector< std::vector< std::vector< double > > > fFebexGain
unsigned int default_FebexMWD_Top
double AdcGainQuadr(unsigned char mod, unsigned char ch)
std::vector< std::vector< std::vector< unsigned int > > > fFebexMWD_Window
unsigned int DgfThreshold(unsigned char mod, unsigned char ch)
double FebexGainQuadr(unsigned char sfp, unsigned char board, unsigned char ch)
unsigned int default_FebexCFD_Shaping
unsigned int default_FebexMWD_Window
unsigned int GetMWDBaseline(unsigned char sfp, unsigned char board, unsigned char ch)
unsigned int GetCFDHoldOff(unsigned char sfp, unsigned char board, unsigned char ch)
std::vector< std::vector< std::vector< unsigned int > > > fFebexCFD_Delay
void SetMWDWindow(unsigned char sfp, unsigned char board, unsigned char ch, unsigned int window)
unsigned int GetCFDShapingTime(unsigned char sfp, unsigned char board, unsigned char ch)
std::shared_ptr< MiniballSettings > myset