]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGUD/base/AliAnalysisTaskdNdetaMC.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGUD / base / AliAnalysisTaskdNdetaMC.h
1 #ifndef AliAnalysisTaskdNdetaMC_H
2 #define AliAnalysisTaskdNdetaMC_H
3
4 //
5 // Task used to analize simulations at generation level (i.e. only
6 // needs galice.root and Kinematics.root).
7 // 
8
9 class TH1F;
10 class TH1I;
11 class TGraphErrors;
12
13 enum {kHistINEL,kHistNSD,kHistND,kHistSiD,kHistHL,kNHist};
14 enum {kEta05,kEta10,kEta14,kNEtaHist};// 
15 enum {kPionPos, kProtonPos, kKaonPos, kElectronPos, kMuonPos,
16       kPionNeg, kProtonNeg, kKaonNeg, kElectronNeg, kMuonNeg,
17       kLambda, kLambdaBar, kLambdaInclusive, kLambdaBarInclusive,
18       kNPart}; //Particles used for identified particles pt spectra
19 #include "AliAnalysisTaskSE.h"
20
21 class AliAnalysisTaskdNdetaMC : public AliAnalysisTaskSE {
22  public:
23   AliAnalysisTaskdNdetaMC();
24   AliAnalysisTaskdNdetaMC(const char *name );
25   AliAnalysisTaskdNdetaMC(const char *name, const char *file );
26   virtual ~AliAnalysisTaskdNdetaMC();
27   
28   virtual void   UserCreateOutputObjects();
29   virtual void   UserExec(Option_t *option);
30   virtual void   Terminate(Option_t *);
31   TH1F* BookHetaHist(const char * name, const char * title);
32   TH1F* BookHptHist(const char * name, const char * title);
33   TH1F* BookMultHisto(const char * name, const char * title) ;
34   void SetEtaMax(Float_t eta) {fEtaMax = eta;}
35
36   void SkipNormalization(Bool_t flag = kTRUE) { fSkipNormalization = flag; }
37   void Finalize();
38   TList * GetList() const { return fMyOut;} 
39  private:
40   TH1F         *fHistEta[kNHist]; //Eta spectrum 
41   TH1F         *fHistPt[kNHist+1]; // Pt spectrum  , |eta| < 0.8
42   TH1F         *fHistPtID[kNHist][kNPart+1]; //Pt identified particles, |y| < 0.5 
43   
44   TGraphErrors *fNchDens; // <dN/deta>
45   TList * fMyOut; // list of output histos
46   TH1I * fHistIev; // number of events per class
47   TH1I * fHistNParticlesAtMidRapidity;  // number of particles at midrapidity per class
48   static Float_t fEtaMax; // max eta
49   Bool_t fSkipNormalization; // Use this when you are running the job on the grid, so that you can normalize dNdeta after merging
50
51   Float_t  fEtaBins[kNEtaHist];    // array of eta_max values
52   TH1F * fHistMult[kNHist][kNEtaHist];   // array of multiplicity histos in the different eta ranges values, for the different event classes
53
54   AliAnalysisTaskdNdetaMC(const AliAnalysisTaskdNdetaMC&); // not implemented
55   AliAnalysisTaskdNdetaMC& operator=(const AliAnalysisTaskdNdetaMC&); // not implemented
56   
57   static Int_t fPDGCodes[kNPart+1]; // array of PDG codes of particles for ID Spectra plots
58   static const char *  fPartNames[kNPart+1]; // array of particles names for ID Spectra plots
59
60   TH1F * fHistSpecies; // Histogram of particle species contributing to primaries
61
62   ClassDef(AliAnalysisTaskdNdetaMC, 2); 
63 };
64
65 #endif