Geometry for MFT (Brigitte)
[u/mrichter/AliRoot.git] / PWGPP / HMPID / AliHMPIDTaskQA.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 // AliHMPIDTaskQA - Class representing a quality check tool of HMPID
18 // A set of histograms is created.
19 //==============================================================================
20
21 #ifndef ALIHMPIDTASKQA_H
22 #define ALIHMPIDTASKQA_H
23
24 #include "AliAnalysisTaskSE.h"
25 #include "AliStack.h"
26
27 class TH1;
28 class TParticle;
29 class TFile;
30 class AliESDtrack;
31 class AliESDEvent;
32
33 class AliHMPIDTaskQA : public AliAnalysisTaskSE {
34   public:
35
36   enum {kChamber = 7};
37
38   AliHMPIDTaskQA();
39   AliHMPIDTaskQA(const Char_t* name);
40   AliHMPIDTaskQA& operator= (const AliHMPIDTaskQA& c);
41   AliHMPIDTaskQA(const AliHMPIDTaskQA& c);
42   virtual ~AliHMPIDTaskQA();
43   
44   virtual void   ConnectInputData(Option_t *);
45   virtual void   UserCreateOutputObjects();
46   virtual void   UserExec(Option_t *option);
47   virtual void   Terminate(Option_t *);
48
49           void   SetUseMC(Bool_t useMC) { fUseMC = useMC; }
50           Bool_t Equal(Double_t x, Double_t y, Double_t tolerance);
51
52  protected:
53      
54  private:     
55  
56   AliESDEvent *fESD;                    //! ESD object
57   AliMCEvent  *fMC;                     //! MC event
58
59   Bool_t       fUseMC;                  // decide whether use or not the MC information
60
61   TList         *fHmpHistList ;         // list of histograms
62
63   TH2F          *fHmpPesdPhmp;          // HMP momentum vs ESD momentum
64   TH2F          *fHmpCkovPesd;          // Ckov angle vs ESD momentum
65   TH2F          *fHmpCkovPhmp;          // Ckov angle vs HMP momenutm
66   TH1F          *fHmpMipCharge3cm;      // Mip charge with 3 cm distance cut
67   TH1F          *fHmpMipTrkDist;        // Mip-track distance over-all
68   TH1F          *fHmpTrkFlags;          // track flags
69   TH1F          *fHmpPhotons[7];        // Photons per ring
70   TH2F          *fHmpPhotP[7];          // Photons per ring vs momentum
71   TH2F          *fHmpPhotSin2th[7];     // Photons per ring vs sin(th)^2
72   TH1F          *fHmpMipTrkDistPosX[7]; // Xtrk - Xmip of positive tracks
73   TH1F          *fHmpMipTrkDistNegX[7]; // Xtrk - Xmip of negative tracks
74   TH1F          *fHmpMipTrkDistPosY[7]; // Ytrk - Ymip of positive tracks
75   TH1F          *fHmpMipTrkDistNegY[7]; // Ytrk - Ymip of negative tracks
76   TH1F          *fHmpMipCharge[7];      // Mip charge distribution
77
78   Int_t          fN1;                   // number of points for pi and K
79   Int_t          fN2;                   // number of point for p
80   TH1F          *fPionEff;              // identified pions
81   TH1F          *fKaonEff;              // identified kaons
82   TH1F          *fProtEff;              // identified protons
83   TH1I          *fPionTot;              // total pions
84   TH1I          *fKaonTot;              // total kaons
85   TH1I          *fProtTot;              // total protons
86   TH1F          *fPionNot;              // non-pion tracks
87   TH1F          *fKaonNot;              // non-kaon tracks
88   TH1F          *fProtNot;              // non-proton tracks
89   TH1I          *fPionCon;              // tracks identified as pions
90   TH1I          *fKaonCon;              // tracks identified as kaons
91   TH1I          *fProtCon;              // tracks identified as protons
92
93   ClassDef(AliHMPIDTaskQA,2);
94 };
95
96 #endif