PandaRoot
PndEmcDigiCalibrator.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // Description:
3 // Class PndEmcDigiCalibrator
4 // Do an energy and position corrections for EMC cluster
5 // PndEmcDigiCalibrator is a factory which call specific method depending on the input parameter "method"
6 // method=1 - PndEmcClusterHistCalibrator is called, which perform correction from the interpolation on 2-dimensional histogram on (Energy, theta)
7 // method=2 - PndEmcClusterSimpleCalibrator is called, where energy correction is parametrised as a function of (Energy, theta)
8 // PndEmcAbsClusterCalibrator - abstract interface class
9 //
10 // Author List:
11 // D.Melnychuk
12 // PndEmcClusterHistCalibrator class is based on code PndEmcMakeCorr.cxx
13 // (A. Biegun, M. Babai)
14 // PndEmcClusterSimpleCalibrator class is based on EmcPhotonSimpleCalib class in Babar framework (Jan Zhong)
15 //------------------------------------------------------------------------
16 //#pragma once
17 #ifndef PNDEMCDIGICALIBRATOR_H
18 #define PNDEMCDIGICALIBRATOR_H
19 
20 #include "TObject.h"
21 #include "TVectorD.h"
22 #include <TFile.h>
23 #include <TString.h>
24 #include <cstdlib>
25 
26 class PndEmcDigi;
27 class PndEmcBump;
28 
30 
31  public:
32  // Constructors
34  // Destructor
35  virtual ~PndEmcDigiCalibrator();
36 
37  Double_t CalibrationEvtTimeByDigi(PndEmcDigi *theDigi, bool PrintOut = kFALSE) const;
38  Double_t CalibrationEvtTimeByBump(PndEmcBump *theBump, bool PrintOut = kFALSE) const;
39 
40  Double_t GetTimeResolutionOfDigi(PndEmcDigi *theDigi) const;
41  Double_t GetTimeResolutionOfShower(PndEmcBump *theBump) const;
42 
43  private:
44  Int_t GetIdxByEnergy(Double_t energy) const;
45  Int_t GetIdxByEnergyForBump(Double_t energy) const;
46 
48  PndEmcDigiCalibrator &operator=(const PndEmcDigiCalibrator &) { return *this; };
49 
50  static Double_t fTimeWindowOfDigi[5][17];
51  static Double_t fTimeWindowOfShower[5][20];
52 
53  TVectorD CoeffMod3;
54  TVectorD CoeffMod5;
55  TVectorD CoeffModo;
56 
57  TVectorD CoeffMod3A;
58  TVectorD CoeffMod5A;
59  TVectorD CoeffModoA;
60 
61  TVectorD CoeffMod3B;
62  TVectorD CoeffMod5B;
63  TVectorD CoeffModoB;
64 };
65 #endif // PndEmcDigiCalibrator_HH
Double_t CalibrationEvtTimeByBump(PndEmcBump *theBump, bool PrintOut=kFALSE) const
virtual ~PndEmcDigiCalibrator()
Double_t CalibrationEvtTimeByDigi(PndEmcDigi *theDigi, bool PrintOut=kFALSE) const
Double_t GetTimeResolutionOfShower(PndEmcBump *theBump) const
represents a reconstructed (splitted) emc cluster
Definition: PndEmcBump.h:34
Double_t GetTimeResolutionOfDigi(PndEmcDigi *theDigi) const