]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/TenderSupplies/AliEMCALTenderSupply.h
remove unnecesary delete, rename some methods, remove prints
[u/mrichter/AliRoot.git] / ANALYSIS / TenderSupplies / AliEMCALTenderSupply.h
1 #ifndef ALIEMCALTENDERSUPPLY_H
2 #define ALIEMCALTENDERSUPPLY_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////
8 //                                                                    //
9 //  EMCAL tender, apply corrections to EMCAl clusters                 //
10 //  and do track matching                                             //
11 //  Author : Deepa Thomas (Utrecht University)                        //                      
12 //                                                                    //
13 ////////////////////////////////////////////////////////////////////////
14
15 #include <AliTenderSupply.h>
16
17 class AliVCluster;
18 class AliEMCALRecoUtils;
19 class AliEMCALGeometry;
20 class TGeoHMatrix;
21 class TTree;
22 class TFile;
23 class TString;
24
25 class AliEMCALTenderSupply: public AliTenderSupply {
26   
27 public:
28   AliEMCALTenderSupply();
29   AliEMCALTenderSupply(const char *name, const AliTender *tender=NULL);
30   virtual ~AliEMCALTenderSupply();
31
32   virtual void   Init();
33   virtual void   ProcessEvent();
34   
35   
36   void SetEMCALGeometryName(TString name)  { fEMCALGeoName = name  ;}
37   TString EMCALGeometryName()       const  { return fEMCALGeoName  ;}
38
39   void  SetDebugLevel(Int_t level)         {fDebugLevel=level      ;}
40
41   void  SetNonLinearityFunction(Int_t fun) { fNonLinearFunc = fun  ;}
42   Int_t GetNonLinearityFunction() const    { return fNonLinearFunc ;}
43   
44   void  SetNonLinearityThreshold(Int_t threshold) { fNonLinearThreshold = threshold ;} //only for Alexei's non linearity correction
45   Int_t GetNonLinearityThreshold() const          { return fNonLinearThreshold      ;}
46
47   void  SwitchOnReCalibrateCluster()       { fReCalibCluster = kTRUE  ;}
48   void  SwitchOffReCalibrateCluster()      { fReCalibCluster = kFALSE ;}
49
50   void  SwitchOnReCalibrateCell()          { fReCalibCell = kTRUE  ;}
51   void  SwitchOffReCalibrateCell()         { fReCalibCell = kFALSE ;}
52
53   void  SwitchOnRecalculateClusPos()       { fRecalClusPos = kTRUE  ;}
54   void  SwitchOffRecalculateClusPos()      { fRecalClusPos = kFALSE ;}
55
56   void  SwitchOnCellFiducialRegion()       { fFiducial = kTRUE  ;}
57   void  SwitchOffCellFiducialRegion()      { fFiducial = kFALSE ;}
58
59   void  SetNumberOfcellsFromEMCALBorder(Int_t n) { fNCellsFromEMCALBorder = n    ;}
60   Int_t GetNumberOfcellsFromEMCALBorder() const  { return fNCellsFromEMCALBorder ;}
61
62   void  SwitchOnRecalDistBadChannel()      { fRecalDistToBadChannels = kTRUE  ;}
63   void  SwitchOffRecalDistBadChannel()     { fRecalDistToBadChannels = kFALSE ;}
64
65   Float_t  GetRCut()       const { return fRcut ;}
66   void     SetRCut(Float_t Rcut) { fRcut = Rcut ;}
67
68   Double_t GetMass()       const { return fMass ;}
69   void     SetMass(Double_t mass){ fMass=mass   ;}
70
71   Double_t GetStep()       const { return fStep ;}
72   void     SetStep(Double_t step){ fStep=step   ;}
73
74  
75 private:
76
77   Bool_t  InitBadChannels();
78   Bool_t  InitRecalib();
79   Bool_t  InitMisalignMatrix();
80   
81   void SetClusterMatchedToTrack(AliESDEvent *event);
82   void SetTracksMatchedToCluster(AliESDEvent *event);
83
84   void RecalibrateCells();                      //Recalibrate cells 
85
86   AliEMCALGeometry   *fEMCALGeo;               //! EMCAL geometry
87   TString       fEMCALGeoName;           // Name of geometry to use.
88   
89   AliEMCALRecoUtils  *fEMCALRecoUtils;         // Pointer to EMCAL utilities for clusterization
90   TString       fConfigName;             // Name of analysis configuration file
91   
92   Int_t         fDebugLevel;             // debug level
93
94   Int_t         fNonLinearFunc;          // Non linearity function 
95   Int_t         fNonLinearThreshold;     // Non linearity threshold value for kBeamTesh non linearity function   
96
97   Bool_t        fReCalibCluster;               // switch for Recalibrate clusters
98   Bool_t        fReCalibCell;          // switch for Recalibrate cell
99
100   TGeoHMatrix  *fEMCALMatrix[10];        // Geometry matrices with alignments
101   Bool_t        fRecalClusPos;         // switch for applying missalignment
102
103   Bool_t        fFiducial;             // switch for checking cells in the fiducial region
104   Int_t         fNCellsFromEMCALBorder;  // number os cells from EMCAL border   
105   Bool_t        fRecalDistToBadChannels; // switch for recalculation cluster position from bad channel    
106
107   TTree        *fInputTree;              // input data tree
108   TFile        *fInputFile;              // input data file 
109   TString       fFilepass;               // input data pass number
110
111   Double_t      fMass;                   // mass for track matching
112   Double_t      fStep;                   // step size during track matching
113   Float_t       fRcut;                   // residual cut for track matching  
114
115   AliEMCALTenderSupply(const AliEMCALTenderSupply&c);
116   AliEMCALTenderSupply& operator= (const AliEMCALTenderSupply&c);
117   
118   ClassDef(AliEMCALTenderSupply, 2); // TPC tender task
119 };
120
121
122 #endif
123