]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/CaloCalib/AliAnalysisTaskCaloFilter.h
IsHeavyIon flag, added Centrality Selection, Add mising Cut for Nch, extra histograms...
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / 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 /* $Id: AliAnalysisTaskCaloFilter.h  $ */
8
9 //////////////////////////////////////////////////////////
10 // Filter the ESDCaloClusters and ESDCaloCells of EMCAL,
11 // PHOS or both, creating the corresponing AODCaloClusters
12 // and AODCaloCells.
13 // Keep also the AODHeader information and the vertex.
14 // Needed for calorimeter calibration.
15 // Copy of AliAnalysisTaskESDfilter.
16 // Author: Gustavo Conesa Balbastre (INFN - Frascati)
17 //////////////////////////////////////////////////////////
18
19 class TList;
20
21 #include "AliAnalysisTaskSE.h"
22 class AliEMCALRecoUtils;
23 class AliEMCALGeometry;
24 class AliESDtrackCuts;
25
26 class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
27 {
28  public:
29   AliAnalysisTaskCaloFilter();
30   AliAnalysisTaskCaloFilter(const char* name);
31   virtual ~AliAnalysisTaskCaloFilter() ;
32   
33 private:
34   AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&);
35   AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
36   
37 public:
38   virtual void   UserCreateOutputObjects();
39   //virtual void   Init();
40   //virtual void   LocalInit() ;
41   virtual void   UserExec(Option_t *option);
42   virtual void   Terminate(Option_t *option);
43   
44   enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
45   void SetCaloFilter(Int_t calo) {fCaloFilter = calo;}
46   TString GetCaloFilter() const  {return fCaloFilter;}
47
48   void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
49   TString EMCALGeometryName() const       { return fEMCALGeoName ; }
50   
51   void SwitchOnLoadOwnEMCALGeometryMatrices()              { fLoadEMCALMatrices = kTRUE  ; }
52   void SwitchOffLoadOwnEMCALGeometryMatrices()             { fLoadEMCALMatrices = kFALSE ; }
53   void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i]    = m      ; }
54   
55   //void SwitchOnLoadOwnPHOSGeometryMatrices()               { fLoadPHOSMatrices = kTRUE  ; }
56   //void SwitchOffLoadOwnPHOSGeometryMatrices()              { fLoadPHOSMatrices = kFALSE ; }
57   //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i)  { fPHOSMatrix[i]    = m      ; }
58   
59   void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) {fEMCALRecoUtils = ru;}
60   AliEMCALRecoUtils* GetEMCALRecoUtils() const   {return fEMCALRecoUtils;}
61
62   void SwitchOnClusterCorrection()  {fCorrect = kTRUE ;}
63   void SwitchOffClusterCorrection() {fCorrect = kFALSE;}
64
65   AliESDtrackCuts* GetTrackCuts()          const  { return fESDtrackCuts    ; }
66   void    SetTrackCuts(AliESDtrackCuts * cuts)    { fESDtrackCuts = cuts    ; }           
67   Float_t GetTrackMultiplicityEtaCut()     const  { return fTrackMultEtaCut ; }
68   void    SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta  ; }         
69   
70   void PrintInfo();
71   
72 private:
73   
74   //TList* fCuts ;      //! List with analysis cuts
75   Int_t  fCaloFilter; // Calorimeter to filter
76   Int_t  fCorrect;    // Recalibrate or recalculate different cluster parameters
77   //EMCAL specific
78   AliEMCALGeometry  * fEMCALGeo;       //! EMCAL geometry
79   TString             fEMCALGeoName;   // Name of geometry to use.
80   AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
81
82   AliESDtrackCuts *fESDtrackCuts       ; // Track cut  
83   Float_t          fTrackMultEtaCut    ; // Track multiplicity eta cut
84   
85   Bool_t        fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
86   TGeoHMatrix * fEMCALMatrix[10];   // Geometry matrices with alignments
87   //Bool_t        fLoadPHOSMatrices;  // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
88   //TGeoHMatrix * fPHOSMatrix[5];     // Geometry matrices with alignments
89   Bool_t        fGeoMatrixSet;      // Set geometry matrices only once, for the first event.         
90   
91   ClassDef(AliAnalysisTaskCaloFilter, 4); // Analysis task for standard ESD filtering
92 };
93
94 #endif