13 #include "TObjArray.h"
34 std::cerr <<
"Cannot open calibration file!" << endl;
39 while (in.getline(buf, 255)) {
41 TObjArray *tokens = tmp.Tokenize(
" \t;");
42 if(tokens->GetEntries()<2){
45 tmp=tokens->UncheckedAt(0)->GetName();
46 TString tmp2 = tokens->UncheckedAt(1)->GetName();
47 if(tmp.IsDigit() && tmp2.IsFloat()){
48 fCalibrationMap.insert(std::pair<Long_t,Double_t>(tmp.Atoi(),tmp2.Atof()));
51 if(tokens->GetEntries()<3){
54 tmp2 = tokens->UncheckedAt(2)->GetName();
55 if(tmp.IsDigit() && tmp2.IsFloat()){
56 fGainMap.insert(std::pair<Long_t,Double_t>(tmp.Atoi(),tmp2.Atof()));
59 if(tokens->GetEntries()<4){
62 tmp2 = tokens->UncheckedAt(3)->GetName();
63 if(tmp.IsDigit() && tmp2.IsFloat()){
64 fOverflowMap.insert(std::pair<Long_t,Double_t>(tmp.Atoi(),tmp2.Atof()));
72 std::cout <<
"calibration values:" << std::endl;
73 map<Long_t,Double_t>::iterator it;
74 map<Long_t,Double_t>::iterator it2;
78 std::cout << detid <<
"\t" << (*it).second <<
"\t";
81 std::cout << (*it2).second <<
"\t";
85 std::cout << (*it2).second;
94 map<Long_t,Double_t>::iterator it;
98 if(Energy > it->second){
Class to use a textfile for Calibration.
virtual Bool_t Init()
Init.
virtual CalibrationStatus_t Calibrate(Double_t &Energy, Long_t detId, Int_t SignalNr=1)
Apply CrystalCalibration to Energy of Crystal derId.
PndEmcFileCrystalCalibrator()
std::map< Long_t, Double_t > fCalibrationMap
std::map< Long_t, Double_t > fOverflowMap
void SetCalibrationFile(const char *CalFileName)
Set calibration file.
std::map< Long_t, Double_t > fGainMap
Abstract interface for a emc calibrator.