1 #ifndef ALIANALYSISTASKCALOFILTER_H
2 #define ALIANALYSISTASKCALOFILTER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //////////////////////////////////////////////////////////
8 // Filter the ESDCaloClusters and ESDCaloCells of EMCAL,
9 // PHOS or both, creating the corresponing AODCaloClusters
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 //////////////////////////////////////////////////////////
19 #include "AliAnalysisTaskSE.h"
20 class AliEMCALRecoUtils;
21 class AliEMCALGeometry;
22 class AliESDtrackCuts;
23 class AliTriggerAnalysis;
25 class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
28 AliAnalysisTaskCaloFilter();
29 AliAnalysisTaskCaloFilter(const char* name);
30 virtual ~AliAnalysisTaskCaloFilter() ;
32 //General analysis frame methods
34 virtual void UserCreateOutputObjects();
36 virtual void LocalInit() { Init() ; }
37 virtual void UserExec(Option_t *option);
38 virtual void Terminate(Option_t *option);
42 void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
43 TString EMCALGeometryName() const { return fEMCALGeoName ; }
45 void SwitchOnLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kTRUE ; }
46 void SwitchOffLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kFALSE ; }
47 void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i] = m ; }
49 //void SwitchOnLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kTRUE ; }
50 //void SwitchOffLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kFALSE ; }
51 //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fPHOSMatrix[i] = m ; }
55 void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; }
57 enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2};
58 void SetCaloFilter(Int_t calo) { fCaloFilter = calo ; }
59 TString GetCaloFilter() const { return fCaloFilter ; }
61 void SetEMCALRecoUtils(AliEMCALRecoUtils* ru) { fEMCALRecoUtils = ru ; }
62 AliEMCALRecoUtils* GetEMCALRecoUtils() const { return fEMCALRecoUtils ; }
64 void SwitchOnClusterCorrection() { fCorrect = kTRUE ; }
65 void SwitchOffClusterCorrection() { fCorrect = kFALSE ; }
68 AliESDtrackCuts* GetTrackCuts() const { return fESDtrackCuts ; }
69 void SetTrackCuts(AliESDtrackCuts * cuts) { //if (fESDtrackCuts) delete fESDtrackCuts ;
70 fESDtrackCuts = cuts ; }
72 Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; }
73 void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; }
75 Bool_t CheckForPrimaryVertex();
79 void SetConfigFileName(TString name) { fConfigName = name ; }
83 //TList* fCuts ; //! List with analysis cuts
85 Int_t fCaloFilter; // Calorimeter to filter
86 Int_t fCorrect; // Recalibrate or recalculate different cluster parameters
89 AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry
90 TString fEMCALGeoName; // Name of geometry to use.
91 AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
93 AliESDtrackCuts * fESDtrackCuts; // Track cut
94 AliTriggerAnalysis* fTriggerAnalysis; // Access to trigger selection algorithm for V0AND calculation
95 Float_t fTrackMultEtaCut; // Track multiplicity eta cut
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.
104 TNtuple * fEventNtuple; // NTuple with event parameters
106 TString fConfigName; // Name of analysis configuration file
107 Bool_t fFillAODFile; // Fill the output AOD file with clusters
109 AliAnalysisTaskCaloFilter( const AliAnalysisTaskCaloFilter&);
110 AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
112 ClassDef(AliAnalysisTaskCaloFilter, 7); // Analysis task for standard ESD filtering