]>
Commit | Line | Data |
---|---|---|
7a4cf423 | 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 | ||
247abff4 | 19 | class TList; |
20 | ||
7a4cf423 | 21 | #include "AliAnalysisTaskSE.h" |
247abff4 | 22 | class AliEMCALRecoUtils; |
23 | class AliEMCALGeometry; | |
3a58eee6 | 24 | class AliESDtrackCuts; |
44cf05d7 | 25 | class AliTriggerAnalysis; |
5994e71f | 26 | class TNtuple; |
7a4cf423 | 27 | class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE |
28 | { | |
29 | public: | |
30 | AliAnalysisTaskCaloFilter(); | |
31 | AliAnalysisTaskCaloFilter(const char* name); | |
247abff4 | 32 | virtual ~AliAnalysisTaskCaloFilter() ; |
7a4cf423 | 33 | |
247abff4 | 34 | private: |
35 | AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&); | |
36 | AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&); | |
37 | ||
38 | public: | |
44cf05d7 | 39 | //General analysis frame methods |
7a4cf423 | 40 | virtual void UserCreateOutputObjects(); |
5994e71f | 41 | virtual void Init(); |
42 | virtual void LocalInit() { Init() ; } | |
7a4cf423 | 43 | virtual void UserExec(Option_t *option); |
44 | virtual void Terminate(Option_t *option); | |
5994e71f | 45 | |
44cf05d7 | 46 | //Geometry methods |
5994e71f | 47 | void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; } |
48 | TString EMCALGeometryName() const { return fEMCALGeoName ; } | |
3b13c34c | 49 | void SwitchOnLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kTRUE ; } |
50 | void SwitchOffLoadOwnEMCALGeometryMatrices() { fLoadEMCALMatrices = kFALSE ; } | |
51 | void SetEMCALGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fEMCALMatrix[i] = m ; } | |
3b13c34c | 52 | //void SwitchOnLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kTRUE ; } |
53 | //void SwitchOffLoadOwnPHOSGeometryMatrices() { fLoadPHOSMatrices = kFALSE ; } | |
54 | //void SetPHOSGeometryMatrixInSM(TGeoHMatrix* m, Int_t i) { fPHOSMatrix[i] = m ; } | |
7a4cf423 | 55 | |
44cf05d7 | 56 | //Task settings |
5994e71f | 57 | void FillAODFile(Bool_t yesno) { fFillAODFile = yesno ; } |
58 | enum caloFilter {kBoth = 0, kEMCAL = 1, kPHOS=2}; | |
59 | void SetCaloFilter(Int_t calo) { fCaloFilter = calo ; } | |
60 | TString GetCaloFilter() const { return fCaloFilter ; } | |
44cf05d7 | 61 | |
5994e71f | 62 | void SetEMCALRecoUtils(AliEMCALRecoUtils * ru) { fEMCALRecoUtils = ru ; } |
63 | AliEMCALRecoUtils* GetEMCALRecoUtils() const { return fEMCALRecoUtils ; } | |
247abff4 | 64 | |
5994e71f | 65 | void SwitchOnClusterCorrection() { fCorrect = kTRUE ; } |
66 | void SwitchOffClusterCorrection() { fCorrect = kFALSE ; } | |
44cf05d7 | 67 | |
68 | //Event selection | |
3a58eee6 | 69 | AliESDtrackCuts* GetTrackCuts() const { return fESDtrackCuts ; } |
70 | void SetTrackCuts(AliESDtrackCuts * cuts) { fESDtrackCuts = cuts ; } | |
71 | Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; } | |
72 | void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; } | |
44cf05d7 | 73 | virtual Bool_t CheckForPrimaryVertex(); |
74 | ||
75 | void PrintInfo(); | |
5ef94e1b | 76 | |
5994e71f | 77 | void SetConfigFileName(TString name) { fConfigName = name ; } |
78 | ||
247abff4 | 79 | private: |
7a4cf423 | 80 | |
247abff4 | 81 | //TList* fCuts ; //! List with analysis cuts |
5994e71f | 82 | Int_t fCaloFilter; // Calorimeter to filter |
83 | Int_t fCorrect; // Recalibrate or recalculate different cluster parameters | |
247abff4 | 84 | //EMCAL specific |
5994e71f | 85 | AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry |
86 | TString fEMCALGeoName; // Name of geometry to use. | |
87 | AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization | |
247abff4 | 88 | |
5994e71f | 89 | AliESDtrackCuts * fESDtrackCuts; // Track cut |
90 | AliTriggerAnalysis* fTriggerAnalysis; // Access to trigger selection algorithm for V0AND calculation | |
91 | Float_t fTrackMultEtaCut; // Track multiplicity eta cut | |
3a58eee6 | 92 | |
44cf05d7 | 93 | //Geometry |
94 | Bool_t fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs | |
5994e71f | 95 | TGeoHMatrix * fEMCALMatrix[10]; // Geometry matrices with alignments |
44cf05d7 | 96 | //Bool_t fLoadPHOSMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs |
97 | //TGeoHMatrix * fPHOSMatrix[5]; // Geometry matrices with alignments | |
98 | Bool_t fGeoMatrixSet; // Set geometry matrices only once, for the first event. | |
99 | ||
5994e71f | 100 | TNtuple * fEventNtuple; // NTuple with event parameters |
101 | ||
102 | TString fConfigName; // Name of analysis configuration file | |
103 | Bool_t fFillAODFile; // Fill the output AOD file with clusters | |
3a58eee6 | 104 | |
5994e71f | 105 | ClassDef(AliAnalysisTaskCaloFilter, 6); // Analysis task for standard ESD filtering |
7a4cf423 | 106 | }; |
107 | ||
108 | #endif |