PandaRoot
PndEmcDigiCalibrator.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //--------------------------------------------------------------------------
14 // Description:
15 // Class PndEmcDigiCalibrator
16 // Do an energy and position corrections for EMC cluster
17 // PndEmcDigiCalibrator is a factory which call specific method depending on the input parameter "method"
18 // method=1 - PndEmcClusterHistCalibrator is called, which perform correction from the interpolation on 2-dimensional histogram on (Energy, theta)
19 // method=2 - PndEmcClusterSimpleCalibrator is called, where energy correction is parametrised as a function of (Energy, theta)
20 // PndEmcAbsClusterCalibrator - abstract interface class
21 //
22 // Author List:
23 // D.Melnychuk
24 // PndEmcClusterHistCalibrator class is based on code PndEmcMakeCorr.cxx
25 // (A. Biegun, M. Babai)
26 // PndEmcClusterSimpleCalibrator class is based on EmcPhotonSimpleCalib class in Babar framework (Jan Zhong)
27 //------------------------------------------------------------------------
28 //#pragma once
29 #ifndef PNDEMCDIGICALIBRATOR_H
30 #define PNDEMCDIGICALIBRATOR_H
31 
32 #include "TObject.h"
33 #include "TVectorD.h"
34 #include <TFile.h>
35 #include <TString.h>
36 #include <cstdlib>
37 
38 class PndEmcDigi;
39 class PndEmcBump;
40 
42 
43  public:
44  // Constructors
46  // Destructor
47  virtual ~PndEmcDigiCalibrator();
48 
49  Double_t CalibrationEvtTimeByDigi(PndEmcDigi *theDigi, bool PrintOut = kFALSE) const;
50  Double_t CalibrationEvtTimeByBump(PndEmcBump *theBump, bool PrintOut = kFALSE) const;
51 
52  Double_t GetTimeResolutionOfDigi(PndEmcDigi *theDigi) const;
53  Double_t GetTimeResolutionOfShower(PndEmcBump *theBump) const;
54 
55  private:
56  Int_t GetIdxByEnergy(Double_t energy) const;
57  Int_t GetIdxByEnergyForBump(Double_t energy) const;
58 
60  PndEmcDigiCalibrator &operator=(const PndEmcDigiCalibrator &) { return *this; };
61 
62  static Double_t fTimeWindowOfDigi[5][17];
63  static Double_t fTimeWindowOfShower[5][20];
64 
65  TVectorD CoeffMod3;
66  TVectorD CoeffMod5;
67  TVectorD CoeffModo;
68 
69  TVectorD CoeffMod3A;
70  TVectorD CoeffMod5A;
71  TVectorD CoeffModoA;
72 
73  TVectorD CoeffMod3B;
74  TVectorD CoeffMod5B;
75  TVectorD CoeffModoB;
76 };
77 #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:46
Double_t GetTimeResolutionOfDigi(PndEmcDigi *theDigi) const