]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/dNdPt/AlidNdPtHelper.h
change histogram bining
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtHelper.h
index f298489febdecfa42fc388aaf7adb3af640e93ac..f83ee49b03bc0b84e89d2399b9fad420dd76b2e9 100644 (file)
@@ -9,17 +9,14 @@
 //
 
 #include <TObject.h>
+#include <THnSparse.h>
+#include "AliTriggerAnalysis.h"
 
-class TParticle;
+class TF1;
 class TH1;
-class TH1F;
-class TH2F;
 class TH2;
-class TH3;
-class TF1;
-class TTree;
-class TArrayI;
-
+class THnSparse;
+class TParticle;
 class AliHeader;
 class AliGenEventHeader;
 class AliStack;
@@ -31,64 +28,86 @@ class AliESDVertex;
 class AliESDtrackCuts;
 class AlidNdPtAcceptanceCuts;
 class AlidNdPtEventCuts;
+class AliPWG0Helper;
 
-#include "AliPWG0Helper.h"
-#include "THnSparse.h"
+class AliGenDPMjetEventHeader;
+class AliGenCocktailEventHeader;
+class AliGenPythiaEventHeader;
+class AliVertexerTracks;
+class AliLog;
+class AliHeader;
 
 class AlidNdPtHelper : public TObject
 {
   public:
-    enum AnalysisMode { kInvalid = -1, kSPD = 0, kTPC, kTPCITS, kTPCSPDvtx, kTPCSPDvtxUpdate, kMCRec };
-    enum ParticleMode { kAllPart = 0, kMCPion, kMCKaon, kMCProton, kPlus, kMinus, kCosmics};
-
-    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);
+    enum AnalysisMode { kInvalid = -1, kSPD = 0, kTPC, kTPCITS, kTPCSPDvtx, kTPCSPDvtxUpdate, kTPCTrackSPDvtx, kTPCTrackSPDvtxUpdate, kTPCITSHybrid, kTPCITSHybridTrackSPDvtx, kTPCITSHybridTrackSPDvtxDCArPt, kITSStandAloneTrackSPDvtx,kITSStandAloneTPCTrackSPDvtx, kMCRec };
 
-    static const AliESDVertex* GetTPCVertexZ(AliESDEvent* aEsd, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts, Float_t fraction=0.8, Int_t ntracksMin=2);
+    enum ParticleMode { kAllPart = 0, kMCPion, kMCKaon, kMCProton, kPlus, kMinus, kCosmic, kBackgroundTrack, kMCRest, kVZEROCase1, kVZEROCase2};
 
-    static Bool_t TestRecVertex(const AliESDVertex* vertex, AnalysisMode analysisMode, Bool_t debug = kFALSE);
-
-    static Bool_t IsPrimaryParticle(AliStack *stack, Int_t idx, ParticleMode particleMode);
-    //static Bool_t IsCosmicTrack(TObjArray *allChargedTracks, AliESDtrack *track, Int_t trackIdx, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts);
-    static Bool_t IsCosmicTrack(AliESDtrack *track1, AliESDtrack *track2);
-    static void PrintConf(AnalysisMode analysisMode, AliTriggerAnalysis::Trigger trigger);
-    static Int_t ConvertPdgToPid(TParticle *particle);
+    enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kAnalysisPbPb, kCorrection, kSystematics, kCutAnalysisPbPb };
 
-    enum OutputObject { kInvalidObject = -1, kCutAnalysis = 0, kAnalysis, kCorrection, kSystematics };
     enum TrackObject  { kInvalidTrackObject = -1, kAllTracks = 0, kAccTracks, kRecTracks, kMCTracks };
     enum EventObject  { kInvalidEventObject = -1, kAllEvents = 0, kTriggeredEvents, kAccEvents, kRecEvents, kMCEvents };
     enum CutSteps     { kCutSteps = 3 };
 
