]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliPWG4HighPtQAMC.h
Changes to fast embedding and jetresponse: QA plot for delta AOD, Jet eta phi selecti...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliPWG4HighPtQAMC.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 // This class compares the global reconstruction with the MC information
18 // Author : Marta Verweij - UU
19 //-----------------------------------------------------------------------
20
21 #ifndef ALIPWG4HIGHPTQAMC_H
22 #define ALIPWG4HIGHPTQAMC_H
23
24 #include "AliAnalysisTask.h"
25
26 class TH1F;
27 class TH2F;
28 class TH3F;
29 class TProfile;
30 class TList;
31 class AliESDEvent;
32 class AliESDtrackCuts;
33 class AliMCEvent;
34 class AliStack;
35 class AliESDVertex;
36 class AliGenPythiaEventHeader;
37 //class AliAnalysisHelperJetTasks;
38
39 class AliPWG4HighPtQAMC: public AliAnalysisTask {
40
41  public:
42   AliPWG4HighPtQAMC();
43   AliPWG4HighPtQAMC(const char *name);
44   ~AliPWG4HighPtQAMC() {;}
45  
46   virtual void   ConnectInputData(Option_t *);
47   virtual void   CreateOutputObjects();
48   virtual void   Exec(Option_t *option);
49   virtual void   Terminate(Option_t *);
50   virtual Bool_t Notify(); //Copied from AliAnalysisTaskJetSpectrum2
51
52   Bool_t SelectEvent();    //decides if event is used for analysis
53
54   void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;}
55   void SetCutsITS(AliESDtrackCuts* trackCutsITS) {fTrackCutsITS = trackCutsITS;}
56
57   void SetTrackType(Int_t trackType) {fTrackType = trackType;}
58   void SetPtMax(Float_t ptmax) {fPtMax = ptmax;}
59   Float_t GetPtMax()           {return fPtMax;}
60
61   static AliGenPythiaEventHeader*  GetPythiaEventHeader(AliMCEvent *mcEvent);
62   static Bool_t PythiaInfoFromFile(const char* currFile,Float_t &fXsec,Float_t &fTrials);// get the cross section and the trails either from pyxsec.root or from pysec_hists.root
63
64  protected:
65
66  private:
67   AliPWG4HighPtQAMC(const AliPWG4HighPtQAMC&);
68   AliPWG4HighPtQAMC& operator=(const AliPWG4HighPtQAMC&);
69
70   AliESDEvent *fESD;              //! ESD object
71   AliMCEvent  *fMC;               //! MC event object
72   AliStack    *fStack;            //! stack object
73
74   const AliESDVertex   *fVtx;     //! vertex object
75
76   AliESDtrackCuts *fTrackCuts;    // TrackCuts for global reconstructed vs MC comparison
77   AliESDtrackCuts *fTrackCutsITS; // TrackCuts including ITSrefit
78
79   Int_t   fTrackType;             // 0: global track; 1:TPConly track 2: TPConly constrained track 3: global ITSrefit
80
81   Float_t fPtMax;                 // Maximum pT for histograms
82
83   Float_t fAvgTrials;             // Average number of trials
84   
85   TH1F *fNEventAll;                            //! Event counter
86   TH1F *fNEventSel;                            //! Event counter
87   TH1F *fNEventReject;                         //! Book keeping of reason of rejecting events
88  
89   TProfile*     fh1Xsec;                       //! pythia cross section and trials
90   TH1F*         fh1Trials;                     //! trials which are added
91   TH1F*         fh1PtHard;                     //! pt hard of the event
92   TH1F*         fh1PtHardTrials;               //! pt hard of the event
93
94   TH1F *fPtAll;                                //! Pt spectrum all charged particles
95   TH1F *fPtSel;                                //! Pt spectrum all selected charged particles by fTrackCuts
96   TH1F *fPtSelFakes;                           //! Pt distributions for tracks with negative label (=fake tracks)
97   TH1F *fNPointTPCFakes;                       //! NTPCCluster of fake tracks
98   TH1F *fPtSelLargeLabel;                      //! Filled if label is larger than nMCtracks
99   TH1F *fMultRec;                              //! Bookkeeping of multiple times reconstructed tracks
100   TH1F *fNPointTPCMultRec;                     //! NTPCClusters of multiple reconstructed tracks
101   TH2F *fDeltaPtMultRec;                       //! Delta pT versus pT of first track for multiple reconstructed tracks
102
103   TH2F *fPtAllvsPtMC;                          //! Reconstructed momentum vs generated momentum
104   TH2F *fPtAllminPtMCvsPtAll;                  //! Momentum resolution (global vs MC)
105   TH3F *fPtAllvsPtMCvsMult;                    //! Reconstructed momentum vs generated momentum vs multiplicity
106   TH3F *fPtAllminPtMCvsPtAllvsMult;            //! Momentum resolution (global vs MC) vs multiplicity
107   TH3F *fPtAllminPtMCvsPtAllNPointTPC;         //! Momentum resolution vs NPointTPC
108   TH3F *fPtAllminPtMCvsPtAllDCAR;              //! Momentum resolution vs DCAR
109   TH3F *fPtAllminPtMCvsPtAllDCAZ;              //! Momentum resolution vs DCAZ
110   TH3F *fPtAllminPtMCvsPtAllPhi;               //! Momentum resolution vs Phi
111   TH3F *fPtAllminPtMCvsPtAllNPointITS;         //! Momentum resolution vs NPointITS
112   TH3F *fPtAllminPtMCvsPtAllNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertes
113   TH3F *fPtAllminPtMCvsPtAllChi2C;             //! Momentum resolution vs Chi2Constrained
114   TH3F *fPtAllminPtMCvsPtAllRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
115
116   TH1F *fPtAllMC;     //! Pt spectrum all charged particles
117   TH1F *fPtSelMC;     //! Pt spectrum all selected charged particles by fTrackCuts
118   TH1F *fPtSelMCITS;  //! Pt spectrum all selected charged particles by fTrackCutsITS
119
120   TList *fHistList; //! List of Histograms
121   
122   TH1F *fPtSelITS;                              //! Pt spectrum all selected charged particles by fTrackCutsITS
123   TH2F *fPtITSminPtMCvsPtITS;                  //! Momentum resolution (global with ITSrefit vs MC)
124   TH3F *fPtITSminPtMCvsPtITSNPointTPC;         //! Momentum resolution vs NPointTPC 
125   TH3F *fPtITSminPtMCvsPtITSDCAR;              //! Momentum resolution vs DCAR
126   TH3F *fPtITSminPtMCvsPtITSDCAZ;              //! Momentum resolution vs DCAZ
127   TH3F *fPtITSminPtMCvsPtITSPhi;               //! Momentum resolution vs Phi
128   TH3F *fPtITSminPtMCvsPtITSNPointITS;         //! Momentum resolution vs NPointITS
129   TH3F *fPtITSminPtMCvsPtITSNSigmaToVertex;    //! Momentum resolution vs NSigmaToVertex
130   TH3F *fPtITSminPtMCvsPtITSChi2C;             //! Momentum resolution vs Chi2Constrained
131   TH3F *fPtITSminPtMCvsPtITSRel1PtUncertainty; //! Momentum resolution vs relUncertainty1Pt
132
133   TList *fHistListITS; //! List of Histograms
134
135  
136   ClassDef(AliPWG4HighPtQAMC,1) 
137   
138 };
139 #endif