PandaRoot
PndEmcSimCrystalCalibrator.h
Go to the documentation of this file.
1 #ifndef PNDEMCSIMCRYSTALCALIBRATOR_HH
2 #define PNDEMCSIMCRYSTALCALIBRATOR_HH
3 
4 //---------------------------------------------------------
5 // Description:
6 // File Calibrator for Emc Crystals.
7 //
8 // Christian Hammann
9 // 31.7.2012
10 
11 //---------------------------------------------------------
12 
14 #include "TString.h"
15 #include <map>
16 
23  public:
24  PndEmcSimCrystalCalibrator(Int_t verbose = 0);
25 
34  virtual void SetCalibration(Int_t ModId, Double_t cal, Int_t SignalNr = 1, Double_t overflow = -1);
35 
44  virtual void CreateRandomCalibration(Double_t Sigma);
45  virtual Bool_t Init();
46 
48  virtual CalibrationStatus_t Calibrate(Double_t &Energy, Long_t DetId, Int_t SignalNr = 1);
49 
50  private:
51  Double_t fRandomCal;
52  Double_t fRandomSigma;
53  std::vector<std::map<Int_t, std::pair<Double_t, Double_t>>> fModuleCalibrationMaps; // sig nr, modId, calib, overflow
54  std::vector<std::map<Long_t, Double_t>> fCrystalCalibrationMaps; // sig nr, detId, rel. calib
55 
56  Int_t fVerbose;
57  ClassDef(PndEmcSimCrystalCalibrator, 2);
58 };
59 #endif
virtual Bool_t Init()
Init.
PndEmcSimCrystalCalibrator(Int_t verbose=0)
virtual void CreateRandomCalibration(Double_t Sigma)
Creates a random gaussion distributed calibration for all crystals Not implemented yet...
virtual void SetCalibration(Int_t ModId, Double_t cal, Int_t SignalNr=1, Double_t overflow=-1)
Set Calibration for a Module.
virtual CalibrationStatus_t Calibrate(Double_t &Energy, Long_t DetId, Int_t SignalNr=1)
Apply CrystalCalibration to Energy of Crystal derId.
Class to simulate a Calibration.
Abstract interface for a emc calibrator.