1 #ifndef ALIPROTONQAANALYSIS_H
2 #define ALIPROTONQAANALYSIS_H
4 /* See cxx source for full Copyright notice */
7 /* $Id: AliProtonQAAnalysis.h 29114 2008-10-03 16:49:02Z pchrist $ */
9 //-------------------------------------------------------------------------
10 // Class AliProtonQAAnalysis
11 // This is the class for the baryon (proton) analysis
13 // Origin: Panos Christakoglou | Panos.Christakoglou@cern.ch
14 //-------------------------------------------------------------------------
30 class AliGenEventHeader;
33 class AliProtonAnalysisBase;
35 class AliProtonQAAnalysis : public TObject {
37 AliProtonQAAnalysis();
38 virtual ~AliProtonQAAnalysis();
40 void SetBaseAnalysis(AliProtonAnalysisBase *baseAnalysis) {
41 fProtonAnalysisBase = baseAnalysis;}
42 AliProtonAnalysisBase *GetProtonAnalysisBaseObject() {
43 return fProtonAnalysisBase;}
46 void RunVertexQA(AliGenEventHeader *header,
49 TList *GetVertexQAList() {return fQAVertexList;}
52 void SetQAYPtBins(Int_t nbinsY, Double_t minY, Double_t maxY,
53 Int_t nbinsPt, Double_t minPt, Double_t maxPt);
54 void RunQAAnalysis(AliStack *stack,
56 const AliESDVertex *vertex);
57 void SetRunQAAnalysis();
58 TList *GetGlobalQAList() {return fGlobalQAList;}
60 //Efficiency plots (reconstruction & PID)
61 void RunEfficiencyAnalysis(AliMCEvent *mcEvent,
63 const AliESDVertex *vertex);
64 void RunEfficiencyAnalysis(AliStack *stack,
66 const AliESDVertex *vertex);
67 void SetRunEfficiencyAnalysis(Bool_t gUseCuts) {
68 fRunEfficiencyAnalysis = kTRUE;
69 fUseCutsInEfficiency = gUseCuts;
71 TList *GetEfficiencyQAList() {return fEfficiencyList;}
74 void RunMCAnalysis(AliStack* stack);
75 void SetRunMCAnalysis() {fRunMCAnalysis = kTRUE;}
76 void SetMCProcessId(Int_t id) {
77 fMCProcessIdFlag = kTRUE;
80 void SetMotherParticlePDGCode(Int_t pdgCode) {
81 fMotherParticlePDGCodeFlag = kTRUE;
82 fMotherParticlePDGCode = pdgCode;
84 TList *GetPDGList() {return fPDGList;}
85 TList *GetMCProcessesList() {return fMCProcessesList;}
87 TList *GetAcceptedCutList() {return fAcceptedCutList;}
88 TList *GetRejectedCutList() {return fRejectedCutList;}
89 TList *GetAcceptedDCAList() {return fAcceptedDCAList;}
90 TList *GetRejectedDCAList() {return fRejectedDCAList;}
93 AliProtonQAAnalysis(const AliProtonQAAnalysis&); // Not implemented
94 AliProtonQAAnalysis& operator=(const AliProtonQAAnalysis&);// Not implemented
98 void InitMCAnalysis();
100 void InitEfficiencyAnalysis();
101 void FillQA(AliStack *stack,
103 const AliESDVertex *vertex,
106 Bool_t IsLabelUsed(TArrayI array, Int_t label);
107 Int_t ConvertPDGToInt(Int_t pdgCode);
109 AliProtonAnalysisBase *fProtonAnalysisBase;//base analysis object
111 Int_t fNBinsY; //number of bins in eta or y
112 Float_t fMinY, fMaxY; //min & max value of eta or y
113 Int_t fNBinsPt; //number of bins in pT
114 Float_t fMinPt, fMaxPt; //min & max value of pT
117 //Bool_t fQAHistograms; //Boolean to activate the QA histograms
118 TList *fGlobalQAList; //TList storing the directories for the QA histograms
119 TList *fQAVertexList; //TList storing the vertex QA plots
120 TList *fQA2DList; //TList storing the accepted primary/secondary (anti)protons
121 TList *fQAPrimaryProtonsAcceptedList; //list of the QA histos for accepted primary protons
122 TList *fQAPrimaryProtonsRejectedList; //list of the QA histos for rejected primary protons
123 TList *fQASecondaryProtonsAcceptedList; //list of the QA histos for accepted secondary protons
124 TList *fQASecondaryProtonsRejectedList; //list of the QA histos for rejected secondary protons
125 TList *fQAPrimaryAntiProtonsAcceptedList; //list of the QA histos for accepted primary antiprotons
126 TList *fQAPrimaryAntiProtonsRejectedList; //list of the QA histos for rejected primary antiprotons
127 TList *fQASecondaryAntiProtonsAcceptedList; //list of the QA histos for accepted secondary antiprotons
128 TList *fQASecondaryAntiProtonsRejectedList; //list of the QA histos for rejected secondary antiprotons
131 TList *fPDGList; //list with the 3D histograms: y-pt-pdg (anti)protons
132 TList *fMCProcessesList; //list with the MC processes for every secondary (anti)proton
133 Bool_t fRunMCAnalysis; //run this part or not
134 Bool_t fMCProcessIdFlag; //flag to see if we should check the process id
135 UInt_t fMCProcessId; //process id based on the TMCProcess
136 Bool_t fMotherParticlePDGCodeFlag; //flag to see if we should check the pdg code of the mother particle
137 Int_t fMotherParticlePDGCode; //pdg code of the mother particle
139 TList *fAcceptedCutList;// list of the cut parameters' histograms
140 TList *fRejectedCutList;// list of the cut parameters' histograms
141 TList *fAcceptedDCAList;// list of the DCA histograms
142 TList *fRejectedDCAList;// list of the DCA histograms
144 //Efficiency (reconstruction & PID)
145 Bool_t fRunEfficiencyAnalysis; //run this part or not
146 Bool_t fUseCutsInEfficiency;//use the cuts in the reco and pid efficiency
148 TList *fEfficiencyList;// list of the efficiency histograms
150 ClassDef(AliProtonQAAnalysis,1);