]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/genLevelSimulation/AliAnalysisTaskdNdetaMC.h
put in default object which covers the full run range
[u/mrichter/AliRoot.git] / PWG0 / genLevelSimulation / 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       kNPart}; //Particles used for identified particles pt spectra
18 #include "AliAnalysisTaskSE.h"
19
20 class AliAnalysisTaskdNdetaMC : public AliAnalysisTaskSE {
21  public:
22   AliAnalysisTaskdNdetaMC();
23   AliAnalysisTaskdNdetaMC(const char *name );
24   AliAnalysisTaskdNdetaMC(const char *name, const char *file );
25   virtual ~AliAnalysisTaskdNdetaMC();
26   
27   virtual void   UserCreateOutputObjects();
28   virtual void   UserExec(Option_t *option);
29   virtual void   Terminate(Option_t *);
30   TH1F* BookHetaHist(const char * name, const char * title);
31   TH1F* BookHptHist(const char * name, const char * title);
32   TH1F* BookMultHisto(const char * name, const char * title) ;
33   void SetEtaMax(Float_t eta) {fEtaMax = eta;}
34
35   void SkipNormalization(Bool_t flag = kTRUE) { fSkipNormalization = flag; }
36   void Finalize();
37   TList * GetList() const { return fMyOut;} 
38  private:
39   TH1F         *fHistEta[kNHist]; //Eta spectrum 
40   TH1F         *fHistPt[kNHist+1]; // Pt spectrum  , |eta| < 0.8
41   TH1F         *fHistPtID[kNHist][kNPart+1]; //Pt identified particles, |y| < 0.5 
42   
43   TGraphErrors *fNchDens; // <dN/deta>
44   TList * fMyOut; // list of output histos
45   TH1I * fHistIev; // number of events per class
46   TH1I * fHistNParticlesAtMidRapidity;  // number of particles at midrapidity per class
47   static Float_t fEtaMax; // max eta
48   Bool_t fSkipNormalization; // Use this when you are running the job on the grid, so that you can normalize dNdeta after merging
49
50   Float_t  fEtaBins[kNEtaHist];    // array of eta_max values
51   TH1F * fHistMult[kNHist][kNEtaHist];   // array of multiplicity histos in the different eta ranges values, for the different event classes
52
53   AliAnalysisTaskdNdetaMC(const AliAnalysisTaskdNdetaMC&); // not implemented
54   AliAnalysisTaskdNdetaMC& operator=(const AliAnalysisTaskdNdetaMC&); // not implemented
55   
56   static Int_t fPDGCodes[kNPart+1]; // array of PDG codes of particles for ID Spectra plots
57   static const char *  fPartNames[kNPart+1]; // array of particles names for ID Spectra plots
58
59   TH1F * fHistSpecies; // Histogram of particle species contributing to primaries
60
61   ClassDef(AliAnalysisTaskdNdetaMC, 2); 
62 };
63
64 #endif