Updates needed for full jet reconstruction (charged + emcal) [Magali Estienne]
[u/mrichter/AliRoot.git] / JETAN / AliJetFillUnitArrayEMCalDigits.h
index e59332c3a8a61000a8276c6f692736f8cd754ba1..a7abf204d5a7e59d7e4f17783a961f7d72b01049 100644 (file)
 #include "TTask.h"
 #endif
 
+class AliEMCALGeometry;
 class AliJetDummyGeo;
 class AliESDCaloCluster;
-class AliEMCALCalibData;
 class AliJetReader;
 class AliJetESDReader;
 class TClonesArray;
 class TRefArray;
 class AliJetUnitArray;
-//class AliESD;
 class AliESDEvent;
 class AliJetGrid;
+class AliEMCALCalibData ;
 
 class AliJetFillUnitArrayEMCalDigits : public TTask
 {
  public: 
   AliJetFillUnitArrayEMCalDigits();
-  AliJetFillUnitArrayEMCalDigits(Int_t event);
-  AliJetFillUnitArrayEMCalDigits(AliESD *fESD);
   AliJetFillUnitArrayEMCalDigits(AliESDEvent *fESD);
   virtual ~AliJetFillUnitArrayEMCalDigits();
   
@@ -43,52 +41,66 @@ class AliJetFillUnitArrayEMCalDigits : public TTask
   void SetRefArray(TRefArray *refArray) {fRefArray = refArray;}
   void SetTPCGrid(AliJetGrid *grid) {fTPCGrid = grid;}
   void SetEMCalGrid(AliJetGrid *grid) {fEMCalGrid = grid;}
-  //  void SetESD(AliESD *esd) {fESD = esd;}
+  void SetEleCorrection(Int_t flag = 1) {fECorrection = flag;}
   void SetESD(AliESDEvent *esd) {fESD = esd;}
   void SetInitMult(Int_t mult) {fNDigitEmcal = mult;}
   void SetInitMultCut(Int_t multcut) {fNDigitEmcalCut = multcut;}
+  void SetProcId(Bool_t id) {fProcId = id;}
 
   // Getter
   TClonesArray* GetUnitArray() {return fUnitArray;}
   TRefArray*    GetRefArray()  {return fRefArray;}
   Int_t         GetMult()      {return fNDigitEmcal;}
   Int_t         GetMultCut()   {return fNDigitEmcalCut;}
+  // For calibration => Under construction
+  //  virtual Float_t Calibrate(Int_t amp, Int_t cellId) ;  // Tranforms Amp to energy
 
   // Other
   void          Exec(Option_t*);
   Float_t       EtaToTheta(Float_t arg);
- private:
-  void InitParameters();
 
  protected:
-  AliESDEvent  *fESD; // ESD
-  Int_t   fNumUnits;  // Number of units in the unit object array (same as num towers in EMCAL)
-  Float_t fEtaMinCal; // Define EMCAL acceptance in Eta
-  Float_t fEtaMaxCal; // Define EMCAL acceptance in Eta
-  Float_t fPhiMinCal; // Define EMCAL acceptance in Phi
-  Float_t fPhiMaxCal; // Define EMCAL acceptance in Phi
-  Int_t   fNIn;       // Number of Array filled in UnitArray
-  Int_t   fOpt;       // Detector to be used for jet reconstruction
-  Int_t   fDebug;     // Debug option
-  Int_t   fNCEMCAL;   // Number of clusters in EMCAL
-  Int_t   fNCPHOS;    // Number of clusters in PHOS
-  Int_t   fNCCalo;    // Number of cluster in EMCAL + PHOS calorimeters
+  AliESDEvent        *fESD;            // ESD
+  Int_t               fNumUnits;       // Number of units in the unit object array (same as num towers in EMCAL)
+  Float_t             fEtaMinCal;      // Define EMCAL acceptance in Eta
+  Float_t             fEtaMaxCal;      // Define EMCAL acceptance in Eta
+  Float_t             fPhiMinCal;      // Define EMCAL acceptance in Phi
+  Float_t             fPhiMaxCal;      // Define EMCAL acceptance in Phi
+  Int_t               fNIn;            // Number of Array filled in UnitArray
+  Int_t               fOpt;            // Detector to be used for jet reconstruction
+  Int_t               fCluster;        // Use all cells or cells in clusters for jet finding 
+  Int_t               fDebug;          // Debug option
+  Int_t               fNCEMCAL;        // Number of clusters in EMCAL
+  Int_t               fNCPHOS;         // Number of clusters in PHOS
+  Int_t               fNCCalo;         // Number of cluster in EMCAL + PHOS calorimeters
 
-  AliJetGrid         *fTPCGrid;           // Define filled grid
-  AliJetGrid         *fEMCalGrid;         // Define filled grid
+  AliJetGrid         *fTPCGrid;        // Define filled grid
+  AliJetGrid         *fEMCalGrid;      // Define filled grid
+  Int_t               fECorrection;    // Electron correction flag
 
-  AliJetReaderHeader *fReaderHeader;      // ReaderHeader
-  TClonesArray       *fMomentumArray;     // MomentumArray
-  TClonesArray       *fUnitArray;         // UnitArray
-  TRefArray          *fRefArray;          // UnitArray
-  AliJetDummyGeo     *fGeom;              // Set EMCal geometry
+  AliJetReaderHeader *fReaderHeader;   // ReaderHeader
+  TClonesArray       *fMomentumArray;  // MomentumArray
+  TClonesArray       *fUnitArray;      // UnitArray
+  TRefArray          *fRefArray;       // UnitArray
+  Bool_t              fProcId;         // Bool_t for TProcessID synchronization
+  AliJetDummyGeo     *fGeom;           // Set EMCal geometry
   
-  AliESDCaloCluster *fClus;               //! 
-  Int_t fNDigitEmcal;                     //!
-  Int_t fNDigitEmcalCut;                  //!
+  AliESDCaloCluster  *fClus;           //! 
+  Int_t               fNDigitEmcal;    //!
+  Int_t               fNDigitEmcalCut; //!
+  //Calibration parameters... to be replaced by database
+  AliEMCALCalibData  *fCalibData;      //! Calibration database if aval
+  Float_t             fADCchannelECA;  // width of one ADC channel for EC section (GeV)
+  Float_t             fADCpedestalECA; // pedestal of ADC for EC section (GeV)
 
-  
+ private:
+  AliJetFillUnitArrayEMCalDigits(const AliJetFillUnitArrayEMCalDigits &det);
+  AliJetFillUnitArrayEMCalDigits &operator=(const AliJetFillUnitArrayEMCalDigits &det);
 
+  void InitParameters();
+  // Under construction
+  //  void    GetCalibrationParameters(void) ;
+  
   ClassDef(AliJetFillUnitArrayEMCalDigits,1) // Fill Unit Array with tpc and/or emcal information
 };