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