]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/EVCHAR/AliAnalysisTaskSPDdNdEta.h
Changing once more (hopefully we get it correct this time...) the logic to trig the...
[u/mrichter/AliRoot.git] / PWG2 / EVCHAR / AliAnalysisTaskSPDdNdEta.h
1 #ifndef ALIANALYSISTASKSPDDNDETA_H
2 #define ALIANALYSISTASKSPDDNDETA_H
3
4 ///////////////////////////////////////////////////////////////////////////
5 // Class AliAnalysisTaskSPDdNdEta                                        //
6 // Analysis task for dN/dEta reconstruction with the SPD                 //
7 //                                                                       //
8 // Author:  M. Nicassio (INFN Bari)                                      //
9 // Contact: Maria.Nicassio@ba.infn.it, Domenico.Elia@ba.infn.it          //
10 ///////////////////////////////////////////////////////////////////////////
11
12 class TH1F;
13 class TH2F;
14 class TH3F;
15 class AliESDEvent;
16
17 #include "AliAnalysisTask.h"
18
19 class AliAnalysisTaskSPDdNdEta : public AliAnalysisTask {
20  public:
21   AliAnalysisTaskSPDdNdEta(const char *name = "AliAnalysisTaskSPDdNdEta");
22   virtual ~AliAnalysisTaskSPDdNdEta(); 
23   
24   virtual void   ConnectInputData(Option_t *);
25   virtual void   CreateOutputObjects();
26   virtual void   Exec(Option_t *option);
27   virtual void   Terminate(Option_t *);
28
29   void SetEvtGen(Bool_t pythia = kTRUE) { fpythia = pythia; }
30   void SetReadMC(Bool_t readmc = kFALSE) { fCorr = readmc; }
31   void SetTrigger(Int_t MBtrigger) { fTrigger = MBtrigger; } 
32  
33  protected:
34   AliESDEvent *fESD;               //ESD object
35   TList* fOutput;                  //! list send on output slot 0
36   
37   Bool_t fpythia;                  // to identify accordingly process types
38   Bool_t fCorr;                    // flag to enable the correction histo calculation
39   Int_t fTrigger;                  // to set the MBtrigger selection
40  
41   TH2F        *fHistSPDRAWMultvsZ;          // data to be corrected 
42   TH2F        *fHistSPDRAWMultvsZTriggEvts; // data to be corrected
43   TH2F        *fHistSPDRAWEtavsZ;           // data to be corrected
44
45   TH1F        *fHistSPDmultEtacut;          // cluster inner layer and tracklet check histos
46   TH1F        *fHistSPDmult;                // cluster inner layer and tracklet check histos
47   TH1F        *fHistSPDeta;                 // cluster inner layer and tracklet check histos
48   TH1F        *fHistSPDcl1multEtacutLay1;   // cluster inner layer and tracklet check histos
49   TH1F        *fHistSPDcl1mult;             // cluster inner layer and tracklet check histos
50   TH1F        *fHistSPDcl1eta;              // cluster inner layer and tracklet check histos
51   TH1F        *fHistSPDphi;                 // cluster inner layer and tracklet check histos
52   TH1F        *fHistSPDcl1phi;              // cluster inner layer and tracklet check histos
53   TH1F        *fHistSPDtheta;               // cluster inner layer and tracklet check histos
54   TH1F        *fHistSPDcl1theta;            // cluster inner layer and tracklet check histos
55   TH1F        *fHistSPDdePhi;               // cluster inner layer and tracklet check histos
56   TH1F        *fHistSPDdePhiZ;              // cluster inner layer and tracklet check histos
57   TH1F        *fHistSPDdePhi3D;             // cluster inner layer and tracklet check histos
58   TH2F        *fHistSPDphivsSPDeta;         // cluster inner layer and tracklet check histos
59   TH2F        *fHistSPDcl1phivsSPDcl1eta;   // cluster inner layer and tracklet check histos
60   TH1F        *fHistSPDdeTheta;             // cluster inner layer and tracklet check histos
61
62   TH1F        *fHistSPDvtxAnalysis;         // SPD vertex distributions
63   TH3F        *fHistSPDvtx3D;               // SPD vertex distributions
64   TH1F        *fHistSPDvtxZ;                // SPD vertex distributions
65   TH2F        *fHistNcontribSPDvtxvsSPDvtx; // SPD vertex distributions
66   TH1F        *fHistNcontribSPDvtx3D;       // SPD vertex distributions
67   TH1F        *fHistNcontribSPDvtxZ;        // SPD vertex distributions
68   TH1F        *fHistNcontribSPDvtxall;      // SPD vertex distributions
69
70   TH2F        *fHistSPDcl1multvsnFiredChipsLay1;              // SPD fired chips distributions
71   TH2F        *fHistSPDmultvsnFiredChipsLay1;                 // SPD fired chips distributions
72   TH2F        *fHistSPDmultvsnFiredChipsLay2;                 // SPD fired chips distributions
73   TH2F        *fHistnFiredChipsLay2vsnFiredChipsLay1;         // SPD fired chips distributions
74   TH2F        *fHistnFiredChipsLay2vsnFiredChipsLay1novtxrec; // SPD fired chips distributions
75   TH1F        *fHistSPDvtxRec;                                // SPD vertex distribution
76
77   TH2F* fHistBkgCorrNum;             // track level correction histograms
78   TH2F* fHistBkgCorrDen;             // track level correction histograms
79   TH2F* fHistAlgEffNum;              // track level correction histograms
80   TH2F* fHistNonDetectableCorrNum;   // track level correction histograms
81   TH2F* fHistNonDetectableCorrDen;   // track level correction histograms
82   TH2F* fHistTrackTrigVtxCorrNum;    // track level correction histograms
83   TH2F* fHistTrackTrigCorrDen;       // track level correction histograms
84   TH2F* fHistTrackTrigVtxCorrNumNSD; // track level correction histograms
85   TH2F* fHistTrackTrigNSD;           // track level correction histograms 
86  
87   TH2F* fHistTrigVtxCorrNum;       // event level correction histograms
88   TH2F* fHistTrigVtxCorrDen;       // event level correction histograms
89
90   TH2F* fHistTrigCorrDen;          // event level correction histograms
91   TH2F* fHistTrigVtxCorrNumNSD;    // event level correction histograms
92   TH2F* fHistEvTrigNSD;            // event level correction histograms
93
94   TH2F* fHistMCEtavsZTriggMCvtxEvts;  // MC distributions
95   TH2F* fHistMCEtavsZTriggESDvtxEvts; // MC distributions
96   TH2F* fHistMCEtavsZ;                // MC distributions 
97
98   TH1F* fHistMCEtaInel;                 // MC distributions
99   TH1F* fHistMCEtaNonDiffractive;       // MC distributions
100   TH1F* fHistMCEtaNonSingleDiffractive; // MC distributions
101   TH1F* fHistoProcessType;              // additional check histo
102   TH1F* fHistoProcessTypeTriggered;     // additional check histo
103
104   TH2F* fHistContributorsvsMCVtx;     // additional check histos
105   TH3F* fHistoDetectableNotr;         // additional check histos
106   TH2F* fHistoDetectabletr;           // additional check histos
107   TH2F* fHistoNonStoppingTracks;      // additional check histos
108   TH2F* fHistoDetectedLay1;           // additional check histos
109   TH2F* fHistoDetectedLay2;           // additional check histos
110   TH1F* fHistoPt;                     // additional check histos 
111   TH1F* fHistoRTRm1;                  // additional check histos
112   TH3F* fHistMCvtx;                   // additional check histos
113
114   TH1F* fHistMultAllNonDiff;          // trigger-vertex efficiencies for non diffractive events
115   TH1F* fHistMultAllSingleDiff;       // trigger-vertex efficiencies for single diffractive events
116   TH1F* fHistMultAllDoubleDiff;       // trigger-vertex efficiencies for double diffractive events
117   TH1F* fHistMultTrVtxNonDiff;        // trigger-vertex efficiencies for non diffractive events
118   TH1F* fHistMultTrVtxSingleDiff;     // trigger-vertex efficiencies for single diffractive events
119   TH1F* fHistMultTrVtxDoubleDiff;     // trigger-vertex efficiencies for double diffractive events
120  
121   TH1F* fHistMCEtaNonSingleDiffractiveLargeBin; // MC pseudorapidity distribution
122
123  private:    
124   AliAnalysisTaskSPDdNdEta(const AliAnalysisTaskSPDdNdEta&); 
125   AliAnalysisTaskSPDdNdEta& operator=(const AliAnalysisTaskSPDdNdEta&); 
126   
127   ClassDef(AliAnalysisTaskSPDdNdEta, 2); 
128 };
129
130 #endif