]>
Commit | Line | Data |
---|---|---|
983b8a42 | 1 | #ifndef ALIANALYSISNUCLEIMASS_H |
2 | #define ALIANALYSISNUCLEIMASS_H | |
3 | ||
4 | // ROOT includes | |
5 | #include <TList.h> | |
6 | ||
7 | // AliRoot includes | |
8 | #include <AliAnalysisTaskSE.h> | |
9 | #include <AliPIDResponse.h> | |
10 | ||
11 | class AliAODEvent; | |
12 | class AliESDEvent; | |
13 | class AliVEvent; | |
14 | class TH2F; | |
15 | class TH2D; | |
16 | class TH1F; | |
17 | class TF1; | |
18 | class TH2D; | |
19 | class TGraph; | |
20 | class AliESDtrackCuts; | |
21 | class TProfile; | |
24395a5c | 22 | class TFile; |
23 | class TObject; | |
983b8a42 | 24 | |
25 | class AliAnalysisNucleiMass : public AliAnalysisTaskSE { | |
26 | public: | |
27 | AliAnalysisNucleiMass(); | |
28 | AliAnalysisNucleiMass(const char *name); | |
29 | ||
30 | virtual ~AliAnalysisNucleiMass(); | |
31 | ||
32 | virtual void UserCreateOutputObjects(); | |
33 | virtual void UserExec(Option_t *option); | |
34 | virtual void Terminate(Option_t *); | |
35 | ||
de383542 | 36 | |
37 | //Cuts on the events | |
38 | void SetCentrality(Double_t CentMin=0., Double_t CentMax=100.) {Centrality[0]=CentMin; Centrality[1]=CentMax;}; | |
39 | //Cuts on the tracks | |
40 | void SetFilterBit(Int_t TestFilterBit=16) {FilterBit=TestFilterBit;} | |
41 | //geometrical cuts | |
42 | void SetAbsEtaLimit(Double_t etaMin=0., Double_t etaMax=0.8) {EtaLimit[0]=etaMin;EtaLimit[1]=etaMax;} | |
43 | void SetDCACut(Double_t DCAxyCUT=0.1, Double_t DCAzCUT=1000.0) {DCAxyCut=DCAxyCUT; DCAzCut=DCAzCUT;} | |
44 | //other cuts | |
45 | void SetNsigmaTPCCut(Double_t nSigmaTpcCut=2) {NsigmaTpcCut=nSigmaTpcCut;} | |
46 | void SetNminTPCcluster(Int_t nMinTPCcluster=0) {NminTpcCluster=nMinTPCcluster;} | |
47 | void SetTrdCut(Int_t kTRDcut=0) {iTrdCut=kTRDcut;} | |
64e976d4 | 48 | |
de383542 | 49 | //Settings |
50 | void SetisSignalCheck(Int_t IsSignalCheck=2) {kSignalCheck=IsSignalCheck;} | |
51 | void SetMtofMethod(Int_t iMtofMethod=1) {iMtof=iMtofMethod;} | |
38fdd8e0 | 52 | |
983b8a42 | 53 | private: |
54 | AliAnalysisNucleiMass(const AliAnalysisNucleiMass &old); | |
55 | AliAnalysisNucleiMass& operator=(const AliAnalysisNucleiMass &source); | |
24395a5c | 56 | |
de383542 | 57 | static const Int_t nbin=46; // Number of pt bins in Tof Mass distributions |
58 | static const Int_t nBconf=2; // Number of Magnetic field configuration (B++ and B--) | |
59 | static const Int_t nPart=9; // Number of particle type: e,mu,pi,K... | |
60 | static const Int_t nSpec=18; // Number of particle species: particles: e+,e-,mu+,mu-,... | |
24395a5c | 61 | |
de383542 | 62 | //Variables settings with public methods: |
63 | Double_t Centrality[2]; // Centrality bin (min and max) | |
64 | Int_t FilterBit; // Filter Bit to be used | |
65 | Double_t EtaLimit[2]; // Eta windows in analysis | |
66 | Double_t DCAxyCut; // Cut on DCA-xy | |
67 | Double_t DCAzCut; // Cut on DCA-z | |
68 | Double_t NsigmaTpcCut; // number of sigma Tpc Cut | |
69 | Int_t NminTpcCluster; // Number of minimum TPC clusters | |
70 | Int_t iTrdCut; // iTrdCut==0-> No TRD cut; iTrdCut==1-> Yes TRD cut: yes TRD; iTrdCut==2->Yes TRD cut: no TRD; | |
71 | Int_t kSignalCheck; // kSignalCheck==1->Fill all plots ; kSignalCheck==0->Fill only TH1 ; kSignalCheck==2-> Fill TH1 and some TH2 usefull in analysis | |
64e976d4 | 72 | Int_t iMtof; // iMtof==1->m~pVtx ; iMtof==2->m~pExp ; iMtof==4->m~pExp(MCcorrected) for (d,He3); iMtof==4->m~pExp(MCcorrected) (p,d,He3) |
24395a5c | 73 | |
de383542 | 74 | //other: |
75 | Int_t iBconf; //! If Magnetic Field configuration is down or up | |
76 | Bool_t kTOF; //! kTOFout and kTIME required | |
3f2b4d7b | 77 | |
de383542 | 78 | AliAODEvent* fAOD; //! AOD object |
79 | AliESDEvent* fESD; //! ESD object | |
80 | AliVEvent* fEvent; //! general object | |
81 | AliPIDResponse *fPIDResponse; //! pointer to PID response | |
82 | TList *fList[nBconf]; //! lists for slot | |
983b8a42 | 83 | |
de383542 | 84 | TH1F *htemp[nBconf]; //! Temp. plot: avoid a problem with the merge of the output when a TList is empty (of the opposite magnetic field configuration) |
85 | TH1F *hCentrality[nBconf][2]; //! Centrality of the selected and analyzed events | |
86 | TH1F *hZvertex[nBconf][2]; //! z-vertex distribution before and after the cuts on the event | |
3f2b4d7b | 87 | |
de383542 | 88 | TH1F *hEta[nBconf]; //! Eta distribution of the tracks |
89 | TH1F *hPhi[nBconf]; //! Phi particle distribution | |
90 | TH2F *fEtaPhi[nBconf]; //! Phi vs Eta particle distribution | |
91 | TH1F *hNTpcCluster[nBconf]; //! # of the TPC clusters after the track cuts | |
92 | TH1F *hNTrdSlices[nBconf]; //! Number of the TRD slices after the track cuts | |
93 | ||
94 | //TPC info: | |
95 | TH2F *fdEdxVSp[nBconf][2]; //! dedx vs pTpc | |
96 | TProfile *hDeDxExp[nBconf][9]; //! TPC spline used | |
97 | TH2F *fNsigmaTpc[nBconf][9]; //! NsigmaTPC vs. pTpc | |
98 | TH2F *fNsigmaTpc_kTOF[nBconf][18]; //! NsigmaTPC vs. pt when kTOF is required and in DCAxyCut | |
983b8a42 | 99 | |
de383542 | 100 | //TOF info: |
101 | TH2F *fBetaTofVSp[nBconf][2]; //! beta vs pVtx | |
102 | TProfile *hBetaExp[nBconf][9]; //! TOF expected beta | |
103 | TH2F *fNsigmaTof[nBconf][9]; //! NsigmaTOF vs. pT | |
104 | TH2F *fNsigmaTof_DcaCut[nBconf][18]; //! NsigmaTOF vs. pT | |
105 | ||
106 | //TPC and TOF conbined | |
107 | TH2F *fM2vsPt_NoTpcCut[nBconf][2][2]; //! M2 vs. Pt w/o the DCAxyCut | |
108 | TH2F *fM2vsPt[nBconf][2][18]; //! M2 vs. Pt with NsigmaTpcCut for each particle species, w/o the DCAxyCut | |
109 | TH2F *fM2vsZ[nBconf][10]; //! M2 vs. Z in various pT bins | |
110 | ||
111 | //DCA distributions | |
112 | TH1D *hDCAxy[nBconf][18][nbin]; //! DCAxy distribution with NsigmaTpcCut for each particle species, in pT bins | |
113 | TH1D *hDCAz[nBconf][18][nbin]; //! DCAz distribution with NsigmaTpcCut for each particle species, in pT bins | |
983b8a42 | 114 | |
de383542 | 115 | //TOF mass distributions |
116 | TH1D *hM2CutDCAxy[nBconf][18][nbin]; //! Tof m2 distribution in DCAxyCut and with NsigmaTpcCut | |
117 | TH1D *hM2CutGroundDCAxy[nBconf][18][nbin]; //! Tof m2 distribution in the background of DCAxyCut (secondary nuclei selection) and with NsigmaTpcCut | |
983b8a42 | 118 | |
de383542 | 119 | //Parametrizations |
120 | TF1 *fPmeanVsPexp[3]; //! Parameterization of (<p>-pExp)/pExp vs pExp for p,d,He3 | |
8aa5d867 | 121 | |
64e976d4 | 122 | //... |
123 | TH2F *fPmeanVsBetaGamma[nBconf][18]; //!<p>/p vs beta*gamma (TH1) | |
124 | TProfile *prPmeanVsBetaGamma[nBconf][18]; //!<p>/p vs beta*gamma (profile) | |
125 | ||
de383542 | 126 | //------------------------------Methods---------------------------------------- |
8f9efebd MC |
127 | void GetMassFromPvertex(Double_t beta, Double_t p, Double_t &M2); //...* |
128 | void GetZTpc(Double_t dedx, Double_t pTPC, Double_t M2, Double_t &Z2); //...* | |
129 | void GetMassFromExpTimes(Double_t beta, Double_t *IntTimes, Double_t *Mass2, Int_t iCorr, Double_t pVtx, Int_t FlagPid, Double_t charge); //...* | |
de383542 | 130 | |
983b8a42 | 131 | ClassDef(AliAnalysisNucleiMass, 1); |
132 | }; | |
133 | ||
134 | #endif |