]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdPt/AlidNdPtHelper.h
removed duplications in AlidNdPtHelper and AliPWG0Helper and small changes
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtHelper.h
CommitLineData
0aaa8b91 1#ifndef ALIDNDPTHELPER_H
2#define ALIDNDPTHELPER_H
3
4//
bad4ba69 5// static dNdPt helper functions
6//
7// Origin: Jan Fiete Grosse-Oetringhaus
8// Modified and Extended: Jacek Otwinowski 19/11/2009
0aaa8b91 9//
10
11#include <TObject.h>
12
13class TParticle;
14class TH1;
15class TH1F;
16class TH2F;
17class TH2;
18class TH3;
19class TF1;
20class TTree;
21class TArrayI;
22
23class AliHeader;
24class AliGenEventHeader;
25class AliStack;
26class AliESD;
27class AliESDEvent;
28class AliESDtrack;
29class AliMCEvent;
30class AliESDVertex;
31class AliESDtrackCuts;
32class AlidNdPtAcceptanceCuts;
33class AlidNdPtEventCuts;
34
bad4ba69 35#include "AliPWG0Helper.h"
0aaa8b91 36#include "THnSparse.h"
bad4ba69 37
0aaa8b91 38class AlidNdPtHelper : public TObject
39{
40 public:
0aaa8b91 41 enum AnalysisMode { kInvalid = -1, kSPD = 0, kTPC, kTPCITS, kTPCSPDvtx, kMCRec, kMCPion, kMCKaon, kMCProton, kPlus, kMinus };
0aaa8b91 42 static const AliESDVertex* GetVertex(AliESDEvent* aEsd, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts, AnalysisMode analysisMethod, Bool_t debug = kFALSE,Bool_t bRedoTPC = kFALSE, Bool_t bUseMeanVertex = kFALSE);
0aaa8b91 43
bad4ba69 44 static const AliESDVertex* GetTPCVertexZ(AliESDEvent* aEsd, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts, Float_t fraction=0.8, Int_t ntracksMin=2);
0aaa8b91 45
bad4ba69 46 static Bool_t TestRecVertex(const AliESDVertex* vertex, AnalysisMode analysisMode, Bool_t debug = kFALSE);
0aaa8b91 47
0aaa8b91 48 static Bool_t IsPrimaryParticle(AliStack *stack, Int_t idx, AnalysisMode analysisMode);
bad4ba69 49 static void PrintConf(AnalysisMode analysisMode, AliPWG0Helper::Trigger trigger);
0aaa8b91 50 static Int_t ConvertPdgToPid(TParticle *particle);
51
52 enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kCorrection, kSystematics };
53 enum TrackObject { kInvalidTrackObject = -1, kAllTracks = 0, kAccTracks, kRecTracks, kMCTracks };
54 enum EventObject { kInvalidEventObject = -1, kAllEvents = 0, kTriggeredEvents, kAccEvents, kRecEvents, kMCEvents };
55 enum CutSteps { kCutSteps = 3 };
56
bad4ba69 57 static TObjArray *GetAllChargedTracks(AliESDEvent *esdEvent, AnalysisMode analysisMode);
0aaa8b91 58
59 static TH1F* MakeResol(TH2F * his, Int_t integ, Bool_t type, Bool_t drawBins, Int_t minHistEntries);
60 static TH1F* CreateResHisto(TH2F* hRes2, TH1F **phMean, Int_t integ, Bool_t drawBinFits, Int_t minHistEntries);
61
62 static Int_t GetTPCMBTrackMult(AliESDEvent* esdEvent, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts);
63 static Int_t GetTPCMBPrimTrackMult(AliESDEvent* esdEvent, AliStack * stack,AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts);
64
65 static Int_t GetSPDMBTrackMult(AliESDEvent* esdEvent, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
66 static Int_t GetSPDMBPrimTrackMult(AliESDEvent* esdEvent, AliStack * stack, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
67 static Int_t GetMCTrueTrackMult(AliMCEvent *mcEvent, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts);
68
69 static void PrintMCInfo(AliStack *pStack, Int_t label);
70
71 static TH1* ScaleByBinWidth(TH1 *hist=0);
72 static TH1* GetContCorrHisto(TH1 *hist=0);
73 static TH1* CalcRelativeDifference(TH1 *hist1=0, TH1 *hist2=0);
74 static TH1* CalcRelativeDifferenceFun(TH1 *hist=0, TF1 *fun=0);
75 static TH1* NormalizeToEvent(TH2 *hist1=0, TH1 *hist2=0);
76
77 static THnSparse* GenerateCorrMatrix(THnSparse *hist1, THnSparse *hist2, char *name);
78 static TH2* GenerateCorrMatrix(TH2 *hist1, TH2 *hist2, char *name);
79 static TH1* GenerateCorrMatrix(TH1 *hist1, TH1 *hist2, char *name);
80
81 static THnSparse* GenerateContCorrMatrix(THnSparse *hist1, THnSparse *hist2, char *name);
82 static TH2* GenerateContCorrMatrix(TH2 *hist1, TH2 *hist2, char *name);
83 static TH1* GenerateContCorrMatrix(TH1 *hist1, TH1 *hist2, char *name);
84
0aaa8b91 85 ClassDef(AlidNdPtHelper, 0);
86
87 private:
88 AlidNdPtHelper(const AlidNdPtHelper&);
89 AlidNdPtHelper& operator=(const AlidNdPtHelper&);
90};
91
92#endif
93