]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/SPECTRA/AliAnalysisTaskChargedHadronSpectra.h
changed behavior cut on integer values
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskChargedHadronSpectra.h
index 39cc2c8b6498b5c3157d7ee62a71aebe4986bd10..b9ba18e1a895a44a1658228fcb7649d4a5baee8a 100644 (file)
@@ -18,10 +18,11 @@ class AliESDEvent;
 class AliESDtrack;
 class AliESDtrackCuts;
 class AliHeader;
-class AliTPCpidESD;
+class AliESDpid;
 
 
 #include "AliAnalysisTaskSE.h"
+#include "THnSparse.h"
 
 class AliAnalysisTaskChargedHadronSpectra : public AliAnalysisTaskSE {
  public:
@@ -29,18 +30,21 @@ class AliAnalysisTaskChargedHadronSpectra : public AliAnalysisTaskSE {
   AliAnalysisTaskChargedHadronSpectra();
   virtual ~AliAnalysisTaskChargedHadronSpectra() {}
   //
-  virtual void   ConnectInputData(Option_t *);
-  virtual void   CreateOutputObjects();
-  virtual void   Exec(Option_t *option);
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
   //
+  Bool_t         SelectOnImpPar(AliESDtrack* t);
+  //
   void           SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
-  void           SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j];};
+  void           SetAlephParameters(const Double_t * parameters){for(Int_t j=0;j<5;j++) fAlephParameters[j] = parameters[j]; Initialize();};
   void           SetIsMCtrue(Bool_t isMCdata = kTRUE){fMCtrue = isMCdata;};
+  void           SetTrackingMode(Int_t trackingMode = 0){fTrackingMode = trackingMode; Initialize();};
+  void           Initialize();
   //
