Updates needed for full jet reconstruction (charged + emcal) [Magali Estienne]
[u/mrichter/AliRoot.git] / JETAN / AliJetFillUnitArrayEMCalDigits.h
1 #ifndef ALIJETFILLUNITARRAYEMCALDIGITS_H
2 #define ALIJETFILLUNITARRAYEMCALDIGITS_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 // Jet Fill Unit Array 
9 // Called by ESD Reader for jet analysis
10 // Author: Magali Estienne (magali.estienne@subatech.in2p3.fr)
11 //---------------------------------------------------------------------
12
13 #ifndef ROOT_TTask
14 #include "TTask.h"
15 #endif
16
17 class AliEMCALGeometry;
18 class AliJetDummyGeo;
19 class AliESDCaloCluster;
20 class AliJetReader;
21 class AliJetESDReader;
22 class TClonesArray;
23 class TRefArray;
24 class AliJetUnitArray;
25 class AliESDEvent;
26 class AliJetGrid;
27 class AliEMCALCalibData ;
28
29 class AliJetFillUnitArrayEMCalDigits : public TTask
30 {
31  public: 
32   AliJetFillUnitArrayEMCalDigits();
33   AliJetFillUnitArrayEMCalDigits(AliESDEvent *fESD);
34   virtual ~AliJetFillUnitArrayEMCalDigits();
35   
36   // Setter
37   void SetReaderHeader(AliJetReaderHeader *readerHeader) {fReaderHeader = readerHeader;}
38   void SetGeom(AliJetDummyGeo *geom) {fGeom = geom;}
39   void SetMomentumArray(TClonesArray *momentumArray) {fMomentumArray = momentumArray;}
40   void SetUnitArray(TClonesArray *unitArray) {fUnitArray = unitArray;}
41   void SetRefArray(TRefArray *refArray) {fRefArray = refArray;}
42   void SetTPCGrid(AliJetGrid *grid) {fTPCGrid = grid;}
43   void SetEMCalGrid(AliJetGrid *grid) {fEMCalGrid = grid;}
44   void SetEleCorrection(Int_t flag = 1) {fECorrection = flag;}
45   void SetESD(AliESDEvent *esd) {fESD = esd;}
46   void SetInitMult(Int_t mult) {fNDigitEmcal = mult;}
47   void SetInitMultCut(Int_t multcut) {fNDigitEmcalCut = multcut;}
48   void SetProcId(Bool_t id) {fProcId = id;}
49
50   // Getter
51   TClonesArray* GetUnitArray() {return fUnitArray;}
52   TRefArray*    GetRefArray()  {return fRefArray;}
53   Int_t         GetMult()      {return fNDigitEmcal;}
54   Int_t         GetMultCut()   {return fNDigitEmcalCut;}
55   // For calibration => Under construction
56   //  virtual Float_t Calibrate(Int_t amp, Int_t cellId) ;  // Tranforms Amp to energy
57
58   // Other
59   void          Exec(Option_t*);
60   Float_t       EtaToTheta(Float_t arg);
61
62  protected:
63   AliESDEvent        *fESD;            // ESD
64   Int_t               fNumUnits;       // Number of units in the unit object array (same as num towers in EMCAL)
65   Float_t             fEtaMinCal;      // Define EMCAL acceptance in Eta
66   Float_t             fEtaMaxCal;      // Define EMCAL acceptance in Eta
67   Float_t             fPhiMinCal;      // Define EMCAL acceptance in Phi
68   Float_t             fPhiMaxCal;      // Define EMCAL acceptance in Phi
69   Int_t               fNIn;            // Number of Array filled in UnitArray
70   Int_t               fOpt;            // Detector to be used for jet reconstruction
71   Int_t               fCluster;        // Use all cells or cells in clusters for jet finding 
72   Int_t               fDebug;          // Debug option
73   Int_t               fNCEMCAL;        // Number of clusters in EMCAL
74   Int_t               fNCPHOS;         // Number of clusters in PHOS
75   Int_t               fNCCalo;         // Number of cluster in EMCAL + PHOS calorimeters
76
77   AliJetGrid         *fTPCGrid;        // Define filled grid
78   AliJetGrid         *fEMCalGrid;      // Define filled grid
79   Int_t               fECorrection;    // Electron correction flag
80
81   AliJetReaderHeader *fReaderHeader;   // ReaderHeader
82   TClonesArray       *fMomentumArray;  // MomentumArray
83   TClonesArray       *fUnitArray;      // UnitArray
84   TRefArray          *fRefArray;       // UnitArray
85   Bool_t              fProcId;         // Bool_t for TProcessID synchronization
86   AliJetDummyGeo     *fGeom;           // Set EMCal geometry
87   
88   AliESDCaloCluster  *fClus;           //! 
89   Int_t               fNDigitEmcal;    //!
90   Int_t               fNDigitEmcalCut; //!
91   //Calibration parameters... to be replaced by database
92   AliEMCALCalibData  *fCalibData;      //! Calibration database if aval
93   Float_t             fADCchannelECA;  // width of one ADC channel for EC section (GeV)
94   Float_t             fADCpedestalECA; // pedestal of ADC for EC section (GeV)
95
96  private:
97   AliJetFillUnitArrayEMCalDigits(const AliJetFillUnitArrayEMCalDigits &det);
98   AliJetFillUnitArrayEMCalDigits &operator=(const AliJetFillUnitArrayEMCalDigits &det);
99
100   void InitParameters();
101   // Under construction
102   //  void    GetCalibrationParameters(void) ;
103   
104   ClassDef(AliJetFillUnitArrayEMCalDigits,1) // Fill Unit Array with tpc and/or emcal information
105 };
106
107 #endif