remove option C for Clear for trigger array for the moment, causes malloc error
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / extra / AliRsnAnalysisPhi900GeV.h
1 //
2 // Header file for implementation of data analysis aft 900 GeV
3 //
4 // Author: A. Pulvirenti
5 //
6
7 #ifndef ALIRSNANALYSISPHI900GEV_H
8 #define ALIRSNANALYSISPHI900GEV_H
9
10 #include "AliAnalysisTaskSE.h"
11 #include "AliRsnTOFT0maker.h"
12
13 class TH1I;
14 class TTree;
15
16 class AliStack;
17 class AliESDEvent;
18 class AliESDVertex;
19
20 class AliRsnAnalysisPhi900GeV : public AliAnalysisTaskSE
21 {
22   public:
23
24     AliRsnAnalysisPhi900GeV(const char *name = "Phi900GeV");
25     AliRsnAnalysisPhi900GeV(const AliRsnAnalysisPhi900GeV& copy);
26     AliRsnAnalysisPhi900GeV& operator=(const AliRsnAnalysisPhi900GeV& copy);
27     virtual ~AliRsnAnalysisPhi900GeV();
28
29     void            SetUseMC(Bool_t yn = kTRUE) {fUseMC = yn;}
30     void            SetMaxDCAr(Double_t v) {fDCAr = v;}
31     void            SetMaxDCAz(Double_t v) {fDCAz = v;}
32     void            SetMaxChi2(Double_t v) {fChi2 = v;}
33     void            SetMinNTPC(Int_t    n) {fNTPC = n;}
34     void            SetTPCparams(Bool_t isMC);
35     void            SetTPCrange(Double_t min, Double_t max) {fMinTPC = min; fMaxTPC = max;}
36     void            SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
37                     {fTPCpar[0]=p0;fTPCpar[1]=p1;fTPCpar[2]=p2;fTPCpar[3]=p3;fTPCpar[4]=p4;}
38
39     void           SetTOFESD(Bool_t yn = kTRUE) {fTOFESD = yn;}
40     void           SetTOFSigma(Double_t v) {fTOFSigma = v;}
41     void           SetTOFSettings(AliRsnTOFT0maker::ESettings set) {fTOFSettings = set;}
42
43     virtual void    UserCreateOutputObjects();
44     virtual void    UserExec(Option_t *option = "");
45     virtual void    Terminate(Option_t *option = "");
46
47   private:
48
49     void     ProcessESD(AliESDEvent *esd, const AliESDVertex *v, Double_t time0, AliStack *stack);
50     void     ProcessMC(AliStack *stack);
51     Double_t AlephBB(Double_t p, Double_t mass = 0.493677) const;
52     Double_t RemakeTOFtimeMC(AliESDEvent *& esd);
53
54     Bool_t   fUseMC;  // use MC or data?
55     
56     Short_t  fPDG;    // PDG code
57     Float_t  fIM;     // inv mass
58     Float_t  fPt;     // transv momentum
59     Float_t  fY;      // rapidity
60     Float_t  fEta;    // pseud-o-rapidity
61     
62     Double_t fDCAr;   // transverse DCA
63     Double_t fDCAz;   // longitudinal DCA
64     Double_t fChi2;   // track chi2
65     Int_t    fNTPC;   // number of TPC clusters
66
67     Double_t fTPCpar[5];  // parameters for TPC bethe-Bloch
68     Double_t fMinTPC;     // range for TPC de/dx band - min
69     Double_t fMaxTPC;     // range for TPC de/dx band - max
70
71     TTree   *fOutTree[2]; // output tree
72     TList   *fOutList;    // list for output event counts
73     TH1I    *fHEvents;    // histogram of event types
74
75     Bool_t                       fTOFESD;              //  TOF flag to check if ESD data should be used
76     Double_t                     fTOFSigma;            //  TOF default resolution
77     AliRsnTOFT0maker            *fTOFmaker;            //! TOF time0 computator
78     AliRsnTOFT0maker::ESettings  fTOFSettings;         //  TOF settings
79
80     // ROOT dictionary
81     ClassDef(AliRsnAnalysisPhi900GeV,1)
82 };
83
84 #endif