-    static TObjArray *GetAllChargedTracks(AliESDEvent *esdEvent, AnalysisMode analysisMode);
+    static const AliESDVertex* GetVertex(AliESDEvent* const aEsd, const AlidNdPtEventCuts *const evtCuts,const  AlidNdPtAcceptanceCuts *const accCuts,const  AliESDtrackCuts *const trackCuts,  AnalysisMode analysisMethod, Bool_t debug = kFALSE,Bool_t bRedoTPC = kFALSE, Bool_t bUseMeanVertex = kFALSE);
 
-    static TH1F* MakeResol(TH2F * his, Int_t integ, Bool_t type, Bool_t drawBins, Int_t minHistEntries);
-    static TH1F* CreateResHisto(TH2F* hRes2, TH1F **phMean, Int_t integ,  Bool_t drawBinFits, Int_t minHistEntries);
+    static const AliESDVertex* GetTPCVertexZ(const AliESDEvent* const aEsd, const AlidNdPtEventCuts *const evtCuts, const AlidNdPtAcceptanceCuts *const accCuts, const AliESDtrackCuts *const trackCuts, Float_t fraction=0.8, Int_t ntracksMin=2);
 
-    static Int_t GetTPCMBTrackMult(AliESDEvent* esdEvent, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts);
-    static Int_t GetTPCMBPrimTrackMult(AliESDEvent* esdEvent, AliStack * stack,AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts, AliESDtrackCuts *trackCuts);
+    static Bool_t TestRecVertex(const AliESDVertex* vertex, const AliESDVertex* vertexSPD, AnalysisMode analysisMode, Bool_t debug = kFALSE);
+
+    static Bool_t IsPrimaryParticle(AliStack *const stack, Int_t idx, ParticleMode particleMode);
+    static Bool_t IsCosmicTrack(AliESDtrack *const track1, AliESDtrack *const track2);
+    static Bool_t IsGoodImpPar(const AliESDtrack *const track);
+    static Int_t ConvertPdgToPid(const TParticle *const particle);
+
+    static TObjArray *GetAllChargedTracks(AliESDEvent *const esdEvent, AnalysisMode analysisMode);
+
+    static TH1F* MakeResol(TH2F * const his, Int_t integ, Bool_t type, Bool_t drawBins, Int_t minHistEntries);
+    static TH1F* CreateResHisto(TH2F* const hRes2, TH1F **phMean, Int_t integ,  Bool_t drawBinFits, Int_t minHistEntries);
+
+    static Int_t GetTPCMBTrackMult(const AliESDEvent* const esdEvent, const AlidNdPtEventCuts *const evtCuts,const  AlidNdPtAcceptanceCuts *const accCuts, const AliESDtrackCuts *const trackCuts);
+    static Int_t GetTPCMBPrimTrackMult(const AliESDEvent* const esdEvent, AliStack * const stack,const AlidNdPtEventCuts *const evtCuts, const AlidNdPtAcceptanceCuts *const accCuts, const AliESDtrackCuts *const trackCuts);
+
+    static Int_t GetSPDMBTrackMult(const AliESDEvent* const esdEvent, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
+    static Int_t GetSPDMBPrimTrackMult(const AliESDEvent* const esdEvent, AliStack *const  stack, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
+    static Int_t GetMCTrueTrackMult(AliMCEvent *const mcEvent, AlidNdPtEventCuts *const evtCuts, AlidNdPtAcceptanceCuts *const accCuts);
+
+    static AliESDtrack* GetTPCOnlyTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
+    static AliESDtrack* GetTPCOnlyTrackTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
+    static AliESDtrack* GetTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
+    static AliESDtrack* GetTrackTrackSPDvtx(const AliESDEvent* const esdEvent, Int_t iTrack, Bool_t bUpdate);
+
+    static void PrintConf(AnalysisMode analysisMode, AliTriggerAnalysis::Trigger trigger);
+    static void PrintMCInfo(AliStack *const pStack, Int_t label);
 
-    static Int_t GetSPDMBTrackMult(AliESDEvent* esdEvent, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
-    static Int_t GetSPDMBPrimTrackMult(AliESDEvent* esdEvent, AliStack * stack, Float_t deltaThetaCut =0.025, Float_t deltaPhiCut = 0.08);
-    static Int_t GetMCTrueTrackMult(AliMCEvent *mcEvent, AlidNdPtEventCuts *evtCuts, AlidNdPtAcceptanceCuts *accCuts);
+    static TH1* ScaleByBinWidth(TH1 *const hist=0);
+    static TH1* GetContCorrHisto(TH1 *const hist=0);
+    static TH1* CalcRelativeDifference(const TH1 *const hist1=0, const TH1 *const hist2=0);
+    static TH1* CalcRelativeDifferenceFun(const TH1 *const hist=0, TF1 *const fun=0);
+    static TH1* NormalizeToEvent(const TH2 *const hist1=0, const TH1 *const hist2=0);
 
-    static AliESDtrack* GetTPCOnlyTrackSPDvtx(AliESDEvent* esdEvent, Int_t iTrack, Bool_t bUpdate);
+    //static THnSparse* GenerateCorrMatrix(THnSparse *const hist1, const THnSparse *const hist2, char *const name);
+    //static TH2* GenerateCorrMatrix(TH2 *const hist1, TH2 *const hist2, char *const name);
+    //static TH1* GenerateCorrMatrix(TH1 *const hist1, TH1 *const hist2, char *const name);
 
-    static void PrintMCInfo(AliStack *pStack, Int_t label);
+    //static THnSparse* GenerateContCorrMatrix(THnSparse *const hist1, THnSparse *const hist2, char *const name);
+    //static TH2* GenerateContCorrMatrix(TH2 *const hist1, TH2 *const hist2, char *const name);
+    //static TH1* GenerateContCorrMatrix(TH1 *const hist1, TH1 *const hist2, char *const name);
 
-    static TH1* ScaleByBinWidth(TH1 *hist=0);
-    static TH1* GetContCorrHisto(TH1 *hist=0);
-    static TH1* CalcRelativeDifference(TH1 *hist1=0, TH1 *hist2=0);
-    static TH1* CalcRelativeDifferenceFun(TH1 *hist=0, TF1 *fun=0);
-    static TH1* NormalizeToEvent(TH2 *hist1=0, TH1 *hist2=0);
+    static THnSparse* GenerateCorrMatrix(THnSparse *const hist1, const THnSparse *const hist2, const char * name);
+    static TH2* GenerateCorrMatrix(TH2 *const hist1, TH2 *const hist2, const char* name);
+    static TH1* GenerateCorrMatrix(TH1 *const hist1, TH1 *const hist2, const char* name);
 
-    static THnSparse* GenerateCorrMatrix(THnSparse *hist1, THnSparse *hist2, char *name);
-    static TH2* GenerateCorrMatrix(TH2 *hist1, TH2 *hist2, char *name);
-    static TH1* GenerateCorrMatrix(TH1 *hist1, TH1 *hist2, char *name);
+    static THnSparse* GenerateContCorrMatrix(THnSparse *const hist1, const THnSparse *const hist2, const char* name);
+    static TH2* GenerateContCorrMatrix(TH2 *const hist1, TH2 *const hist2, const char* name);
+    static TH1* GenerateContCorrMatrix(TH1 *const hist1, TH1 *const hist2, const char* name);
 
-    static THnSparse* GenerateContCorrMatrix(THnSparse *hist1, THnSparse *hist2, char *name);
-    static TH2* GenerateContCorrMatrix(TH2 *hist1, TH2 *hist2, char *name);
-    static TH1* GenerateContCorrMatrix(TH1 *hist1, TH1 *hist2, char *name);
+    static Double_t GetStrangenessCorrFactor(const Double_t pt);
+    static Double_t GetStrangenessCorrFactorPbPb(const Double_t pt);    
+    static Double_t GetLinearInterpolationValue(const Double_t x1, const Double_t y1, const Double_t x2, const Double_t y2, const Double_t pt);
 
-    ClassDef(AlidNdPtHelper, 0);
+    ClassDef(AlidNdPtHelper, 1);
 
   private:
     AlidNdPtHelper(const AlidNdPtHelper&);