-  static TH1D *  AnalyseClassicProton(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
-  static TH1D *  AnalyseClassicPion(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
-  static TH1D *  AnalyseClassicKaon(const TH3F * input, Int_t EtaBin, const Double_t * AlephParams);
+  static TH1D *  AnalyseClassicProton(const TH3F * input, Int_t EtaBinLow,Int_t EtaBinHigh, const Double_t * AlephParams);
+  static TH1D *  AnalyseClassicPion(const TH3F * input, Int_t EtaBinLow, Int_t EtaBinHigh, const Double_t * AlephParams);
+  static TH1D *  AnalyseClassicKaon(const TH3F * input, Int_t EtaBinLow, Int_t EtaBinHigh, const Double_t * AlephParams);
   //
   static void    Postprocess(const TList * ListOfHistogramsMC,const  TList * ListOfHistogramsData, const Char_t *filename);
 
@@ -50,54 +54,52 @@ class AliAnalysisTaskChargedHadronSpectra : public AliAnalysisTaskSE {
   Int_t GetPythiaEventProcessType(const AliHeader* aHeader, const Bool_t adebug = kFALSE) const;
   //
   AliESDEvent *fESD;                  //! ESD object
-  TList       *fListHist;             // list for histograms
+  TList       *fListHist;             //! list for histograms
   //
   AliESDtrackCuts * fESDtrackCuts;    // basic cut variables
-  AliTPCpidESD    * fPidObject;       // basic TPC object for n-sigma cuts
+  AliESDpid       * fESDpid;          // basic TPC object for n-sigma cuts
   Bool_t        fMCtrue;              // flag if real data or MC is processed
+  Int_t         fTrackingMode;        // flag which traking mode should be used: 0: TPC only, 1: global tracking
   Double_t      fAlephParameters[5];  // Aleph Parameters for Bethe-Bloch
   //
   // MC histogram
   //
-  TH3F        *fHistPtMCKaon;        // (mult,eta,pT) for Kaons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtMCProton;      // (mult,eta,pT) for Protons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtMCPion;        // (mult,eta,pT) for Pions MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtMCElectron;    // (mult,eta,pT) for Electrons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtMCMuon;        // (mult,eta,pT) for Muons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtMCKaon;        //! (mult,eta,pT) for Kaons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtMCProton;      //! (mult,eta,pT) for Protons MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtMCPion;        //! (mult,eta,pT) for Pions MC truth; neg. x-axis for neg. particles, pos. x-axis for pos. particles
 
   // reconstructed particle histograms
-  TH3F        *fHistPtEtaKaon;       //  (mult,eta,pT) for Kaons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtEtaKaonNoKink; //  (mult,eta,pT) for Kaons withou accepting the Kink mother; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtEtaProton;     //  (mult,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtEtaProtonDCA;  //  (DCA,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles; special histogram for protons
-  TH3F        *fHistPtEtaPion;       //  (mult,eta,pT) for Pions; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistPtEtaElectron;   //  (mult,eta,pT) for Electrons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtEtaKaon;       //!  (mult,eta,pT) for Kaons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtEtaKaonNoKink; //!  (mult,eta,pT) for Kaons withou accepting the Kink mother; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtEtaProton;     //!  (mult,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistPtEtaProtonDCA;  //!  (DCA,eta,pT) for Protons; neg. x-axis for neg. particles, pos. x-axis for pos. particles; special histogram for protons
+  TH3F        *fHistPtEtaPion;       //!  (mult,eta,pT) for Pions; neg. x-axis for neg. particles, pos. x-axis for pos. particles
   //
-  TH3F        *fHistClassicKaon;     // (Pt,eta,delta dEdx) for Kaons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistClassicProton;   // (Pt,eta,delta dEdx) for Protons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistClassicPion;     // (Pt,eta,delta dEdx) for Pions for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
-  TH3F        *fHistClassicElectron; // (Pt,eta,delta dEdx) for Electrons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistClassicKaon;     //! (Pt,eta,delta dEdx) for Kaons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistClassicProton;   //! (Pt,eta,delta dEdx) for Protons for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
+  TH3F        *fHistClassicPion;     //! (Pt,eta,delta dEdx) for Pions for different eta; neg. x-axis for neg. particles, pos. x-axis for pos. particles
    
   // histograms of general interest
-  TH2F        *fDeDx;                 // dEdx spectrum
-  TH1F        *fHistTrackPerEvent;    // tracks per event for multiplicity studies
-  TH2F        *fHistTrackPerEventMC;  // (code, TrackPerEvent) MC tracks per event, codes represent different event types (non-diffractive,..)
-  TH2F        *fSecProtons;           // control histogram for secondary interactions
-  TH1F        *fVertexZ;              // control histogram for the z-position of the vertex
+  TH3F        *fDeDx;                 //! dEdx spectrum
+  TH2F        *fHistTrackPerEvent;    //! tracks per event for multiplicity studies; code: (0) all calls; (1) all selected; (2) all selected with vtx. < 10cm; 
+  TH3F        *fHistTrackPerEventMC;  //! (code, TrackPerEvent, isSelected) tracks per event, codes represent different event types (non-diffractive,..), is selected according to event selection procedure
+  TH2F        *fSecProtons;           //! control histogram for secondary interactions
+  TH3F        *fVertexZ;              //! control histogram for the z-position of the vertex
   //
-  TH2F        *fHistEtaNcls;          // 2d histogram (eta, nTPCclusters) which will define our acceptance
-  TH2F        *fHistEtaPhi;           // 2d histogram (eta, phi) which will show dead regions
+  TH2F        *fHistEtaNcls;          //! 2d histogram (eta, nTPCclusters) which will define our acceptance
+  TH2F        *fHistEtaPhi;           //! 2d histogram (eta, phi) which will show dead regions
 
   // histograms for efficiency studies
-  TH3F        *fHistEffProton;        // (code,eta,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
-  TH3F        *fHistEffProtonDCA;     // (code,dca,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
-  TH3F        *fHistEffPion;          // (code,eta,pT) special hist. for eff. studies; code 0: true primary pi, 1: true sec. pi, 2: misidentified, 3: weak decay sec., 4: muons
-  TH3F        *fHistEffKaon;          // (code,eta,pT) special hist. for eff. studies; code 0: true primary K, 1: true sec. K, 2: misidentified, 3: weak decay sec.
+  TH3F        *fHistEffProton;       //! (code,eta,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
+  TH3F        *fHistEffProtonDCA;    //! (code,dca,pT) special hist. for eff. studies; code 0: true primary p, 1: true sec. p, 2: misidentified, 3: weak decay sec.
+  TH3F        *fHistEffPion;         //! (code,eta,pT) special hist. for eff. studies; code 0: true primary pi, 1: true sec. pi, 2: misidentified, 3: weak decay sec., 4: muons
+  TH3F        *fHistEffKaon;         //! (code,eta,pT) special hist. for eff. studies; code 0: true primary K, 1: true sec. K, 2: misidentified, 3: weak decay sec.
+  //
+  //
+  //
+  THnSparseS * fHistRealTracks;      //! histogram with all necessary information for real tracks
+  THnSparseS * fHistMCparticles;     //! histogram with all necessary information for MC particles
 
-  // two more histograms for the electron background in the dN/dpT paper
-  TH1F        *fHighPtElectrons;      // histogram for the electrons at high pT for background estimation in Jacek's paper
-  TH1F        *fHighPtHadrons;        // histogram for the hardrons at high pT for background estimation in Jacek's paper
-  
 
   AliAnalysisTaskChargedHadronSpectra(const AliAnalysisTaskChargedHadronSpectra&); 
   AliAnalysisTaskChargedHadronSpectra& operator=(const AliAnalysisTaskChargedHadronSpectra&);