o First Version of TRDnSigma implementation (Xianguo) o still requires some catching...
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDPerformanceTask.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //==============================================================================
17 // AliHMPIDAnalysysTask - Class representing a basic analysis tool of HMPID data at  
18 // level of ESD.
19 // A set of histograms is created.
20 //==============================================================================
21
22 #ifndef AliHMPIDPERFORMANCETASK_H
23 #define AliHMPIDPERFORMANCETASK_H
24
25 #include "AliAnalysisTaskSE.h"
26 #include "AliStack.h"
27
28 class TObject;
29 class TH1;
30 class TH1F;
31 class TParticle;
32 class TFile;
33 class AliESDtrack;
34 class AliESDEvent;
35 class AliESDtrackCuts;
36 class AliHMPIDCluster;
37 class AliESDVertex;
38 class AliCentrality;    
39
40 class AliHMPIDPerformanceTask : public AliAnalysisTaskSE {
41  public:
42
43   enum {kChamber = 7};
44   AliHMPIDPerformanceTask();
45   AliHMPIDPerformanceTask(const Char_t* name);
46   AliHMPIDPerformanceTask& operator= (const AliHMPIDPerformanceTask& c);
47   AliHMPIDPerformanceTask(const AliHMPIDPerformanceTask& c);
48   virtual ~AliHMPIDPerformanceTask();
49   
50   virtual void   ConnectInputData(Option_t *);
51   virtual void   UserCreateOutputObjects();
52   virtual void   UserExec(Option_t *option);
53   virtual void   Terminate(Option_t *);
54   
55   void   SetUseMC(Bool_t useMC) { fUseMC = useMC; }
56   Bool_t Equal(Double_t x, Double_t y, Double_t tolerance);
57   
58  protected:
59   
60  private:     
61   
62   AliESDEvent  *fESD;                                    //! ESD object
63   AliESDfriend *fESDfriend;                              //! ESD Friend
64   AliESDtrackCuts *fEsdTrackCuts;                        //! ESD track cuts
65   AliHMPIDCluster* fClu;                                 //! HMPID photon cluster
66   AliMCEvent   *fMC;                                     //! MC event
67   AliESDVertex *fEsdVtx;                                 //! ESD Vertex
68   AliCentrality *fCentrality;                            //! Centrality
69   AliESDtrack       *fEsdTrack;                          //! ESD track
70   AliESDfriendTrack *fEsdFriendTrack;                    //! ESD Friend track
71   TObject       *fCalibObject;                           //! Calib object = clu from friend
72   
73   Bool_t       fUseMC;                                   // decide whether use or not the MC information
74   TList        *fHmpHistList ;                           // list of histograms
75   TH1F         *fHmpNevents;                             // number of events processed
76   TH1I          *fHmpNevPerTrigClass;                    // Number of events per offline trigger class
77   ULong64_t    fGlobalEventNumber;                       // Global event number
78   Int_t        fvType;                                   // Tree input type 0; track 1; cluster
79   Char_t*      fvFiredTriggerClasses;                    //fired trigger classes
80   Int_t        fvRunNumber;                              // run number
81   Int_t        fvBunchCrossNumber;                       // bunch crossing number
82   Int_t        fvOrbitNumber;                            // orbit number
83   Int_t        fvPeriodNumber;                           // period number
84   Double_t     fvMagField;                               // magnetic field
85   Double_t     fvVertexX;                                // vertex x coord
86   Double_t     fvVertexY;                                // vertex y coord
87   Double_t     fvVertexZ;                                // vertex z coord
88   Int_t        fvVertexNContributors;                    // vertex number of contributors
89   Double_t     fvPesd;                                   // esd track momentum
90   Double_t     fvPhmpMag;                                // hmp track momentum magnitude
91   Double_t     fvPhmp[3];                                // hmp track momentum 
92   Double_t     fvCentrality;                             // centrality percentile
93   Int_t        fvAcceptedTracks;                         // Number of accepted tracks by AliESDtrackcuts
94   Int_t        fvRefMultTpc;                             // Reference multiplicity by AliESDtrackcuts
95   Double_t     fvHmpChi2;                                // hmp chi2
96   Int_t        fvHmpCluIndx ;                            // hmp cluster index => chamber =  cluidx%1000000/1000
97   Float_t      fvHmpMipX;                                // hmp mip x
98   Float_t      fvHmpMipY;                                // hmp mip y
99   Int_t        fvHmpMipQ;                                // hmpid mip q
100   Int_t        fvHmpMipNPhots;                           // hmp mip number of photons
101   Double_t     fvHmpPid[5];                              // hmp pid
102   Double_t     fvHmpSignal ;                             // hmp signal 
103   Float_t      fvHmpTrkX;                                // hmp track x
104   Float_t      fvHmpTrkY;                                // hmp track y
105   Float_t      fvHmpTrkTheta;                            // hmp track theta
106   Float_t      fvHmpTrkPhi;                              // hmp track phi
107   Double_t     fvHmpCluQ;                                // hmp cluster q
108   Double_t     fvHmpCluX;                                // hmp cluster x
109   Double_t     fvHmpCluY;                                // hmp cluster y
110   Int_t        fvHmpCluCh;                               // hmp cluster ch
111   Int_t        fvHmpCluSize;                             // hmp cluster size
112   Int_t        fvHmpCluBox;                              // hmp cluster box
113   Int_t        fvHmpCluStatus;                           // hmp cluster status
114   Int_t        fvEsdTrackAccepted;                       // esd track is accepted by track cuts or not
115   Int_t        fvKinkIndex;                              // esd track kink index
116   Double_t     fvTofSignal;                              // tof signal
117   TTree        *fTree;                                   // tree with useful data for subsequent analysis
118
119
120
121   ClassDef(AliHMPIDPerformanceTask,1);
122 };
123
124 #endif