]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTasks/AliAnalysisTaskCaloFilter.h
Changes for 2012 data analysis
[u/mrichter/AliRoot.git] / PWGGA / CaloTasks / AliAnalysisTaskCaloFilter.h
1 #ifndef ALIANALYSISTASKCALOFILTER_H
2 #define ALIANALYSISTASKCALOFILTER_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 // Filter the ESDCaloClusters and ESDCaloCells of EMCAL,
9 // PHOS or both, creating the corresponing AODCaloClusters
10 // and AODCaloCells.
11 // Keep also the AODHeader information and the vertex.
12 // Needed for calorimeter calibration.
13 // Copy of AliAnalysisTaskESDfilter.
14 // Author: Gustavo Conesa Balbastre (INFN - Frascati)
15 //////////////////////////////////////////////////////////
16
17 class TList;
18
19 #include "AliAnalysisTaskSE.h"
20 class AliEMCALRecoUtils;
21 class AliEMCALGeometry;
22 class AliESDtrackCuts;
23 class AliTriggerAnalysis;
24 class TNtuple;
25 class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
26 {
27  public:
28   AliAnalysisTaskCaloFilter();
29   AliAnalysisTaskCaloFilter(const char* name);
30   virtual ~AliAnalysisTaskCaloFilter() ;
31     
32   //General analysis frame methods
33   
34   virtual void   UserCreateOutputObjects();
35   virtual void   Init();
36   virtual void   LocalInit() { Init() ; }
37   virtual void   UserExec(Option_t *option);
38   virtual void   Terminate(Option_t *option);
39       
40   //Geometry methods
41   
42   void SetEMCALGeometryName(TString name)                  { fEMCALGeoName = name        ; }
43   TString EMCALGeometryName()                       const  { return fEMCALGeoName        ; }
44   
45   void SwitchOnLoadOwnEMCALGeometryMatrices()              { fLoadEMCALMatrices = kTRUE  ; }
46   void SwitchOffLoadOwnEMCALGeometryMatrices()             { fLoadEMCALMatrices = kFALSE ; }
47   void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i]    = m      ; }
48   
49   //void SwitchOnLoadOwnPHOSGeometryMatrices()               { fLoadPHOSMatrices = kTRUE  ; }
50   //void SwitchOffLoadOwnPHOSGeometryMatrices()              { fLoadPHOSMatrices = kFALSE ; }
51   //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i)  { fPHOSMatrix[i]    = m      ; }
52   
53   //Task settings
54   
55   void    FillAODFile(Bool_t yesno)               { fFillAODFile = yesno    ; }
56   
57   enum    caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
58   void    SetCaloFilter(Int_t calo)               { fCaloFilter = calo      ; }
59   TString GetCaloFilter()                  const  { return fCaloFilter      ; }  
60   
61   void   SetEMCALRecoUtils(AliEMCALRecoUtils* ru) { fEMCALRecoUtils = ru    ; }
62   AliEMCALRecoUtils* GetEMCALRecoUtils()   const  { return fEMCALRecoUtils  ; }
63
64   void    SwitchOnClusterCorrection()             { fCorrect = kTRUE        ; }
65   void    SwitchOffClusterCorrection()            { fCorrect = kFALSE       ; }
66   
67   //Event selection
68   AliESDtrackCuts* GetTrackCuts()          const  { return fESDtrackCuts    ; }
69   void    SetTrackCuts(AliESDtrackCuts * cuts)    { //if (fESDtrackCuts) delete fESDtrackCuts ;
70                                                     fESDtrackCuts = cuts    ; }         
71   
72   Float_t GetTrackMultiplicityEtaCut()     const  { return fTrackMultEtaCut ; }
73   void    SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta  ; }         
74   
75   Bool_t  CheckForPrimaryVertex();
76
77   void    PrintInfo();
78   
79   void    SetConfigFileName(TString name)         { fConfigName = name      ; }
80   
81 private:
82   
83   //TList* fCuts ;      //! List with analysis cuts
84   
85   Int_t               fCaloFilter;        // Calorimeter to filter
86   Int_t               fCorrect;           // Recalibrate or recalculate different cluster parameters
87   
88   //EMCAL specific
89   AliEMCALGeometry  * fEMCALGeo;          //! EMCAL geometry
90   TString             fEMCALGeoName;      // Name of geometry to use.
91   AliEMCALRecoUtils * fEMCALRecoUtils;    // Pointer to EMCAL utilities for clusterization
92
93   AliESDtrackCuts   * fESDtrackCuts;      // Track cut  
94   AliTriggerAnalysis* fTriggerAnalysis;   // Access to trigger selection algorithm for V0AND calculation
95   Float_t             fTrackMultEtaCut;   // Track multiplicity eta cut
96   
97   //Geometry
98   Bool_t              fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
99   TGeoHMatrix       * fEMCALMatrix[12];   // Geometry matrices with alignments
100   //Bool_t            fLoadPHOSMatrices;  // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
101   //TGeoHMatrix *     fPHOSMatrix[5];     // Geometry matrices with alignments
102   Bool_t              fGeoMatrixSet;      // Set geometry matrices only once, for the first event.   
103
104   TNtuple           * fEventNtuple;       // NTuple with event parameters 
105   
106   TString             fConfigName;        // Name of analysis configuration file
107   Bool_t              fFillAODFile;       // Fill the output AOD file with clusters 
108   
109   AliAnalysisTaskCaloFilter(           const AliAnalysisTaskCaloFilter&);
110   AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
111   
112   ClassDef(AliAnalysisTaskCaloFilter, 7); // Analysis task for standard ESD filtering
113   
114 };
115
116 #endif