]>
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> | |
f2dec884 | 12 | #include <THnSparse.h> |
13 | #include "AliTriggerAnalysis.h" | |
0aaa8b91 | 14 | |
8606be51 | 15 | class TF1; |
cf6f87ea | 16 | class TH1; |
17 | class TH2; | |
f2dec884 | 18 | class TParticle; |
0aaa8b91 | 19 | class AliHeader; |
20 | class AliGenEventHeader; | |
21 | class AliStack; | |
22 | class AliESD; | |
23 | class AliESDEvent; | |
24 | class AliESDtrack; | |
25 | class AliMCEvent; | |
26 | class AliESDVertex; | |
27 | class AliESDtrackCuts; | |
28 | class AlidNdPtAcceptanceCuts; | |
29 | class AlidNdPtEventCuts; | |
f2dec884 | 30 | class AliPWG0Helper; |
0aaa8b91 | 31 | |
f2dec884 | 32 | class AliGenDPMjetEventHeader; |
33 | class AliGenCocktailEventHeader; | |
34 | class AliGenPythiaEventHeader; | |
35 | class AliVertexerTracks; | |
36 | class AliLog; | |
37 | class AliHeader; | |
bad4ba69 | 38 | |
0aaa8b91 | 39 | class AlidNdPtHelper : public TObject |
40 | { | |
41 | public: | |
695facdf | 42 | enum AnalysisMode { kInvalid = -1, kSPD = 0, kTPC, kTPCITS, kTPCSPDvtx, kTPCSPDvtxUpdate, kTPCTrackSPDvtx, kTPCTrackSPDvtxUpdate, kTPCITSHybrid, kTPCITSHybridTrackSPDvtx, kTPCITSHybridTrackSPDvtxDCArPt, kITSStandAloneTrackSPDvtx,kITSStandAloneTPCTrackSPDvtx, kMCRec }; |
de93884d | 43 | |
695facdf | 44 | enum ParticleMode { kAllPart = 0, kMCPion, kMCKaon, kMCProton, kPlus, kMinus, kCosmic, kBackgroundTrack, kMCRest, kVZEROCase1, kVZEROCase2}; |
774986ef | 45 | |
de93884d | 46 | enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kAnalysisPbPb , kCorrection, kSystematics }; |
47 | ||
774986ef | 48 | enum TrackObject { kInvalidTrackObject = -1, kAllTracks = 0, kAccTracks, kRecTracks, kMCTracks }; |
49 | enum EventObject { kInvalidEventObject = -1, kAllEvents = 0, kTriggeredEvents, kAccEvents, kRecEvents, kMCEvents }; | |
50 | enum CutSteps { kCutSteps = 3 }; | |
847e74b2 | 51 | |
f2dec884 | 52 | static const AliESDVertex* GetVertex(AliESDEvent* const aEsd, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, AliESDtrackCuts *const trackCuts, AnalysisMode analysisMethod, Bool_t debug = kFALSE,Bool_t bRedoTPC = kFALSE, Bool_t bUseMeanVertex = kFALSE); |
0aaa8b91 | 53 | |
f2dec884 | 54 | static const AliESDVertex* GetTPCVertexZ(AliESDEvent* const aEsd, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, AliESDtrackCuts *const trackCuts, Float_t fraction=0.8, Int_t ntracksMin=2); |
0aaa8b91 | 55 | |
b950b434 | 56 | static Bool_t TestRecVertex(const AliESDVertex* vertex, const AliESDVertex* vertexSPD, AnalysisMode analysisMode, Bool_t debug = kFALSE); |
0aaa8b91 | 57 | |
f2dec884 | 58 | static Bool_t IsPrimaryParticle(AliStack *const stack, Int_t idx, ParticleMode particleMode); |
f2dec884 | 59 | static Bool_t IsCosmicTrack(AliESDtrack *const track1, AliESDtrack *const track2); |
791aaf54 | 60 | static Bool_t IsGoodImpPar(AliESDtrack *const track); |
f2dec884 | 61 | static Int_t ConvertPdgToPid(TParticle *const particle); |
0aaa8b91 | 62 | |
f2dec884 | 63 | static TObjArray *GetAllChargedTracks(AliESDEvent *const esdEvent, AnalysisMode analysisMode); |
0aaa8b91 | 64 | |
f2dec884 | 65 | static TH1F* MakeResol(TH2F * const his, Int_t integ, Bool_t type, Bool_t drawBins, Int_t minHistEntries); |
66 | static TH1F* CreateResHisto(TH2F* const hRes2, TH1F **phMean, Int_t integ, Bool_t drawBinFits, Int_t minHistEntries); | |
0aaa8b91 | 67 | |
f2dec884 | 68 | static Int_t GetTPCMBTrackMult(AliESDEvent* const esdEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, AliESDtrackCuts *const trackCuts); |
69 | static Int_t GetTPCMBPrimTrackMult(AliESDEvent* const esdEvent, AliStack * const stack,AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts, AliESDtrackCuts *const trackCuts); | |
0aaa8b91 | 70 | |
f2dec884 | 71 | static Int_t GetSPDMBTrackMult(AliESDEvent* const esdEvent, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08); |
72 | static Int_t GetSPDMBPrimTrackMult(AliESDEvent* const esdEvent, AliStack *const stack, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08); | |
73 | static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts); | |
0aaa8b91 | 74 | |
f2dec884 | 75 | static AliESDtrack* GetTPCOnlyTrackSPDvtx(AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate); |
791aaf54 | 76 | static AliESDtrack* GetTPCOnlyTrackTrackSPDvtx(AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate); |
774986ef | 77 | static AliESDtrack* GetTrackSPDvtx(AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate); |
791aaf54 | 78 | static AliESDtrack* GetTrackTrackSPDvtx(AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate); |
847e74b2 | 79 | |
774986ef | 80 | static void PrintConf(AnalysisMode analysisMode, AliTriggerAnalysis::Trigger trigger); |
f2dec884 | 81 | static void PrintMCInfo(AliStack *const pStack, Int_t label); |
0aaa8b91 | 82 | |
f2dec884 | 83 | static TH1* ScaleByBinWidth(TH1 *const hist=0); |
84 | static TH1* GetContCorrHisto(TH1 *const hist=0); | |
85 | static TH1* CalcRelativeDifference(TH1 *const hist1=0, TH1 *const hist2=0); | |
86 | static TH1* CalcRelativeDifferenceFun(TH1 *const hist=0, TF1 *const fun=0); | |
87 | static TH1* NormalizeToEvent(TH2 *const hist1=0, TH1 *const hist2=0); | |
0aaa8b91 | 88 | |
a9b12ce1 | 89 | //static THnSparse* GenerateCorrMatrix(THnSparse *const hist1, THnSparse *const hist2, char *const name); |
90 | //static TH2* GenerateCorrMatrix(TH2 *const hist1, TH2 *const hist2, char *const name); | |
91 | //static TH1* GenerateCorrMatrix(TH1 *const hist1, TH1 *const hist2, char *const name); | |
0aaa8b91 | 92 | |
a9b12ce1 | 93 | //static THnSparse* GenerateContCorrMatrix(THnSparse *const hist1, THnSparse *const hist2, char *const name); |
94 | //static TH2* GenerateContCorrMatrix(TH2 *const hist1, TH2 *const hist2, char *const name); | |
95 | //static TH1* GenerateContCorrMatrix(TH1 *const hist1, TH1 *const hist2, char *const name); | |
96 | ||
97 | static THnSparse* GenerateCorrMatrix(THnSparse *const hist1, THnSparse *const hist2, const char * name); | |
98 | static TH2* GenerateCorrMatrix(TH2 *const hist1, TH2 *const hist2, const char* name); | |
99 | static TH1* GenerateCorrMatrix(TH1 *const hist1, TH1 *const hist2, const char* name); | |
100 | ||
101 | static THnSparse* GenerateContCorrMatrix(THnSparse *const hist1, THnSparse *const hist2, const char* name); | |
102 | static TH2* GenerateContCorrMatrix(TH2 *const hist1, TH2 *const hist2, const char* name); | |
103 | static TH1* GenerateContCorrMatrix(TH1 *const hist1, TH1 *const hist2, const char* name); | |
0aaa8b91 | 104 | |
791aaf54 | 105 | static Double_t GetStrangenessCorrFactor(const Double_t pt); |
106 | static Double_t GetLinearInterpolationValue(const Double_t x1, const Double_t y1, const Double_t x2, const Double_t y2, const Double_t pt); | |
107 | ||
0aaa8b91 | 108 | ClassDef(AlidNdPtHelper, 0); |
109 | ||
110 | private: | |
111 | AlidNdPtHelper(const AlidNdPtHelper&); | |
112 | AlidNdPtHelper& operator=(const AlidNdPtHelper&); | |
113 | }; | |
114 | ||
115 | #endif | |
116 |