First version. Now content needs to be filled in
[u/mrichter/AliRoot.git] / PWG4 / CaloCalib / AliAnalysisTaskCaloFilter.h
CommitLineData
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 19class TList;
20
7a4cf423 21#include "AliAnalysisTaskSE.h"
247abff4 22class AliEMCALRecoUtils;
23class AliEMCALGeometry;
3a58eee6 24class AliESDtrackCuts;
44cf05d7 25class AliTriggerAnalysis;
7a4cf423 26
27class AliAnalysisTaskCaloFilter : public AliAnalysisTaskSE
28{
29 public:
30 AliAnalysisTaskCaloFilter();
31 AliAnalysisTaskCaloFilter(const char* name);
247abff4 32 virtual ~AliAnalysisTaskCaloFilter() ;
7a4cf423 33
247abff4 34private:
35 AliAnalysisTaskCaloFilter(const AliAnalysisTaskCaloFilter&);
36 AliAnalysisTaskCaloFilter& operator=(const AliAnalysisTaskCaloFilter&);
37
38public:
44cf05d7 39 //General analysis frame methods
7a4cf423 40 virtual void UserCreateOutputObjects();
247abff4 41 //virtual void Init();
42 //virtual void LocalInit() ;
7a4cf423 43 virtual void UserExec(Option_t *option);
44 virtual void Terminate(Option_t *option);
45
44cf05d7 46 //Geometry methods
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
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;}
247abff4 63
44cf05d7 64 void SwitchOnClusterCorrection() { fCorrect = kTRUE ;}
65 void SwitchOffClusterCorrection() { fCorrect = kFALSE;}
66
67 //Event selection
3a58eee6 68 AliESDtrackCuts* GetTrackCuts() const { return fESDtrackCuts ; }
69 void SetTrackCuts(AliESDtrackCuts * cuts) { fESDtrackCuts = cuts ; }
70 Float_t GetTrackMultiplicityEtaCut() const { return fTrackMultEtaCut ; }
71 void SetTrackMultiplicityEtaCut(Float_t eta) { fTrackMultEtaCut = eta ; }
44cf05d7 72 virtual Bool_t CheckForPrimaryVertex();
73
74 void PrintInfo();
5ef94e1b 75
247abff4 76private:
7a4cf423 77
247abff4 78 //TList* fCuts ; //! List with analysis cuts
44cf05d7 79 Int_t fCaloFilter; // Calorimeter to filter
80 Int_t fCorrect; // Recalibrate or recalculate different cluster parameters
247abff4 81 //EMCAL specific
82 AliEMCALGeometry * fEMCALGeo; //! EMCAL geometry
83 TString fEMCALGeoName; // Name of geometry to use.
84 AliEMCALRecoUtils * fEMCALRecoUtils; // Pointer to EMCAL utilities for clusterization
85
44cf05d7 86 AliESDtrackCuts * fESDtrackCuts ; // Track cut
87 AliTriggerAnalysis* fTriggerAnalysis; // Access to trigger selection algorithm for V0AND calculation
88 Float_t fTrackMultEtaCut ; // Track multiplicity eta cut
3a58eee6 89
44cf05d7 90 //Geometry
91 Bool_t fLoadEMCALMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
92 TGeoHMatrix * fEMCALMatrix[10]; // Geometry matrices with alignments
93 //Bool_t fLoadPHOSMatrices; // Matrices set from configuration, not get from geometry.root or from ESDs/AODs
94 //TGeoHMatrix * fPHOSMatrix[5]; // Geometry matrices with alignments
95 Bool_t fGeoMatrixSet; // Set geometry matrices only once, for the first event.
96
3a58eee6 97
44cf05d7 98 ClassDef(AliAnalysisTaskCaloFilter, 5); // Analysis task for standard ESD filtering
7a4cf423 99};
100
101#endif