]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/ConfigVertexingHF_Pb_AllCent_NoLS_PIDLc.C
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / ConfigVertexingHF_Pb_AllCent_NoLS_PIDLc.C
1 AliAnalysisVertexingHF* ConfigVertexingHF() {
2
3   printf("Call to AliAnalysisVertexingHF parameters setting :\n");
4   vHF = new AliAnalysisVertexingHF();
5  
6   //--- switch-off candidates finding (default: all on)
7   //vHF->SetD0toKpiOff();
8   vHF->SetJPSItoEleOff();
9   //vHF->Set3ProngOff();
10   vHF->SetLikeSignOff(); // like-sign pairs and triplets
11   vHF->SetLikeSign3prongOff();
12   vHF->Set4ProngOff();
13   //  vHF->SetDstarOff();
14   vHF->SetFindVertexForDstar(kFALSE);
15   //--- secondary vertex with KF?
16   //vHF->SetSecVtxWithKF();
17   vHF->SetCascadesOff();
18   vHF->SetFindVertexForCascades(kFALSE);
19   vHF->SetMassCutBeforeVertexing(kTRUE); // PbPb
20   vHF->SetV0TypeForCascadeVertex(AliRDHFCuts::kAllV0s);
21   
22
23    //set PID
24    vHF->SetUseKaonPIDfor3Prong(kFALSE);
25    vHF->SetUseProtonAndPionPIDforLambdaC();
26    //  vHF->SetnSigmaTOFforKaonSel(5., 5.);
27    // vHF->SetnSigmaTPCforKaonSel(5., 5.);
28    vHF->SetnSigmaTOFforProtonSel(40.,40.);
29    vHF->SetnSigmaTPCforProtonSel(5., 5.);
30    vHF->SetnSigmaTPCforPionSel(40., 40.);
31     vHF->SetnSigmaTOFforPionSel(40.,40.);
32   vHF->SetMaxMomForTPCPid(9999999999.);
33     vHF->SetUseTPCPID(kTRUE);
34     vHF->SetUseTOFPID(kFALSE);
35   // vHF->SetUseTPCPIDOnlyIfNoTOF(kTRUE);
36
37
38   //--- set cuts for single-track selection  
39   //     displaced tracks 
40   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
41   esdTrackCuts->SetRequireTPCRefit(kTRUE);
42   esdTrackCuts->SetMinNClustersTPC(50);
43   esdTrackCuts->SetRequireITSRefit(kTRUE);
44   //esdTrackCuts->SetMinNClustersITS(4);
45   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
46                                          AliESDtrackCuts::kAny);
47   // |d0|>25 micron for pt<2GeV, no cut above 2
48   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0025*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
49   esdTrackCuts->SetMaxDCAToVertexXY(1.);
50   esdTrackCuts->SetMaxDCAToVertexZ(1.);
51   esdTrackCuts->SetPtRange(0.4,1.e10);
52   esdTrackCuts->SetEtaRange(-0.8,+0.8);
53   AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
54   trkFilter->AddCuts(esdTrackCuts);
55   vHF->SetTrackFilter(trkFilter);
56
57   //     displaced tracks for 20% mot central events 2 prongs
58   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
59   esdTrackCuts->SetRequireTPCRefit(kTRUE);
60   esdTrackCuts->SetMinNClustersTPC(50);
61   esdTrackCuts->SetRequireITSRefit(kTRUE);
62   //esdTrackCuts->SetMinNClustersITS(4);
63   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
64                                          AliESDtrackCuts::kAny);
65   // |d0|>75 micron for pt<2GeV, no cut above 2
66   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0050*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
67   esdTrackCuts->SetMaxDCAToVertexXY(1.);  
68   esdTrackCuts->SetMaxDCAToVertexZ(1.);
69   esdTrackCuts->SetPtRange(0.5,1.e10);
70   esdTrackCuts->SetEtaRange(-0.8,+0.8);
71   AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
72   trkFilter->AddCuts(esdTrackCuts);
73   vHF->SetTrackFilter2prongPbCentral(20.,trkFilter); // for centrality 0-20%
74
75   //     displaced tracks for 20% mot central events 3 prongs
76   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
77   esdTrackCuts->SetRequireTPCRefit(kTRUE);
78   esdTrackCuts->SetMinNClustersTPC(50);
79   esdTrackCuts->SetRequireITSRefit(kTRUE);
80   //esdTrackCuts->SetMinNClustersITS(4);
81   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
82                                          AliESDtrackCuts::kAny);
83   // |d0|>75 micron for pt<2GeV, no cut above 2
84   esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
85   esdTrackCuts->SetMaxDCAToVertexXY(1.);  
86   esdTrackCuts->SetMaxDCAToVertexZ(1.);
87   esdTrackCuts->SetPtRange(0.6,1.e10);
88   esdTrackCuts->SetEtaRange(-0.8,+0.8);
89   AliAnalysisFilter *trkFilter = new AliAnalysisFilter("trackFilter");
90   trkFilter->AddCuts(esdTrackCuts);
91   vHF->SetTrackFilter3prongPbCentral(20.,trkFilter); // for centrality 0-20%
92
93  //     D* soft pion tracks
94   AliESDtrackCuts *esdTrackCutsSoftPi = new AliESDtrackCuts("AliESDtrackCuts","default");
95   esdTrackCutsSoftPi->SetMinNClustersITS(3);
96   esdTrackCutsSoftPi->SetMaxDCAToVertexXY(1.);  
97   esdTrackCutsSoftPi->SetMaxDCAToVertexZ(1.);
98   esdTrackCutsSoftPi->SetPtRange(0.1,1.e10);
99   esdTrackCutsSoftPi->SetEtaRange(-0.8,+0.8);
100   AliAnalysisFilter *trkFilterSoftPi = new AliAnalysisFilter("trackFilterSoftPi");
101   trkFilterSoftPi->AddCuts(esdTrackCutsSoftPi);
102   vHF->SetTrackFilterSoftPi(trkFilterSoftPi);
103   //--- set cuts for candidates selection
104   Int_t nptbins=2; Float_t ptlimits[2]={0.,1000000.};
105   AliRDHFCutsD0toKpi *cutsD0toKpi = new AliRDHFCutsD0toKpi("CutsD0toKpi");
106   cutsD0toKpi->SetStandardCutsPbPb2010();
107   cutsD0toKpi->SetMinPtCandidate(0.);
108   cutsD0toKpi->SetUsePID(kFALSE);
109   cutsD0toKpi->SetUseSpecialCuts(kFALSE);
110   cutsD0toKpi->SetUsePhysicsSelection(kFALSE);
111   cutsD0toKpi->SetMaxCentrality(80.);
112   cutsD0toKpi->SetMaxVtxZ(1.e6);
113   cutsD0toKpi->SetTriggerClass("");
114   Float_t cutsArrayD0toKpi[11]={0.4,999999.,1.1,0.,0.,999999.,999999.,0.,0.5,-1,0.};
115   cutsD0toKpi->SetPtBins(nptbins,ptlimits);
116   cutsD0toKpi->SetCuts(11,cutsArrayD0toKpi);
117   cutsD0toKpi->AddTrackCuts(esdTrackCuts);
118   vHF->SetCutsD0toKpi(cutsD0toKpi);
119   AliRDHFCutsJpsitoee *cutsJpsitoee = new AliRDHFCutsJpsitoee("CutsJpsitoee");
120   Float_t cutsArrayJpsitoee[9]={0.350,100000.,1.1,0.,0.,100000.,100000.,100000000.,-1.1};
121   cutsJpsitoee->SetCuts(9,cutsArrayJpsitoee);
122   cutsJpsitoee->AddTrackCuts(esdTrackCuts);
123   vHF->SetCutsJpsitoee(cutsJpsitoee);
124   AliRDHFCutsDplustoKpipi *cutsDplustoKpipi = new AliRDHFCutsDplustoKpipi("CutsDplustoKpipi");
125   cutsDplustoKpipi->SetStandardCutsPbPb2010();
126   cutsDplustoKpipi->SetUsePID(kFALSE);
127   Float_t cutsArrayDplustoKpipi[14]={0.25,0.3,0.3,0.,0.,0.01,0.05,0.05,0.,0.88,0.,10000000000.,0.,-1.};
128   cutsDplustoKpipi->SetPtBins(nptbins,ptlimits);
129   cutsDplustoKpipi->SetCuts(14,cutsArrayDplustoKpipi);
130   cutsDplustoKpipi->AddTrackCuts(esdTrackCuts);
131   cutsDplustoKpipi->SetMinPtCandidate(2.);
132   vHF->SetCutsDplustoKpipi(cutsDplustoKpipi);
133   AliRDHFCutsDstoKKpi *cutsDstoKKpi = new AliRDHFCutsDstoKKpi("CutsDstoKKpi");
134   cutsDstoKKpi->SetStandardCutsPbPb2010();
135   cutsDstoKKpi->SetUsePID(kFALSE);
136   Float_t cutsArrayDstoKKpi[20]={0.35,0.3,0.3,0.,0.,0.005,0.06,0.,0.,0.9,0.,100000.,0.035,0.0001,-1.,1.,0.,0.,0.,-1.};
137   cutsDstoKKpi->SetPtBins(nptbins,ptlimits);
138   cutsDstoKKpi->SetCuts(20,cutsArrayDstoKKpi);
139   cutsDstoKKpi->AddTrackCuts(esdTrackCuts);
140   cutsDstoKKpi->SetMinPtCandidate(2.);
141   vHF->SetCutsDstoKKpi(cutsDstoKKpi);
142   AliRDHFCutsLctopKpi *cutsLctopKpi = new AliRDHFCutsLctopKpi("CutsLctopKpi");
143   cutsLctopKpi->SetStandardCutsPbPb2010();
144   cutsLctopKpi->SetUsePID(kFALSE);
145   Float_t cutsArrayLctopKpi[13]={0.13,0.5,0.5,0.,0.,0.,0.06,0.,0.,0.,0.,0.05,0.5};
146   cutsLctopKpi->SetPtBins(nptbins,ptlimits);
147   cutsLctopKpi->SetCuts(13,cutsArrayLctopKpi);
148   cutsLctopKpi->AddTrackCuts(esdTrackCuts);
149   cutsLctopKpi->SetMinPtCandidate(4.);
150   vHF->SetCutsLctopKpi(cutsLctopKpi);
151   AliRDHFCutsD0toKpipipi *cutsD0toKpipipi = new AliRDHFCutsD0toKpipipi("CutsD0toKpipipi");
152   Float_t cutsArrayD0toKpipipi[9]={0.2,0.04,0.00,0.01,0.02,0.8,0.,0.1,0.};
153   cutsD0toKpipipi->SetCuts(9,cutsArrayD0toKpipipi);
154   cutsD0toKpipipi->AddTrackCuts(esdTrackCuts);
155   vHF->SetCutsD0toKpipipi(cutsD0toKpipipi);
156
157
158  // D* pt dependent cuts ------------------------------------------
159
160   AliRDHFCutsDStartoKpipi *cutsDStartoKpipi = new AliRDHFCutsDStartoKpipi("CutsDStartoKpipi");
161   cutsDStartoKpipi->SetUsePID(kFALSE);
162   const Int_t nvars=16;
163   const Int_t nptbins=2;
164   
165   Float_t* ptbins;
166   ptbins=new Float_t[nptbins+1];
167   ptbins[0]=0.;
168   ptbins[1]=5.;
169   ptbins[2]=999.;
170   
171   cutsDStartoKpipi->SetPtBins(nptbins+1,ptbins);
172   
173   Float_t** rdcutsvalmine;
174   rdcutsvalmine=new Float_t*[nvars];
175   for(Int_t iv=0;iv<nvars;iv++){
176     rdcutsvalmine[iv]=new Float_t[nptbins];
177   }
178   //0-5
179   rdcutsvalmine[0][0]=0.10;  //D0 inv mass window
180   rdcutsvalmine[1][0]=0.06;   // dca
181   rdcutsvalmine[2][0]=0.9;    // thetastar
182   rdcutsvalmine[3][0]=0.5;    // pt Pion
183   rdcutsvalmine[4][0]=0.5;    // Pt Kaon
184   rdcutsvalmine[5][0]=0.1;    // d0K
185   rdcutsvalmine[6][0]=0.1;    // d0Pi
186   rdcutsvalmine[7][0]=0.0001; // d0xd0
187   rdcutsvalmine[8][0]=0.9;    // costhetapoint
188   rdcutsvalmine[9][0]=0.15;   // Dstar inv mass window
189   rdcutsvalmine[10][0]=0.03;  // half width of (M_Kpipi-M_D0)
190   rdcutsvalmine[11][0]=0.1;   // Pt min of Pi soft
191   rdcutsvalmine[12][0]=100.;  // Pt max of pi soft
192   rdcutsvalmine[13][0]=9999.; // theta
193   rdcutsvalmine[14][0]=0.95;   // |cosThetaPointXY|
194   rdcutsvalmine[15][0]=2.;    // NormDecayLenghtXY
195  //5-999
196   rdcutsvalmine[0][1]=0.10;   //D0 inv mass window
197   rdcutsvalmine[1][1]=0.06;   // dca
198   rdcutsvalmine[2][1]=0.9;    // thetastar
199   rdcutsvalmine[3][1]=0.5;    // pt Pion
200   rdcutsvalmine[4][1]=0.5;    // Pt Kaon
201   rdcutsvalmine[5][1]=0.1;    // d0K
202   rdcutsvalmine[6][1]=0.1;    // d0Pi
203   rdcutsvalmine[7][1]=0.0001; // d0xd0
204   rdcutsvalmine[8][1]=0.7;    // costhetapoint
205   rdcutsvalmine[9][1]=0.15;   // Dstar inv mass window
206   rdcutsvalmine[10][1]=0.03;  // half width of (M_Kpipi-M_D0)
207   rdcutsvalmine[11][1]=0.1;   // Pt min of Pi soft
208   rdcutsvalmine[12][1]=100.;  // Pt max of pi soft
209   rdcutsvalmine[13][1]=9999.; // theta
210   rdcutsvalmine[14][1]=0.8;   // |cosThetaPointXY|
211   rdcutsvalmine[15][1]=0.;    // NormDecayLenghtXY
212
213   cutsDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
214  
215   cutsDStartoKpipi->AddTrackCuts(esdTrackCuts);
216   cutsDStartoKpipi->AddTrackCutsSoftPi(esdTrackCutsSoftPi);
217   cutsDStartoKpipi->SetMinPtCandidate(1.);
218   vHF->SetCutsDStartoKpipi(cutsDStartoKpipi);
219
220   //--------------------------------------------------------
221
222   AliRDHFCutsLctoV0 *cutsLctoV0 = new AliRDHFCutsLctoV0("CutsLctoV0");
223   Float_t cutsArrayLctoV0[17]={1.0,1.0,0.05,0.05,0.0,0.0,0.0,1000.,1000.,0.99,3.,1000.,0.,0.,0.,0.,0.0};
224   cutsLctoV0->SetCuts(17,cutsArrayLctoV0);
225   cutsLctoV0->AddTrackCuts(esdTrackCuts);
226
227   AliESDtrackCuts *esdV0daughterTrackCuts = new AliESDtrackCuts("AliESDtrackCutsForV0D","default cuts for V0 daughters");
228   esdV0daughterTrackCuts->SetRequireTPCRefit(kTRUE);
229   esdV0daughterTrackCuts->SetMinNClustersTPC(30);
230   esdV0daughterTrackCuts->SetRequireITSRefit(kFALSE);
231   esdV0daughterTrackCuts->SetMinDCAToVertexXY(0.);
232   esdV0daughterTrackCuts->SetPtRange(0.05,1.e10);
233   esdV0daughterTrackCuts->SetEtaRange(-1.1,+1.1);
234   esdV0daughterTrackCuts->SetAcceptKinkDaughters(kTRUE);
235   esdV0daughterTrackCuts->SetRequireSigmaToVertex(kFALSE);
236   cutsLctoV0->AddTrackCutsV0daughters(esdV0daughterTrackCuts);
237   vHF->SetCutsLctoV0(cutsLctoV0);
238   // 
239   //--- set this if you want to reconstruct primary vertex candidate by
240   //    candidate using other tracks in the event (for pp, broad 
241   //    interaction region)
242   //vHF->SetRecoPrimVtxSkippingTrks();
243   //--- OR set this if you want to remove the candidate daughters from 
244   //    the primary vertex, without recostructing it from scratch
245   //vHF->SetRmTrksFromPrimVtx();
246
247   //--- check the settings
248   vHF->PrintStatus();
249   //--- verbose
250   //  AliLog::SetClassDebugLevel("AliAnalysisVertexingHF",2);
251
252  
253   return vHF;
254 }
255
256