]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/QA/tasks/AliAnalysisTaskHLT.h
5683a247e93dfd3c6b7ddaa90e0430c1ff74a2d2
[u/mrichter/AliRoot.git] / HLT / QA / tasks / AliAnalysisTaskHLT.h
1 // $Id$
2 //-*- Mode: C++ -*-
3 //* This file is property of and copyright by the ALICE HLT Project *
4 //* ALICE Experiment at CERN, All rights reserved.                  *
5 //* See cxx source for full Copyright notice                        *
6
7 #ifndef ALIANALYSISTASKHLT_H
8 #define ALIANALYSISTASKHLT_H
9
10 /** @file AliAnalysisTaskHLT.h
11     @author Kalliopi Kanaki, Hege Erdal
12     @date   
13     @brief An analysis task to compare the offline and HLT esd trees
14 */
15
16 // forward declarations
17 class TH1F;
18 class TH2F;
19 class TList;
20 class TText;
21 class AliCentrality;
22 #include "AliAnalysisTaskSE.h"
23
24 class AliAnalysisTaskHLT : public AliAnalysisTaskSE {
25  
26   public: 
27     AliAnalysisTaskHLT();
28     AliAnalysisTaskHLT(const char *name, float eta=2, float pt=0, float DCAr=20, float DCAz=20);
29     virtual ~AliAnalysisTaskHLT() {}
30
31     virtual void  UserCreateOutputObjects();
32     virtual void  UserExec(Option_t *option);
33     virtual void  Terminate(Option_t *);
34
35     //Use only triggered events
36     void SetUseHLTTriggerDecision(Bool_t useHLT = kFALSE) { fUseHLTTrigger = useHLT; }
37     // function to set the beam type
38     void SetBeamType(TString beamType) { fBeamType = beamType; }    
39  
40 private:
41
42     /** copy constructor */
43     AliAnalysisTaskHLT(const AliAnalysisTaskHLT&); 
44     /** assignment operator */
45     AliAnalysisTaskHLT& operator=(const AliAnalysisTaskHLT&); 
46
47     //void SetupESDtrackCuts();  
48
49     Bool_t fUseHLTTrigger;             // use HLT Trigger Decision
50
51     //AliESDtrackCuts *fESDOfftrackCuts;   //! ESD cuts  
52     //AliESDtrackCuts *fESDHLTtrackCuts;   //! ESD cuts - on HLT object 
53     
54     TList *fOutputList; // list of output histograms
55     //TH1F *fHistTrigger; //! trigger counters 
56
57     TH1F  *fChargeOff;         //! Charge distribution      
58     TH1F  *fMomentumOff;       //! momentum     
59     TH1F  *fDCArOff;           //! track DCAr  
60     TH1F  *fDCAzOff;           //! track DCAz  
61     TH1F  *fNclusterOff;       //! #clusters per track
62     TH1F  *fNITSclusterOff;    //! # ITS clusters per track
63     TH1F  *fPhiOff;            //! azimuthal angle distribution
64     TH1F  *fEtaOff;            //! pseudorapidity  
65     TH1F  *fMultOff;           //! track multiplicity of the event
66     TH1F  *fXvertexOff;        //! X primary vertex distribution
67     TH1F  *fYvertexOff;        //! Y primary vertex distribution
68     TH1F  *fZvertexOff;        //! Z primary vertex distribution
69     TH1F  *fSPDXvertexOff;     //! SPD X primary vertex distribution
70     TH1F  *fSPDYvertexOff;     //! SPD Y primary vertex distribution
71     TH1F  *fSPDZvertexOff;     //! SPD Z primary vertex distribution
72     TH1F  *fEventSpecieOff;    //! Event Specie Offline
73     TH1F  *fV0cent;            //! V0 centrality information
74     TH1F  *fNcontOff;          //! # of contributors to the vertex estimate
75
76    //---------------------------------//
77     
78     TH1F  *fChargeHLT;         //! Charge distribution 
79     TH1F  *fMomentumHLT;       //! momentum     
80     TH1F  *fDCArHLT;           //! track DCAr to beam line       
81     TH1F  *fDCAzHLT;           //! track DCAz to beam line       
82     TH1F  *fNclusterHLT;       //! #clusters per track
83     TH1F  *fNITSclusterHLT;    //! # ITS clusters per track
84     TH1F  *fPhiHLT;            //! azimuthal angle distribution
85     TH1F  *fEtaHLT;            //! pseudorapidity
86     
87     TH1F  *fChargeHLTcut;      //! Charge distribution with cuts for selecting primary tracks
88     TH1F  *fMomentumHLTcut;    //! momentum     
89     TH1F  *fDCArHLTcut;        //! track DCAr        
90     TH1F  *fDCAzHLTcut;        //! track DCAz        
91     TH1F  *fNclusterHLTcut;    //! #clusters per track
92     TH1F  *fNITSclusterHLTcut; //! # ITS clusters per track
93     TH1F  *fPhiHLTcut;         //! azimuthal angle distribution
94     TH1F  *fEtaHLTcut;         //! pseudorapidity
95     
96     TH1F  *fMultHLT;           //! track multiplicity of the event   
97     TH1F  *fXvertexHLT;        //! X primary vertex distribution
98     TH1F  *fYvertexHLT;        //! Y primary vertex distribution
99     TH1F  *fZvertexHLT;        //! Z primary vertex distribution
100     TH1F  *fSPDXvertexHLT;     //! SPD X primary vertex distribution
101     TH1F  *fSPDYvertexHLT;     //! SPD Y primary vertex distribution
102     TH1F  *fSPDZvertexHLT;     //! SPD Z primary vertex distribution
103     TH1F  *fEventSpecieHLT;    //! Event Specie HLT
104     TH1F  *fNcontHLT;          //! # of contributors to the vertex estimate
105         
106     TString fBeamType;         //! beam type: p-p, Pb-Pb, No beam
107     TText *fTextBox;           //! TText box containing run number info and date
108     TText *fCuts;              //! TText box containing the cuts
109     Bool_t fSwitch;            //! boolean used to execute parts of the code in the UserExec only once, although
110                                // the function is called once per event
111     AliCentrality *fCentrality;//! Centrality holder
112     Float_t fEta;              //! cut value
113     Float_t fPt;               //! cut value
114     Float_t fDCAr;             //! cut value
115     Float_t fDCAz;             //! cut value
116    
117     ClassDef(AliAnalysisTaskHLT, 0);
118 };
119
120 #endif