35#include <unordered_map>
137 void SetName(
const char* tmpName)
override;
161 double GetTime(Long64_t timestamp, Float_t cfd,
double energy)
const;
231 void SetENGRange(
const std::pair<double, double>& tmp,
const size_t& range)
311 static Int_t
ReadCalFromFile(TFile* tempf, Option_t* opt =
"overwrite");
313 static Int_t
ReadCalFile(
const char* filename =
"");
315 static void WriteCalFile(
const std::string& outfilename =
"");
320 void Print(Option_t* opt =
"")
const override;
321 void Clear(Option_t* opt =
"")
override;
337 static Int_t
ReadFile(TFile* tempf);
TPriorityValue< double > fCFDChi2
Chi2 of the CFD calibration.
TPriorityValue< std::string > fDigitizerTypeString
TPriorityValue< std::vector< double > > fCFDCoefficients
CFD calibration coeffs (low to high order)
void SetWaveDecay(const double &temp)
TPriorityValue< bool > fUseCalFileInt
void SetWaveRise(const double &temp)
void SetENGRanges(const TPriorityValue< std::vector< std::pair< double, double > > > &tmp)
static TChannel * GetDefaultChannel()
double CalibrateENG(double) const
void AddLEDCoefficient(double temp)
TPriorityValue< std::vector< double > > fENGChi2
Chi2 of the energy calibration.
std::vector< double > GetEFFCoeff() const
static void SetMnemonicClass(const TClassRef &cls)
void AddCFDCoefficient(double temp)
static int WriteToRoot(TFile *fileptr=nullptr)
static std::unordered_map< unsigned int, int > * fMissingChannelMap
int GetDetectorNumber() const
std::string PrintToString(Option_t *opt="") const
void SetTIMEChi2(const TPriorityValue< double > &tmp)
static std::unordered_map< unsigned int, TChannel * > * GetChannelMap()
std::vector< double > GetTIMECoeff() const
int GetCrystalNumber() const
void AddCTCoefficient(double temp)
static int UpdateChannel(TChannel *, Option_t *opt="")
double GetWaveDecay() const
void SetENGDriftCoefficents(const TPriorityValue< std::vector< Float_t > > &tmp)
static void WriteCalFile(const std::string &outfilename="")
static bool CompareChannels(const TChannel *, const TChannel *)
std::vector< double > GetCTCoeff() const
static TClassRef GetMnemonicClass()
TPriorityValue< Long64_t > fTimeOffset
static void WriteCalBuffer(Option_t *opt="")
TPriorityValue< std::vector< double > > fCTCoefficients
Cross talk coefficients.
TPriorityValue< TMnemonic * > fMnemonic
static TClassRef fMnemonicClass
void AddEFFCoefficient(double temp)
void SetCTCoefficients(const TPriorityValue< std::vector< double > > &tmp)
std::vector< Float_t > GetENGCoeff(size_t range=0) const
void SetTimeDrift(const TPriorityValue< double > &tmp)
static std::unordered_map< unsigned int, TChannel * > * fChannelMap
static void DeleteAllChannels()
void SetCFDChi2(const TPriorityValue< double > &tmp)
static Int_t ParseInputData(const char *inputdata="", Option_t *opt="", EPriority prio=EPriority::kUser)
void SetAllENGCoefficients(const TPriorityValue< std::vector< std::vector< Float_t > > > &tmp)
void SetLEDCoefficients(const TPriorityValue< std::vector< double > > &tmp)
void OverWriteChannel(TChannel *)
std::vector< double > GetLEDCoeff() const
void SetStream(const TPriorityValue< int > &tmp)
void SetLEDChi2(const TPriorityValue< double > &tmp)
std::pair< double, double > GetENGRange(size_t range) const
static void SaveToSelf(const char *)
void SetSegmentNumber(int tempint)
double CalibrateLED(double) const
void SetAddress(unsigned int tmpadd)
void SetTimeOffset(const TPriorityValue< Long64_t > &tmp)
double GetTime(Long64_t timestamp, Float_t cfd, double energy) const
void SetClassType(TClass *cl_type)
void SetTIMECoefficients(const TPriorityValue< std::vector< double > > &tmp)
TPriorityValue< std::vector< double > > fTIMECoefficients
Time calibration coeffs (low to high order)
int GetSegmentNumber() const
unsigned int GetAddress() const
void SetEFFCoefficients(const TPriorityValue< std::vector< double > > &tmp)
const TMnemonic * GetMnemonic() const
TPriorityValue< std::vector< Float_t > > fENGDriftCoefficents
Energy drift coefficents (applied after energy calibration has been applied)
static Int_t ReadCalFromCurrentFile(Option_t *opt="overwrite")
static TChannel * FindChannelByName(const char *ccName)
static Int_t ReadCalFile(std::ifstream &infile)
void SetUseCalFileIntegration(const TPriorityValue< bool > &tmp=TPriorityValue< bool >(true, EPriority::kUser))
TGraph GetEnergyNonlinearity() const
static std::unordered_map< int, TChannel * > * fChannelNumberMap
std::vector< Float_t > GetENGDriftCoefficents() const
WaveFormShapePar WaveFormShape
static Int_t ReadCalFromFile(TFile *tempf, Option_t *opt="overwrite")
void SetENGChi2(const TPriorityValue< double > &tmp, const size_t &range=0)
std::string PrintCTToString(Option_t *opt="") const
bool UseCalFileIntegration()
double CalibrateTIME(double) const
TPriorityValue< EDigitizer > fDigitizerType
std::vector< double > GetAllENGChi2() const
void AddENGDriftCoefficent(Float_t temp)
static std::vector< TChannel * > SortedChannels()
static TChannel * GetChannel(unsigned int temp_address, bool warn=false)
TChannel & operator=(const TChannel &rhs)
std::vector< double > GetCFDCoeff() const
double CalibrateEFF(double) const
static std::unordered_map< unsigned int, int > * GetMissingChannelMap()
double GetTZero(int tempi) const
double GetWaveRise() const
void SetupEnergyNonlinearity()
void AppendChannel(TChannel *)
Long64_t GetTimeOffset() const
double GetENGChi2(size_t range=0) const
TClass * GetClassType() const
double GetTimeDrift() const
TPriorityValue< int > fStream
TPriorityValue< double > fEFFChi2
Chi2 of Efficiency calibration.
static Int_t ReadCalFromTree(TTree *, Option_t *opt="overwrite")
TPriorityValue< double > fTimeDrift
Time drift factor.
TPriorityValue< std::vector< std::pair< double, double > > > fENGRanges
Range of energy calibrations.
static void WriteCTCorrections(const std::string &outfilename="")
TPriorityValue< int > fIntegration
void Print(Option_t *opt="") const override
void DestroyCalibrations()
void PrintCTCoeffs(Option_t *opt="") const
void SetIntegration(const TPriorityValue< int > &tmp)
void ResizeENG(size_t size)
TPriorityValue< int > fTimeStampUnit
EDigitizer GetDigitizerType() const
void Clear(Option_t *opt="") override
TPriorityValue< double > fTIMEChi2
Chi2 of the Time calibration.
double CalibrateCFD(double) const
double GetTIMEChi2() const
void SetNumber(const TPriorityValue< int > &tmp)
void AddTIMECoefficient(double temp)
TPriorityValue< double > fLEDChi2
Chi2 of LED calibration.
std::vector< std::vector< Float_t > > GetAllENGCoeff() const
TPriorityValue< std::vector< std::vector< Float_t > > > fENGCoefficients
Energy calibration coeffs (low to high order)
double GetLEDChi2() const
static TChannel * GetChannelByNumber(int temp_num)
void AddENGCoefficient(Float_t temp, size_t range=0)
static Int_t ReadFile(TFile *tempf)
static void InitChannelInput()
const char * GetDigitizerTypeString() const
int GetTimeStampUnit() const
void SetENGCoefficients(const std::vector< Float_t > &tmp, size_t range=0)
void SetName(const char *tmpName) override
void SetCrystalNumber(int tempint)
TPriorityValue< TGraph > fEnergyNonlinearity
Energy nonlinearity as TGraph, is used as E=E+GetEnergyNonlinearity(E), so y should be E(source)-cali...
double GetWaveBaseLine() const
void SetDetectorNumber(int tempint)
void DestroyEnergyNonlinearity()
void AddEnergyNonlinearityPoint(double x, double y)
TPriorityValue< std::vector< double > > fLEDCoefficients
LED calibration coeffs (low to high order)
TPriorityValue< int > fNumber
TPriorityValue< std::vector< double > > fEFFCoefficients
Efficiency calibration coeffs (low to high order)
bool UseWaveParam() const
double GetCFDChi2() const
double GetEFFChi2() const
void SetUseWaveParam(bool temp=true)
static void AddChannel(TChannel *, Option_t *opt="")
void SetAllENGChi2(const TPriorityValue< std::vector< double > > &tmp)
static size_t GetNumberOfChannels()
void SetWaveParam(WaveFormShapePar temp)
static void ReadEnergyNonlinearities(TFile *, const char *graphName="EnergyNonlinearity0x", bool all=false)
void SetEnergyNonlinearity(const TPriorityValue< TGraph > &tmp)
static std::vector< TChannel * > FindChannelByRegEx(const char *ccName)
void SetENGRange(const std::pair< double, double > &tmp, const size_t &range)
void SetWaveBaseLine(double temp)
int GetIntegration() const
void SetDigitizerType(const TPriorityValue< std::string > &tmp)
static std::string fFileData
void SetCFDCoefficients(const TPriorityValue< std::vector< double > > &tmp)
double GetTZero(double tempd) const
std::vector< std::pair< double, double > > GetENGRanges() const
void SetEFFChi2(const TPriorityValue< double > &tmp)
WaveFormShapePar GetWaveParam() const
EPriority Priority() const