]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/macros/makeTFile4CutsLctopKpi.C
Update (Rossella)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / makeTFile4CutsLctopKpi.C
CommitLineData
7ad4b782 1#include <Riostream.h>
2#include <TFile.h>
3#include <AliRDHFCutsLctopKpi.h>
4#include <AliAODPidHF.h>
5#include <TClonesArray.h>
6#include <TParameter.h>
7
8
9//Use:
10//Set hard coded commentet with //set this!!
11// root[] .L makeInput...C++
12// root[] makeInputAliAnalysisTaskSE...()
13//similar macros for the other D mesons
14
15//Author: Rosa Romita, r.romita@gsi.de
16
17
18//macro to make a .root file which contains an AliRDHFCutsLctopKpi for AliAnalysisTaskSELambdac task
19
20void makeInputAliAnalysisTaskSELctopKpi(){
21
22 AliRDHFCutsLctopKpi* RDHFLctopKpiProd=new AliRDHFCutsLctopKpi();
23 RDHFLctopKpiProd->SetName("LctopKpiProdCuts");
24 RDHFLctopKpiProd->SetTitle("Production cuts for Lc analysis");
25
26 AliRDHFCutsLctopKpi* RDHFLctopKpiAn=new AliRDHFCutsLctopKpi();
27 RDHFLctopKpiAn->SetName("LctopKpiAnalysisCuts");
28 RDHFLctopKpiAn->SetTitle("Analysis cuts for Lc analysis");
29
30 AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
31 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
32 //default
33 esdTrackCuts->SetRequireTPCRefit(kTRUE);
34 esdTrackCuts->SetRequireITSRefit(kTRUE);
35 esdTrackCuts->SetMinNClustersITS(4); // default is 5
36 esdTrackCuts->SetMinNClustersTPC(70);
37 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
38 AliESDtrackCuts::kAny);
39 // default is kBoth, otherwise kAny
40 esdTrackCuts->SetMinDCAToVertexXY(0.);
41 esdTrackCuts->SetPtRange(0.3,1.e10);
42
43
44 RDHFLctopKpiProd->AddTrackCuts(esdTrackCuts);
45 RDHFLctopKpiAn->AddTrackCuts(esdTrackCuts);
46
47 const Int_t nvars=12;
48
49 const Int_t nptbins=4;
50 Float_t* ptbins;
51 ptbins=new Float_t[nptbins+1];
52 ptbins[0]=0.;
53 ptbins[1]=2.;
54 ptbins[2]=3.;
55 ptbins[3]=4.;
56 ptbins[4]=9999.;
57
58
59 Float_t** prodcutsval;
60 prodcutsval=new Float_t*[nvars];
61 for(Int_t iv=0;iv<nvars;iv++){
62 prodcutsval[iv]=new Float_t[nptbins];
63 }
64
65 for(Int_t ipt=0;ipt<nptbins;ipt++){
66 prodcutsval[0][ipt]=0.18;
67 prodcutsval[1][ipt]=0.4;
68 prodcutsval[2][ipt]=0.5;
69 prodcutsval[3][ipt]=0.;
70 prodcutsval[4][ipt]=0.;
71 prodcutsval[5][ipt]=0.01;
72 prodcutsval[6][ipt]=0.06;
73 prodcutsval[7][ipt]=0.005;
74 prodcutsval[8][ipt]=0.;
75 prodcutsval[9][ipt]=0.;
76 prodcutsval[10][ipt]=0.;
77 prodcutsval[11][ipt]=0.05;
78 }
79
80 RDHFLctopKpiProd->SetPtBins(nptbins+1,ptbins);
81 RDHFLctopKpiProd->SetCuts(nvars,nptbins,prodcutsval);
82
83 Float_t** anacutsval;
84 anacutsval=new Float_t*[nvars];
85 for(Int_t ic=0;ic<nvars;ic++){anacutsval[ic]=new Float_t[nptbins];}
86 for(Int_t ipt2=0;ipt2<nptbins;ipt2++){
87 anacutsval[0][ipt2]=0.18;
88 anacutsval[1][ipt2]=0.6;
89 anacutsval[3][ipt2]=0.;
90 anacutsval[4][ipt2]=0.;
91 anacutsval[5][ipt2]=0.01;
92 anacutsval[6][ipt2]=0.03;
93 anacutsval[9][ipt2]=0.;
94 anacutsval[10][ipt2]=0.;
95 anacutsval[11][ipt2]=0.05;
96 }
97
98 anacutsval[2][0]=0.6;
99 anacutsval[2][1]=0.8;
100 anacutsval[2][2]=1.;
101 anacutsval[2][3]=1.2;
102
103 anacutsval[7][0]=0.005;
104 anacutsval[7][1]=0.015;
105 anacutsval[7][2]=0.018;
106 anacutsval[7][3]=0.018;
107
108 anacutsval[8][0]=0.6;
109 anacutsval[8][1]=0.8;
110 anacutsval[8][2]=1.;
111 anacutsval[8][3]=1.2;
112
113 anacutsval[11][0]=0.04;
114 anacutsval[11][1]=0.04;
115 anacutsval[11][2]=0.03;
116 anacutsval[11][3]=0.03;
117
118
119 RDHFLctopKpiAn->SetPtBins(nptbins+1,ptbins);
120 RDHFLctopKpiAn->SetCuts(nvars,nptbins,anacutsval);
121
122 // RDHFLc->SetRecoKF(); //set this if you want to recompute the secondary vertex with the KF package
123 //pid settings
124 //1. kaon: default one
125 AliAODPidHF* pidObjK=new AliAODPidHF();
126 Double_t sigmasK[5]={3.,1.,1.,3.,2.};
127 pidObjK->SetSigma(sigmasK);
128 pidObjK->SetAsym(kTRUE);
129 pidObjK->SetMatch(1);
130 pidObjK->SetTPC(kTRUE);
131 pidObjK->SetTOF(kTRUE);
132 pidObjK->SetITS(kTRUE);
133 Double_t plimK[2]={0.5,0.8};
134 pidObjK->SetPLimit(plimK,2);
135
136 RDHFLctopKpiProd->SetPidHF(pidObjK);
137 RDHFLctopKpiAn->SetPidHF(pidObjK);
138
139 //2. pion
140 AliAODPidHF* pidObjpi=new AliAODPidHF();
141 pidObjpi->SetTPC(kTRUE);
142 Double_t sigmaspi[5]={3.,0.,0.,0.,0.};
143 pidObjpi->SetSigma(sigmaspi);
144
145 RDHFLctopKpiProd->SetPidpion(pidObjpi);
146 RDHFLctopKpiAn->SetPidpion(pidObjpi);
147
148 // 3. proton
149 AliAODPidHF* pidObjp=new AliAODPidHF();
150 Double_t sigmasp[5]={3.,1.,1.,3.,2.};
151 pidObjp->SetSigma(sigmasp);
152 pidObjp->SetAsym(kTRUE);
153 pidObjp->SetMatch(1);
154 pidObjp->SetTPC(kTRUE);
155 pidObjp->SetTOF(kTRUE);
156 pidObjp->SetITS(kTRUE);
157 Double_t plimp[2]={1.,2.};
158 pidObjp->SetPLimit(plimp,2);
159
160 RDHFLctopKpiProd->SetPidprot(pidObjp);
161 RDHFLctopKpiAn->SetPidprot(pidObjp);
162
163 Bool_t pidflag=kTRUE;
164 RDHFLctopKpiAn->SetUsePID(pidflag);
165 RDHFLctopKpiProd->SetUsePID(pidflag);
166 if(pidflag) cout<<"PID is used"<<endl;
167 else cout<<"PID is not used"<<endl;
168
169 cout<<"This is the object I'm going to save:"<<endl;
170 RDHFLctopKpiProd->PrintAll();
171 RDHFLctopKpiAn->PrintAll();
172 TFile* fout=new TFile("cuts4LctopKpi.root","RECREATE");
173 fout->cd();
174 RDHFLctopKpiProd->Write();
175 RDHFLctopKpiAn->Write();
176 fout->Close();
177 delete fout;
178 delete pidObjp;
179 delete pidObjpi;
180 delete pidObjK;
181 delete RDHFLctopKpiProd;
182 delete RDHFLctopKpiAn;
183
184}