]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskEMCALClusterize.h
c607bd84cecabfe5b0f47b733a5ed181befc867f
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskEMCALClusterize.h
1 #ifndef ALIANALYSISTASKEMCALCLUSTERIZE_H\r
2 #define ALIANALYSISTASKEMCALCLUSTERIZE_H\r
3 \r
4 // This analysis provides a new list of clusters to be used in other analysis\r
5 // Author: Gustavo Conesa Balbastre,\r
6 //         Adapted from analysis class from Deepa Thomas\r
7 \r
8 //Root\r
9 class TTree;\r
10 class TClonesArray;\r
11 \r
12 //EMCAL\r
13 class AliEMCALGeometry;\r
14 class AliEMCALCalibData;\r
15 class AliCaloCalibPedestal;\r
16 class AliEMCALClusterizer;\r
17 class AliEMCALAfterBurnerUF;\r
18 class AliEMCALRecParam;\r
19 class AliEMCALRecoUtils;\r
20 \r
21 \r
22 #include "AliAnalysisTaskSE.h"\r
23 \r
24 class AliAnalysisTaskEMCALClusterize : public AliAnalysisTaskSE {\r
25  public:\r
26   AliAnalysisTaskEMCALClusterize();\r
27   AliAnalysisTaskEMCALClusterize(const char *name);\r
28   virtual ~AliAnalysisTaskEMCALClusterize();\r
29 \r
30  private:  \r
31   AliAnalysisTaskEMCALClusterize(const AliAnalysisTaskEMCALClusterize&); \r
32   AliAnalysisTaskEMCALClusterize& operator=(const AliAnalysisTaskEMCALClusterize&); // not implemented\r
33   \r
34  public:\r
35   virtual void   UserCreateOutputObjects();\r
36   virtual void   UserExec(Option_t *option);\r
37   virtual void   Init();\r
38   virtual void   LocalInit()                                    { Init()                       ; }\r
39   Bool_t         AccessOCDB();\r
40 \r
41   void           SetOCDBPath(const char *path)                  { fOCDBpath = path             ; }\r
42   \r
43   //Geometry methods\r
44   void           SetGeometryName(TString &name)                 { fGeomName = name             ; }\r
45   TString        GeometryName()                          const  { return fGeomName             ; }  \r
46   void           SwitchOnLoadOwnGeometryMatrices()              { fLoadGeomMatrices = kTRUE    ; }\r
47   void           SwitchOffLoadOwnGeometryMatrices()             { fLoadGeomMatrices = kFALSE   ; } \r
48   void           SetGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fGeomMatrix[i]    = m        ; }\r
49 \r
50   //AOD methods\r
51   void           SetAODBranchName(TString &name)                { fOutputAODBranchName = name  ; }\r
52   void           FillAODFile(Bool_t yesno)                      { fFillAODFile         = yesno ; }\r
53   \r
54   //Algorithms settings\r
55   void           JustUnfold(Bool_t yesno)                       { fJustUnfold          = yesno ; }\r
56   AliEMCALRecParam * GetRecParam()                       const  { return fRecParam             ; }\r
57   void           InitClusterization();\r
58   \r
59   void SetEMCALRecoUtils(AliEMCALRecoUtils * ru)                { fRecoUtils           = ru    ; }\r
60   AliEMCALRecoUtils* GetRecoUtils()                      const  { return fRecoUtils            ; }\r
61   \r
62   void SetConfigFileName(TString name)                          { fConfigName          = name  ; }\r
63   \r
64  private:\r
65     \r
66   virtual void  RecPoints2Clusters(TClonesArray *fdigitsArr, TObjArray *fRecPoints, TObjArray *clusArray);\r
67   \r
68   //Geometry  \r
69   AliEMCALGeometry      *fGeom;             // EMCAL geometry\r
70   TString                fGeomName;         // Name of geometry to use.\r
71   TGeoHMatrix           *fGeomMatrix[10];   // Geometry matrices with alignments\r
72   Bool_t                 fGeomMatrixSet;    // Set geometry matrices only once, for the first event.         \r
73   Bool_t                 fLoadGeomMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs\r
74 \r
75   //OCDB\r
76   AliEMCALCalibData     *fCalibData;        // EMCAL calib data\r
77   AliCaloCalibPedestal  *fPedestalData;     // EMCAL pedestal\r
78   TString                fOCDBpath;         // Path with OCDB location\r
79 \r
80   //Temporal arrays\r
81   TClonesArray          *fDigitsArr;        //-> Digits array\r
82   TObjArray             *fClusterArr;       //-> Recpoints array\r
83   TObjArray             *fCaloClusterArr;   //-> CaloClusters array\r
84 \r
85   //Clusterizers \r
86   AliEMCALRecParam      *fRecParam;         // Reconstruction parameters container\r
87   AliEMCALClusterizer   *fClusterizer;      //! EMCAL clusterizer\r
88   AliEMCALAfterBurnerUF *fUnfolder;         //! Unfolding procedure\r
89   Bool_t                 fJustUnfold;       // Just unfold, do not recluster\r
90   \r
91   //AOD\r
92   TClonesArray          *fOutputAODBranch;  //! AOD Branch with output clusters  \r
93   TString                fOutputAODBranchName;  // New of output AOD branch\r
94   Bool_t                 fFillAODFile;      // Fill the output AOD file with the new clusters, \r
95                                             // if not they will be only available for the event they were generated\r
96   Int_t                  fRun;              //!run number\r
97   \r
98   AliEMCALRecoUtils*     fRecoUtils;        // Access to factorized reconstruction algorithms\r
99   TString                fConfigName;       // Name of analysis configuration file\r
100   \r
101   ClassDef(AliAnalysisTaskEMCALClusterize, 3);\r
102 };\r
103 \r
104 #endif //ALIANALYSISTASKEMCALCLUSTERIZE_H\r