]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliProtonQAAnalysis.h
Mods in the drawProtonResult
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliProtonQAAnalysis.h
CommitLineData
3e6c06f4 1#ifndef ALIPROTONQAANALYSIS_H
2#define ALIPROTONQAANALYSIS_H
3
4/* See cxx source for full Copyright notice */
5
6
7/* $Id: AliProtonQAAnalysis.h 29114 2008-10-03 16:49:02Z pchrist $ */
8
9//-------------------------------------------------------------------------
10// Class AliProtonQAAnalysis
11// This is the class for the baryon (proton) analysis
12//
dd3fa486 13// Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch
3e6c06f4 14//-------------------------------------------------------------------------
15
16#include "TObject.h"
3e6c06f4 17#include "TList.h"
9c0b9f24 18#include "TArrayI.h"
3e6c06f4 19
3e6c06f4 20class TF1;
3e6c06f4 21class TH1F;
d4733690 22class TH3F;
3e6c06f4 23
73aba974 24class AliPID;
3e6c06f4 25class AliESDEvent;
26class AliESDtrack;
27class AliStack;
75decd62 28class AliGenEventHeader;
6667f3a7 29class AliESDVertex;
4042c3a2 30class AliMCEvent;
e7df5638 31class AliProtonAnalysisBase;
3e6c06f4 32
33class AliProtonQAAnalysis : public TObject {
34 public:
35 AliProtonQAAnalysis();
36 virtual ~AliProtonQAAnalysis();
37
73aba974 38 void SetBaseAnalysis(AliProtonAnalysisBase *const baseAnalysis) {
e7df5638 39 fProtonAnalysisBase = baseAnalysis;}
73aba974 40 AliProtonAnalysisBase *GetProtonAnalysisBaseObject() const {
e7df5638 41 return fProtonAnalysisBase;}
3e6c06f4 42
75decd62 43 //Vertex QA
44 void RunVertexQA(AliGenEventHeader *header,
75decd62 45 AliESDEvent *esd);
73aba974 46 TList *GetVertexQAList() const {return fQAVertexList;}
75decd62 47
9c0b9f24 48 //QA histograms
4acc9d4d 49 void SetQAYPtBins(Int_t nbinsY, Double_t *gY,
50 Int_t nbinsPt, Double_t *gPt);
9c0b9f24 51 void SetQAYPtBins(Int_t nbinsY, Double_t minY, Double_t maxY,
52 Int_t nbinsPt, Double_t minPt, Double_t maxPt);
6667f3a7 53 void RunQAAnalysis(AliStack *stack,
54 AliESDEvent *esd,
55 const AliESDVertex *vertex);
9c0b9f24 56 void SetRunQAAnalysis();
73aba974 57 TList *GetGlobalQAList() const {return fGlobalQAList;}
9c0b9f24 58
59 //Efficiency plots (reconstruction & PID)
c20898de 60 void RunReconstructionEfficiencyAnalysis(AliMCEvent *mcEvent,
61 AliESDEvent *esd,
62 const AliESDVertex *vertex);
63 void RunPIDEfficiencyAnalysis(AliStack *stack,
d488527a 64 AliESDEvent *esd,
65 const AliESDVertex *vertex);
6667f3a7 66 void RunEfficiencyAnalysis(AliStack *stack,
67 AliESDEvent *esd,
68 const AliESDVertex *vertex);
dd3fa486 69 void SetRunEfficiencyAnalysis(Bool_t gUseCuts) {
e13bbda6 70 fRunEfficiencyAnalysis = kTRUE;
e13bbda6 71 fUseCutsInEfficiency = gUseCuts;
72 }
73aba974 73 TList *GetEfficiencyQAList() const {return fEfficiencyList;}
9c0b9f24 74
d4733690 75 //MC analysis
76 void RunMCAnalysis(AliStack* stack);
77 void SetRunMCAnalysis() {fRunMCAnalysis = kTRUE;}
5b8133c7 78 void SetMCProcessId(Int_t id) {
79 fMCProcessIdFlag = kTRUE;
80 fMCProcessId = id;
81 }
82 void SetMotherParticlePDGCode(Int_t pdgCode) {
83 fMotherParticlePDGCodeFlag = kTRUE;
84 fMotherParticlePDGCode = pdgCode;
85 }
73aba974 86 TList *GetPDGList() const {return fPDGList;}
87 TList *GetMCProcessesList() const {return fMCProcessesList;}
d4733690 88
73aba974 89 TList *GetAcceptedCutList() const {return fAcceptedCutList;}
90 TList *GetRejectedCutList() const {return fRejectedCutList;}
91 TList *GetAcceptedDCAList() const {return fAcceptedDCAList;}
92 TList *GetRejectedDCAList() const {return fRejectedDCAList;}
5b8133c7 93
3e6c06f4 94 private:
95 AliProtonQAAnalysis(const AliProtonQAAnalysis&); // Not implemented
9c0b9f24 96 AliProtonQAAnalysis& operator=(const AliProtonQAAnalysis&);// Not implemented
3e6c06f4 97
75decd62 98 void InitVertexQA();
9c0b9f24 99 void InitQA();
d4733690 100 void InitMCAnalysis();
5b8133c7 101 void InitCutLists();
9c0b9f24 102 void InitEfficiencyAnalysis();
e7df5638 103 void FillQA(AliStack *stack,
104 AliESDEvent *esd,
105 const AliESDVertex *vertex,
106 AliESDtrack* track);
107
9c0b9f24 108 Bool_t IsLabelUsed(TArrayI array, Int_t label);
73aba974 109 Int_t ConvertPDGToInt(Int_t pdgCode) const;
3e6c06f4 110
e7df5638 111 AliProtonAnalysisBase *fProtonAnalysisBase;//base analysis object
dd3fa486 112
113 Int_t fNBinsY; //number of bins in eta or y
114 Float_t fMinY, fMaxY; //min & max value of eta or y
4acc9d4d 115 Double_t *fY; //table of y or eta values - asymmetric
3e6c06f4 116 Int_t fNBinsPt; //number of bins in pT
117 Float_t fMinPt, fMaxPt; //min & max value of pT
4acc9d4d 118 Double_t *fPt; //table of pT values - asymmetric
119 Bool_t fUseAsymmetricBinning; //Flag showing if the asymmetric binning is used
120
3e6c06f4 121 //QA histograms
122 //Bool_t fQAHistograms; //Boolean to activate the QA histograms
123 TList *fGlobalQAList; //TList storing the directories for the QA histograms
75decd62 124 TList *fQAVertexList; //TList storing the vertex QA plots
3e6c06f4 125 TList *fQA2DList; //TList storing the accepted primary/secondary (anti)protons
126 TList *fQAPrimaryProtonsAcceptedList; //list of the QA histos for accepted primary protons
127 TList *fQAPrimaryProtonsRejectedList; //list of the QA histos for rejected primary protons
128 TList *fQASecondaryProtonsAcceptedList; //list of the QA histos for accepted secondary protons
129 TList *fQASecondaryProtonsRejectedList; //list of the QA histos for rejected secondary protons
130 TList *fQAPrimaryAntiProtonsAcceptedList; //list of the QA histos for accepted primary antiprotons
131 TList *fQAPrimaryAntiProtonsRejectedList; //list of the QA histos for rejected primary antiprotons
132 TList *fQASecondaryAntiProtonsAcceptedList; //list of the QA histos for accepted secondary antiprotons
133 TList *fQASecondaryAntiProtonsRejectedList; //list of the QA histos for rejected secondary antiprotons
134
d4733690 135 //MC analysis
136 TList *fPDGList; //list with the 3D histograms: y-pt-pdg (anti)protons
137 TList *fMCProcessesList; //list with the MC processes for every secondary (anti)proton
138 Bool_t fRunMCAnalysis; //run this part or not
5b8133c7 139 Bool_t fMCProcessIdFlag; //flag to see if we should check the process id
140 UInt_t fMCProcessId; //process id based on the TMCProcess
141 Bool_t fMotherParticlePDGCodeFlag; //flag to see if we should check the pdg code of the mother particle
142 Int_t fMotherParticlePDGCode; //pdg code of the mother particle
143
144 TList *fAcceptedCutList;// list of the cut parameters' histograms
145 TList *fRejectedCutList;// list of the cut parameters' histograms
146 TList *fAcceptedDCAList;// list of the DCA histograms
147 TList *fRejectedDCAList;// list of the DCA histograms
d4733690 148
9c0b9f24 149 //Efficiency (reconstruction & PID)
150 Bool_t fRunEfficiencyAnalysis; //run this part or not
e13bbda6 151 Bool_t fUseCutsInEfficiency;//use the cuts in the reco and pid efficiency
152
9c0b9f24 153 TList *fEfficiencyList;// list of the efficiency histograms
154
e7df5638 155 ClassDef(AliProtonQAAnalysis,1);
3e6c06f4 156};
157
158#endif