]>
Commit | Line | Data |
---|---|---|
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 | ||
13 | class TParticle; | |
14 | class TH1; | |
15 | class TH1F; | |
16 | class TH2F; | |
17 | class TH2; | |
18 | class TH3; | |
19 | class TF1; | |
20 | class TTree; | |
21 | class TArrayI; | |
22 | ||
23 | class AliHeader; | |
24 | class AliGenEventHeader; | |
25 | class AliStack; | |
26 | class AliESD; | |
27 | class AliESDEvent; | |
28 | class AliESDtrack; | |
29 | class AliMCEvent; | |
30 | class AliESDVertex; | |
31 | class AliESDtrackCuts; | |
32 | class AlidNdPtAcceptanceCuts; | |
33 | class AlidNdPtEventCuts; | |
34 | ||
bad4ba69 | 35 | #include "AliPWG0Helper.h" |
0aaa8b91 | 36 | #include "THnSparse.h" |
bad4ba69 | 37 | |
0aaa8b91 | 38 | class 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 |