]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskEMCALClusterizeFast.h
check if emcal is active
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskEMCALClusterizeFast.h
1 #ifndef ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
2 #define ALIANALYSISTASKEMCALCLUSTERIZEFAST_H
3
4 // $Id$
5
6 class TObjArray;
7 class TClonesArray;
8 class AliAODEvent;
9 class AliESDEvent;
10 class AliEMCALCalibData;
11 class AliCaloCalibPedestal;
12 class AliEMCALClusterizer;
13 class AliEMCALAfterBurnerUF;
14 class AliEMCALRecParam;
15 class AliEMCALRecoUtils;
16
17 #include "AliAnalysisTaskSE.h"
18
19 class AliAnalysisTaskEMCALClusterizeFast : public AliAnalysisTaskSE {
20  public:
21   AliAnalysisTaskEMCALClusterizeFast();
22   AliAnalysisTaskEMCALClusterizeFast(const char *name);
23   virtual ~AliAnalysisTaskEMCALClusterizeFast();
24   
25  public:
26   virtual void           UserCreateOutputObjects();
27   virtual void           UserExec(Option_t *option);
28
29   Bool_t                 GetAttachClusters()                  const  { return fAttachClusters       ; }
30   Bool_t                 GetRecalibrateOnly()                 const  { return fRecalibOnly          ; }
31   Bool_t                 GetSubBackground()                   const  { return fSubBackground        ; }
32   const TObjArray       *GetClusters()                        const  { return fClusterArr           ; }
33   const TString         &GeometryName()                       const  { return fGeomName             ; }  
34   AliEMCALRecParam      *GetRecParam()                        const  { return fRecParam             ; }
35   AliEMCALRecoUtils     *GetRecoUtils()                       const  { return fRecoUtils            ; }
36   AliEMCALCalibData     *GetCalibData()                       const  { return fCalibData            ; }
37   AliCaloCalibPedestal  *GetPedData()                         const  { return fPedestalData         ; }
38   TGeoHMatrix           *GetGeometryMatrix(Int_t i)           const  { return fGeomMatrix[i]        ; }
39   void                   JustUnfold(Bool_t yesno)                    { fJustUnfold          = yesno ; }
40   void                   LoadOwnGeometryMatrices(Bool_t b)           { fLoadGeomMatrices    = b     ; }
41   void                   SetAODBranchName(const char *name)          { fOutputAODBrName     = name  ; }
42   void                   SetAttachClusters(Bool_t b)                 { fAttachClusters      = b     ; }
43   void                   SetCalibData(AliEMCALCalibData *d)          { fCalibData           = d     ; }
44   void                   SetEMCALRecoUtils(AliEMCALRecoUtils *ru)    { fRecoUtils           = ru    ; }
45   void                   SetGeometryMatrix(TGeoHMatrix* m, Int_t i)  { fGeomMatrix[i]       = m     ; }
46   void                   SetGeometryName(const char *name)           { fGeomName            = name  ; }
47   void                   SetLoadCalib(Bool_t b)                      { fLoadCalib           = b     ; }
48   void                   SetLoadPed(Bool_t b)                        { fLoadPed             = b     ; }
49   void                   SetOCDBPath(const char *path)               { fOCDBpath            = path  ; }
50   void                   SetPedestalData(AliCaloCalibPedestal *d)    { fPedestalData        = d     ; }
51   void                   SetRecalibrateCellsOnly(Bool_t b)           { fRecalibOnly         = b     ; }
52   void                   SetSubBackground(Bool_t b)                  { fSubBackground       = b     ; }
53
54  protected:
55   virtual void           Clusterize();
56   virtual void           FillDigitsArray();
57   virtual void           Init();
58   virtual void           RecPoints2Clusters(TClonesArray *clus);
59   virtual void           UpdateCells();
60   virtual void           UpdateClusters();
61
62   Int_t                  fRun;              //!run number
63   TClonesArray          *fDigitsArr;        //!digits array
64   TObjArray             *fClusterArr;       //!recpoints array
65   AliEMCALRecParam      *fRecParam;         // reconstruction parameters container
66   AliEMCALClusterizer   *fClusterizer;      //!clusterizer
67   AliEMCALAfterBurnerUF *fUnfolder;         //!unfolding procedure
68   Bool_t                 fJustUnfold;       // just unfold, do not recluster
69   TString                fGeomName;         // name of geometry to use.
70   Bool_t                 fGeomMatrixSet;    // set geometry matrices only once, for the first event.         
71   Bool_t                 fLoadGeomMatrices; // matrices from configuration, not geometry.root nor ESDs/AODs
72   TGeoHMatrix           *fGeomMatrix[12];   // geometry matrices with alignments
73   TString                fOCDBpath;         // path with OCDB location
74   AliEMCALCalibData     *fCalibData;        // EMCAL calib data
75   AliCaloCalibPedestal  *fPedestalData;     // EMCAL pedestal
76   TClonesArray          *fOutputAODBranch;  //!AOD Branch with output clusters  
77   TString                fOutputAODBrName;  // output AOD branch name (none by default)
78   AliEMCALRecoUtils     *fRecoUtils;        // access to factorized reconstruction algorithms
79   Bool_t                 fLoadCalib;        // access calib object from OCDB (def=off)
80   Bool_t                 fLoadPed;          // access ped object from OCDB (def=off)
81   Bool_t                 fAttachClusters;   // attach clusters to input event (AOD or ESD)
82   Bool_t                 fRecalibOnly;      // only recalibrate cells if true (def=off)
83   Bool_t                 fSubBackground;    // subtract background if true (def=off)
84
85  private:
86   AliAnalysisTaskEMCALClusterizeFast(const AliAnalysisTaskEMCALClusterizeFast&);            // not implemented
87   AliAnalysisTaskEMCALClusterizeFast &operator=(const AliAnalysisTaskEMCALClusterizeFast&); // not implemented
88
89   ClassDef(AliAnalysisTaskEMCALClusterizeFast, 5);
90 };
91 #endif //ALIANALYSISTASKEMCALCLUSTERIZEFAST_H