]>
Commit | Line | Data |
---|---|---|
624c07ab | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | ///////////////////////////////////////////////////////////// | |
17 | // | |
18 | // Class AliAnalysisTaskSECharmFraction | |
19 | // AliAnalysisTaskSE for the extraction of the fraction of prompt charm | |
20 | // using the charm hadron impact parameter to the primary vertex | |
21 | // | |
22 | // Author: Andrea Rossi, andrea.rossi@ts.infn.it | |
23 | ///////////////////////////////////////////////////////////// | |
24 | ||
ac4c229c | 25 | |
624c07ab | 26 | #include <TH1F.h> |
27 | #include <TH2F.h> | |
624c07ab | 28 | #include <TDatabasePDG.h> |
29 | #include <TMath.h> | |
30 | #include <TROOT.h> | |
624c07ab | 31 | #include "AliAODEvent.h" |
624c07ab | 32 | #include "AliAODRecoDecayHF2Prong.h" |
33 | #include "AliAODRecoDecayHF.h" | |
34 | #include "AliAODRecoDecay.h" | |
35 | #include "AliAODTrack.h" | |
36 | #include "AliAODVertex.h" | |
37 | #include "AliAODMCParticle.h" | |
38 | #include "AliAODMCHeader.h" | |
ac4c229c | 39 | #include "AliAnalysisVertexingHF.h" |
624c07ab | 40 | #include "AliAnalysisTaskSECharmFraction.h" |
41 | ||
ac4c229c | 42 | |
43 | class TCanvas; | |
44 | class TTree; | |
45 | class TChain; | |
46 | class AliAODInputHandler; | |
47 | class AliAnalysisManager; | |
48 | class AliAnalysisTaskSE; | |
49 | ||
50 | ||
624c07ab | 51 | ClassImp(AliAnalysisTaskSECharmFraction) |
52 | ||
53 | //________________________________________________________________________ | |
54 | AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction() | |
55 | : AliAnalysisTaskSE(), | |
56 | fVHFloose(0), | |
57 | fVHFtight(0), | |
58 | fmD0PDG(), | |
59 | fnbins(), | |
60 | fptbins(0), | |
c387e585 | 61 | fAcceptanceCuts(), |
624c07ab | 62 | fsignalInvMassCut(), |
63 | flargeInvMassCut(), | |
64 | fsidebandInvMassCut(), | |
65 | fsidebandInvMassWindow(), | |
66 | fUseMC(kTRUE), | |
67 | fNentries(0), | |
68 | fSignalType(0), | |
69 | fSignalTypeLsCuts(0), | |
70 | fSignalTypeTghCuts(0), | |
ac4c229c | 71 | flistNoCutsSignal(0), |
72 | flistNoCutsBack(0), | |
73 | flistNoCutsFromB(0), | |
74 | flistNoCutsFromDstar(0), | |
75 | flistNoCutsOther(0), | |
76 | flistLsCutsSignal(0), | |
77 | flistLsCutsBack(0), | |
78 | flistLsCutsFromB(0), | |
79 | flistLsCutsFromDstar(0), | |
80 | flistLsCutsOther(0), | |
81 | flistTghCutsSignal(0), | |
82 | flistTghCutsBack(0), | |
83 | flistTghCutsFromB(0), | |
84 | flistTghCutsFromDstar(0), | |
85 | flistTghCutsOther(0) | |
624c07ab | 86 | |
87 | { | |
88 | //Default constructor | |
89 | } | |
90 | //________________________________________________________________________ | |
91 | AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name) | |
92 | : AliAnalysisTaskSE(name), | |
93 | fVHFloose(0), | |
94 | fVHFtight(0), | |
95 | fmD0PDG(), | |
96 | fnbins(), | |
97 | fptbins(0), | |
c387e585 | 98 | fAcceptanceCuts(), |
624c07ab | 99 | fsignalInvMassCut(), |
100 | flargeInvMassCut(), | |
101 | fsidebandInvMassCut(), | |
102 | fsidebandInvMassWindow(), | |
103 | fUseMC(kTRUE), | |
104 | fNentries(0), | |
105 | fSignalType(0), | |
106 | fSignalTypeLsCuts(0), | |
107 | fSignalTypeTghCuts(0), | |
ac4c229c | 108 | flistNoCutsSignal(0), |
109 | flistNoCutsBack(0), | |
110 | flistNoCutsFromB(0), | |
111 | flistNoCutsFromDstar(0), | |
112 | flistNoCutsOther(0), | |
113 | flistLsCutsSignal(0), | |
114 | flistLsCutsBack(0), | |
115 | flistLsCutsFromB(0), | |
116 | flistLsCutsFromDstar(0), | |
117 | flistLsCutsOther(0), | |
118 | flistTghCutsSignal(0), | |
119 | flistTghCutsBack(0), | |
120 | flistTghCutsFromB(0), | |
121 | flistTghCutsFromDstar(0), | |
122 | flistTghCutsOther(0) | |
624c07ab | 123 | |
124 | { | |
125 | // Constructor | |
126 | ||
127 | // Define input and output slots here | |
128 | // Input slot #0 works with a TChain | |
129 | // Output slot #0 writes into a TH1 container | |
130 | ||
131 | //Standard pt bin | |
132 | fnbins=4; | |
133 | fptbins=new Double_t[fnbins+1]; | |
134 | fptbins[0]=0.; | |
135 | fptbins[1]=1.; | |
136 | fptbins[2]=3.; | |
137 | fptbins[3]=5.; | |
138 | fptbins[4]=1000.; | |
c387e585 | 139 | //fAcceptanceCuts=new Double_t[3]; |
ac4c229c | 140 | SetAcceptanceCut(); |
624c07ab | 141 | SetStandardMassSelection(); |
142 | DefineOutput(1, TH1F::Class()); | |
143 | DefineOutput(2, TH1F::Class()); | |
144 | DefineOutput(3, TH1F::Class()); | |
145 | DefineOutput(4, TH1F::Class()); | |
146 | for(Int_t j=5;j<20;j++){ | |
147 | DefineOutput(j, TList::Class()); | |
148 | } | |
149 | ||
150 | ||
151 | } | |
152 | ||
153 | ||
154 | AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name,Int_t nptbins,Double_t *ptbins) | |
155 | : AliAnalysisTaskSE(name), | |
156 | fVHFloose(0), | |
157 | fVHFtight(0), | |
158 | fmD0PDG(), | |
159 | fnbins(), | |
160 | fptbins(0), | |
c387e585 | 161 | fAcceptanceCuts(), |
624c07ab | 162 | fsignalInvMassCut(), |
163 | flargeInvMassCut(), | |
164 | fsidebandInvMassCut(), | |
165 | fsidebandInvMassWindow(), | |
166 | fUseMC(kTRUE), | |
167 | fNentries(0), | |
168 | fSignalType(0), | |
169 | fSignalTypeLsCuts(0), | |
170 | fSignalTypeTghCuts(0), | |
ac4c229c | 171 | flistNoCutsSignal(0), |
172 | flistNoCutsBack(0), | |
173 | flistNoCutsFromB(0), | |
174 | flistNoCutsFromDstar(0), | |
175 | flistNoCutsOther(0), | |
176 | flistLsCutsSignal(0), | |
177 | flistLsCutsBack(0), | |
178 | flistLsCutsFromB(0), | |
179 | flistLsCutsFromDstar(0), | |
180 | flistLsCutsOther(0), | |
181 | flistTghCutsSignal(0), | |
182 | flistTghCutsBack(0), | |
183 | flistTghCutsFromB(0), | |
184 | flistTghCutsFromDstar(0), | |
185 | flistTghCutsOther(0) | |
624c07ab | 186 | { |
187 | // Constructor | |
188 | // ptbins must be of dimension nptbins +1 | |
189 | ||
190 | SetNPtBins(nptbins,ptbins); | |
191 | SetStandardMassSelection(); | |
c387e585 | 192 | // fAcceptanceCuts=new Double_t[3]; |
ac4c229c | 193 | SetAcceptanceCut(); |
624c07ab | 194 | // Define input and output slots here |
195 | ||
196 | // Output slot #0 writes into a TH1 container | |
197 | DefineOutput(1, TH1F::Class()); | |
198 | DefineOutput(2, TH1F::Class()); | |
199 | DefineOutput(3, TH1F::Class()); | |
200 | DefineOutput(4, TH1F::Class()); | |
201 | for(Int_t j=5;j<20;j++){ | |
202 | ||
203 | DefineOutput(j, TList::Class()); | |
204 | } | |
205 | ||
206 | ||
207 | } | |
208 | ||
209 | //________________________________________________________________________ | |
210 | AliAnalysisTaskSECharmFraction::~AliAnalysisTaskSECharmFraction() | |
211 | { //Destructor | |
212 | ||
213 | if (fVHFtight) { | |
214 | delete fVHFtight; | |
215 | fVHFtight = 0; | |
216 | } | |
217 | if (fVHFloose) { | |
218 | delete fVHFloose; | |
219 | fVHFloose = 0; | |
220 | } | |
ac4c229c | 221 | if(fptbins){ |
222 | delete fptbins; | |
223 | fptbins =0; | |
224 | } | |
c387e585 | 225 | /* if(fAcceptanceCuts){ |
ac4c229c | 226 | delete fAcceptanceCuts; |
227 | fAcceptanceCuts=0; | |
c387e585 | 228 | }*/ |
624c07ab | 229 | if (fNentries) { |
230 | delete fNentries; | |
231 | fNentries = 0; | |
232 | } | |
233 | if (fSignalType) { | |
234 | delete fSignalType; | |
235 | fSignalType = 0; | |
236 | } | |
237 | if (fSignalTypeLsCuts) { | |
238 | delete fSignalTypeLsCuts; | |
239 | fSignalTypeLsCuts = 0; | |
240 | } | |
241 | if (fSignalTypeTghCuts) { | |
242 | delete fSignalTypeTghCuts; | |
243 | fSignalTypeTghCuts = 0; | |
244 | } | |
ac4c229c | 245 | if(flistNoCutsSignal){ |
246 | delete flistNoCutsSignal; | |
247 | flistNoCutsSignal=0; | |
624c07ab | 248 | } |
ac4c229c | 249 | if(flistNoCutsBack){ |
250 | delete flistNoCutsBack; | |
251 | flistNoCutsBack=0; | |
624c07ab | 252 | } |
ac4c229c | 253 | if(flistNoCutsFromB){ |
254 | delete flistNoCutsFromB; | |
255 | flistNoCutsFromB=0; | |
624c07ab | 256 | } |
ac4c229c | 257 | if(flistNoCutsFromDstar){ |
258 | delete flistNoCutsFromDstar; | |
259 | flistNoCutsFromDstar=0; | |
624c07ab | 260 | } |
ac4c229c | 261 | if(flistNoCutsOther){ |
262 | delete flistNoCutsOther; | |
263 | flistNoCutsOther=0; | |
624c07ab | 264 | } |
265 | ||
ac4c229c | 266 | if(flistLsCutsSignal){ |
267 | delete flistLsCutsSignal; | |
268 | flistLsCutsSignal=0; | |
624c07ab | 269 | } |
ac4c229c | 270 | if(flistLsCutsBack){ |
271 | delete flistLsCutsBack; | |
272 | flistLsCutsBack=0; | |
624c07ab | 273 | } |
ac4c229c | 274 | if(flistLsCutsFromB){ |
275 | delete flistLsCutsFromB; | |
276 | flistLsCutsFromB=0; | |
624c07ab | 277 | } |
ac4c229c | 278 | if(flistLsCutsFromDstar){ |
279 | delete flistLsCutsFromDstar; | |
280 | flistLsCutsFromDstar=0; | |
624c07ab | 281 | } |
ac4c229c | 282 | if(flistLsCutsOther){ |
283 | delete flistLsCutsOther; | |
284 | flistLsCutsOther=0; | |
624c07ab | 285 | } |
286 | ||
ac4c229c | 287 | if(flistTghCutsSignal){ |
288 | delete flistTghCutsSignal; | |
289 | flistTghCutsSignal=0; | |
624c07ab | 290 | } |
ac4c229c | 291 | if(flistTghCutsBack){ |
292 | delete flistTghCutsBack; | |
293 | flistTghCutsBack=0; | |
624c07ab | 294 | } |
ac4c229c | 295 | if(flistTghCutsFromB){ |
296 | delete flistTghCutsFromB; | |
297 | flistTghCutsFromB=0; | |
624c07ab | 298 | } |
ac4c229c | 299 | if(flistTghCutsFromDstar){ |
300 | delete flistTghCutsFromDstar; | |
301 | flistTghCutsFromDstar=0; | |
624c07ab | 302 | } |
ac4c229c | 303 | if(flistTghCutsOther){ |
304 | delete flistTghCutsOther; | |
305 | flistTghCutsOther=0; | |
624c07ab | 306 | } |
307 | ||
308 | ||
309 | } | |
310 | ||
311 | ||
312 | //________________________________________________________________________ | |
313 | void AliAnalysisTaskSECharmFraction::Init() | |
314 | { | |
315 | // Initialization | |
316 | ||
317 | if(fDebug > 1) printf("AnalysisTaskSED0Mass::Init() \n"); | |
318 | fmD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass(); | |
319 | ||
320 | gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C"); | |
321 | ||
322 | // 2 sets of dedidcated cuts -- defined in UserExec | |
323 | // the config file and the way the cuts are set is for further development | |
324 | // (to be interfaced with AliAnalsysTaskSETuneCuts) | |
325 | ||
326 | fVHFtight = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()"); | |
327 | fVHFloose = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()"); | |
328 | if(!fptbins){ | |
329 | //SET STANDARD PT BINNING | |
330 | fnbins=4; | |
331 | fptbins=new Double_t[fnbins+1]; | |
332 | fptbins[0]=0.; | |
333 | fptbins[1]=1.; | |
334 | fptbins[2]=3.; | |
335 | fptbins[3]=5.; | |
336 | fptbins[4]=1000.; | |
337 | } | |
338 | return; | |
339 | } | |
340 | ||
341 | //________________________________________________________________________ | |
342 | void AliAnalysisTaskSECharmFraction::UserCreateOutputObjects() | |
343 | { | |
344 | // Create histograms | |
345 | // Called once | |
c387e585 | 346 | |
347 | // ################ NAMING SCHEME ################################### | |
348 | // LISTS NAMING SCHEME | |
349 | // "list" + cut selection string + MC selection string | |
350 | // cut strings: "NC" =nocuts, "LSC"= loose cuts, "TGHC"= tight cuts | |
351 | // MC sel. strings: "sign"= D0 from c quark | |
352 | // "fromDstar" = D0 from Dstar from c quark | |
353 | // "fromB"= D0from B decay (->from b quark) + D0from Dstar from B | |
354 | // "back"= backgroun, generic except the cas "other" | |
355 | // "other"= background case for candidates made of a pion and a kaon coming from the same D0 (in 4 prong) or from D+ | |
356 | // | |
357 | // HISTS NAMING SCHEME | |
358 | // | |
359 | // "h" + specific name + cut selection string + MC selection string + (InvMass region string) + (pt string) | |
360 | // | |
361 | // cut selection strings = those for lists | |
362 | // MC selection strings = those for lists | |
363 | // inv mass region strings : "PM" or "SB" for global properties and pt integrated histos | |
364 | // "_PkMss" or "_SBMss" for impact par. pt dependent histos | |
365 | // pt string : "_pt" + integer number of ptbin | |
366 | // | |
367 | //################################################################### | |
624c07ab | 368 | |
369 | TString namehist; | |
370 | TString titlehist; | |
371 | TString strnamept,strtitlept; | |
372 | ||
373 | fNentries=new TH1F("nentriesChFr", "Look at the number of entries! = number of AODs", 2,1.,2.); | |
374 | fSignalType=new TH1F("hsignaltype", "Histo for type of MC signal", 21,-1.,20.); | |
375 | fSignalTypeLsCuts=new TH1F("hsignaltypeLsCuts", "Histo for type of MC signal with loose cuts", 21,-1.,20.); | |
376 | fSignalTypeTghCuts=new TH1F("hsignaltypeTghCuts", "Histo for type of MC signal with tight cuts", 21,-1.,20.); | |
377 | ||
378 | //########## DEFINE THE TLISTS ################## | |
379 | ||
ac4c229c | 380 | flistNoCutsSignal = new TList(); |
381 | flistNoCutsSignal->SetOwner(); | |
382 | flistNoCutsSignal->SetName("listNCsign"); | |
624c07ab | 383 | |
ac4c229c | 384 | flistNoCutsBack = new TList(); |
385 | flistNoCutsBack->SetOwner(); | |
386 | flistNoCutsBack->SetName("listNCback"); | |
624c07ab | 387 | |
ac4c229c | 388 | flistNoCutsFromB = new TList(); |
389 | flistNoCutsFromB->SetOwner(); | |
390 | flistNoCutsFromB->SetName("listNCfromB"); | |
624c07ab | 391 | |
ac4c229c | 392 | flistNoCutsFromDstar = new TList(); |
393 | flistNoCutsFromDstar->SetOwner(); | |
394 | flistNoCutsFromDstar->SetName("listNCfromDstar"); | |
624c07ab | 395 | |
ac4c229c | 396 | flistNoCutsOther = new TList(); |
397 | flistNoCutsOther->SetOwner(); | |
398 | flistNoCutsOther->SetName("listNCother"); | |
624c07ab | 399 | |
400 | ||
ac4c229c | 401 | flistLsCutsSignal = new TList(); |
402 | flistLsCutsSignal->SetOwner(); | |
403 | flistLsCutsSignal->SetName("listLSCsign"); | |
624c07ab | 404 | |
ac4c229c | 405 | flistLsCutsBack = new TList(); |
406 | flistLsCutsBack->SetOwner(); | |
407 | flistLsCutsBack->SetName("listLSCback"); | |
624c07ab | 408 | |
ac4c229c | 409 | flistLsCutsFromB = new TList(); |
410 | flistLsCutsFromB->SetOwner(); | |
411 | flistLsCutsFromB->SetName("listLSCfromB"); | |
624c07ab | 412 | |
ac4c229c | 413 | flistLsCutsFromDstar = new TList(); |
414 | flistLsCutsFromDstar->SetOwner(); | |
415 | flistLsCutsFromDstar->SetName("listLSCfromDstar"); | |
624c07ab | 416 | |
ac4c229c | 417 | flistLsCutsOther = new TList(); |
418 | flistLsCutsOther->SetOwner(); | |
419 | flistLsCutsOther->SetName("listLSCother"); | |
624c07ab | 420 | |
421 | ||
ac4c229c | 422 | flistTghCutsSignal = new TList(); |
423 | flistTghCutsSignal->SetOwner(); | |
424 | flistTghCutsSignal->SetName("listTGHCsign"); | |
624c07ab | 425 | |
ac4c229c | 426 | flistTghCutsBack = new TList(); |
427 | flistTghCutsBack->SetOwner(); | |
428 | flistTghCutsBack->SetName("listTGHCback"); | |
624c07ab | 429 | |
ac4c229c | 430 | flistTghCutsFromB = new TList(); |
431 | flistTghCutsFromB->SetOwner(); | |
432 | flistTghCutsFromB->SetName("listTGHCfromB"); | |
624c07ab | 433 | |
ac4c229c | 434 | flistTghCutsFromDstar = new TList(); |
435 | flistTghCutsFromDstar->SetOwner(); | |
436 | flistTghCutsFromDstar->SetName("listTGHCfromDstar"); | |
624c07ab | 437 | |
ac4c229c | 438 | flistTghCutsOther = new TList(); |
439 | flistTghCutsOther->SetOwner(); | |
440 | flistTghCutsOther->SetName("listTGHCother"); | |
624c07ab | 441 | |
442 | ||
443 | ||
444 | ||
445 | //################################################################################################ | |
446 | // # | |
447 | // HISTOS FOR NO CUTS CASE # | |
448 | // # | |
449 | //################################################################################################ | |
450 | ||
451 | ||
452 | //############ NO CUTS SIGNAL HISTOGRAMS ############### | |
453 | // | |
454 | // ####### global properties histo ############ | |
455 | ||
ac4c229c | 456 | TH2F *hCPtaVSd0d0NCsign=new TH2F("hCPtaVSd0d0NCsign","hCPtaVSd0d0_NoCuts_Signal",1000,-100000.,100000.,100,0.,1.); |
457 | TH1F *hSecVtxZNCsign=new TH1F("hSecVtxZNCsign","hSecVtxZ_NoCuts_Signal",1000,-8.,8.); | |
458 | TH1F *hSecVtxXNCsign=new TH1F("hSecVtxXNCsign","hSecVtxX_NoCuts_Signal",1000,-3000.,3000.); | |
459 | TH1F *hSecVtxYNCsign=new TH1F("hSecVtxYNCsign","hSecVtxY_NoCuts_Signal",1000,-3000.,3000.); | |
460 | TH2F *hSecVtxXYNCsign=new TH2F("hSecVtxXYNCsign","hSecVtxXY_NoCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.); | |
461 | TH1F *hSecVtxPhiNCsign=new TH1F("hSecVtxPhiNCsign","hSecVtxPhi_NoCuts_Signal",180,-180.1,180.1); | |
462 | TH1F *hCPtaNCsign=new TH1F("hCPtaNCsign","hCPta_NoCuts_Signal",100,0.,1.); | |
463 | TH1F *hd0xd0NCsign=new TH1F("hd0xd0NCsign","hd0xd0_NoCuts_Signal",1000,-100000.,100000.); | |
464 | TH1F *hMassTrueNCsign=new TH1F("hMassTrueNCsign","D^{0} MC inv. Mass No Cuts Signal(All momenta)",600,1.600,2.200); | |
465 | TH1F *hMassNCsign=new TH1F("hMassNCsign","D^{0} inv. Mass No Cuts Signal (All momenta)",600,1.600,2.200); | |
466 | hMassNCsign->Sumw2(); | |
467 | TH1F *hMassTrueNCsignPM=new TH1F("hMassTrueNCsignPM","D^{0} MC inv. Mass No Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200); | |
468 | TH1F *hMassNCsignPM=new TH1F("hMassNCsignPM","D^{0} inv. Mass No Cuts Signal (All momenta), MassPeak",600,1.600,2.200); | |
469 | hMassNCsignPM->Sumw2(); | |
470 | ||
471 | TH1F *hMassTrueNCsignSB=new TH1F("hMassTrueNCsignSB","D^{0} MC inv. Mass in Side Bands No Cuts Signal(All momenta)",600,1.600,2.200); | |
472 | TH1F *hMassNCsignSB=new TH1F("hMassNCsignSB","D^{0} inv. Mass in Side Bands No Cuts Signal (All momenta)",600,1.600,2.200); | |
473 | hMassNCsignSB->Sumw2(); | |
474 | ||
475 | flistNoCutsSignal->Add(hCPtaVSd0d0NCsign); | |
476 | flistNoCutsSignal->Add(hSecVtxZNCsign); | |
477 | flistNoCutsSignal->Add(hSecVtxYNCsign); | |
478 | flistNoCutsSignal->Add(hSecVtxXNCsign); | |
479 | flistNoCutsSignal->Add(hSecVtxXYNCsign); | |
480 | flistNoCutsSignal->Add(hSecVtxPhiNCsign); | |
481 | flistNoCutsSignal->Add(hCPtaNCsign); | |
482 | flistNoCutsSignal->Add(hd0xd0NCsign); | |
483 | flistNoCutsSignal->Add(hMassTrueNCsign); | |
484 | flistNoCutsSignal->Add(hMassNCsign); | |
485 | flistNoCutsSignal->Add(hMassTrueNCsignPM); | |
486 | flistNoCutsSignal->Add(hMassNCsignPM); | |
487 | flistNoCutsSignal->Add(hMassTrueNCsignSB); | |
488 | flistNoCutsSignal->Add(hMassNCsignSB); | |
624c07ab | 489 | |
490 | // ####### d0 D0 histos ############ | |
ac4c229c | 491 | TH1F *hd0D0NCsignPM = new TH1F("hd0D0NCsignPM","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); |
492 | hd0D0NCsignPM->SetXTitle("Impact parameter [#mum]"); | |
493 | hd0D0NCsignPM->SetYTitle("Entries"); | |
494 | ||
495 | TH1F *hd0D0VtxTrueNCsignPM = new TH1F("hd0D0VtxTrueNCsignPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
496 | hd0D0VtxTrueNCsignPM->SetXTitle("Impact parameter [#mum]"); | |
497 | hd0D0VtxTrueNCsignPM->SetYTitle("Entries"); | |
498 | ||
499 | TH1F *hMCd0D0NCsignPM = new TH1F("hMCd0D0NCsignPM","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
500 | hMCd0D0NCsignPM->SetXTitle("MC Impact parameter [#mum]"); | |
501 | hMCd0D0NCsignPM->SetYTitle("Entries"); | |
502 | ||
503 | TH1F *hd0D0NCsignSB = new TH1F("hd0D0NCsignSB","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
504 | hd0D0NCsignSB->SetXTitle("Impact parameter [#mum]"); | |
505 | hd0D0NCsignSB->SetYTitle("Entries"); | |
506 | ||
507 | TH1F *hd0D0VtxTrueNCsignSB = new TH1F("hd0D0VtxTrueNCsignSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
508 | hd0D0VtxTrueNCsignSB->SetXTitle("Impact parameter [#mum]"); | |
509 | hd0D0VtxTrueNCsignSB->SetYTitle("Entries"); | |
510 | ||
511 | TH1F *hMCd0D0NCsignSB = new TH1F("hMCd0D0NCsignSB","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
512 | hMCd0D0NCsignSB->SetXTitle("MC Impact parameter [#mum]"); | |
513 | hMCd0D0NCsignSB->SetYTitle("Entries"); | |
514 | ||
515 | flistNoCutsSignal->Add(hd0D0NCsignPM); | |
516 | flistNoCutsSignal->Add(hd0D0VtxTrueNCsignPM); | |
517 | flistNoCutsSignal->Add(hMCd0D0NCsignPM); | |
518 | flistNoCutsSignal->Add(hd0D0NCsignSB); | |
519 | flistNoCutsSignal->Add(hd0D0VtxTrueNCsignSB); | |
520 | flistNoCutsSignal->Add(hMCd0D0NCsignSB); | |
521 | ||
522 | TH1F **hd0D0ptNCsignPM=new TH1F*[fnbins]; | |
523 | TH1F **hMCd0D0ptNCsignPM=new TH1F*[fnbins]; | |
524 | TH1F ** hd0D0VtxTrueptNCsignPM=new TH1F*[fnbins]; | |
525 | TH1F **hd0D0ptNCsignSB=new TH1F*[fnbins]; | |
526 | TH1F **hMCd0D0ptNCsignSB=new TH1F*[fnbins]; | |
527 | TH1F ** hd0D0VtxTrueptNCsignSB=new TH1F*[fnbins]; | |
528 | namehist="hd0D0ptNCsign_"; | |
624c07ab | 529 | titlehist="D^{0} impact par. plot, No Cuts, Signal, "; |
530 | for(Int_t i=0;i<fnbins;i++){ | |
531 | strnamept=namehist; | |
532 | strnamept.Append("PkMss_pt"); | |
533 | strnamept+=i; | |
534 | ||
535 | strtitlept=titlehist; | |
536 | strtitlept.Append(" Mass Peak, "); | |
537 | strtitlept+=fptbins[i]; | |
538 | strtitlept.Append("<= pt <"); | |
539 | strtitlept+=fptbins[i+1]; | |
540 | strtitlept.Append(" [GeV/c]"); | |
541 | ||
ac4c229c | 542 | hd0D0ptNCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
543 | hd0D0ptNCsignPM[i]->SetXTitle("Impact parameter [#mum] "); | |
544 | hd0D0ptNCsignPM[i]->SetYTitle("Entries"); | |
545 | flistNoCutsSignal->Add(hd0D0ptNCsignPM[i]); | |
624c07ab | 546 | |
547 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 548 | hMCd0D0ptNCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
549 | hMCd0D0ptNCsignPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
550 | hMCd0D0ptNCsignPM[i]->SetYTitle("Entries"); | |
551 | flistNoCutsSignal->Add(hMCd0D0ptNCsignPM[i]); | |
624c07ab | 552 | |
553 | ||
554 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 555 | hd0D0VtxTrueptNCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
556 | hd0D0VtxTrueptNCsignPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
557 | hd0D0VtxTrueptNCsignPM[i]->SetYTitle("Entries"); | |
558 | flistNoCutsSignal->Add(hd0D0VtxTrueptNCsignPM[i]); | |
624c07ab | 559 | |
560 | strnamept=namehist; | |
561 | strnamept.Append("SBMss_pt"); | |
562 | strnamept+=i; | |
563 | ||
564 | strtitlept=titlehist; | |
565 | strtitlept.Append(" Side Bands, "); | |
566 | strtitlept+=fptbins[i]; | |
567 | strtitlept.Append("<= pt <"); | |
568 | strtitlept+=fptbins[i+1]; | |
569 | strtitlept.Append(" [GeV/c]"); | |
570 | ||
ac4c229c | 571 | hd0D0ptNCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
572 | hd0D0ptNCsignSB[i]->SetXTitle("Impact parameter [#mum] "); | |
573 | hd0D0ptNCsignSB[i]->SetYTitle("Entries"); | |
574 | flistNoCutsSignal->Add(hd0D0ptNCsignSB[i]); | |
624c07ab | 575 | |
576 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 577 | hMCd0D0ptNCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
578 | hMCd0D0ptNCsignSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
579 | hMCd0D0ptNCsignSB[i]->SetYTitle("Entries"); | |
580 | flistNoCutsSignal->Add(hMCd0D0ptNCsignSB[i]); | |
624c07ab | 581 | |
582 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 583 | hd0D0VtxTrueptNCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
584 | hd0D0VtxTrueptNCsignSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
585 | hd0D0VtxTrueptNCsignSB[i]->SetYTitle("Entries"); | |
586 | flistNoCutsSignal->Add(hd0D0VtxTrueptNCsignSB[i]); | |
624c07ab | 587 | } |
588 | ||
589 | ||
590 | //############ NO CUTS BACKGROUND HISTOGRAMS ########### | |
591 | // | |
592 | // ######## global properties histos ####### | |
ac4c229c | 593 | TH2F *hCPtaVSd0d0NCback=new TH2F("hCPtaVSd0d0NCback","hCPtaVSd0d0_NoCuts_Background",1000,-100000.,100000.,100,0.,1.); |
594 | TH1F *hSecVtxZNCback=new TH1F("hSecVtxZNCback","hSecVtxZ_NoCuts_Background",1000,-8.,8.); | |
595 | TH1F *hSecVtxXNCback=new TH1F("hSecVtxXNCback","hSecVtxX_NoCuts_Background",1000,-3000.,3000.); | |
596 | TH1F *hSecVtxYNCback=new TH1F("hSecVtxYNCback","hSecVtxY_NoCuts_Background",1000,-3000.,3000.); | |
597 | TH2F *hSecVtxXYNCback=new TH2F("hSecVtxXYNCback","hSecVtxXY_NoCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.); | |
598 | TH1F *hSecVtxPhiNCback=new TH1F("hSecVtxPhiNCback","hSecVtxPhi_NoCuts_Background",180,-180.1,180.1); | |
599 | TH1F *hCPtaNCback=new TH1F("hCPtaNCback","hCPta_NoCuts_Background",100,0.,1.); | |
600 | TH1F *hd0xd0NCback=new TH1F("hd0xd0NCback","hd0xd0_NoCuts_Background",1000,-100000.,100000.); | |
601 | TH1F *hMassTrueNCback=new TH1F("hMassTrueNCback","D^{0} MC inv. Mass No Cuts Background(All momenta)",600,1.600,2.200); | |
602 | TH1F *hMassNCback=new TH1F("hMassNCback","D^{0} inv. Mass No Cuts Background (All momenta)",600,1.600,2.200); | |
603 | hMassNCback->Sumw2(); | |
604 | TH1F *hMassTrueNCbackPM=new TH1F("hMassTrueNCbackPM","D^{0} MC inv. Mass No Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200); | |
605 | TH1F *hMassNCbackPM=new TH1F("hMassNCbackPM","D^{0} inv. Mass No Cuts Background (All momenta), MassPeak",600,1.600,2.200); | |
606 | hMassNCbackPM->Sumw2(); | |
607 | TH1F *hMassTrueNCbackSB=new TH1F("hMassTrueNCbackSB","D^{0} MC inv. Mass in Side Bands No Cuts Background(All momenta)",600,1.600,2.200); | |
608 | TH1F *hMassNCbackSB=new TH1F("hMassNCbackSB","D^{0} inv. Mass in Side Bands No Cuts Background (All momenta)",600,1.600,2.200); | |
609 | hMassNCbackSB->Sumw2(); | |
610 | ||
611 | flistNoCutsBack->Add(hCPtaVSd0d0NCback); | |
612 | flistNoCutsBack->Add(hSecVtxZNCback); | |
613 | flistNoCutsBack->Add(hSecVtxYNCback); | |
614 | flistNoCutsBack->Add(hSecVtxXNCback); | |
615 | flistNoCutsBack->Add(hSecVtxXYNCback); | |
616 | flistNoCutsBack->Add(hSecVtxPhiNCback); | |
617 | flistNoCutsBack->Add(hCPtaNCback); | |
618 | flistNoCutsBack->Add(hd0xd0NCback); | |
619 | flistNoCutsBack->Add(hMassTrueNCback); | |
620 | flistNoCutsBack->Add(hMassNCback); | |
621 | flistNoCutsBack->Add(hMassTrueNCbackPM); | |
622 | flistNoCutsBack->Add(hMassNCbackPM); | |
623 | flistNoCutsBack->Add(hMassTrueNCbackSB); | |
624 | flistNoCutsBack->Add(hMassNCbackSB); | |
624c07ab | 625 | |
626 | ||
627 | // ####### d0 D0 histos ############ | |
628 | ||
ac4c229c | 629 | TH1F *hd0D0NCbackPM = new TH1F("hd0D0NCbackPM","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); |
630 | hd0D0NCbackPM->SetXTitle("Impact parameter [#mum]"); | |
631 | hd0D0NCbackPM->SetYTitle("Entries"); | |
632 | ||
633 | TH1F *hd0D0VtxTrueNCbackPM = new TH1F("hd0D0VtxTrueNCbackPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
634 | hd0D0VtxTrueNCbackPM->SetXTitle("Impact parameter [#mum]"); | |
635 | hd0D0VtxTrueNCbackPM->SetYTitle("Entries"); | |
636 | ||
637 | TH1F *hMCd0D0NCbackPM = new TH1F("hMCd0D0NCbackPM","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
638 | hMCd0D0NCbackPM->SetXTitle("MC Impact parameter [#mum]"); | |
639 | hMCd0D0NCbackPM->SetYTitle("Entries"); | |
640 | ||
641 | TH1F *hd0D0NCbackSB = new TH1F("hd0D0NCbackSB","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
642 | hd0D0NCbackSB->SetXTitle("Impact parameter [#mum]"); | |
643 | hd0D0NCbackSB->SetYTitle("Entries"); | |
644 | ||
645 | TH1F *hd0D0VtxTrueNCbackSB = new TH1F("hd0D0VtxTrueNCbackSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
646 | hd0D0VtxTrueNCbackSB->SetXTitle("Impact parameter [#mum]"); | |
647 | hd0D0VtxTrueNCbackSB->SetYTitle("Entries"); | |
648 | ||
649 | TH1F *hMCd0D0NCbackSB = new TH1F("hMCd0D0NCbackSB","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
650 | hMCd0D0NCbackSB->SetXTitle("MC Impact parameter [#mum]"); | |
651 | hMCd0D0NCbackSB->SetYTitle("Entries"); | |
652 | ||
653 | flistNoCutsBack->Add(hd0D0NCbackPM); | |
654 | flistNoCutsBack->Add(hd0D0VtxTrueNCbackPM); | |
655 | flistNoCutsBack->Add(hMCd0D0NCbackPM); | |
656 | flistNoCutsBack->Add(hd0D0NCbackSB); | |
657 | flistNoCutsBack->Add(hd0D0VtxTrueNCbackSB); | |
658 | flistNoCutsBack->Add(hMCd0D0NCbackSB); | |
659 | ||
660 | TH1F **hd0D0ptNCbackPM=new TH1F*[fnbins]; | |
661 | TH1F **hMCd0D0ptNCbackPM=new TH1F*[fnbins]; | |
662 | TH1F ** hd0D0VtxTrueptNCbackPM=new TH1F*[fnbins]; | |
663 | TH1F **hd0D0ptNCbackSB=new TH1F*[fnbins]; | |
664 | TH1F **hMCd0D0ptNCbackSB=new TH1F*[fnbins]; | |
665 | TH1F ** hd0D0VtxTrueptNCbackSB=new TH1F*[fnbins]; | |
666 | namehist="hd0D0ptNCback_"; | |
624c07ab | 667 | titlehist="D^{0} impact par. plot, No Cuts, Background, "; |
668 | for(Int_t i=0;i<fnbins;i++){ | |
669 | strnamept=namehist; | |
670 | strnamept.Append("PkMss_pt"); | |
671 | strnamept+=i; | |
672 | ||
673 | strtitlept=titlehist; | |
674 | strtitlept.Append(" Mass Peak, "); | |
675 | strtitlept+=fptbins[i]; | |
676 | strtitlept.Append("<= pt <"); | |
677 | strtitlept+=fptbins[i+1]; | |
678 | strtitlept.Append(" [GeV/c]"); | |
679 | ||
ac4c229c | 680 | hd0D0ptNCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
681 | hd0D0ptNCbackPM[i]->SetXTitle("Impact parameter [#mum] "); | |
682 | hd0D0ptNCbackPM[i]->SetYTitle("Entries"); | |
683 | flistNoCutsBack->Add(hd0D0ptNCbackPM[i]); | |
624c07ab | 684 | |
685 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 686 | hMCd0D0ptNCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
687 | hMCd0D0ptNCbackPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
688 | hMCd0D0ptNCbackPM[i]->SetYTitle("Entries"); | |
689 | flistNoCutsBack->Add(hMCd0D0ptNCbackPM[i]); | |
624c07ab | 690 | |
691 | ||
692 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 693 | hd0D0VtxTrueptNCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
694 | hd0D0VtxTrueptNCbackPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
695 | hd0D0VtxTrueptNCbackPM[i]->SetYTitle("Entries"); | |
696 | flistNoCutsBack->Add(hd0D0VtxTrueptNCbackPM[i]); | |
624c07ab | 697 | |
698 | strnamept=namehist; | |
699 | strnamept.Append("SBMss_pt"); | |
700 | strnamept+=i; | |
701 | ||
702 | strtitlept=titlehist; | |
703 | strtitlept.Append(" Side Bands, "); | |
704 | strtitlept+=fptbins[i]; | |
705 | strtitlept.Append("<= pt <"); | |
706 | strtitlept+=fptbins[i+1]; | |
707 | strtitlept.Append(" [GeV/c]"); | |
708 | ||
ac4c229c | 709 | hd0D0ptNCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
710 | hd0D0ptNCbackSB[i]->SetXTitle("Impact parameter [#mum] "); | |
711 | hd0D0ptNCbackSB[i]->SetYTitle("Entries"); | |
712 | flistNoCutsBack->Add(hd0D0ptNCbackSB[i]); | |
624c07ab | 713 | |
714 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 715 | hMCd0D0ptNCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
716 | hMCd0D0ptNCbackSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
717 | hMCd0D0ptNCbackSB[i]->SetYTitle("Entries"); | |
718 | flistNoCutsBack->Add(hMCd0D0ptNCbackSB[i]); | |
624c07ab | 719 | |
720 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 721 | hd0D0VtxTrueptNCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
722 | hd0D0VtxTrueptNCbackSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
723 | hd0D0VtxTrueptNCbackSB[i]->SetYTitle("Entries"); | |
724 | flistNoCutsBack->Add(hd0D0VtxTrueptNCbackSB[i]); | |
624c07ab | 725 | } |
726 | ||
727 | ||
728 | ||
729 | //############ NO CUTS FROMB HISTOGRAMS ########### | |
730 | // | |
731 | //####### global properties histos | |
732 | ||
ac4c229c | 733 | TH2F *hCPtaVSd0d0NCfromB=new TH2F("hCPtaVSd0d0NCfromB","hCPtaVSd0d0_NoCuts_FromB",1000,-100000.,100000.,100,0.,1.); |
734 | TH1F *hSecVtxZNCfromB=new TH1F("hSecVtxZNCfromB","hSecVtxZ_NoCuts_FromB",1000,-8.,8.); | |
735 | TH1F *hSecVtxXNCfromB=new TH1F("hSecVtxXNCfromB","hSecVtxX_NoCuts_FromB",1000,-3000.,3000.); | |
736 | TH1F *hSecVtxYNCfromB=new TH1F("hSecVtxYNCfromB","hSecVtxY_NoCuts_FromB",1000,-3000.,3000.); | |
737 | TH2F *hSecVtxXYNCfromB=new TH2F("hSecVtxXYNCfromB","hSecVtxXY_NoCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.); | |
738 | TH1F *hSecVtxPhiNCfromB=new TH1F("hSecVtxPhiNCfromB","hSecVtxPhi_NoCuts_FromB",180,-180.1,180.1); | |
739 | TH1F *hCPtaNCfromB=new TH1F("hCPtaNCfromB","hCPta_NoCuts_FromB",100,0.,1.); | |
740 | TH1F *hd0xd0NCfromB=new TH1F("hd0xd0NCfromB","hd0xd0_NoCuts_FromB",1000,-100000.,100000.); | |
741 | TH1F *hMassTrueNCfromB=new TH1F("hMassTrueNCfromB","D^{0} MC inv. Mass No Cuts FromB(All momenta)",600,1.600,2.200); | |
742 | TH1F *hMassNCfromB=new TH1F("hMassNCfromB","D^{0} inv. Mass No Cuts FromB (All momenta)",600,1.600,2.200); | |
743 | hMassNCfromB->Sumw2(); | |
744 | TH1F *hMassTrueNCfromBPM=new TH1F("hMassTrueNCfromBPM","D^{0} MC inv. Mass No Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200); | |
745 | TH1F *hMassNCfromBPM=new TH1F("hMassNCfromBPM","D^{0} inv. Mass No Cuts FromB (All momenta), MassPeak",600,1.600,2.200); | |
746 | hMassNCfromB->Sumw2(); | |
747 | TH1F *hMassTrueNCfromBSB=new TH1F("hMassTrueNCfromBSB","D^{0} MC inv. Mass in Side Bands No Cuts FromB(All momenta)",600,1.600,2.200); | |
748 | TH1F *hMassNCfromBSB=new TH1F("hMassNCfromBSB","D^{0} inv. Mass in Side Bands No Cuts FromB (All momenta)",600,1.600,2.200); | |
749 | hMassNCfromBSB->Sumw2(); | |
750 | ||
751 | flistNoCutsFromB->Add(hCPtaVSd0d0NCfromB); | |
752 | flistNoCutsFromB->Add(hSecVtxZNCfromB); | |
753 | flistNoCutsFromB->Add(hSecVtxYNCfromB); | |
754 | flistNoCutsFromB->Add(hSecVtxXNCfromB); | |
755 | flistNoCutsFromB->Add(hSecVtxXYNCfromB); | |
756 | flistNoCutsFromB->Add(hSecVtxPhiNCfromB); | |
757 | flistNoCutsFromB->Add(hCPtaNCfromB); | |
758 | flistNoCutsFromB->Add(hd0xd0NCfromB); | |
759 | flistNoCutsFromB->Add(hMassTrueNCfromB); | |
760 | flistNoCutsFromB->Add(hMassNCfromB); | |
761 | flistNoCutsFromB->Add(hMassTrueNCfromBPM); | |
762 | flistNoCutsFromB->Add(hMassNCfromBPM); | |
763 | flistNoCutsFromB->Add(hMassTrueNCfromBSB); | |
764 | flistNoCutsFromB->Add(hMassNCfromBSB); | |
624c07ab | 765 | |
766 | // ######### d0 D0 histos ############## | |
ac4c229c | 767 | TH1F *hd0D0NCfromBPM = new TH1F("hd0D0NCfromBPM","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); |
768 | hd0D0NCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
769 | hd0D0NCfromBPM->SetYTitle("Entries"); | |
770 | ||
771 | TH1F *hd0D0VtxTrueNCfromBPM = new TH1F("hd0D0VtxTrueNCfromBPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
772 | hd0D0VtxTrueNCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
773 | hd0D0VtxTrueNCfromBPM->SetYTitle("Entries"); | |
774 | ||
775 | TH1F *hMCd0D0NCfromBPM = new TH1F("hMCd0D0NCfromBPM","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
776 | hMCd0D0NCfromBPM->SetXTitle("MC Impact parameter [#mum]"); | |
777 | hMCd0D0NCfromBPM->SetYTitle("Entries"); | |
778 | ||
779 | TH1F *hd0D0NCfromBSB = new TH1F("hd0D0NCfromBSB","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
780 | hd0D0NCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
781 | hd0D0NCfromBSB->SetYTitle("Entries"); | |
782 | ||
783 | TH1F *hd0D0VtxTrueNCfromBSB = new TH1F("hd0D0VtxTrueNCfromBSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
784 | hd0D0VtxTrueNCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
785 | hd0D0VtxTrueNCfromBSB->SetYTitle("Entries"); | |
786 | ||
787 | TH1F *hMCd0D0NCfromBSB = new TH1F("hMCd0D0NCfromBSB","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
788 | hMCd0D0NCfromBSB->SetXTitle("MC Impact parameter [#mum]"); | |
789 | hMCd0D0NCfromBSB->SetYTitle("Entries"); | |
790 | ||
791 | flistNoCutsFromB->Add(hd0D0NCfromBPM); | |
792 | flistNoCutsFromB->Add(hd0D0VtxTrueNCfromBPM); | |
793 | flistNoCutsFromB->Add(hMCd0D0NCfromBPM); | |
794 | flistNoCutsFromB->Add(hd0D0NCfromBSB); | |
795 | flistNoCutsFromB->Add(hd0D0VtxTrueNCfromBSB); | |
796 | flistNoCutsFromB->Add(hMCd0D0NCfromBSB); | |
797 | ||
798 | TH1F **hd0D0ptNCfromBPM=new TH1F*[fnbins]; | |
799 | TH1F **hMCd0D0ptNCfromBPM=new TH1F*[fnbins]; | |
800 | TH1F ** hd0D0VtxTrueptNCfromBPM=new TH1F*[fnbins]; | |
801 | TH1F **hd0D0ptNCfromBSB=new TH1F*[fnbins]; | |
802 | TH1F **hMCd0D0ptNCfromBSB=new TH1F*[fnbins]; | |
803 | TH1F ** hd0D0VtxTrueptNCfromBSB=new TH1F*[fnbins]; | |
804 | namehist="hd0D0ptNCfromB_"; | |
624c07ab | 805 | titlehist="D^{0} impact par. plot, No Cuts, FromB, "; |
806 | for(Int_t i=0;i<fnbins;i++){ | |
807 | strnamept=namehist; | |
808 | strnamept.Append("PkMss_pt"); | |
809 | strnamept+=i; | |
810 | ||
811 | strtitlept=titlehist; | |
812 | strtitlept.Append(" Mass Peak, "); | |
813 | strtitlept+=fptbins[i]; | |
814 | strtitlept.Append("<= pt <"); | |
815 | strtitlept+=fptbins[i+1]; | |
816 | strtitlept.Append(" [GeV/c]"); | |
817 | ||
ac4c229c | 818 | hd0D0ptNCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
819 | hd0D0ptNCfromBPM[i]->SetXTitle("Impact parameter [#mum] "); | |
820 | hd0D0ptNCfromBPM[i]->SetYTitle("Entries"); | |
821 | flistNoCutsFromB->Add(hd0D0ptNCfromBPM[i]); | |
624c07ab | 822 | |
823 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 824 | hMCd0D0ptNCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
825 | hMCd0D0ptNCfromBPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
826 | hMCd0D0ptNCfromBPM[i]->SetYTitle("Entries"); | |
827 | flistNoCutsFromB->Add(hMCd0D0ptNCfromBPM[i]); | |
624c07ab | 828 | |
829 | ||
830 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 831 | hd0D0VtxTrueptNCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
832 | hd0D0VtxTrueptNCfromBPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
833 | hd0D0VtxTrueptNCfromBPM[i]->SetYTitle("Entries"); | |
834 | flistNoCutsFromB->Add(hd0D0VtxTrueptNCfromBPM[i]); | |
624c07ab | 835 | |
836 | strnamept=namehist; | |
837 | strnamept.Append("SBMss_pt"); | |
838 | strnamept+=i; | |
839 | ||
840 | strtitlept=titlehist; | |
841 | strtitlept.Append(" Side Bands, "); | |
842 | strtitlept+=fptbins[i]; | |
843 | strtitlept.Append("<= pt <"); | |
844 | strtitlept+=fptbins[i+1]; | |
845 | strtitlept.Append(" [GeV/c]"); | |
846 | ||
ac4c229c | 847 | hd0D0ptNCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
848 | hd0D0ptNCfromBSB[i]->SetXTitle("Impact parameter [#mum] "); | |
849 | hd0D0ptNCfromBSB[i]->SetYTitle("Entries"); | |
850 | flistNoCutsFromB->Add(hd0D0ptNCfromBSB[i]); | |
624c07ab | 851 | |
852 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 853 | hMCd0D0ptNCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
854 | hMCd0D0ptNCfromBSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
855 | hMCd0D0ptNCfromBSB[i]->SetYTitle("Entries"); | |
856 | flistNoCutsFromB->Add(hMCd0D0ptNCfromBSB[i]); | |
624c07ab | 857 | |
858 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 859 | hd0D0VtxTrueptNCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
860 | hd0D0VtxTrueptNCfromBSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
861 | hd0D0VtxTrueptNCfromBSB[i]->SetYTitle("Entries"); | |
862 | flistNoCutsFromB->Add(hd0D0VtxTrueptNCfromBSB[i]); | |
624c07ab | 863 | } |
864 | ||
865 | ||
866 | ||
867 | //############ NO CUTS FROM DSTAR HISTOGRAMS ########### | |
868 | // | |
869 | //############# global properties histos ####### | |
870 | ||
ac4c229c | 871 | TH2F *hCPtaVSd0d0NCfromDstar=new TH2F("hCPtaVSd0d0NCfromDstar","hCPtaVSd0d0_NoCuts_FromDStar",1000,-100000.,100000.,100,0.,1.); |
872 | TH1F *hSecVtxZNCfromDstar=new TH1F("hSecVtxZNCfromDstar","hSecVtxZ_NoCuts_FromDStar",1000,-8.,8.); | |
873 | TH1F *hSecVtxXNCfromDstar=new TH1F("hSecVtxXNCfromDstar","hSecVtxX_NoCuts_FromDStar",1000,-3000.,3000.); | |
874 | TH1F *hSecVtxYNCfromDstar=new TH1F("hSecVtxYNCfromDstar","hSecVtxY_NoCuts_FromDStar",1000,-3000.,3000.); | |
875 | TH2F *hSecVtxXYNCfromDstar=new TH2F("hSecVtxXYNCfromDstar","hSecVtxXY_NoCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.); | |
876 | TH1F *hSecVtxPhiNCfromDstar=new TH1F("hSecVtxPhiNCfromDstar","hSecVtxPhi_NoCuts_FromDStar",180,-180.1,180.1); | |
877 | TH1F *hCPtaNCfromDstar=new TH1F("hCPtaNCfromDstar","hCPta_NoCuts_FromDStar",100,0.,1.); | |
878 | TH1F *hd0xd0NCfromDstar=new TH1F("hd0xd0NCfromDstar","hd0xd0_NoCuts_FromDStar",1000,-100000.,100000.); | |
879 | TH1F *hMassTrueNCfromDstar=new TH1F("hMassTrueNCfromDstar","D^{0} MC inv. Mass No Cuts FromDStar(All momenta)",600,1.600,2.200); | |
880 | TH1F *hMassNCfromDstar=new TH1F("hMassNCfromDstar","D^{0} inv. Mass No Cuts FromDStar (All momenta)",600,1.600,2.200); | |
881 | hMassNCfromDstar->Sumw2(); | |
882 | TH1F *hMassTrueNCfromDstarPM=new TH1F("hMassTrueNCfromDstarPM","D^{0} MC inv. Mass No Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200); | |
883 | TH1F *hMassNCfromDstarPM=new TH1F("hMassNCfromDstarPM","D^{0} inv. Mass No Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200); | |
884 | hMassNCfromDstarPM->Sumw2(); | |
885 | TH1F *hMassTrueNCfromDstarSB=new TH1F("hMassTrueNCfromDstarSB","D^{0} MC inv. Mass in Side Bands No Cuts FromDStar(All momenta)",600,1.600,2.200); | |
886 | TH1F *hMassNCfromDstarSB=new TH1F("hMassNCfromDstarSB","D^{0} inv. Mass in Side Bands No Cuts FromDStar (All momenta)",600,1.600,2.200); | |
887 | hMassNCfromDstarSB->Sumw2(); | |
888 | ||
889 | flistNoCutsFromDstar->Add(hCPtaVSd0d0NCfromDstar); | |
890 | flistNoCutsFromDstar->Add(hSecVtxZNCfromDstar); | |
891 | flistNoCutsFromDstar->Add(hSecVtxYNCfromDstar); | |
892 | flistNoCutsFromDstar->Add(hSecVtxXNCfromDstar); | |
893 | flistNoCutsFromDstar->Add(hSecVtxXYNCfromDstar); | |
894 | flistNoCutsFromDstar->Add(hSecVtxPhiNCfromDstar); | |
895 | flistNoCutsFromDstar->Add(hCPtaNCfromDstar); | |
896 | flistNoCutsFromDstar->Add(hd0xd0NCfromDstar); | |
897 | flistNoCutsFromDstar->Add(hMassTrueNCfromDstar); | |
898 | flistNoCutsFromDstar->Add(hMassNCfromDstar); | |
899 | flistNoCutsFromDstar->Add(hMassTrueNCfromDstarPM); | |
900 | flistNoCutsFromDstar->Add(hMassNCfromDstarPM); | |
901 | flistNoCutsFromDstar->Add(hMassTrueNCfromDstarSB); | |
902 | flistNoCutsFromDstar->Add(hMassNCfromDstarSB); | |
624c07ab | 903 | |
904 | //########## d0 D0 histos ############# | |
ac4c229c | 905 | TH1F *hd0D0NCfromDstPM = new TH1F("hd0D0NCfromDstarPM","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); |
906 | hd0D0NCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
907 | hd0D0NCfromDstPM->SetYTitle("Entries"); | |
908 | ||
909 | TH1F *hd0D0VtxTrueNCfromDstPM = new TH1F("hd0D0VtxTrueNCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
910 | hd0D0VtxTrueNCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
911 | hd0D0VtxTrueNCfromDstPM->SetYTitle("Entries"); | |
912 | ||
913 | TH1F *hMCd0D0NCfromDstPM = new TH1F("hMCd0D0NCfromDstarPM","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
914 | hMCd0D0NCfromDstPM->SetXTitle("MC Impact parameter [#mum]"); | |
915 | hMCd0D0NCfromDstPM->SetYTitle("Entries"); | |
916 | ||
917 | TH1F *hd0D0NCfromDstSB = new TH1F("hd0D0NCfromDstarSB","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
918 | hd0D0NCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
919 | hd0D0NCfromDstSB->SetYTitle("Entries"); | |
920 | ||
921 | TH1F *hd0D0VtxTrueNCfromDstSB = new TH1F("hd0D0VtxTrueNCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
922 | hd0D0VtxTrueNCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
923 | hd0D0VtxTrueNCfromDstSB->SetYTitle("Entries"); | |
924 | ||
925 | TH1F *hMCd0D0NCfromDstSB = new TH1F("hMCd0D0NCfromDstarSB","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
926 | hMCd0D0NCfromDstSB->SetXTitle("MC Impact parameter [#mum]"); | |
927 | hMCd0D0NCfromDstSB->SetYTitle("Entries"); | |
928 | ||
929 | flistNoCutsFromDstar->Add(hd0D0NCfromDstPM); | |
930 | flistNoCutsFromDstar->Add(hd0D0VtxTrueNCfromDstPM); | |
931 | flistNoCutsFromDstar->Add(hMCd0D0NCfromDstPM); | |
932 | flistNoCutsFromDstar->Add(hd0D0NCfromDstSB); | |
933 | flistNoCutsFromDstar->Add(hd0D0VtxTrueNCfromDstSB); | |
934 | flistNoCutsFromDstar->Add(hMCd0D0NCfromDstSB); | |
935 | ||
936 | TH1F **hd0D0ptNCfromDstPM=new TH1F*[fnbins]; | |
937 | TH1F **hMCd0D0ptNCfromDstPM=new TH1F*[fnbins]; | |
938 | TH1F ** hd0D0VtxTrueptNCfromDstPM=new TH1F*[fnbins]; | |
939 | TH1F **hd0D0ptNCfromDstSB=new TH1F*[fnbins]; | |
940 | TH1F **hMCd0D0ptNCfromDstSB=new TH1F*[fnbins]; | |
941 | TH1F ** hd0D0VtxTrueptNCfromDstSB=new TH1F*[fnbins]; | |
942 | namehist="hd0D0ptNCfromDstar_"; | |
624c07ab | 943 | titlehist="D^{0} impact par. plot, No Cuts, FromDStar, "; |
944 | for(Int_t i=0;i<fnbins;i++){ | |
945 | strnamept=namehist; | |
946 | strnamept.Append("PkMss_pt"); | |
947 | strnamept+=i; | |
948 | ||
949 | strtitlept=titlehist; | |
950 | strtitlept.Append(" Mass Peak, "); | |
951 | strtitlept+=fptbins[i]; | |
952 | strtitlept.Append("<= pt <"); | |
953 | strtitlept+=fptbins[i+1]; | |
954 | strtitlept.Append(" [GeV/c]"); | |
955 | ||
ac4c229c | 956 | hd0D0ptNCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
957 | hd0D0ptNCfromDstPM[i]->SetXTitle("Impact parameter [#mum] "); | |
958 | hd0D0ptNCfromDstPM[i]->SetYTitle("Entries"); | |
959 | flistNoCutsFromDstar->Add(hd0D0ptNCfromDstPM[i]); | |
624c07ab | 960 | |
961 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 962 | hMCd0D0ptNCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
963 | hMCd0D0ptNCfromDstPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
964 | hMCd0D0ptNCfromDstPM[i]->SetYTitle("Entries"); | |
965 | flistNoCutsFromDstar->Add(hMCd0D0ptNCfromDstPM[i]); | |
624c07ab | 966 | |
967 | ||
968 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 969 | hd0D0VtxTrueptNCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
970 | hd0D0VtxTrueptNCfromDstPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
971 | hd0D0VtxTrueptNCfromDstPM[i]->SetYTitle("Entries"); | |
972 | flistNoCutsFromDstar->Add(hd0D0VtxTrueptNCfromDstPM[i]); | |
624c07ab | 973 | |
974 | strnamept=namehist; | |
975 | strnamept.Append("SBMss_pt"); | |
976 | strnamept+=i; | |
977 | ||
978 | strtitlept=titlehist; | |
979 | strtitlept.Append(" Side Bands, "); | |
980 | strtitlept+=fptbins[i]; | |
981 | strtitlept.Append("<= pt <"); | |
982 | strtitlept+=fptbins[i+1]; | |
983 | strtitlept.Append(" [GeV/c]"); | |
984 | ||
ac4c229c | 985 | hd0D0ptNCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
986 | hd0D0ptNCfromDstSB[i]->SetXTitle("Impact parameter [#mum] "); | |
987 | hd0D0ptNCfromDstSB[i]->SetYTitle("Entries"); | |
988 | flistNoCutsFromDstar->Add(hd0D0ptNCfromDstSB[i]); | |
624c07ab | 989 | |
990 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 991 | hMCd0D0ptNCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
992 | hMCd0D0ptNCfromDstSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
993 | hMCd0D0ptNCfromDstSB[i]->SetYTitle("Entries"); | |
994 | flistNoCutsFromDstar->Add(hMCd0D0ptNCfromDstSB[i]); | |
624c07ab | 995 | |
996 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 997 | hd0D0VtxTrueptNCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
998 | hd0D0VtxTrueptNCfromDstSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
999 | hd0D0VtxTrueptNCfromDstSB[i]->SetYTitle("Entries"); | |
1000 | flistNoCutsFromDstar->Add(hd0D0VtxTrueptNCfromDstSB[i]); | |
624c07ab | 1001 | } |
1002 | ||
1003 | ||
1004 | //############ NO CUTS OTHER HISTOGRAMS ########### | |
1005 | // | |
1006 | //########### global properties histos ########### | |
1007 | ||
ac4c229c | 1008 | TH2F *hCPtaVSd0d0NCother=new TH2F("hCPtaVSd0d0NCother","hCPtaVSd0d0_NoCuts_other",1000,-100000.,100000.,100,0.,1.); |
1009 | TH1F *hSecVtxZNCother=new TH1F("hSecVtxZNCother","hSecVtxZ_NoCuts_other",1000,-8.,8.); | |
1010 | TH1F *hSecVtxXNCother=new TH1F("hSecVtxXNCother","hSecVtxX_NoCuts_other",1000,-3000.,3000.); | |
1011 | TH1F *hSecVtxYNCother=new TH1F("hSecVtxYNCother","hSecVtxY_NoCuts_other",1000,-3000.,3000.); | |
1012 | TH2F *hSecVtxXYNCother=new TH2F("hSecVtxXYNCother","hSecVtxXY_NoCuts_other",1000,-3000.,3000.,1000,-3000.,3000.); | |
1013 | TH1F *hSecVtxPhiNCother=new TH1F("hSecVtxPhiNCother","hSecVtxPhi_NoCuts_other",180,-180.1,180.1); | |
1014 | TH1F *hCPtaNCother=new TH1F("hCPtaNCother","hCPta_NoCuts_other",100,0.,1.); | |
1015 | TH1F *hd0xd0NCother=new TH1F("hd0xd0NCother","hd0xd0_NoCuts_other",1000,-100000.,100000.); | |
1016 | TH1F *hMassTrueNCother=new TH1F("hMassTrueNCother","D^{0} MC inv. Mass No Cuts other(All momenta)",600,1.600,2.200); | |
1017 | TH1F *hMassNCother=new TH1F("hMassNCother","D^{0} inv. Mass No Cuts other (All momenta)",600,1.600,2.200); | |
1018 | hMassNCother->Sumw2(); | |
1019 | TH1F *hMassTrueNCotherPM=new TH1F("hMassTrueNCotherPM","D^{0} MC inv. Mass No Cuts Other, Mass Peak. (All momenta)",600,1.600,2.200); | |
1020 | TH1F *hMassNCotherPM=new TH1F("hMassNCotherPM","D^{0} inv. Mass No Cuts Other (All momenta), MassPeak",600,1.600,2.200); | |
1021 | hMassNCotherPM->Sumw2(); | |
1022 | TH1F *hMassTrueNCotherSB=new TH1F("hMassTrueNCotherSB","D^{0} MC inv. Mass in Side Bands No Cuts other(All momenta)",600,1.600,2.200); | |
1023 | TH1F *hMassNCotherSB=new TH1F("hMassNCotherSB","D^{0} inv. Mass in Side Bands No Cuts other (All momenta)",600,1.600,2.200); | |
1024 | hMassNCotherSB->Sumw2(); | |
1025 | ||
1026 | flistNoCutsOther->Add(hCPtaVSd0d0NCother); | |
1027 | flistNoCutsOther->Add(hSecVtxZNCother); | |
1028 | flistNoCutsOther->Add(hSecVtxYNCother); | |
1029 | flistNoCutsOther->Add(hSecVtxXNCother); | |
1030 | flistNoCutsOther->Add(hSecVtxXYNCother); | |
1031 | flistNoCutsOther->Add(hSecVtxPhiNCother); | |
1032 | flistNoCutsOther->Add(hCPtaNCother); | |
1033 | flistNoCutsOther->Add(hd0xd0NCother); | |
1034 | flistNoCutsOther->Add(hMassTrueNCother); | |
1035 | flistNoCutsOther->Add(hMassNCother); | |
1036 | flistNoCutsOther->Add(hMassTrueNCotherPM); | |
1037 | flistNoCutsOther->Add(hMassNCotherPM); | |
1038 | flistNoCutsOther->Add(hMassTrueNCotherSB); | |
1039 | flistNoCutsOther->Add(hMassNCotherSB); | |
624c07ab | 1040 | |
1041 | //############# d0 D0 histos ###############Ã | |
ac4c229c | 1042 | TH1F *hd0D0NCotherPM = new TH1F("hd0D0NCotherPM","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); |
1043 | hd0D0NCotherPM->SetXTitle("Impact parameter [#mum]"); | |
1044 | hd0D0NCotherPM->SetYTitle("Entries"); | |
1045 | ||
1046 | TH1F *hd0D0VtxTrueNCotherPM = new TH1F("hd0D0VtxTrueNCotherPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1047 | hd0D0VtxTrueNCotherPM->SetXTitle("Impact parameter [#mum]"); | |
1048 | hd0D0VtxTrueNCotherPM->SetYTitle("Entries"); | |
1049 | ||
1050 | TH1F *hMCd0D0NCotherPM = new TH1F("hMCd0D0NCotherPM","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1051 | hMCd0D0NCotherPM->SetXTitle("MC Impact parameter [#mum]"); | |
1052 | hMCd0D0NCotherPM->SetYTitle("Entries"); | |
1053 | ||
1054 | TH1F *hd0D0NCotherSB = new TH1F("hd0D0NCotherSB","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1055 | hd0D0NCotherSB->SetXTitle("Impact parameter [#mum]"); | |
1056 | hd0D0NCotherSB->SetYTitle("Entries"); | |
1057 | ||
1058 | TH1F *hd0D0VtxTrueNCotherSB = new TH1F("hd0D0VtxTrueNCotherSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1059 | hd0D0VtxTrueNCotherSB->SetXTitle("Impact parameter [#mum]"); | |
1060 | hd0D0VtxTrueNCotherSB->SetYTitle("Entries"); | |
1061 | ||
1062 | TH1F *hMCd0D0NCotherSB = new TH1F("hMCd0D0NCotherSB","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1063 | hMCd0D0NCotherSB->SetXTitle("MC Impact parameter [#mum]"); | |
1064 | hMCd0D0NCotherSB->SetYTitle("Entries"); | |
1065 | ||
1066 | flistNoCutsOther->Add(hd0D0NCotherPM); | |
1067 | flistNoCutsOther->Add(hd0D0VtxTrueNCotherPM); | |
1068 | flistNoCutsOther->Add(hMCd0D0NCotherPM); | |
1069 | flistNoCutsOther->Add(hd0D0NCotherSB); | |
1070 | flistNoCutsOther->Add(hd0D0VtxTrueNCotherSB); | |
1071 | flistNoCutsOther->Add(hMCd0D0NCotherSB); | |
1072 | ||
1073 | TH1F **hd0D0ptNCotherPM=new TH1F*[fnbins]; | |
1074 | TH1F **hMCd0D0ptNCotherPM=new TH1F*[fnbins]; | |
1075 | TH1F ** hd0D0VtxTrueptNCotherPM=new TH1F*[fnbins]; | |
1076 | TH1F **hd0D0ptNCotherSB=new TH1F*[fnbins]; | |
1077 | TH1F **hMCd0D0ptNCotherSB=new TH1F*[fnbins]; | |
1078 | TH1F ** hd0D0VtxTrueptNCotherSB=new TH1F*[fnbins]; | |
1079 | namehist="hd0D0ptNCother_"; | |
624c07ab | 1080 | titlehist="D^{0} impact par. plot, No Cuts, Other, "; |
1081 | for(Int_t i=0;i<fnbins;i++){ | |
1082 | strnamept=namehist; | |
1083 | strnamept.Append("PkMss_pt"); | |
1084 | strnamept+=i; | |
1085 | ||
1086 | strtitlept=titlehist; | |
1087 | strtitlept.Append(" Mass Peak, "); | |
1088 | strtitlept+=fptbins[i]; | |
1089 | strtitlept.Append("<= pt <"); | |
1090 | strtitlept+=fptbins[i+1]; | |
1091 | strtitlept.Append(" [GeV/c]"); | |
1092 | ||
ac4c229c | 1093 | hd0D0ptNCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1094 | hd0D0ptNCotherPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1095 | hd0D0ptNCotherPM[i]->SetYTitle("Entries"); | |
1096 | flistNoCutsOther->Add(hd0D0ptNCotherPM[i]); | |
624c07ab | 1097 | |
1098 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1099 | hMCd0D0ptNCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1100 | hMCd0D0ptNCotherPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1101 | hMCd0D0ptNCotherPM[i]->SetYTitle("Entries"); | |
1102 | flistNoCutsOther->Add(hMCd0D0ptNCotherPM[i]); | |
624c07ab | 1103 | |
1104 | ||
1105 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1106 | hd0D0VtxTrueptNCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1107 | hd0D0VtxTrueptNCotherPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1108 | hd0D0VtxTrueptNCotherPM[i]->SetYTitle("Entries"); | |
1109 | flistNoCutsOther->Add(hd0D0VtxTrueptNCotherPM[i]); | |
624c07ab | 1110 | |
1111 | strnamept=namehist; | |
1112 | strnamept.Append("SBMss_pt"); | |
1113 | strnamept+=i; | |
1114 | ||
1115 | strtitlept=titlehist; | |
1116 | strtitlept.Append(" Side Bands, "); | |
1117 | strtitlept+=fptbins[i]; | |
1118 | strtitlept.Append("<= pt <"); | |
1119 | strtitlept+=fptbins[i+1]; | |
1120 | strtitlept.Append(" [GeV/c]"); | |
1121 | ||
ac4c229c | 1122 | hd0D0ptNCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1123 | hd0D0ptNCotherSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1124 | hd0D0ptNCotherSB[i]->SetYTitle("Entries"); | |
1125 | flistNoCutsOther->Add(hd0D0ptNCotherSB[i]); | |
624c07ab | 1126 | |
1127 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1128 | hMCd0D0ptNCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1129 | hMCd0D0ptNCotherSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1130 | hMCd0D0ptNCotherSB[i]->SetYTitle("Entries"); | |
1131 | flistNoCutsOther->Add(hMCd0D0ptNCotherSB[i]); | |
624c07ab | 1132 | |
1133 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1134 | hd0D0VtxTrueptNCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1135 | hd0D0VtxTrueptNCotherSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1136 | hd0D0VtxTrueptNCotherSB[i]->SetYTitle("Entries"); | |
1137 | flistNoCutsOther->Add(hd0D0VtxTrueptNCotherSB[i]); | |
624c07ab | 1138 | } |
1139 | ||
1140 | ||
1141 | //################################################################################################ | |
1142 | // # | |
1143 | // HISTOS FOR LOOSE CUTS # | |
1144 | // # | |
1145 | //################################################################################################ | |
1146 | ||
1147 | //############ LOOSE CUTS SIGNAL HISTOGRAMS ############### | |
1148 | // | |
1149 | // ####### global properties histo ############ | |
1150 | ||
ac4c229c | 1151 | TH2F *hCPtaVSd0d0LSCsign=new TH2F("hCPtaVSd0d0LSCsign","hCPtaVSd0d0_LooseCuts_Signal",1000,-100000.,100000.,100,0.,1.); |
1152 | TH1F *hSecVtxZLSCsign=new TH1F("hSecVtxZLSCsign","hSecVtxZ_LooseCuts_Signal",1000,-8.,8.); | |
1153 | TH1F *hSecVtxXLSCsign=new TH1F("hSecVtxXLSCsign","hSecVtxX_LooseCuts_Signal",1000,-3000.,3000.); | |
1154 | TH1F *hSecVtxYLSCsign=new TH1F("hSecVtxYLSCsign","hSecVtxY_LooseCuts_Signal",1000,-3000.,3000.); | |
1155 | TH2F *hSecVtxXYLSCsign=new TH2F("hSecVtxXYLSCsign","hSecVtxXY_LooseCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.); | |
1156 | TH1F *hSecVtxPhiLSCsign=new TH1F("hSecVtxPhiLSCsign","hSecVtxPhi_LooseCuts_Signal",180,-180.1,180.1); | |
1157 | TH1F *hCPtaLSCsign=new TH1F("hCPtaLSCsign","hCPta_LooseCuts_Signal",100,0.,1.); | |
1158 | TH1F *hd0xd0LSCsign=new TH1F("hd0xd0LSCsign","hd0xd0_LooseCuts_Signal",1000,-100000.,100000.); | |
1159 | TH1F *hMassTrueLSCsign=new TH1F("hMassTrueLSCsign","D^{0} MC inv. Mass Loose Cuts Signal(All momenta)",600,1.600,2.200); | |
1160 | TH1F *hMassLSCsign=new TH1F("hMassLSCsign","D^{0} inv. Mass Loose Cuts Signal (All momenta)",600,1.600,2.200); | |
1161 | hMassLSCsign->Sumw2(); | |
1162 | TH1F *hMassTrueLSCsignPM=new TH1F("hMassTrueLSCsignPM","D^{0} MC inv. Mass Loose Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200); | |
1163 | TH1F *hMassLSCsignPM=new TH1F("hMassLSCsignPM","D^{0} inv. Mass Loose Cuts Signal (All momenta), MassPeak",600,1.600,2.200); | |
1164 | hMassLSCsignPM->Sumw2(); | |
1165 | TH1F *hMassTrueLSCsignSB=new TH1F("hMassTrueLSCsignSB","D^{0} MC inv. Mass in Side Bands Loose Cuts Signal(All momenta)",600,1.600,2.200); | |
1166 | TH1F *hMassLSCsignSB=new TH1F("hMassLSCsignSB","D^{0} inv. Mass in Side Bands Loose Cuts Signal (All momenta)",600,1.600,2.200); | |
1167 | hMassLSCsignSB->Sumw2(); | |
1168 | ||
1169 | flistLsCutsSignal->Add(hCPtaVSd0d0LSCsign); | |
1170 | flistLsCutsSignal->Add(hSecVtxZLSCsign); | |
1171 | flistLsCutsSignal->Add(hSecVtxYLSCsign); | |
1172 | flistLsCutsSignal->Add(hSecVtxXLSCsign); | |
1173 | flistLsCutsSignal->Add(hSecVtxXYLSCsign); | |
1174 | flistLsCutsSignal->Add(hSecVtxPhiLSCsign); | |
1175 | flistLsCutsSignal->Add(hCPtaLSCsign); | |
1176 | flistLsCutsSignal->Add(hd0xd0LSCsign); | |
1177 | flistLsCutsSignal->Add(hMassTrueLSCsign); | |
1178 | flistLsCutsSignal->Add(hMassLSCsign); | |
1179 | flistLsCutsSignal->Add(hMassTrueLSCsignPM); | |
1180 | flistLsCutsSignal->Add(hMassLSCsignPM); | |
1181 | flistLsCutsSignal->Add(hMassTrueLSCsignSB); | |
1182 | flistLsCutsSignal->Add(hMassLSCsignSB); | |
624c07ab | 1183 | |
1184 | // ####### d0 D0 histos ############ | |
ac4c229c | 1185 | TH1F *hd0D0LSCsignPM = new TH1F("hd0D0LSCsignPM","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); |
1186 | hd0D0LSCsignPM->SetXTitle("Impact parameter [#mum]"); | |
1187 | hd0D0LSCsignPM->SetYTitle("Entries"); | |
1188 | ||
1189 | TH1F *hd0D0VtxTrueLSCsignPM = new TH1F("hd0D0VtxTrueLSCsignPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1190 | hd0D0VtxTrueLSCsignPM->SetXTitle("Impact parameter [#mum]"); | |
1191 | hd0D0VtxTrueLSCsignPM->SetYTitle("Entries"); | |
1192 | ||
1193 | TH1F *hMCd0D0LSCsignPM = new TH1F("hMCd0D0LSCsignPM","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1194 | hMCd0D0LSCsignPM->SetXTitle("MC Impact parameter [#mum]"); | |
1195 | hMCd0D0LSCsignPM->SetYTitle("Entries"); | |
1196 | ||
1197 | TH1F *hd0D0LSCsignSB = new TH1F("hd0D0LSCsignSB","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1198 | hd0D0LSCsignSB->SetXTitle("Impact parameter [#mum]"); | |
1199 | hd0D0LSCsignSB->SetYTitle("Entries"); | |
1200 | ||
1201 | TH1F *hd0D0VtxTrueLSCsignSB = new TH1F("hd0D0VtxTrueLSCsignSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1202 | hd0D0VtxTrueLSCsignSB->SetXTitle("Impact parameter [#mum]"); | |
1203 | hd0D0VtxTrueLSCsignSB->SetYTitle("Entries"); | |
1204 | ||
1205 | TH1F *hMCd0D0LSCsignSB = new TH1F("hMCd0D0LSCsignSB","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1206 | hMCd0D0LSCsignSB->SetXTitle("MC Impact parameter [#mum]"); | |
1207 | hMCd0D0LSCsignSB->SetYTitle("Entries"); | |
1208 | ||
1209 | flistLsCutsSignal->Add(hd0D0LSCsignPM); | |
1210 | flistLsCutsSignal->Add(hd0D0VtxTrueLSCsignPM); | |
1211 | flistLsCutsSignal->Add(hMCd0D0LSCsignPM); | |
1212 | flistLsCutsSignal->Add(hd0D0LSCsignSB); | |
1213 | flistLsCutsSignal->Add(hd0D0VtxTrueLSCsignSB); | |
1214 | flistLsCutsSignal->Add(hMCd0D0LSCsignSB); | |
1215 | ||
1216 | TH1F **hd0D0ptLSCsignPM=new TH1F*[fnbins]; | |
1217 | TH1F **hMCd0D0ptLSCsignPM=new TH1F*[fnbins]; | |
1218 | TH1F ** hd0D0VtxTrueptLSCsignPM=new TH1F*[fnbins]; | |
1219 | TH1F **hd0D0ptLSCsignSB=new TH1F*[fnbins]; | |
1220 | TH1F **hMCd0D0ptLSCsignSB=new TH1F*[fnbins]; | |
1221 | TH1F ** hd0D0VtxTrueptLSCsignSB=new TH1F*[fnbins]; | |
1222 | namehist="hd0D0ptLSCsign_"; | |
624c07ab | 1223 | titlehist="D^{0} impact par. plot, Loose Cuts, Signal, "; |
1224 | for(Int_t i=0;i<fnbins;i++){ | |
1225 | strnamept=namehist; | |
1226 | strnamept.Append("PkMss_pt"); | |
1227 | strnamept+=i; | |
1228 | ||
1229 | strtitlept=titlehist; | |
1230 | strtitlept.Append(" Mass Peak, "); | |
1231 | strtitlept+=fptbins[i]; | |
1232 | strtitlept.Append("<= pt <"); | |
1233 | strtitlept+=fptbins[i+1]; | |
1234 | strtitlept.Append(" [GeV/c]"); | |
1235 | ||
ac4c229c | 1236 | hd0D0ptLSCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1237 | hd0D0ptLSCsignPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1238 | hd0D0ptLSCsignPM[i]->SetYTitle("Entries"); | |
1239 | flistLsCutsSignal->Add(hd0D0ptLSCsignPM[i]); | |
624c07ab | 1240 | |
1241 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1242 | hMCd0D0ptLSCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1243 | hMCd0D0ptLSCsignPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1244 | hMCd0D0ptLSCsignPM[i]->SetYTitle("Entries"); | |
1245 | flistLsCutsSignal->Add(hMCd0D0ptLSCsignPM[i]); | |
624c07ab | 1246 | |
1247 | ||
1248 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1249 | hd0D0VtxTrueptLSCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1250 | hd0D0VtxTrueptLSCsignPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1251 | hd0D0VtxTrueptLSCsignPM[i]->SetYTitle("Entries"); | |
1252 | flistLsCutsSignal->Add(hd0D0VtxTrueptLSCsignPM[i]); | |
624c07ab | 1253 | |
1254 | strnamept=namehist; | |
1255 | strnamept.Append("SBMss_pt"); | |
1256 | strnamept+=i; | |
1257 | ||
1258 | strtitlept=titlehist; | |
1259 | strtitlept.Append(" Side Bands, "); | |
1260 | strtitlept+=fptbins[i]; | |
1261 | strtitlept.Append("<= pt <"); | |
1262 | strtitlept+=fptbins[i+1]; | |
1263 | strtitlept.Append(" [GeV/c]"); | |
1264 | ||
ac4c229c | 1265 | hd0D0ptLSCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1266 | hd0D0ptLSCsignSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1267 | hd0D0ptLSCsignSB[i]->SetYTitle("Entries"); | |
1268 | flistLsCutsSignal->Add(hd0D0ptLSCsignSB[i]); | |
624c07ab | 1269 | |
1270 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1271 | hMCd0D0ptLSCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1272 | hMCd0D0ptLSCsignSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1273 | hMCd0D0ptLSCsignSB[i]->SetYTitle("Entries"); | |
1274 | flistLsCutsSignal->Add(hMCd0D0ptLSCsignSB[i]); | |
624c07ab | 1275 | |
1276 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1277 | hd0D0VtxTrueptLSCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1278 | hd0D0VtxTrueptLSCsignSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1279 | hd0D0VtxTrueptLSCsignSB[i]->SetYTitle("Entries"); | |
1280 | flistLsCutsSignal->Add(hd0D0VtxTrueptLSCsignSB[i]); | |
624c07ab | 1281 | } |
1282 | ||
1283 | ||
1284 | //############ LOOSE CUTS BACKGROUND HISTOGRAMS ########### | |
1285 | // | |
1286 | // ######## global properties histos ####### | |
ac4c229c | 1287 | TH2F *hCPtaVSd0d0LSCback=new TH2F("hCPtaVSd0d0LSCback","hCPtaVSd0d0_LooseCuts_Background",1000,-100000.,100000.,100,0.,1.); |
1288 | TH1F *hSecVtxZLSCback=new TH1F("hSecVtxZLSCback","hSecVtxZ_LooseCuts_Background",1000,-8.,8.); | |
1289 | TH1F *hSecVtxXLSCback=new TH1F("hSecVtxXLSCback","hSecVtxX_LooseCuts_Background",1000,-3000.,3000.); | |
1290 | TH1F *hSecVtxYLSCback=new TH1F("hSecVtxYLSCback","hSecVtxY_LooseCuts_Background",1000,-3000.,3000.); | |
1291 | TH2F *hSecVtxXYLSCback=new TH2F("hSecVtxXYLSCback","hSecVtxXY_LooseCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.); | |
1292 | TH1F *hSecVtxPhiLSCback=new TH1F("hSecVtxPhiLSCback","hSecVtxPhi_LooseCuts_Background",180,-180.1,180.1); | |
1293 | TH1F *hCPtaLSCback=new TH1F("hCPtaLSCback","hCPta_LooseCuts_Background",100,0.,1.); | |
1294 | TH1F *hd0xd0LSCback=new TH1F("hd0xd0LSCback","hd0xd0_LooseCuts_Background",1000,-100000.,100000.); | |
1295 | TH1F *hMassTrueLSCback=new TH1F("hMassTrueLSCback","D^{0} MC inv. Mass Loose Cuts Background(All momenta)",600,1.600,2.200); | |
1296 | TH1F *hMassLSCback=new TH1F("hMassLSCback","D^{0} inv. Mass Loose Cuts Background (All momenta)",600,1.600,2.200); | |
1297 | hMassLSCback->Sumw2(); | |
1298 | TH1F *hMassTrueLSCbackPM=new TH1F("hMassTrueLSCbackPM","D^{0} MC inv. Mass Loose Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200); | |
1299 | TH1F *hMassLSCbackPM=new TH1F("hMassLSCbackPM","D^{0} inv. Mass Loose Cuts Background (All momenta), MassPeak",600,1.600,2.200); | |
1300 | hMassLSCbackPM->Sumw2(); | |
1301 | TH1F *hMassTrueLSCbackSB=new TH1F("hMassTrueLSCbackSB","D^{0} MC inv. Mass in Side Bands Loose Cuts Background(All momenta)",600,1.600,2.200); | |
1302 | TH1F *hMassLSCbackSB=new TH1F("hMassLSCbackSB","D^{0} inv. Mass in Side Bands Loose Cuts Background (All momenta)",600,1.600,2.200); | |
1303 | hMassLSCbackSB->Sumw2(); | |
1304 | ||
1305 | flistLsCutsBack->Add(hCPtaVSd0d0LSCback); | |
1306 | flistLsCutsBack->Add(hSecVtxZLSCback); | |
1307 | flistLsCutsBack->Add(hSecVtxYLSCback); | |
1308 | flistLsCutsBack->Add(hSecVtxXLSCback); | |
1309 | flistLsCutsBack->Add(hSecVtxXYLSCback); | |
1310 | flistLsCutsBack->Add(hSecVtxPhiLSCback); | |
1311 | flistLsCutsBack->Add(hCPtaLSCback); | |
1312 | flistLsCutsBack->Add(hd0xd0LSCback); | |
1313 | flistLsCutsBack->Add(hMassTrueLSCback); | |
1314 | flistLsCutsBack->Add(hMassLSCback); | |
1315 | flistLsCutsBack->Add(hMassTrueLSCbackPM); | |
1316 | flistLsCutsBack->Add(hMassLSCbackPM); | |
1317 | flistLsCutsBack->Add(hMassTrueLSCbackSB); | |
1318 | flistLsCutsBack->Add(hMassLSCbackSB); | |
624c07ab | 1319 | |
1320 | ||
1321 | // ####### d0 D0 histos ############ | |
1322 | ||
ac4c229c | 1323 | TH1F *hd0D0LSCbackPM = new TH1F("hd0D0LSCbackPM","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); |
1324 | hd0D0LSCbackPM->SetXTitle("Impact parameter [#mum]"); | |
1325 | hd0D0LSCbackPM->SetYTitle("Entries"); | |
1326 | ||
1327 | TH1F *hd0D0VtxTrueLSCbackPM = new TH1F("hd0D0VtxTrueLSCbackPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1328 | hd0D0VtxTrueLSCbackPM->SetXTitle("Impact parameter [#mum]"); | |
1329 | hd0D0VtxTrueLSCbackPM->SetYTitle("Entries"); | |
1330 | ||
1331 | TH1F *hMCd0D0LSCbackPM = new TH1F("hMCd0D0LSCbackPM","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1332 | hMCd0D0LSCbackPM->SetXTitle("MC Impact parameter [#mum]"); | |
1333 | hMCd0D0LSCbackPM->SetYTitle("Entries"); | |
1334 | ||
1335 | TH1F *hd0D0LSCbackSB = new TH1F("hd0D0LSCbackSB","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1336 | hd0D0LSCbackSB->SetXTitle("Impact parameter [#mum]"); | |
1337 | hd0D0LSCbackSB->SetYTitle("Entries"); | |
1338 | ||
1339 | TH1F *hd0D0VtxTrueLSCbackSB = new TH1F("hd0D0VtxTrueLSCbackSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1340 | hd0D0VtxTrueLSCbackSB->SetXTitle("Impact parameter [#mum]"); | |
1341 | hd0D0VtxTrueLSCbackSB->SetYTitle("Entries"); | |
1342 | ||
1343 | TH1F *hMCd0D0LSCbackSB = new TH1F("hMCd0D0LSCbackSB","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1344 | hMCd0D0LSCbackSB->SetXTitle("MC Impact parameter [#mum]"); | |
1345 | hMCd0D0LSCbackSB->SetYTitle("Entries"); | |
1346 | ||
1347 | flistLsCutsBack->Add(hd0D0LSCbackPM); | |
1348 | flistLsCutsBack->Add(hd0D0VtxTrueLSCbackPM); | |
1349 | flistLsCutsBack->Add(hMCd0D0LSCbackPM); | |
1350 | flistLsCutsBack->Add(hd0D0LSCbackSB); | |
1351 | flistLsCutsBack->Add(hd0D0VtxTrueLSCbackSB); | |
1352 | flistLsCutsBack->Add(hMCd0D0LSCbackSB); | |
1353 | ||
1354 | TH1F **hd0D0ptLSCbackPM=new TH1F*[fnbins]; | |
1355 | TH1F **hMCd0D0ptLSCbackPM=new TH1F*[fnbins]; | |
1356 | TH1F ** hd0D0VtxTrueptLSCbackPM=new TH1F*[fnbins]; | |
1357 | TH1F **hd0D0ptLSCbackSB=new TH1F*[fnbins]; | |
1358 | TH1F **hMCd0D0ptLSCbackSB=new TH1F*[fnbins]; | |
1359 | TH1F ** hd0D0VtxTrueptLSCbackSB=new TH1F*[fnbins]; | |
1360 | namehist="hd0D0ptLSCback_"; | |
624c07ab | 1361 | titlehist="D^{0} impact par. plot, Loose Cuts, Background, "; |
1362 | for(Int_t i=0;i<fnbins;i++){ | |
1363 | strnamept=namehist; | |
1364 | strnamept.Append("PkMss_pt"); | |
1365 | strnamept+=i; | |
1366 | ||
1367 | strtitlept=titlehist; | |
1368 | strtitlept.Append(" Mass Peak, "); | |
1369 | strtitlept+=fptbins[i]; | |
1370 | strtitlept.Append("<= pt <"); | |
1371 | strtitlept+=fptbins[i+1]; | |
1372 | strtitlept.Append(" [GeV/c]"); | |
1373 | ||
ac4c229c | 1374 | hd0D0ptLSCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1375 | hd0D0ptLSCbackPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1376 | hd0D0ptLSCbackPM[i]->SetYTitle("Entries"); | |
1377 | flistLsCutsBack->Add(hd0D0ptLSCbackPM[i]); | |
624c07ab | 1378 | |
1379 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1380 | hMCd0D0ptLSCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1381 | hMCd0D0ptLSCbackPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1382 | hMCd0D0ptLSCbackPM[i]->SetYTitle("Entries"); | |
1383 | flistLsCutsBack->Add(hMCd0D0ptLSCbackPM[i]); | |
624c07ab | 1384 | |
1385 | ||
1386 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1387 | hd0D0VtxTrueptLSCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1388 | hd0D0VtxTrueptLSCbackPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1389 | hd0D0VtxTrueptLSCbackPM[i]->SetYTitle("Entries"); | |
1390 | flistLsCutsBack->Add(hd0D0VtxTrueptLSCbackPM[i]); | |
624c07ab | 1391 | |
1392 | strnamept=namehist; | |
1393 | strnamept.Append("SBMss_pt"); | |
1394 | strnamept+=i; | |
1395 | ||
1396 | strtitlept=titlehist; | |
1397 | strtitlept.Append(" Side Bands, "); | |
1398 | strtitlept+=fptbins[i]; | |
1399 | strtitlept.Append("<= pt <"); | |
1400 | strtitlept+=fptbins[i+1]; | |
1401 | strtitlept.Append(" [GeV/c]"); | |
1402 | ||
ac4c229c | 1403 | hd0D0ptLSCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1404 | hd0D0ptLSCbackSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1405 | hd0D0ptLSCbackSB[i]->SetYTitle("Entries"); | |
1406 | flistLsCutsBack->Add(hd0D0ptLSCbackSB[i]); | |
624c07ab | 1407 | |
1408 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1409 | hMCd0D0ptLSCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1410 | hMCd0D0ptLSCbackSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1411 | hMCd0D0ptLSCbackSB[i]->SetYTitle("Entries"); | |
1412 | flistLsCutsBack->Add(hMCd0D0ptLSCbackSB[i]); | |
624c07ab | 1413 | |
1414 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1415 | hd0D0VtxTrueptLSCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1416 | hd0D0VtxTrueptLSCbackSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1417 | hd0D0VtxTrueptLSCbackSB[i]->SetYTitle("Entries"); | |
1418 | flistLsCutsBack->Add(hd0D0VtxTrueptLSCbackSB[i]); | |
624c07ab | 1419 | } |
1420 | ||
1421 | ||
1422 | ||
1423 | //############ LOOSE CUTS FROMB HISTOGRAMS ########### | |
1424 | // | |
1425 | //####### global properties histos | |
1426 | ||
ac4c229c | 1427 | TH2F *hCPtaVSd0d0LSCfromB=new TH2F("hCPtaVSd0d0LSCfromB","hCPtaVSd0d0_LooseCuts_FromB",1000,-100000.,100000.,100,0.,1.); |
1428 | TH1F *hSecVtxZLSCfromB=new TH1F("hSecVtxZLSCfromB","hSecVtxZ_LooseCuts_FromB",1000,-8.,8.); | |
1429 | TH1F *hSecVtxXLSCfromB=new TH1F("hSecVtxXLSCfromB","hSecVtxX_LooseCuts_FromB",1000,-3000.,3000.); | |
1430 | TH1F *hSecVtxYLSCfromB=new TH1F("hSecVtxYLSCfromB","hSecVtxY_LooseCuts_FromB",1000,-3000.,3000.); | |
1431 | TH2F *hSecVtxXYLSCfromB=new TH2F("hSecVtxXYLSCfromB","hSecVtxXY_LooseCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.); | |
1432 | TH1F *hSecVtxPhiLSCfromB=new TH1F("hSecVtxPhiLSCfromB","hSecVtxPhi_LooseCuts_FromB",180,-180.1,180.1); | |
1433 | TH1F *hCPtaLSCfromB=new TH1F("hCPtaLSCfromB","hCPta_LooseCuts_FromB",100,0.,1.); | |
1434 | TH1F *hd0xd0LSCfromB=new TH1F("hd0xd0LSCfromB","hd0xd0_LooseCuts_FromB",1000,-100000.,100000.); | |
1435 | TH1F *hMassTrueLSCfromB=new TH1F("hMassTrueLSCfromB","D^{0} MC inv. Mass Loose Cuts FromB(All momenta)",600,1.600,2.200); | |
1436 | TH1F *hMassLSCfromB=new TH1F("hMassLSCfromB","D^{0} inv. Mass Loose Cuts FromB (All momenta)",600,1.600,2.200); | |
1437 | hMassLSCfromB->Sumw2(); | |
1438 | TH1F *hMassTrueLSCfromBPM=new TH1F("hMassTrueLSCfromBPM","D^{0} MC inv. Mass Loose Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200); | |
1439 | TH1F *hMassLSCfromBPM=new TH1F("hMassLSCfromBPM","D^{0} inv. Mass Loose Cuts FromB (All momenta), MassPeak",600,1.600,2.200); | |
1440 | hMassLSCfromBPM->Sumw2(); | |
1441 | TH1F *hMassTrueLSCfromBSB=new TH1F("hMassTrueLSCfromBSB","D^{0} MC inv. Mass in Side Bands Loose Cuts FromB(All momenta)",600,1.600,2.200); | |
1442 | TH1F *hMassLSCfromBSB=new TH1F("hMassLSCfromBSB","D^{0} inv. Mass in Side Bands Loose Cuts FromB (All momenta)",600,1.600,2.200); | |
1443 | hMassLSCfromBSB->Sumw2(); | |
1444 | ||
1445 | flistLsCutsFromB->Add(hCPtaVSd0d0LSCfromB); | |
1446 | flistLsCutsFromB->Add(hSecVtxZLSCfromB); | |
1447 | flistLsCutsFromB->Add(hSecVtxYLSCfromB); | |
1448 | flistLsCutsFromB->Add(hSecVtxXLSCfromB); | |
1449 | flistLsCutsFromB->Add(hSecVtxXYLSCfromB); | |
1450 | flistLsCutsFromB->Add(hSecVtxPhiLSCfromB); | |
1451 | flistLsCutsFromB->Add(hCPtaLSCfromB); | |
1452 | flistLsCutsFromB->Add(hd0xd0LSCfromB); | |
1453 | flistLsCutsFromB->Add(hMassTrueLSCfromB); | |
1454 | flistLsCutsFromB->Add(hMassLSCfromB); | |
1455 | flistLsCutsFromB->Add(hMassTrueLSCfromBPM); | |
1456 | flistLsCutsFromB->Add(hMassLSCfromBPM); | |
1457 | flistLsCutsFromB->Add(hMassTrueLSCfromBSB); | |
1458 | flistLsCutsFromB->Add(hMassLSCfromBSB); | |
624c07ab | 1459 | |
1460 | // ######### d0 D0 histos ############## | |
ac4c229c | 1461 | TH1F *hd0D0LSCfromBPM = new TH1F("hd0D0LSCfromBPM","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); |
1462 | hd0D0LSCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
1463 | hd0D0LSCfromBPM->SetYTitle("Entries"); | |
1464 | ||
1465 | TH1F *hd0D0VtxTrueLSCfromBPM = new TH1F("hd0D0VtxTrueLSCfromBPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1466 | hd0D0VtxTrueLSCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
1467 | hd0D0VtxTrueLSCfromBPM->SetYTitle("Entries"); | |
1468 | ||
1469 | TH1F *hMCd0D0LSCfromBPM = new TH1F("hMCd0D0LSCfromBPM","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1470 | hMCd0D0LSCfromBPM->SetXTitle("MC Impact parameter [#mum]"); | |
1471 | hMCd0D0LSCfromBPM->SetYTitle("Entries"); | |
1472 | ||
1473 | TH1F *hd0D0LSCfromBSB = new TH1F("hd0D0LSCfromBSB","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1474 | hd0D0LSCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
1475 | hd0D0LSCfromBSB->SetYTitle("Entries"); | |
1476 | ||
1477 | TH1F *hd0D0VtxTrueLSCfromBSB = new TH1F("hd0D0VtxTrueLSCfromBSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1478 | hd0D0VtxTrueLSCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
1479 | hd0D0VtxTrueLSCfromBSB->SetYTitle("Entries"); | |
1480 | ||
1481 | TH1F *hMCd0D0LSCfromBSB = new TH1F("hMCd0D0LSCfromBSB","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1482 | hMCd0D0LSCfromBSB->SetXTitle("MC Impact parameter [#mum]"); | |
1483 | hMCd0D0LSCfromBSB->SetYTitle("Entries"); | |
1484 | ||
1485 | flistLsCutsFromB->Add(hd0D0LSCfromBPM); | |
1486 | flistLsCutsFromB->Add(hd0D0VtxTrueLSCfromBPM); | |
1487 | flistLsCutsFromB->Add(hMCd0D0LSCfromBPM); | |
1488 | flistLsCutsFromB->Add(hd0D0LSCfromBSB); | |
1489 | flistLsCutsFromB->Add(hd0D0VtxTrueLSCfromBSB); | |
1490 | flistLsCutsFromB->Add(hMCd0D0LSCfromBSB); | |
1491 | ||
1492 | TH1F **hd0D0ptLSCfromBPM=new TH1F*[fnbins]; | |
1493 | TH1F **hMCd0D0ptLSCfromBPM=new TH1F*[fnbins]; | |
1494 | TH1F ** hd0D0VtxTrueptLSCfromBPM=new TH1F*[fnbins]; | |
1495 | TH1F **hd0D0ptLSCfromBSB=new TH1F*[fnbins]; | |
1496 | TH1F **hMCd0D0ptLSCfromBSB=new TH1F*[fnbins]; | |
1497 | TH1F ** hd0D0VtxTrueptLSCfromBSB=new TH1F*[fnbins]; | |
1498 | namehist="hd0D0ptLSCfromB_"; | |
624c07ab | 1499 | titlehist="D^{0} impact par. plot, Loose Cuts, FromB, "; |
1500 | for(Int_t i=0;i<fnbins;i++){ | |
1501 | strnamept=namehist; | |
1502 | strnamept.Append("PkMss_pt"); | |
1503 | strnamept+=i; | |
1504 | ||
1505 | strtitlept=titlehist; | |
1506 | strtitlept.Append(" Mass Peak, "); | |
1507 | strtitlept+=fptbins[i]; | |
1508 | strtitlept.Append("<= pt <"); | |
1509 | strtitlept+=fptbins[i+1]; | |
1510 | strtitlept.Append(" [GeV/c]"); | |
1511 | ||
ac4c229c | 1512 | hd0D0ptLSCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1513 | hd0D0ptLSCfromBPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1514 | hd0D0ptLSCfromBPM[i]->SetYTitle("Entries"); | |
1515 | flistLsCutsFromB->Add(hd0D0ptLSCfromBPM[i]); | |
624c07ab | 1516 | |
1517 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1518 | hMCd0D0ptLSCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1519 | hMCd0D0ptLSCfromBPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1520 | hMCd0D0ptLSCfromBPM[i]->SetYTitle("Entries"); | |
1521 | flistLsCutsFromB->Add(hMCd0D0ptLSCfromBPM[i]); | |
624c07ab | 1522 | |
1523 | ||
1524 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1525 | hd0D0VtxTrueptLSCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1526 | hd0D0VtxTrueptLSCfromBPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1527 | hd0D0VtxTrueptLSCfromBPM[i]->SetYTitle("Entries"); | |
1528 | flistLsCutsFromB->Add(hd0D0VtxTrueptLSCfromBPM[i]); | |
624c07ab | 1529 | |
1530 | strnamept=namehist; | |
1531 | strnamept.Append("SBMss_pt"); | |
1532 | strnamept+=i; | |
1533 | ||
1534 | strtitlept=titlehist; | |
1535 | strtitlept.Append(" Side Bands, "); | |
1536 | strtitlept+=fptbins[i]; | |
1537 | strtitlept.Append("<= pt <"); | |
1538 | strtitlept+=fptbins[i+1]; | |
1539 | strtitlept.Append(" [GeV/c]"); | |
1540 | ||
ac4c229c | 1541 | hd0D0ptLSCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1542 | hd0D0ptLSCfromBSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1543 | hd0D0ptLSCfromBSB[i]->SetYTitle("Entries"); | |
1544 | flistLsCutsFromB->Add(hd0D0ptLSCfromBSB[i]); | |
624c07ab | 1545 | |
1546 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1547 | hMCd0D0ptLSCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1548 | hMCd0D0ptLSCfromBSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1549 | hMCd0D0ptLSCfromBSB[i]->SetYTitle("Entries"); | |
1550 | flistLsCutsFromB->Add(hMCd0D0ptLSCfromBSB[i]); | |
624c07ab | 1551 | |
1552 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1553 | hd0D0VtxTrueptLSCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1554 | hd0D0VtxTrueptLSCfromBSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1555 | hd0D0VtxTrueptLSCfromBSB[i]->SetYTitle("Entries"); | |
1556 | flistLsCutsFromB->Add(hd0D0VtxTrueptLSCfromBSB[i]); | |
624c07ab | 1557 | } |
1558 | ||
1559 | ||
1560 | ||
1561 | //############ LOOSE CUTS FROM DSTAR HISTOGRAMS ########### | |
1562 | // | |
1563 | //############## global properties histos | |
ac4c229c | 1564 | TH2F *hCPtaVSd0d0LSCfromDstar=new TH2F("hCPtaVSd0d0LSCfromDstar","hCPtaVSd0d0_LooseCuts_FromDStar",1000,-100000.,100000.,100,0.,1.); |
1565 | TH1F *hSecVtxZLSCfromDstar=new TH1F("hSecVtxZLSCfromDstar","hSecVtxZ_LooseCuts_FromDStar",1000,-8.,8.); | |
1566 | TH1F *hSecVtxXLSCfromDstar=new TH1F("hSecVtxXLSCfromDstar","hSecVtxX_LooseCuts_FromDStar",1000,-3000.,3000.); | |
1567 | TH1F *hSecVtxYLSCfromDstar=new TH1F("hSecVtxYLSCfromDstar","hSecVtxY_LooseCuts_FromDStar",1000,-3000.,3000.); | |
1568 | TH2F *hSecVtxXYLSCfromDstar=new TH2F("hSecVtxXYLSCfromDstar","hSecVtxXY_LooseCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.); | |
1569 | TH1F *hSecVtxPhiLSCfromDstar=new TH1F("hSecVtxPhiLSCfromDstar","hSecVtxPhi_LooseCuts_FromDStar",180,-180.1,180.1); | |
1570 | TH1F *hCPtaLSCfromDstar=new TH1F("hCPtaLSCfromDstar","hCPta_LooseCuts_FromDStar",100,0.,1.); | |
1571 | TH1F *hd0xd0LSCfromDstar=new TH1F("hd0xd0LSCfromDstar","hd0xd0_LooseCuts_FromDStar",1000,-100000.,100000.); | |
1572 | TH1F *hMassTrueLSCfromDstar=new TH1F("hMassTrueLSCfromDstar","D^{0} MC inv. Mass Loose Cuts FromDStar(All momenta)",600,1.600,2.200); | |
1573 | TH1F *hMassLSCfromDstar=new TH1F("hMassLSCfromDstar","D^{0} inv. Mass Loose Cuts FromDStar (All momenta)",600,1.600,2.200); | |
1574 | hMassLSCfromDstar->Sumw2(); | |
1575 | TH1F *hMassTrueLSCfromDstarPM=new TH1F("hMassTrueLSCfromDstarPM","D^{0} MC inv. Mass Loose Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200); | |
1576 | TH1F *hMassLSCfromDstarPM=new TH1F("hMassLSCfromDstarPM","D^{0} inv. Mass Loose Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200); | |
1577 | hMassLSCfromDstarPM->Sumw2(); | |
1578 | TH1F *hMassTrueLSCfromDstarSB=new TH1F("hMassTrueLSCfromDstarSB","D^{0} MC inv. Mass in Side Bands Loose Cuts FromDStar(All momenta)",600,1.600,2.200); | |
1579 | TH1F *hMassLSCfromDstarSB=new TH1F("hMassLSCfromDstarSB","D^{0} inv. Mass in Side Bands Loose Cuts FromDStar (All momenta)",600,1.600,2.200); | |
1580 | hMassLSCfromDstarSB->Sumw2(); | |
1581 | ||
1582 | flistLsCutsFromDstar->Add(hCPtaVSd0d0LSCfromDstar); | |
1583 | flistLsCutsFromDstar->Add(hSecVtxZLSCfromDstar); | |
1584 | flistLsCutsFromDstar->Add(hSecVtxYLSCfromDstar); | |
1585 | flistLsCutsFromDstar->Add(hSecVtxXLSCfromDstar); | |
1586 | flistLsCutsFromDstar->Add(hSecVtxXYLSCfromDstar); | |
1587 | flistLsCutsFromDstar->Add(hSecVtxPhiLSCfromDstar); | |
1588 | flistLsCutsFromDstar->Add(hCPtaLSCfromDstar); | |
1589 | flistLsCutsFromDstar->Add(hd0xd0LSCfromDstar); | |
1590 | flistLsCutsFromDstar->Add(hMassTrueLSCfromDstar); | |
1591 | flistLsCutsFromDstar->Add(hMassLSCfromDstar); | |
1592 | flistLsCutsFromDstar->Add(hMassTrueLSCfromDstarPM); | |
1593 | flistLsCutsFromDstar->Add(hMassLSCfromDstarPM); | |
1594 | flistLsCutsFromDstar->Add(hMassTrueLSCfromDstarSB); | |
1595 | flistLsCutsFromDstar->Add(hMassLSCfromDstarSB); | |
624c07ab | 1596 | |
1597 | //########## d0 D0 histos ############# | |
ac4c229c | 1598 | TH1F *hd0D0LSCfromDstPM = new TH1F("hd0D0LSCfromDstarPM","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); |
1599 | hd0D0LSCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
1600 | hd0D0LSCfromDstPM->SetYTitle("Entries"); | |
1601 | ||
1602 | TH1F *hd0D0VtxTrueLSCfromDstPM = new TH1F("hd0D0VtxTrueLSCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1603 | hd0D0VtxTrueLSCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
1604 | hd0D0VtxTrueLSCfromDstPM->SetYTitle("Entries"); | |
1605 | ||
1606 | TH1F *hMCd0D0LSCfromDstPM = new TH1F("hMCd0D0LSCfromDstarPM","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1607 | hMCd0D0LSCfromDstPM->SetXTitle("MC Impact parameter [#mum]"); | |
1608 | hMCd0D0LSCfromDstPM->SetYTitle("Entries"); | |
1609 | ||
1610 | TH1F *hd0D0LSCfromDstSB = new TH1F("hd0D0LSCfromDstarSB","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1611 | hd0D0LSCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
1612 | hd0D0LSCfromDstSB->SetYTitle("Entries"); | |
1613 | ||
1614 | TH1F *hd0D0VtxTrueLSCfromDstSB = new TH1F("hd0D0VtxTrueLSCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1615 | hd0D0VtxTrueLSCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
1616 | hd0D0VtxTrueLSCfromDstSB->SetYTitle("Entries"); | |
1617 | ||
1618 | TH1F *hMCd0D0LSCfromDstSB = new TH1F("hMCd0D0LSCfromDstarSB","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1619 | hMCd0D0LSCfromDstSB->SetXTitle("MC Impact parameter [#mum]"); | |
1620 | hMCd0D0LSCfromDstSB->SetYTitle("Entries"); | |
1621 | ||
1622 | flistLsCutsFromDstar->Add(hd0D0LSCfromDstPM); | |
1623 | flistLsCutsFromDstar->Add(hd0D0VtxTrueLSCfromDstPM); | |
1624 | flistLsCutsFromDstar->Add(hMCd0D0LSCfromDstPM); | |
1625 | flistLsCutsFromDstar->Add(hd0D0LSCfromDstSB); | |
1626 | flistLsCutsFromDstar->Add(hd0D0VtxTrueLSCfromDstSB); | |
1627 | flistLsCutsFromDstar->Add(hMCd0D0LSCfromDstSB); | |
1628 | ||
1629 | TH1F **hd0D0ptLSCfromDstPM=new TH1F*[fnbins]; | |
1630 | TH1F **hMCd0D0ptLSCfromDstPM=new TH1F*[fnbins]; | |
1631 | TH1F ** hd0D0VtxTrueptLSCfromDstPM=new TH1F*[fnbins]; | |
1632 | TH1F **hd0D0ptLSCfromDstSB=new TH1F*[fnbins]; | |
1633 | TH1F **hMCd0D0ptLSCfromDstSB=new TH1F*[fnbins]; | |
1634 | TH1F ** hd0D0VtxTrueptLSCfromDstSB=new TH1F*[fnbins]; | |
1635 | namehist="hd0D0ptLSCfromDstar_"; | |
624c07ab | 1636 | titlehist="D^{0} impact par. plot, Loose Cuts, FromDStar, "; |
1637 | for(Int_t i=0;i<fnbins;i++){ | |
1638 | strnamept=namehist; | |
1639 | strnamept.Append("PkMss_pt"); | |
1640 | strnamept+=i; | |
1641 | ||
1642 | strtitlept=titlehist; | |
1643 | strtitlept.Append(" Mass Peak, "); | |
1644 | strtitlept+=fptbins[i]; | |
1645 | strtitlept.Append("<= pt <"); | |
1646 | strtitlept+=fptbins[i+1]; | |
1647 | strtitlept.Append(" [GeV/c]"); | |
1648 | ||
ac4c229c | 1649 | hd0D0ptLSCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1650 | hd0D0ptLSCfromDstPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1651 | hd0D0ptLSCfromDstPM[i]->SetYTitle("Entries"); | |
1652 | flistLsCutsFromDstar->Add(hd0D0ptLSCfromDstPM[i]); | |
624c07ab | 1653 | |
1654 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1655 | hMCd0D0ptLSCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1656 | hMCd0D0ptLSCfromDstPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1657 | hMCd0D0ptLSCfromDstPM[i]->SetYTitle("Entries"); | |
1658 | flistLsCutsFromDstar->Add(hMCd0D0ptLSCfromDstPM[i]); | |
624c07ab | 1659 | |
1660 | ||
1661 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1662 | hd0D0VtxTrueptLSCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1663 | hd0D0VtxTrueptLSCfromDstPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1664 | hd0D0VtxTrueptLSCfromDstPM[i]->SetYTitle("Entries"); | |
1665 | flistLsCutsFromDstar->Add(hd0D0VtxTrueptLSCfromDstPM[i]); | |
624c07ab | 1666 | |
1667 | strnamept=namehist; | |
1668 | strnamept.Append("SBMss_pt"); | |
1669 | strnamept+=i; | |
1670 | ||
1671 | strtitlept=titlehist; | |
1672 | strtitlept.Append(" Side Bands, "); | |
1673 | strtitlept+=fptbins[i]; | |
1674 | strtitlept.Append("<= pt <"); | |
1675 | strtitlept+=fptbins[i+1]; | |
1676 | strtitlept.Append(" [GeV/c]"); | |
1677 | ||
ac4c229c | 1678 | hd0D0ptLSCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1679 | hd0D0ptLSCfromDstSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1680 | hd0D0ptLSCfromDstSB[i]->SetYTitle("Entries"); | |
1681 | flistLsCutsFromDstar->Add(hd0D0ptLSCfromDstSB[i]); | |
624c07ab | 1682 | |
1683 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1684 | hMCd0D0ptLSCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1685 | hMCd0D0ptLSCfromDstSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1686 | hMCd0D0ptLSCfromDstSB[i]->SetYTitle("Entries"); | |
1687 | flistLsCutsFromDstar->Add(hMCd0D0ptLSCfromDstSB[i]); | |
624c07ab | 1688 | |
1689 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1690 | hd0D0VtxTrueptLSCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1691 | hd0D0VtxTrueptLSCfromDstSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1692 | hd0D0VtxTrueptLSCfromDstSB[i]->SetYTitle("Entries"); | |
1693 | flistLsCutsFromDstar->Add(hd0D0VtxTrueptLSCfromDstSB[i]); | |
624c07ab | 1694 | } |
1695 | ||
1696 | ||
1697 | //############ LOOSE CUTS OTHER HISTOGRAMS ########### | |
1698 | // | |
1699 | //########### global properties histos ########### | |
1700 | ||
ac4c229c | 1701 | TH2F *hCPtaVSd0d0LSCother=new TH2F("hCPtaVSd0d0LSCother","hCPtaVSd0d0_LooseCuts_other",1000,-100000.,100000.,100,0.,1.); |
1702 | TH1F *hSecVtxZLSCother=new TH1F("hSecVtxZLSCother","hSecVtxZ_LooseCuts_other",1000,-8.,8.); | |
1703 | TH1F *hSecVtxXLSCother=new TH1F("hSecVtxXLSCother","hSecVtxX_LooseCuts_other",1000,-3000.,3000.); | |
1704 | TH1F *hSecVtxYLSCother=new TH1F("hSecVtxYLSCother","hSecVtxY_LooseCuts_other",1000,-3000.,3000.); | |
1705 | TH2F *hSecVtxXYLSCother=new TH2F("hSecVtxXYLSCother","hSecVtxXY_LooseCuts_other",1000,-3000.,3000.,1000,-3000.,3000.); | |
1706 | TH1F *hSecVtxPhiLSCother=new TH1F("hSecVtxPhiLSCother","hSecVtxPhi_LooseCuts_other",180,-180.1,180.1); | |
1707 | TH1F *hCPtaLSCother=new TH1F("hCPtaLSCother","hCPta_LooseCuts_other",100,0.,1.); | |
1708 | TH1F *hd0xd0LSCother=new TH1F("hd0xd0LSCother","hd0xd0_LooseCuts_other",1000,-100000.,100000.); | |
1709 | TH1F *hMassTrueLSCother=new TH1F("hMassTrueLSCother","D^{0} MC inv. Mass Loose Cuts other(All momenta)",600,1.600,2.200); | |
1710 | TH1F *hMassLSCother=new TH1F("hMassLSCother","D^{0} inv. Mass Loose Cuts other (All momenta)",600,1.600,2.200); | |
1711 | hMassLSCother->Sumw2(); | |
1712 | TH1F *hMassTrueLSCotherPM=new TH1F("hMassTrueLSCotherPM","D^{0} MC inv. Mass Loose Cuts other, Mass Peak. (All momenta)",600,1.600,2.200); | |
1713 | TH1F *hMassLSCotherPM=new TH1F("hMassLSCotherPM","D^{0} inv. Mass Loose Cuts other (All momenta), MassPeak",600,1.600,2.200); | |
1714 | hMassLSCotherPM->Sumw2(); | |
1715 | TH1F *hMassTrueLSCotherSB=new TH1F("hMassTrueLSCotherSB","D^{0} MC inv. Mass in Side Bands Loose Cuts other(All momenta)",600,1.600,2.200); | |
1716 | TH1F *hMassLSCotherSB=new TH1F("hMassLSCotherSB","D^{0} inv. Mass in Side Bands Loose Cuts other (All momenta)",600,1.600,2.200); | |
1717 | hMassLSCotherSB->Sumw2(); | |
1718 | ||
1719 | flistLsCutsOther->Add(hCPtaVSd0d0LSCother); | |
1720 | flistLsCutsOther->Add(hSecVtxZLSCother); | |
1721 | flistLsCutsOther->Add(hSecVtxYLSCother); | |
1722 | flistLsCutsOther->Add(hSecVtxXLSCother); | |
1723 | flistLsCutsOther->Add(hSecVtxXYLSCother); | |
1724 | flistLsCutsOther->Add(hSecVtxPhiLSCother); | |
1725 | flistLsCutsOther->Add(hCPtaLSCother); | |
1726 | flistLsCutsOther->Add(hd0xd0LSCother); | |
1727 | flistLsCutsOther->Add(hMassTrueLSCother); | |
1728 | flistLsCutsOther->Add(hMassLSCother); | |
1729 | flistLsCutsOther->Add(hMassTrueLSCotherPM); | |
1730 | flistLsCutsOther->Add(hMassLSCotherPM); | |
1731 | flistLsCutsOther->Add(hMassTrueLSCotherSB); | |
1732 | flistLsCutsOther->Add(hMassLSCotherSB); | |
624c07ab | 1733 | |
1734 | //############# d0 D0 histos ###############Ã | |
ac4c229c | 1735 | TH1F *hd0D0LSCotherPM = new TH1F("hd0D0LSCotherPM","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); |
1736 | hd0D0LSCotherPM->SetXTitle("Impact parameter [#mum]"); | |
1737 | hd0D0LSCotherPM->SetYTitle("Entries"); | |
1738 | ||
1739 | TH1F *hd0D0VtxTrueLSCotherPM = new TH1F("hd0D0VtxTrueLSCotherPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1740 | hd0D0VtxTrueLSCotherPM->SetXTitle("Impact parameter [#mum]"); | |
1741 | hd0D0VtxTrueLSCotherPM->SetYTitle("Entries"); | |
1742 | ||
1743 | TH1F *hMCd0D0LSCotherPM = new TH1F("hMCd0D0LSCotherPM","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1744 | hMCd0D0LSCotherPM->SetXTitle("MC Impact parameter [#mum]"); | |
1745 | hMCd0D0LSCotherPM->SetYTitle("Entries"); | |
1746 | ||
1747 | TH1F *hd0D0LSCotherSB = new TH1F("hd0D0LSCotherSB","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1748 | hd0D0LSCotherSB->SetXTitle("Impact parameter [#mum]"); | |
1749 | hd0D0LSCotherSB->SetYTitle("Entries"); | |
1750 | ||
1751 | TH1F *hd0D0VtxTrueLSCotherSB = new TH1F("hd0D0VtxTrueLSCotherSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1752 | hd0D0VtxTrueLSCotherSB->SetXTitle("Impact parameter [#mum]"); | |
1753 | hd0D0VtxTrueLSCotherSB->SetYTitle("Entries"); | |
1754 | ||
1755 | TH1F *hMCd0D0LSCotherSB = new TH1F("hMCd0D0LSCotherSB","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1756 | hMCd0D0LSCotherSB->SetXTitle("MC Impact parameter [#mum]"); | |
1757 | hMCd0D0LSCotherSB->SetYTitle("Entries"); | |
1758 | ||
1759 | flistLsCutsOther->Add(hd0D0LSCotherPM); | |
1760 | flistLsCutsOther->Add(hd0D0VtxTrueLSCotherPM); | |
1761 | flistLsCutsOther->Add(hMCd0D0LSCotherPM); | |
1762 | flistLsCutsOther->Add(hd0D0LSCotherSB); | |
1763 | flistLsCutsOther->Add(hd0D0VtxTrueLSCotherSB); | |
1764 | flistLsCutsOther->Add(hMCd0D0LSCotherSB); | |
1765 | ||
1766 | TH1F **hd0D0ptLSCotherPM=new TH1F*[fnbins]; | |
1767 | TH1F **hMCd0D0ptLSCotherPM=new TH1F*[fnbins]; | |
1768 | TH1F ** hd0D0VtxTrueptLSCotherPM=new TH1F*[fnbins]; | |
1769 | TH1F **hd0D0ptLSCotherSB=new TH1F*[fnbins]; | |
1770 | TH1F **hMCd0D0ptLSCotherSB=new TH1F*[fnbins]; | |
1771 | TH1F ** hd0D0VtxTrueptLSCotherSB=new TH1F*[fnbins]; | |
1772 | namehist="hd0D0ptLSCother_"; | |
624c07ab | 1773 | titlehist="D^{0} impact par. plot, Loose Cuts, Other, "; |
1774 | for(Int_t i=0;i<fnbins;i++){ | |
1775 | strnamept=namehist; | |
1776 | strnamept.Append("PkMss_pt"); | |
1777 | strnamept+=i; | |
1778 | ||
1779 | strtitlept=titlehist; | |
1780 | strtitlept.Append(" Mass Peak, "); | |
1781 | strtitlept+=fptbins[i]; | |
1782 | strtitlept.Append("<= pt <"); | |
1783 | strtitlept+=fptbins[i+1]; | |
1784 | strtitlept.Append(" [GeV/c]"); | |
1785 | ||
ac4c229c | 1786 | hd0D0ptLSCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1787 | hd0D0ptLSCotherPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1788 | hd0D0ptLSCotherPM[i]->SetYTitle("Entries"); | |
1789 | flistLsCutsOther->Add(hd0D0ptLSCotherPM[i]); | |
624c07ab | 1790 | |
1791 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1792 | hMCd0D0ptLSCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1793 | hMCd0D0ptLSCotherPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1794 | hMCd0D0ptLSCotherPM[i]->SetYTitle("Entries"); | |
1795 | flistLsCutsOther->Add(hMCd0D0ptLSCotherPM[i]); | |
624c07ab | 1796 | |
1797 | ||
1798 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1799 | hd0D0VtxTrueptLSCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1800 | hd0D0VtxTrueptLSCotherPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1801 | hd0D0VtxTrueptLSCotherPM[i]->SetYTitle("Entries"); | |
1802 | flistLsCutsOther->Add(hd0D0VtxTrueptLSCotherPM[i]); | |
624c07ab | 1803 | |
1804 | strnamept=namehist; | |
1805 | strnamept.Append("SBMss_pt"); | |
1806 | strnamept+=i; | |
1807 | ||
1808 | strtitlept=titlehist; | |
1809 | strtitlept.Append(" Side Bands, "); | |
1810 | strtitlept+=fptbins[i]; | |
1811 | strtitlept.Append("<= pt <"); | |
1812 | strtitlept+=fptbins[i+1]; | |
1813 | strtitlept.Append(" [GeV/c]"); | |
1814 | ||
ac4c229c | 1815 | hd0D0ptLSCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1816 | hd0D0ptLSCotherSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1817 | hd0D0ptLSCotherSB[i]->SetYTitle("Entries"); | |
1818 | flistLsCutsOther->Add(hd0D0ptLSCotherSB[i]); | |
624c07ab | 1819 | |
1820 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1821 | hMCd0D0ptLSCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1822 | hMCd0D0ptLSCotherSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1823 | hMCd0D0ptLSCotherSB[i]->SetYTitle("Entries"); | |
1824 | flistLsCutsOther->Add(hMCd0D0ptLSCotherSB[i]); | |
624c07ab | 1825 | |
1826 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1827 | hd0D0VtxTrueptLSCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1828 | hd0D0VtxTrueptLSCotherSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1829 | hd0D0VtxTrueptLSCotherSB[i]->SetYTitle("Entries"); | |
1830 | flistLsCutsOther->Add(hd0D0VtxTrueptLSCotherSB[i]); | |
624c07ab | 1831 | } |
1832 | ||
1833 | ||
1834 | ||
1835 | ||
1836 | //################################################################################################ | |
1837 | // # | |
1838 | // HISTOS FOR TIGHT CUTS # | |
1839 | // # | |
1840 | //################################################################################################ | |
1841 | ||
1842 | //############ TIGHT CUTS SIGNAL HISTOGRAMS ############### | |
1843 | // | |
1844 | // ####### global properties histo ############ | |
1845 | ||
ac4c229c | 1846 | TH2F *hCPtaVSd0d0TGHCsign=new TH2F("hCPtaVSd0d0TGHCsign","hCPtaVSd0d0_TightCuts_Signal",1000,-100000.,100000.,100,0.,1.); |
1847 | TH1F *hSecVtxZTGHCsign=new TH1F("hSecVtxZTGHCsign","hSecVtxZ_TightCuts_Signal",1000,-8.,8.); | |
1848 | TH1F *hSecVtxXTGHCsign=new TH1F("hSecVtxXTGHCsign","hSecVtxX_TightCuts_Signal",1000,-3000.,3000.); | |
1849 | TH1F *hSecVtxYTGHCsign=new TH1F("hSecVtxYTGHCsign","hSecVtxY_TightCuts_Signal",1000,-3000.,3000.); | |
1850 | TH2F *hSecVtxXYTGHCsign=new TH2F("hSecVtxXYTGHCsign","hSecVtxXY_TightCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.); | |
1851 | TH1F *hSecVtxPhiTGHCsign=new TH1F("hSecVtxPhiTGHCsign","hSecVtxPhi_TightCuts_Signal",180,-180.1,180.1); | |
1852 | TH1F *hCPtaTGHCsign=new TH1F("hCPtaTGHCsign","hCPta_TightCuts_Signal",100,0.,1.); | |
1853 | TH1F *hd0xd0TGHCsign=new TH1F("hd0xd0TGHCsign","hd0xd0_TightCuts_Signal",1000,-100000.,100000.); | |
1854 | TH1F *hMassTrueTGHCsign=new TH1F("hMassTrueTGHCsign","D^{0} MC inv. Mass Tight Cuts Signal(All momenta)",600,1.600,2.200); | |
1855 | TH1F *hMassTGHCsign=new TH1F("hMassTGHCsign","D^{0} inv. Mass Tight Cuts Signal (All momenta)",600,1.600,2.200); | |
1856 | hMassTGHCsign->Sumw2(); | |
1857 | TH1F *hMassTrueTGHCsignPM=new TH1F("hMassTrueTGHCsignPM","D^{0} MC inv. Mass Tight Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200); | |
1858 | TH1F *hMassTGHCsignPM=new TH1F("hMassTGHCsignPM","D^{0} inv. Mass Tight Cuts Signal (All momenta), MassPeak",600,1.600,2.200); | |
1859 | hMassTGHCsignPM->Sumw2(); | |
1860 | TH1F *hMassTrueTGHCsignSB=new TH1F("hMassTrueTGHCsignSB","D^{0} MC inv. Mass in Side Bands Tight Cuts Signal(All momenta)",600,1.600,2.200); | |
1861 | TH1F *hMassTGHCsignSB=new TH1F("hMassTGHCsignSB","D^{0} inv. Mass in Side Bands Tight Cuts Signal (All momenta)",600,1.600,2.200); | |
1862 | hMassTGHCsignSB->Sumw2(); | |
1863 | ||
1864 | flistTghCutsSignal->Add(hCPtaVSd0d0TGHCsign); | |
1865 | flistTghCutsSignal->Add(hSecVtxZTGHCsign); | |
1866 | flistTghCutsSignal->Add(hSecVtxYTGHCsign); | |
1867 | flistTghCutsSignal->Add(hSecVtxXTGHCsign); | |
1868 | flistTghCutsSignal->Add(hSecVtxXYTGHCsign); | |
1869 | flistTghCutsSignal->Add(hSecVtxPhiTGHCsign); | |
1870 | flistTghCutsSignal->Add(hCPtaTGHCsign); | |
1871 | flistTghCutsSignal->Add(hd0xd0TGHCsign); | |
1872 | flistTghCutsSignal->Add(hMassTrueTGHCsign); | |
1873 | flistTghCutsSignal->Add(hMassTGHCsign); | |
1874 | flistTghCutsSignal->Add(hMassTrueTGHCsignPM); | |
1875 | flistTghCutsSignal->Add(hMassTGHCsignPM); | |
1876 | flistTghCutsSignal->Add(hMassTrueTGHCsignSB); | |
1877 | flistTghCutsSignal->Add(hMassTGHCsignSB); | |
624c07ab | 1878 | |
1879 | // ####### d0 D0 histos ############ | |
ac4c229c | 1880 | TH1F *hd0D0TGHCsignPM = new TH1F("hd0D0TGHCsignPM","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); |
1881 | hd0D0TGHCsignPM->SetXTitle("Impact parameter [#mum]"); | |
1882 | hd0D0TGHCsignPM->SetYTitle("Entries"); | |
1883 | ||
1884 | TH1F *hd0D0VtxTrueTGHCsignPM = new TH1F("hd0D0VtxTrueTGHCsignPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1885 | hd0D0VtxTrueTGHCsignPM->SetXTitle("Impact parameter [#mum]"); | |
1886 | hd0D0VtxTrueTGHCsignPM->SetYTitle("Entries"); | |
1887 | ||
1888 | TH1F *hMCd0D0TGHCsignPM = new TH1F("hMCd0D0TGHCsignPM","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1889 | hMCd0D0TGHCsignPM->SetXTitle("MC Impact parameter [#mum]"); | |
1890 | hMCd0D0TGHCsignPM->SetYTitle("Entries"); | |
1891 | ||
1892 | TH1F *hd0D0TGHCsignSB = new TH1F("hd0D0TGHCsignSB","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1893 | hd0D0TGHCsignSB->SetXTitle("Impact parameter [#mum]"); | |
1894 | hd0D0TGHCsignSB->SetYTitle("Entries"); | |
1895 | ||
1896 | TH1F *hd0D0VtxTrueTGHCsignSB = new TH1F("hd0D0VtxTrueTGHCsignSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1897 | hd0D0VtxTrueTGHCsignSB->SetXTitle("Impact parameter [#mum]"); | |
1898 | hd0D0VtxTrueTGHCsignSB->SetYTitle("Entries"); | |
1899 | ||
1900 | TH1F *hMCd0D0TGHCsignSB = new TH1F("hMCd0D0TGHCsignSB","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.); | |
1901 | hMCd0D0TGHCsignSB->SetXTitle("MC Impact parameter [#mum]"); | |
1902 | hMCd0D0TGHCsignSB->SetYTitle("Entries"); | |
1903 | ||
1904 | flistTghCutsSignal->Add(hd0D0TGHCsignPM); | |
1905 | flistTghCutsSignal->Add(hd0D0VtxTrueTGHCsignPM); | |
1906 | flistTghCutsSignal->Add(hMCd0D0TGHCsignPM); | |
1907 | flistTghCutsSignal->Add(hd0D0TGHCsignSB); | |
1908 | flistTghCutsSignal->Add(hd0D0VtxTrueTGHCsignSB); | |
1909 | flistTghCutsSignal->Add(hMCd0D0TGHCsignSB); | |
1910 | ||
1911 | TH1F **hd0D0ptTGHCsignPM=new TH1F*[fnbins]; | |
1912 | TH1F **hMCd0D0ptTGHCsignPM=new TH1F*[fnbins]; | |
1913 | TH1F ** hd0D0VtxTrueptTGHCsignPM=new TH1F*[fnbins]; | |
1914 | TH1F **hd0D0ptTGHCsignSB=new TH1F*[fnbins]; | |
1915 | TH1F **hMCd0D0ptTGHCsignSB=new TH1F*[fnbins]; | |
1916 | TH1F ** hd0D0VtxTrueptTGHCsignSB=new TH1F*[fnbins]; | |
1917 | namehist="hd0D0ptTGHCsign_"; | |
624c07ab | 1918 | titlehist="D^{0} impact par. plot, Tight Cuts, Signal, "; |
1919 | for(Int_t i=0;i<fnbins;i++){ | |
1920 | strnamept=namehist; | |
1921 | strnamept.Append("PkMss_pt"); | |
1922 | strnamept+=i; | |
1923 | ||
1924 | strtitlept=titlehist; | |
1925 | strtitlept.Append(" Mass Peak, "); | |
1926 | strtitlept+=fptbins[i]; | |
1927 | strtitlept.Append("<= pt <"); | |
1928 | strtitlept+=fptbins[i+1]; | |
1929 | strtitlept.Append(" [GeV/c]"); | |
1930 | ||
ac4c229c | 1931 | hd0D0ptTGHCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1932 | hd0D0ptTGHCsignPM[i]->SetXTitle("Impact parameter [#mum] "); | |
1933 | hd0D0ptTGHCsignPM[i]->SetYTitle("Entries"); | |
1934 | flistTghCutsSignal->Add(hd0D0ptTGHCsignPM[i]); | |
624c07ab | 1935 | |
1936 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1937 | hMCd0D0ptTGHCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1938 | hMCd0D0ptTGHCsignPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1939 | hMCd0D0ptTGHCsignPM[i]->SetYTitle("Entries"); | |
1940 | flistTghCutsSignal->Add(hMCd0D0ptTGHCsignPM[i]); | |
624c07ab | 1941 | |
1942 | ||
1943 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1944 | hd0D0VtxTrueptTGHCsignPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1945 | hd0D0VtxTrueptTGHCsignPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1946 | hd0D0VtxTrueptTGHCsignPM[i]->SetYTitle("Entries"); | |
1947 | flistTghCutsSignal->Add(hd0D0VtxTrueptTGHCsignPM[i]); | |
624c07ab | 1948 | |
1949 | strnamept=namehist; | |
1950 | strnamept.Append("SBMss_pt"); | |
1951 | strnamept+=i; | |
1952 | ||
1953 | strtitlept=titlehist; | |
1954 | strtitlept.Append(" Side Bands, "); | |
1955 | strtitlept+=fptbins[i]; | |
1956 | strtitlept.Append("<= pt <"); | |
1957 | strtitlept+=fptbins[i+1]; | |
1958 | strtitlept.Append(" [GeV/c]"); | |
1959 | ||
ac4c229c | 1960 | hd0D0ptTGHCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1961 | hd0D0ptTGHCsignSB[i]->SetXTitle("Impact parameter [#mum] "); | |
1962 | hd0D0ptTGHCsignSB[i]->SetYTitle("Entries"); | |
1963 | flistTghCutsSignal->Add(hd0D0ptTGHCsignSB[i]); | |
624c07ab | 1964 | |
1965 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 1966 | hMCd0D0ptTGHCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1967 | hMCd0D0ptTGHCsignSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
1968 | hMCd0D0ptTGHCsignSB[i]->SetYTitle("Entries"); | |
1969 | flistTghCutsSignal->Add(hMCd0D0ptTGHCsignSB[i]); | |
624c07ab | 1970 | |
1971 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 1972 | hd0D0VtxTrueptTGHCsignSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
1973 | hd0D0VtxTrueptTGHCsignSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
1974 | hd0D0VtxTrueptTGHCsignSB[i]->SetYTitle("Entries"); | |
1975 | flistTghCutsSignal->Add(hd0D0VtxTrueptTGHCsignSB[i]); | |
624c07ab | 1976 | } |
1977 | ||
1978 | ||
1979 | //############ TIGHT CUTS BACKGROUND HISTOGRAMS ########### | |
1980 | // | |
1981 | // ######## global properties histos ####### | |
ac4c229c | 1982 | TH2F *hCPtaVSd0d0TGHCback=new TH2F("hCPtaVSd0d0TGHCback","hCPtaVSd0d0_TightCuts_Background",1000,-100000.,100000.,100,0.,1.); |
1983 | TH1F *hSecVtxZTGHCback=new TH1F("hSecVtxZTGHCback","hSecVtxZ_TightCuts_Background",1000,-8.,8.); | |
1984 | TH1F *hSecVtxXTGHCback=new TH1F("hSecVtxXTGHCback","hSecVtxX_TightCuts_Background",1000,-3000.,3000.); | |
1985 | TH1F *hSecVtxYTGHCback=new TH1F("hSecVtxYTGHCback","hSecVtxY_TightCuts_Background",1000,-3000.,3000.); | |
1986 | TH2F *hSecVtxXYTGHCback=new TH2F("hSecVtxXYTGHCback","hSecVtxXY_TightCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.); | |
1987 | TH1F *hSecVtxPhiTGHCback=new TH1F("hSecVtxPhiTGHCback","hSecVtxPhi_TightCuts_Background",180,-180.1,180.1); | |
1988 | TH1F *hCPtaTGHCback=new TH1F("hCPtaTGHCback","hCPta_TightCuts_Background",100,0.,1.); | |
1989 | TH1F *hd0xd0TGHCback=new TH1F("hd0xd0TGHCback","hd0xd0_TightCuts_Background",1000,-100000.,100000.); | |
1990 | TH1F *hMassTrueTGHCback=new TH1F("hMassTrueTGHCback","D^{0} MC inv. Mass Tight Cuts Background(All momenta)",600,1.600,2.200); | |
1991 | TH1F *hMassTGHCback=new TH1F("hMassTGHCback","D^{0} inv. Mass Tight Cuts Background (All momenta)",600,1.600,2.200); | |
1992 | hMassTGHCback->Sumw2(); | |
1993 | TH1F *hMassTrueTGHCbackPM=new TH1F("hMassTrueTGHCbackPM","D^{0} MC inv. Mass Tight Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200); | |
1994 | TH1F *hMassTGHCbackPM=new TH1F("hMassTGHCbackPM","D^{0} inv. Mass Tight Cuts Background (All momenta), MassPeak",600,1.600,2.200); | |
1995 | hMassTGHCbackPM->Sumw2(); | |
1996 | TH1F *hMassTrueTGHCbackSB=new TH1F("hMassTrueTGHCbackSB","D^{0} MC inv. Mass in Side Bands Tight Cuts Backgrround(All momenta)",600,1.600,2.200); | |
1997 | TH1F *hMassTGHCbackSB=new TH1F("hMassTGHCbackSB","D^{0} inv. Mass in Side Bands Tight Cuts Background (All momenta)",600,1.600,2.200); | |
1998 | hMassTGHCbackSB->Sumw2(); | |
1999 | ||
2000 | flistTghCutsBack->Add(hCPtaVSd0d0TGHCback); | |
2001 | flistTghCutsBack->Add(hSecVtxZTGHCback); | |
2002 | flistTghCutsBack->Add(hSecVtxYTGHCback); | |
2003 | flistTghCutsBack->Add(hSecVtxXTGHCback); | |
2004 | flistTghCutsBack->Add(hSecVtxXYTGHCback); | |
2005 | flistTghCutsBack->Add(hSecVtxPhiTGHCback); | |
2006 | flistTghCutsBack->Add(hCPtaTGHCback); | |
2007 | flistTghCutsBack->Add(hd0xd0TGHCback); | |
2008 | flistTghCutsBack->Add(hMassTrueTGHCback); | |
2009 | flistTghCutsBack->Add(hMassTGHCback); | |
2010 | flistTghCutsBack->Add(hMassTrueTGHCbackPM); | |
2011 | flistTghCutsBack->Add(hMassTGHCbackPM); | |
2012 | flistTghCutsBack->Add(hMassTrueTGHCbackSB); | |
2013 | flistTghCutsBack->Add(hMassTGHCbackSB); | |
624c07ab | 2014 | |
2015 | ||
2016 | // ####### d0 D0 histos ############ | |
2017 | ||
ac4c229c | 2018 | TH1F *hd0D0TGHCbackPM = new TH1F("hd0D0TGHCbackPM","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); |
2019 | hd0D0TGHCbackPM->SetXTitle("Impact parameter [#mum]"); | |
2020 | hd0D0TGHCbackPM->SetYTitle("Entries"); | |
2021 | ||
2022 | TH1F *hd0D0VtxTrueTGHCbackPM = new TH1F("hd0D0VtxTrueTGHCbackPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2023 | hd0D0VtxTrueTGHCbackPM->SetXTitle("Impact parameter [#mum]"); | |
2024 | hd0D0VtxTrueTGHCbackPM->SetYTitle("Entries"); | |
2025 | ||
2026 | TH1F *hMCd0D0TGHCbackPM = new TH1F("hMCd0D0TGHCbackPM","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2027 | hMCd0D0TGHCbackPM->SetXTitle("MC Impact parameter [#mum]"); | |
2028 | hMCd0D0TGHCbackPM->SetYTitle("Entries"); | |
2029 | ||
2030 | TH1F *hd0D0TGHCbackSB = new TH1F("hd0D0TGHCbackSB","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2031 | hd0D0TGHCbackSB->SetXTitle("Impact parameter [#mum]"); | |
2032 | hd0D0TGHCbackSB->SetYTitle("Entries"); | |
2033 | ||
2034 | TH1F *hd0D0VtxTrueTGHCbackSB = new TH1F("hd0D0VtxTrueTGHCbackSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2035 | hd0D0VtxTrueTGHCbackSB->SetXTitle("Impact parameter [#mum]"); | |
2036 | hd0D0VtxTrueTGHCbackSB->SetYTitle("Entries"); | |
2037 | ||
2038 | TH1F *hMCd0D0TGHCbackSB = new TH1F("hMCd0D0TGHCbackSB","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2039 | hMCd0D0TGHCbackSB->SetXTitle("MC Impact parameter [#mum]"); | |
2040 | hMCd0D0TGHCbackSB->SetYTitle("Entries"); | |
2041 | ||
2042 | flistTghCutsBack->Add(hd0D0TGHCbackPM); | |
2043 | flistTghCutsBack->Add(hd0D0VtxTrueTGHCbackPM); | |
2044 | flistTghCutsBack->Add(hMCd0D0TGHCbackPM); | |
2045 | flistTghCutsBack->Add(hd0D0TGHCbackSB); | |
2046 | flistTghCutsBack->Add(hd0D0VtxTrueTGHCbackSB); | |
2047 | flistTghCutsBack->Add(hMCd0D0TGHCbackSB); | |
2048 | ||
2049 | TH1F **hd0D0ptTGHCbackPM=new TH1F*[fnbins]; | |
2050 | TH1F **hMCd0D0ptTGHCbackPM=new TH1F*[fnbins]; | |
2051 | TH1F ** hd0D0VtxTrueptTGHCbackPM=new TH1F*[fnbins]; | |
2052 | TH1F **hd0D0ptTGHCbackSB=new TH1F*[fnbins]; | |
2053 | TH1F **hMCd0D0ptTGHCbackSB=new TH1F*[fnbins]; | |
2054 | TH1F ** hd0D0VtxTrueptTGHCbackSB=new TH1F*[fnbins]; | |
2055 | namehist="hd0D0ptTGHCback_"; | |
624c07ab | 2056 | titlehist="D^{0} impact par. plot, Tight Cuts, Background, "; |
2057 | for(Int_t i=0;i<fnbins;i++){ | |
2058 | strnamept=namehist; | |
2059 | strnamept.Append("PkMss_pt"); | |
2060 | strnamept+=i; | |
2061 | ||
2062 | strtitlept=titlehist; | |
2063 | strtitlept.Append(" Mass Peak, "); | |
2064 | strtitlept+=fptbins[i]; | |
2065 | strtitlept.Append("<= pt <"); | |
2066 | strtitlept+=fptbins[i+1]; | |
2067 | strtitlept.Append(" [GeV/c]"); | |
2068 | ||
ac4c229c | 2069 | hd0D0ptTGHCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2070 | hd0D0ptTGHCbackPM[i]->SetXTitle("Impact parameter [#mum] "); | |
2071 | hd0D0ptTGHCbackPM[i]->SetYTitle("Entries"); | |
2072 | flistTghCutsBack->Add(hd0D0ptTGHCbackPM[i]); | |
624c07ab | 2073 | |
2074 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2075 | hMCd0D0ptTGHCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2076 | hMCd0D0ptTGHCbackPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2077 | hMCd0D0ptTGHCbackPM[i]->SetYTitle("Entries"); | |
2078 | flistTghCutsBack->Add(hMCd0D0ptTGHCbackPM[i]); | |
624c07ab | 2079 | |
2080 | ||
2081 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2082 | hd0D0VtxTrueptTGHCbackPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2083 | hd0D0VtxTrueptTGHCbackPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2084 | hd0D0VtxTrueptTGHCbackPM[i]->SetYTitle("Entries"); | |
2085 | flistTghCutsBack->Add(hd0D0VtxTrueptTGHCbackPM[i]); | |
624c07ab | 2086 | |
2087 | strnamept=namehist; | |
2088 | strnamept.Append("SBMss_pt"); | |
2089 | strnamept+=i; | |
2090 | ||
2091 | strtitlept=titlehist; | |
2092 | strtitlept.Append(" Side Bands, "); | |
2093 | strtitlept+=fptbins[i]; | |
2094 | strtitlept.Append("<= pt <"); | |
2095 | strtitlept+=fptbins[i+1]; | |
2096 | strtitlept.Append(" [GeV/c]"); | |
2097 | ||
ac4c229c | 2098 | hd0D0ptTGHCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2099 | hd0D0ptTGHCbackSB[i]->SetXTitle("Impact parameter [#mum] "); | |
2100 | hd0D0ptTGHCbackSB[i]->SetYTitle("Entries"); | |
2101 | flistTghCutsBack->Add(hd0D0ptTGHCbackSB[i]); | |
624c07ab | 2102 | |
2103 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2104 | hMCd0D0ptTGHCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2105 | hMCd0D0ptTGHCbackSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2106 | hMCd0D0ptTGHCbackSB[i]->SetYTitle("Entries"); | |
2107 | flistTghCutsBack->Add(hMCd0D0ptTGHCbackSB[i]); | |
624c07ab | 2108 | |
2109 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2110 | hd0D0VtxTrueptTGHCbackSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2111 | hd0D0VtxTrueptTGHCbackSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2112 | hd0D0VtxTrueptTGHCbackSB[i]->SetYTitle("Entries"); | |
2113 | flistTghCutsBack->Add(hd0D0VtxTrueptTGHCbackSB[i]); | |
624c07ab | 2114 | } |
2115 | ||
2116 | ||
2117 | ||
2118 | //############ TIGHT CUTS FROMB HISTOGRAMS ########### | |
2119 | // | |
2120 | //####### global properties histos | |
2121 | ||
ac4c229c | 2122 | TH2F *hCPtaVSd0d0TGHCfromB=new TH2F("hCPtaVSd0d0TGHCfromB","hCPtaVSd0d0_TightCuts_FromB",1000,-100000.,100000.,100,0.,1.); |
2123 | TH1F *hSecVtxZTGHCfromB=new TH1F("hSecVtxZTGHCfromB","hSecVtxZ_TightCuts_FromB",1000,-8.,8.); | |
2124 | TH1F *hSecVtxXTGHCfromB=new TH1F("hSecVtxXTGHCfromB","hSecVtxX_TightCuts_FromB",1000,-3000.,3000.); | |
2125 | TH1F *hSecVtxYTGHCfromB=new TH1F("hSecVtxYTGHCfromB","hSecVtxY_TightCuts_FromB",1000,-3000.,3000.); | |
2126 | TH2F *hSecVtxXYTGHCfromB=new TH2F("hSecVtxXYTGHCfromB","hSecVtxXY_TightCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.); | |
2127 | TH1F *hSecVtxPhiTGHCfromB=new TH1F("hSecVtxPhiTGHCfromB","hSecVtxPhi_TightCuts_FromB",180,-180.1,180.1); | |
2128 | TH1F *hCPtaTGHCfromB=new TH1F("hCPtaTGHCfromB","hCPta_TightCuts_FromB",100,0.,1.); | |
2129 | TH1F *hd0xd0TGHCfromB=new TH1F("hd0xd0TGHCfromB","hd0xd0_TightCuts_FromB",1000,-100000.,100000.); | |
2130 | TH1F *hMassTrueTGHCfromB=new TH1F("hMassTrueTGHCfromB","D^{0} MC inv. Mass Tight Cuts FromB(All momenta)",600,1.600,2.200); | |
2131 | TH1F *hMassTGHCfromB=new TH1F("hMassTGHCfromB","D^{0} inv. Mass Tight Cuts FromB (All momenta)",600,1.600,2.200); | |
2132 | hMassTGHCfromB->Sumw2(); | |
2133 | TH1F *hMassTrueTGHCfromBPM=new TH1F("hMassTrueTGHCfromBPM","D^{0} MC inv. Mass Tight Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200); | |
2134 | TH1F *hMassTGHCfromBPM=new TH1F("hMassTGHCfromBPM","D^{0} inv. Mass Tight Cuts FromB (All momenta), MassPeak",600,1.600,2.200); | |
2135 | hMassTGHCfromBPM->Sumw2(); | |
2136 | TH1F *hMassTrueTGHCfromBSB=new TH1F("hMassTrueTGHCfromBSB","D^{0} MC inv. Mass in Side Bands Tight Cuts FromB(All momenta)",600,1.600,2.200); | |
2137 | TH1F *hMassTGHCfromBSB=new TH1F("hMassTGHCfromBSB","D^{0} inv. Mass in Side Bands Tight Cuts FromB (All momenta)",600,1.600,2.200); | |
2138 | hMassTGHCfromBSB->Sumw2(); | |
2139 | ||
2140 | flistTghCutsFromB->Add(hCPtaVSd0d0TGHCfromB); | |
2141 | flistTghCutsFromB->Add(hSecVtxZTGHCfromB); | |
2142 | flistTghCutsFromB->Add(hSecVtxYTGHCfromB); | |
2143 | flistTghCutsFromB->Add(hSecVtxXTGHCfromB); | |
2144 | flistTghCutsFromB->Add(hSecVtxXYTGHCfromB); | |
2145 | flistTghCutsFromB->Add(hSecVtxPhiTGHCfromB); | |
2146 | flistTghCutsFromB->Add(hCPtaTGHCfromB); | |
2147 | flistTghCutsFromB->Add(hd0xd0TGHCfromB); | |
2148 | flistTghCutsFromB->Add(hMassTrueTGHCfromB); | |
2149 | flistTghCutsFromB->Add(hMassTGHCfromB); | |
2150 | flistTghCutsFromB->Add(hMassTrueTGHCfromBPM); | |
2151 | flistTghCutsFromB->Add(hMassTGHCfromBPM); | |
2152 | flistTghCutsFromB->Add(hMassTrueTGHCfromBSB); | |
2153 | flistTghCutsFromB->Add(hMassTGHCfromBSB); | |
624c07ab | 2154 | |
2155 | // ######### d0 D0 histos ############## | |
ac4c229c | 2156 | TH1F *hd0D0TGHCfromBPM = new TH1F("hd0D0TGHCfromBPM","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); |
2157 | hd0D0TGHCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
2158 | hd0D0TGHCfromBPM->SetYTitle("Entries"); | |
2159 | ||
2160 | TH1F *hd0D0VtxTrueTGHCfromBPM = new TH1F("hd0D0VtxTrueTGHCfromBPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2161 | hd0D0VtxTrueTGHCfromBPM->SetXTitle("Impact parameter [#mum]"); | |
2162 | hd0D0VtxTrueTGHCfromBPM->SetYTitle("Entries"); | |
2163 | ||
2164 | TH1F *hMCd0D0TGHCfromBPM = new TH1F("hMCd0D0TGHCfromBPM","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2165 | hMCd0D0TGHCfromBPM->SetXTitle("MC Impact parameter [#mum]"); | |
2166 | hMCd0D0TGHCfromBPM->SetYTitle("Entries"); | |
2167 | ||
2168 | TH1F *hd0D0TGHCfromBSB = new TH1F("hd0D0TGHCfromBSB","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2169 | hd0D0TGHCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
2170 | hd0D0TGHCfromBSB->SetYTitle("Entries"); | |
2171 | ||
2172 | TH1F *hd0D0VtxTrueTGHCfromBSB = new TH1F("hd0D0VtxTrueTGHCfromBSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2173 | hd0D0VtxTrueTGHCfromBSB->SetXTitle("Impact parameter [#mum]"); | |
2174 | hd0D0VtxTrueTGHCfromBSB->SetYTitle("Entries"); | |
2175 | ||
2176 | TH1F *hMCd0D0TGHCfromBSB = new TH1F("hMCd0D0TGHCfromBSB","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2177 | hMCd0D0TGHCfromBSB->SetXTitle("MC Impact parameter [#mum]"); | |
2178 | hMCd0D0TGHCfromBSB->SetYTitle("Entries"); | |
2179 | ||
2180 | flistTghCutsFromB->Add(hd0D0TGHCfromBPM); | |
2181 | flistTghCutsFromB->Add(hd0D0VtxTrueTGHCfromBPM); | |
2182 | flistTghCutsFromB->Add(hMCd0D0TGHCfromBPM); | |
2183 | flistTghCutsFromB->Add(hd0D0TGHCfromBSB); | |
2184 | flistTghCutsFromB->Add(hd0D0VtxTrueTGHCfromBSB); | |
2185 | flistTghCutsFromB->Add(hMCd0D0TGHCfromBSB); | |
2186 | ||
2187 | TH1F **hd0D0ptTGHCfromBPM=new TH1F*[fnbins]; | |
2188 | TH1F **hMCd0D0ptTGHCfromBPM=new TH1F*[fnbins]; | |
2189 | TH1F ** hd0D0VtxTrueptTGHCfromBPM=new TH1F*[fnbins]; | |
2190 | TH1F **hd0D0ptTGHCfromBSB=new TH1F*[fnbins]; | |
2191 | TH1F **hMCd0D0ptTGHCfromBSB=new TH1F*[fnbins]; | |
2192 | TH1F ** hd0D0VtxTrueptTGHCfromBSB=new TH1F*[fnbins]; | |
2193 | namehist="hd0D0ptTGHCfromB_"; | |
624c07ab | 2194 | titlehist="D^{0} impact par. plot, Tight Cuts, FromB, "; |
2195 | for(Int_t i=0;i<fnbins;i++){ | |
2196 | strnamept=namehist; | |
2197 | strnamept.Append("PkMss_pt"); | |
2198 | strnamept+=i; | |
2199 | ||
2200 | strtitlept=titlehist; | |
2201 | strtitlept.Append(" Mass Peak, "); | |
2202 | strtitlept+=fptbins[i]; | |
2203 | strtitlept.Append("<= pt <"); | |
2204 | strtitlept+=fptbins[i+1]; | |
2205 | strtitlept.Append(" [GeV/c]"); | |
2206 | ||
ac4c229c | 2207 | hd0D0ptTGHCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2208 | hd0D0ptTGHCfromBPM[i]->SetXTitle("Impact parameter [#mum] "); | |
2209 | hd0D0ptTGHCfromBPM[i]->SetYTitle("Entries"); | |
2210 | flistTghCutsFromB->Add(hd0D0ptTGHCfromBPM[i]); | |
624c07ab | 2211 | |
2212 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2213 | hMCd0D0ptTGHCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2214 | hMCd0D0ptTGHCfromBPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2215 | hMCd0D0ptTGHCfromBPM[i]->SetYTitle("Entries"); | |
2216 | flistTghCutsFromB->Add(hMCd0D0ptTGHCfromBPM[i]); | |
624c07ab | 2217 | |
2218 | ||
2219 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2220 | hd0D0VtxTrueptTGHCfromBPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2221 | hd0D0VtxTrueptTGHCfromBPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2222 | hd0D0VtxTrueptTGHCfromBPM[i]->SetYTitle("Entries"); | |
2223 | flistTghCutsFromB->Add(hd0D0VtxTrueptTGHCfromBPM[i]); | |
624c07ab | 2224 | |
2225 | strnamept=namehist; | |
2226 | strnamept.Append("SBMss_pt"); | |
2227 | strnamept+=i; | |
2228 | ||
2229 | strtitlept=titlehist; | |
2230 | strtitlept.Append(" Side Bands, "); | |
2231 | strtitlept+=fptbins[i]; | |
2232 | strtitlept.Append("<= pt <"); | |
2233 | strtitlept+=fptbins[i+1]; | |
2234 | strtitlept.Append(" [GeV/c]"); | |
2235 | ||
ac4c229c | 2236 | hd0D0ptTGHCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2237 | hd0D0ptTGHCfromBSB[i]->SetXTitle("Impact parameter [#mum] "); | |
2238 | hd0D0ptTGHCfromBSB[i]->SetYTitle("Entries"); | |
2239 | flistTghCutsFromB->Add(hd0D0ptTGHCfromBSB[i]); | |
624c07ab | 2240 | |
2241 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2242 | hMCd0D0ptTGHCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2243 | hMCd0D0ptTGHCfromBSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2244 | hMCd0D0ptTGHCfromBSB[i]->SetYTitle("Entries"); | |
2245 | flistTghCutsFromB->Add(hMCd0D0ptTGHCfromBSB[i]); | |
624c07ab | 2246 | |
2247 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2248 | hd0D0VtxTrueptTGHCfromBSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2249 | hd0D0VtxTrueptTGHCfromBSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2250 | hd0D0VtxTrueptTGHCfromBSB[i]->SetYTitle("Entries"); | |
2251 | flistTghCutsFromB->Add(hd0D0VtxTrueptTGHCfromBSB[i]); | |
624c07ab | 2252 | } |
2253 | ||
2254 | ||
2255 | ||
2256 | //############ TIGHT CUTS FROM DSTAR HISTOGRAMS ########### | |
2257 | // | |
2258 | //############## global properties histos | |
ac4c229c | 2259 | TH2F *hCPtaVSd0d0TGHCfromDstar=new TH2F("hCPtaVSd0d0TGHCfromDstar","hCPtaVSd0d0_TightCuts_FromDStar",1000,-100000.,100000.,100,0.,1.); |
2260 | TH1F *hSecVtxZTGHCfromDstar=new TH1F("hSecVtxZTGHCfromDstar","hSecVtxZ_TightCuts_FromDStar",1000,-8.,8.); | |
2261 | TH1F *hSecVtxXTGHCfromDstar=new TH1F("hSecVtxXTGHCfromDstar","hSecVtxX_TightCuts_FromDStar",1000,-3000.,3000.); | |
2262 | TH1F *hSecVtxYTGHCfromDstar=new TH1F("hSecVtxYTGHCfromDstar","hSecVtxY_TightCuts_FromDStar",1000,-3000.,3000.); | |
2263 | TH2F *hSecVtxXYTGHCfromDstar=new TH2F("hSecVtxXYTGHCfromDstar","hSecVtxXY_TightCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.); | |
2264 | TH1F *hSecVtxPhiTGHCfromDstar=new TH1F("hSecVtxPhiTGHCfromDstar","hSecVtxPhi_TightCuts_FromDStar",180,-180.1,180.1); | |
2265 | TH1F *hCPtaTGHCfromDstar=new TH1F("hCPtaTGHCfromDstar","hCPta_TightCuts_FromDStar",100,0.,1.); | |
2266 | TH1F *hd0xd0TGHCfromDstar=new TH1F("hd0xd0TGHCfromDstar","hd0xd0_TightCuts_FromDStar",1000,-100000.,100000.); | |
2267 | TH1F *hMassTrueTGHCfromDstar=new TH1F("hMassTrueTGHCfromDstar","D^{0} MC inv. Mass Tight Cuts FromDStar(All momenta)",600,1.600,2.200); | |
2268 | TH1F *hMassTGHCfromDstar=new TH1F("hMassTGHCfromDstar","D^{0} inv. Mass Tight Cuts FromDStar (All momenta)",600,1.600,2.200); | |
2269 | hMassTGHCfromDstar->Sumw2(); | |
2270 | TH1F *hMassTrueTGHCfromDstarPM=new TH1F("hMassTrueTGHCfromDstarPM","D^{0} MC inv. Mass Tight Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200); | |
2271 | TH1F *hMassTGHCfromDstarPM=new TH1F("hMassTGHCfromDstarPM","D^{0} inv. Mass Tight Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200); | |
2272 | hMassTGHCfromDstarPM->Sumw2(); | |
2273 | TH1F *hMassTrueTGHCfromDstarSB=new TH1F("hMassTrueTGHCfromDstarSB","D^{0} MC inv. Mass in Side Bands Tight Cuts FromDStar(All momenta)",600,1.600,2.200); | |
2274 | TH1F *hMassTGHCfromDstarSB=new TH1F("hMassTGHCfromDstarSB","D^{0} inv. Mass in Side Bands Tight Cuts FromDStar (All momenta)",600,1.600,2.200); | |
2275 | hMassTGHCfromDstarSB->Sumw2(); | |
2276 | ||
2277 | flistTghCutsFromDstar->Add(hCPtaVSd0d0TGHCfromDstar); | |
2278 | flistTghCutsFromDstar->Add(hSecVtxZTGHCfromDstar); | |
2279 | flistTghCutsFromDstar->Add(hSecVtxYTGHCfromDstar); | |
2280 | flistTghCutsFromDstar->Add(hSecVtxXTGHCfromDstar); | |
2281 | flistTghCutsFromDstar->Add(hSecVtxXYTGHCfromDstar); | |
2282 | flistTghCutsFromDstar->Add(hSecVtxPhiTGHCfromDstar); | |
2283 | flistTghCutsFromDstar->Add(hCPtaTGHCfromDstar); | |
2284 | flistTghCutsFromDstar->Add(hd0xd0TGHCfromDstar); | |
2285 | flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstar); | |
2286 | flistTghCutsFromDstar->Add(hMassTGHCfromDstar); | |
2287 | flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstarPM); | |
2288 | flistTghCutsFromDstar->Add(hMassTGHCfromDstarPM); | |
2289 | flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstarSB); | |
2290 | flistTghCutsFromDstar->Add(hMassTGHCfromDstarSB); | |
624c07ab | 2291 | |
2292 | //########## d0 D0 histos ############# | |
ac4c229c | 2293 | TH1F *hd0D0TGHCfromDstPM = new TH1F("hd0D0TGHCfromDstarPM","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); |
2294 | hd0D0TGHCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
2295 | hd0D0TGHCfromDstPM->SetYTitle("Entries"); | |
2296 | ||
2297 | TH1F *hd0D0VtxTrueTGHCfromDstPM = new TH1F("hd0D0VtxTrueTGHCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2298 | hd0D0VtxTrueTGHCfromDstPM->SetXTitle("Impact parameter [#mum]"); | |
2299 | hd0D0VtxTrueTGHCfromDstPM->SetYTitle("Entries"); | |
2300 | ||
2301 | TH1F *hMCd0D0TGHCfromDstPM = new TH1F("hMCd0D0TGHCfromDstarPM","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2302 | hMCd0D0TGHCfromDstPM->SetXTitle("MC Impact parameter [#mum]"); | |
2303 | hMCd0D0TGHCfromDstPM->SetYTitle("Entries"); | |
2304 | ||
2305 | TH1F *hd0D0TGHCfromDstSB = new TH1F("hd0D0TGHCfromDstarSB","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2306 | hd0D0TGHCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
2307 | hd0D0TGHCfromDstSB->SetYTitle("Entries"); | |
2308 | ||
2309 | TH1F *hd0D0VtxTrueTGHCfromDstSB = new TH1F("hd0D0VtxTrueTGHCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2310 | hd0D0VtxTrueTGHCfromDstSB->SetXTitle("Impact parameter [#mum]"); | |
2311 | hd0D0VtxTrueTGHCfromDstSB->SetYTitle("Entries"); | |
2312 | ||
2313 | TH1F *hMCd0D0TGHCfromDstSB = new TH1F("hMCd0D0TGHCfromDstarSB","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2314 | hMCd0D0TGHCfromDstSB->SetXTitle("MC Impact parameter [#mum]"); | |
2315 | hMCd0D0TGHCfromDstSB->SetYTitle("Entries"); | |
2316 | ||
2317 | flistTghCutsFromDstar->Add(hd0D0TGHCfromDstPM); | |
2318 | flistTghCutsFromDstar->Add(hd0D0VtxTrueTGHCfromDstPM); | |
2319 | flistTghCutsFromDstar->Add(hMCd0D0TGHCfromDstPM); | |
2320 | flistTghCutsFromDstar->Add(hd0D0TGHCfromDstSB); | |
2321 | flistTghCutsFromDstar->Add(hd0D0VtxTrueTGHCfromDstSB); | |
2322 | flistTghCutsFromDstar->Add(hMCd0D0TGHCfromDstSB); | |
2323 | ||
2324 | TH1F **hd0D0ptTGHCfromDstPM=new TH1F*[fnbins]; | |
2325 | TH1F **hMCd0D0ptTGHCfromDstPM=new TH1F*[fnbins]; | |
2326 | TH1F ** hd0D0VtxTrueptTGHCfromDstPM=new TH1F*[fnbins]; | |
2327 | TH1F **hd0D0ptTGHCfromDstSB=new TH1F*[fnbins]; | |
2328 | TH1F **hMCd0D0ptTGHCfromDstSB=new TH1F*[fnbins]; | |
2329 | TH1F ** hd0D0VtxTrueptTGHCfromDstSB=new TH1F*[fnbins]; | |
2330 | namehist="hd0D0ptTGHCfromDstar_"; | |
624c07ab | 2331 | titlehist="D^{0} impact par. plot, Tight Cuts, FromDStar, "; |
2332 | for(Int_t i=0;i<fnbins;i++){ | |
2333 | strnamept=namehist; | |
2334 | strnamept.Append("PkMss_pt"); | |
2335 | strnamept+=i; | |
2336 | ||
2337 | strtitlept=titlehist; | |
2338 | strtitlept.Append(" Mass Peak, "); | |
2339 | strtitlept+=fptbins[i]; | |
2340 | strtitlept.Append("<= pt <"); | |
2341 | strtitlept+=fptbins[i+1]; | |
2342 | strtitlept.Append(" [GeV/c]"); | |
2343 | ||
ac4c229c | 2344 | hd0D0ptTGHCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2345 | hd0D0ptTGHCfromDstPM[i]->SetXTitle("Impact parameter [#mum] "); | |
2346 | hd0D0ptTGHCfromDstPM[i]->SetYTitle("Entries"); | |
2347 | flistTghCutsFromDstar->Add(hd0D0ptTGHCfromDstPM[i]); | |
624c07ab | 2348 | |
2349 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2350 | hMCd0D0ptTGHCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2351 | hMCd0D0ptTGHCfromDstPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2352 | hMCd0D0ptTGHCfromDstPM[i]->SetYTitle("Entries"); | |
2353 | flistTghCutsFromDstar->Add(hMCd0D0ptTGHCfromDstPM[i]); | |
624c07ab | 2354 | |
2355 | ||
2356 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2357 | hd0D0VtxTrueptTGHCfromDstPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2358 | hd0D0VtxTrueptTGHCfromDstPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2359 | hd0D0VtxTrueptTGHCfromDstPM[i]->SetYTitle("Entries"); | |
2360 | flistTghCutsFromDstar->Add(hd0D0VtxTrueptTGHCfromDstPM[i]); | |
624c07ab | 2361 | |
2362 | strnamept=namehist; | |
2363 | strnamept.Append("SBMss_pt"); | |
2364 | strnamept+=i; | |
2365 | ||
2366 | strtitlept=titlehist; | |
2367 | strtitlept.Append(" Side Bands, "); | |
2368 | strtitlept+=fptbins[i]; | |
2369 | strtitlept.Append("<= pt <"); | |
2370 | strtitlept+=fptbins[i+1]; | |
2371 | strtitlept.Append(" [GeV/c]"); | |
2372 | ||
ac4c229c | 2373 | hd0D0ptTGHCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2374 | hd0D0ptTGHCfromDstSB[i]->SetXTitle("Impact parameter [#mum] "); | |
2375 | hd0D0ptTGHCfromDstSB[i]->SetYTitle("Entries"); | |
2376 | flistTghCutsFromDstar->Add(hd0D0ptTGHCfromDstSB[i]); | |
624c07ab | 2377 | |
2378 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2379 | hMCd0D0ptTGHCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2380 | hMCd0D0ptTGHCfromDstSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2381 | hMCd0D0ptTGHCfromDstSB[i]->SetYTitle("Entries"); | |
2382 | flistTghCutsFromDstar->Add(hMCd0D0ptTGHCfromDstSB[i]); | |
624c07ab | 2383 | |
2384 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2385 | hd0D0VtxTrueptTGHCfromDstSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2386 | hd0D0VtxTrueptTGHCfromDstSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2387 | hd0D0VtxTrueptTGHCfromDstSB[i]->SetYTitle("Entries"); | |
2388 | flistTghCutsFromDstar->Add(hd0D0VtxTrueptTGHCfromDstSB[i]); | |
624c07ab | 2389 | } |
2390 | ||
2391 | ||
2392 | //############ TIGHT CUTS OTHER HISTOGRAMS ########### | |
2393 | // | |
2394 | //########### global properties histos ########### | |
2395 | ||
ac4c229c | 2396 | TH2F *hCPtaVSd0d0TGHCother=new TH2F("hCPtaVSd0d0TGHCother","hCPtaVSd0d0_TightCuts_other",1000,-100000.,100000.,100,0.,1.); |
2397 | TH1F *hSecVtxZTGHCother=new TH1F("hSecVtxZTGHCother","hSecVtxZ_TightCuts_other",1000,-8.,8.); | |
2398 | TH1F *hSecVtxXTGHCother=new TH1F("hSecVtxXTGHCother","hSecVtxX_TightCuts_other",1000,-3000.,3000.); | |
2399 | TH1F *hSecVtxYTGHCother=new TH1F("hSecVtxYTGHCother","hSecVtxY_TightCuts_other",1000,-3000.,3000.); | |
2400 | TH2F *hSecVtxXYTGHCother=new TH2F("hSecVtxXYTGHCother","hSecVtxXY_TightCuts_other",1000,-3000.,3000.,1000,-3000.,3000.); | |
2401 | TH1F *hSecVtxPhiTGHCother=new TH1F("hSecVtxPhiTGHCother","hSecVtxPhi_TightCuts_other",180,-180.1,180.1); | |
2402 | TH1F *hCPtaTGHCother=new TH1F("hCPtaTGHCother","hCPta_TightCuts_other",100,0.,1.); | |
2403 | TH1F *hd0xd0TGHCother=new TH1F("hd0xd0TGHCother","hd0xd0_TightCuts_other",1000,-100000.,100000.); | |
2404 | TH1F *hMassTrueTGHCother=new TH1F("hMassTrueTGHCother","D^{0} MC inv. Mass Tight Cuts other(All momenta)",600,1.600,2.200); | |
2405 | TH1F *hMassTGHCother=new TH1F("hMassTGHCother","D^{0} inv. Mass Tight Cuts other (All momenta)",600,1.600,2.200); | |
2406 | hMassTGHCother->Sumw2(); | |
2407 | TH1F *hMassTrueTGHCotherPM=new TH1F("hMassTrueTGHCotherPM","D^{0} MC inv. Mass Tight Cuts other, Mass Peak. (All momenta)",600,1.600,2.200); | |
2408 | TH1F *hMassTGHCotherPM=new TH1F("hMassTGHCotherPM","D^{0} inv. Mass Tight Cuts other (All momenta), MassPeak",600,1.600,2.200); | |
2409 | hMassTGHCotherPM->Sumw2(); | |
2410 | TH1F *hMassTrueTGHCotherSB=new TH1F("hMassTrueTGHCotherSB","D^{0} MC inv. Mass in Side Bands Tight Cuts other(All momenta)",600,1.600,2.200); | |
2411 | TH1F *hMassTGHCotherSB=new TH1F("hMassTGHCotherSB","D^{0} inv. Mass in Side Bands Tight Cuts other (All momenta)",600,1.600,2.200); | |
2412 | hMassTGHCotherSB->Sumw2(); | |
2413 | ||
2414 | flistTghCutsOther->Add(hCPtaVSd0d0TGHCother); | |
2415 | flistTghCutsOther->Add(hSecVtxZTGHCother); | |
2416 | flistTghCutsOther->Add(hSecVtxYTGHCother); | |
2417 | flistTghCutsOther->Add(hSecVtxXTGHCother); | |
2418 | flistTghCutsOther->Add(hSecVtxXYTGHCother); | |
2419 | flistTghCutsOther->Add(hSecVtxPhiTGHCother); | |
2420 | flistTghCutsOther->Add(hCPtaTGHCother); | |
2421 | flistTghCutsOther->Add(hd0xd0TGHCother); | |
2422 | flistTghCutsOther->Add(hMassTrueTGHCother); | |
2423 | flistTghCutsOther->Add(hMassTGHCother); | |
2424 | flistTghCutsOther->Add(hMassTrueTGHCotherPM); | |
2425 | flistTghCutsOther->Add(hMassTGHCotherPM); | |
2426 | flistTghCutsOther->Add(hMassTrueTGHCotherSB); | |
2427 | flistTghCutsOther->Add(hMassTGHCotherSB); | |
624c07ab | 2428 | |
2429 | //############# d0 D0 histos ###############Ã | |
ac4c229c | 2430 | TH1F *hd0D0TGHCotherPM = new TH1F("hd0D0TGHCotherPM","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); |
2431 | hd0D0TGHCotherPM->SetXTitle("Impact parameter [#mum]"); | |
2432 | hd0D0TGHCotherPM->SetYTitle("Entries"); | |
2433 | ||
2434 | TH1F *hd0D0VtxTrueTGHCotherPM = new TH1F("hd0D0VtxTrueTGHCotherPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2435 | hd0D0VtxTrueTGHCotherPM->SetXTitle("Impact parameter [#mum]"); | |
2436 | hd0D0VtxTrueTGHCotherPM->SetYTitle("Entries"); | |
2437 | ||
2438 | TH1F *hMCd0D0TGHCotherPM = new TH1F("hMCd0D0TGHCotherPM","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2439 | hMCd0D0TGHCotherPM->SetXTitle("MC Impact parameter [#mum]"); | |
2440 | hMCd0D0TGHCotherPM->SetYTitle("Entries"); | |
2441 | ||
2442 | TH1F *hd0D0TGHCotherSB = new TH1F("hd0D0TGHCotherSB","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2443 | hd0D0TGHCotherSB->SetXTitle("Impact parameter [#mum]"); | |
2444 | hd0D0TGHCotherSB->SetYTitle("Entries"); | |
2445 | ||
2446 | TH1F *hd0D0VtxTrueTGHCotherSB = new TH1F("hd0D0VtxTrueTGHCotherSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2447 | hd0D0VtxTrueTGHCotherSB->SetXTitle("Impact parameter [#mum]"); | |
2448 | hd0D0VtxTrueTGHCotherSB->SetYTitle("Entries"); | |
2449 | ||
2450 | TH1F *hMCd0D0TGHCotherSB = new TH1F("hMCd0D0TGHCotherSB","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.); | |
2451 | hMCd0D0TGHCotherSB->SetXTitle("MC Impact parameter [#mum]"); | |
2452 | hMCd0D0TGHCotherSB->SetYTitle("Entries"); | |
2453 | ||
2454 | flistTghCutsOther->Add(hd0D0TGHCotherPM); | |
2455 | flistTghCutsOther->Add(hd0D0VtxTrueTGHCotherPM); | |
2456 | flistTghCutsOther->Add(hMCd0D0TGHCotherPM); | |
2457 | flistTghCutsOther->Add(hd0D0TGHCotherSB); | |
2458 | flistTghCutsOther->Add(hd0D0VtxTrueTGHCotherSB); | |
2459 | flistTghCutsOther->Add(hMCd0D0TGHCotherSB); | |
2460 | ||
2461 | TH1F **hd0D0ptTGHCotherPM=new TH1F*[fnbins]; | |
2462 | TH1F **hMCd0D0ptTGHCotherPM=new TH1F*[fnbins]; | |
2463 | TH1F ** hd0D0VtxTrueptTGHCotherPM=new TH1F*[fnbins]; | |
2464 | TH1F **hd0D0ptTGHCotherSB=new TH1F*[fnbins]; | |
2465 | TH1F **hMCd0D0ptTGHCotherSB=new TH1F*[fnbins]; | |
2466 | TH1F ** hd0D0VtxTrueptTGHCotherSB=new TH1F*[fnbins]; | |
2467 | namehist="hd0D0ptTGHCother_"; | |
624c07ab | 2468 | titlehist="D^{0} impact par. plot, Tight Cuts, Other, "; |
2469 | for(Int_t i=0;i<fnbins;i++){ | |
2470 | strnamept=namehist; | |
2471 | strnamept.Append("PkMss_pt"); | |
2472 | strnamept+=i; | |
2473 | ||
2474 | strtitlept=titlehist; | |
2475 | strtitlept.Append(" Mass Peak, "); | |
2476 | strtitlept+=fptbins[i]; | |
2477 | strtitlept.Append("<= pt <"); | |
2478 | strtitlept+=fptbins[i+1]; | |
2479 | strtitlept.Append(" [GeV/c]"); | |
2480 | ||
ac4c229c | 2481 | hd0D0ptTGHCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2482 | hd0D0ptTGHCotherPM[i]->SetXTitle("Impact parameter [#mum] "); | |
2483 | hd0D0ptTGHCotherPM[i]->SetYTitle("Entries"); | |
2484 | flistTghCutsOther->Add(hd0D0ptTGHCotherPM[i]); | |
624c07ab | 2485 | |
2486 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2487 | hMCd0D0ptTGHCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2488 | hMCd0D0ptTGHCotherPM[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2489 | hMCd0D0ptTGHCotherPM[i]->SetYTitle("Entries"); | |
2490 | flistTghCutsOther->Add(hMCd0D0ptTGHCotherPM[i]); | |
624c07ab | 2491 | |
2492 | ||
2493 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2494 | hd0D0VtxTrueptTGHCotherPM[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2495 | hd0D0VtxTrueptTGHCotherPM[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2496 | hd0D0VtxTrueptTGHCotherPM[i]->SetYTitle("Entries"); | |
2497 | flistTghCutsOther->Add(hd0D0VtxTrueptTGHCotherPM[i]); | |
624c07ab | 2498 | |
2499 | strnamept=namehist; | |
2500 | strnamept.Append("SBMss_pt"); | |
2501 | strnamept+=i; | |
2502 | ||
2503 | strtitlept=titlehist; | |
2504 | strtitlept.Append(" Side Bands, "); | |
2505 | strtitlept+=fptbins[i]; | |
2506 | strtitlept.Append("<= pt <"); | |
2507 | strtitlept+=fptbins[i+1]; | |
2508 | strtitlept.Append(" [GeV/c]"); | |
2509 | ||
ac4c229c | 2510 | hd0D0ptTGHCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2511 | hd0D0ptTGHCotherSB[i]->SetXTitle("Impact parameter [#mum] "); | |
2512 | hd0D0ptTGHCotherSB[i]->SetYTitle("Entries"); | |
2513 | flistTghCutsOther->Add(hd0D0ptTGHCotherSB[i]); | |
624c07ab | 2514 | |
2515 | strnamept.ReplaceAll("hd0D0","hMCd0D0"); | |
ac4c229c | 2516 | hMCd0D0ptTGHCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2517 | hMCd0D0ptTGHCotherSB[i]->SetXTitle("MC Impact parameter [#mum] "); | |
2518 | hMCd0D0ptTGHCotherSB[i]->SetYTitle("Entries"); | |
2519 | flistTghCutsOther->Add(hMCd0D0ptTGHCotherSB[i]); | |
624c07ab | 2520 | |
2521 | strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue"); | |
ac4c229c | 2522 | hd0D0VtxTrueptTGHCotherSB[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.); |
2523 | hd0D0VtxTrueptTGHCotherSB[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] "); | |
2524 | hd0D0VtxTrueptTGHCotherSB[i]->SetYTitle("Entries"); | |
2525 | flistTghCutsOther->Add(hd0D0VtxTrueptTGHCotherSB[i]); | |
624c07ab | 2526 | } |
2527 | ||
2528 | ||
2529 | } | |
2530 | ||
2531 | ||
2532 | ||
2533 | //________________________________________________________________________ | |
2534 | void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/) | |
2535 | { | |
2536 | // Execute analysis for current event: | |
2537 | // heavy flavor candidates association to MC truth | |
2538 | ||
2539 | AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent()); | |
2540 | ||
8931c313 | 2541 | // In case there is an AOD handler writing a standard AOD, use the AOD |
2542 | // event in memory rather than the input (ESD) event. | |
2543 | if (!aod && AODEvent() && IsStandardAOD()) aod = dynamic_cast<AliAODEvent*> (AODEvent()); | |
2544 | ||
624c07ab | 2545 | // load D0->Kpi candidates |
2546 | TClonesArray *arrayD0toKpi = | |
2547 | (TClonesArray*)aod->GetList()->FindObject("D0toKpi"); | |
2548 | if(!arrayD0toKpi) { | |
2549 | Printf("AliAnalysisTaskSECharmFraction::UserExec: D0toKpi branch not found!\n"); | |
2550 | return; | |
2551 | } | |
2552 | ||
2553 | // AOD primary vertex | |
2554 | AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex(); | |
2555 | ||
2556 | ||
2557 | // load MC particles | |
2558 | TClonesArray *arrayMC = | |
2559 | (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName()); | |
2560 | if(!arrayMC) { | |
2561 | Printf("AliAnalysisTaskSECharmFraction::UserExec: MC particles branch not found!\n"); | |
2562 | return; | |
2563 | } | |
2564 | ||
2565 | // load MC header | |
2566 | AliAODMCHeader *aodmcHeader = | |
2567 | (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName()); | |
2568 | if(!aodmcHeader) { | |
2569 | Printf("AliAnalysisTaskSECharmFraction::UserExec: MC header branch not found!\n"); | |
2570 | return; | |
2571 | } | |
2572 | ||
2573 | // MC primary vertex | |
2574 | Double_t vtxTrue[3]; | |
2575 | aodmcHeader->GetVertex(vtxTrue); | |
2576 | ||
2577 | if (!aod) { | |
2578 | Printf("ERROR: aod not available"); | |
2579 | return; | |
2580 | } | |
2581 | //histogram filled with 1 for every AOD | |
2582 | fNentries->Fill(1); | |
2583 | PostData(1,fNentries); | |
2584 | ||
2585 | ||
2586 | //Printf("There are %d tracks in this event", aod->GetNumberOfTracks()); | |
2587 | // Int_t nTotHF=0,nTotDstar=0,nTot3Prong=0; | |
2588 | Int_t nTotD0toKpi=0; | |
ac4c229c | 2589 | Int_t okd0tight,okd0bartight,okd0loose,okd0barloose; |
624c07ab | 2590 | Bool_t isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar,isSideBand; |
ac4c229c | 2591 | Bool_t isinacceptance; |
624c07ab | 2592 | Int_t signallevel=-1; |
2593 | Int_t ptbin; | |
2594 | // const Int_t nptbins=10; | |
2595 | Double_t invMassD0,invMassD0bar,ptD0,massmumtrue; | |
2596 | ||
2597 | ||
2598 | AliAODRecoDecayHF *aodDMC=0x0;// to be used to create a fake true sec vertex | |
2599 | // make trkIDtoEntry register (temporary) | |
2600 | Int_t trkIDtoEntry[100000]; | |
2601 | for(Int_t it=0;it<aod->GetNumberOfTracks();it++) { | |
2602 | AliAODTrack *track = aod->GetTrack(it); | |
2603 | if(track->GetID()<0) { | |
2604 | //printf("Track ID <0, id= %d\n",track->GetID()); | |
2605 | return; | |
2606 | } | |
2607 | trkIDtoEntry[track->GetID()]=it; | |
2608 | } | |
2609 | ||
2610 | ||
2611 | // loop over D0->Kpi candidates | |
2612 | Int_t nD0toKpi = arrayD0toKpi->GetEntriesFast(); | |
2613 | nTotD0toKpi += nD0toKpi; | |
2614 | // cout<<"Number of D0->Kpi: "<<nD0toKpi<<endl; | |
2615 | ||
2616 | for (Int_t iD0toKpi = 0; iD0toKpi < nD0toKpi; iD0toKpi++) { | |
2617 | if(aodDMC!=0x0)delete aodDMC; | |
2618 | ||
2619 | isPeakD0=kFALSE; | |
2620 | isPeakD0bar=kFALSE; | |
2621 | isSideBandD0=kFALSE; | |
2622 | isSideBandD0bar=kFALSE; | |
2623 | isSideBand=kFALSE; | |
c387e585 | 2624 | isinacceptance=kFALSE; |
ac4c229c | 2625 | okd0tight=0; |
2626 | okd0bartight=0; | |
2627 | okd0loose=0; | |
2628 | okd0barloose=0; | |
624c07ab | 2629 | |
2630 | signallevel=-1; | |
2631 | ||
2632 | ||
2633 | AliAODRecoDecayHF2Prong *d = (AliAODRecoDecayHF2Prong*)arrayD0toKpi->UncheckedAt(iD0toKpi); | |
2634 | Bool_t unsetvtx=kFALSE; | |
2635 | if(!d->GetOwnPrimaryVtx()) { | |
2636 | d->SetOwnPrimaryVtx(vtx1); // needed to compute all variables | |
2637 | unsetvtx=kTRUE; | |
2638 | } | |
624c07ab | 2639 | |
624c07ab | 2640 | |
ac4c229c | 2641 | //####### DATA SELECTION #################################### |
2642 | // | |
2643 | // ######## CHECK FOR ACCEPTANCE ########## | |
2644 | ptD0=d->Pt(); | |
c387e585 | 2645 | isinacceptance = (TMath::Abs(d->EtaProng(0))<fAcceptanceCuts[0]&&TMath::Abs(d->EtaProng(1))<fAcceptanceCuts[0]); //eta acceptance |
624c07ab | 2646 | |
2647 | //######## INVARIANT MASS SELECTION ############### | |
2648 | CheckInvMassD0(d,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar); | |
c387e585 | 2649 | if((isSideBandD0||isSideBandD0bar)&&!(isPeakD0||isPeakD0bar))isSideBand=kTRUE;// TEMPORARY, NOT DONE IN THE METHOD CALLED ABOVE ONLY FOR FURTHER SIDE BAND STUDY |
624c07ab | 2650 | |
2651 | // INVESTIGATE SIGNAL TYPE : ACCESS TO MC INFORMATION | |
2652 | aodDMC=GetD0toKPiSignalType(d,arrayMC,signallevel,massmumtrue,vtxTrue); | |
ac4c229c | 2653 | if(!isinacceptance)signallevel=9; |
c387e585 | 2654 | fSignalType->Fill(signallevel); |
2655 | ||
624c07ab | 2656 | // END OF BACKGROUND TYPE SELECTION |
2657 | ||
2658 | // NOW APPLY CUTS | |
2659 | //NO CUTS CASE IS FOR FREE | |
2660 | ||
2661 | // CHECK TIGHTER CUTS | |
2662 | ptbin=SetStandardCuts(ptD0,flargeInvMassCut); | |
ac4c229c | 2663 | d->SelectD0(fVHFtight->GetD0toKpiCuts(),okd0tight,okd0bartight); |
2664 | if(((isPeakD0&&okd0tight)||(isPeakD0bar&&okd0bartight))&&isinacceptance)fSignalTypeTghCuts->Fill(signallevel); | |
624c07ab | 2665 | |
2666 | // CHECK LOOSER CUTS | |
2667 | ptbin=SetStandardCuts(ptD0,flargeInvMassCut); | |
ac4c229c | 2668 | d->SelectD0(fVHFloose->GetD0toKpiCuts(),okd0loose,okd0barloose); |
2669 | if(((isPeakD0&&okd0loose)||(isPeakD0bar&&okd0barloose))&&isinacceptance)fSignalTypeLsCuts->Fill(signallevel); | |
624c07ab | 2670 | |
2671 | ||
2672 | //################### FILL HISTOS ######################## | |
2673 | //################################################################ | |
2674 | // | |
2675 | //######## improvement: SPEED HERE CAN BE IMPROVED: CALCULATE ONCE AND FOR ALL | |
2676 | // CANDIDATE VARIABLES | |
2677 | ||
2678 | //NO CUTS Case: force okD0 and okD0bar = kTRUE | |
ac4c229c | 2679 | if(signallevel==1)FillHistos(d,flistNoCutsSignal,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
2680 | else if(signallevel==2)FillHistos(d,flistNoCutsFromDstar,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
2681 | else if(signallevel==3||signallevel==4)FillHistos(d,flistNoCutsFromB,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
2682 | else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10||signallevel==9)FillHistos(d,flistNoCutsBack,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
2683 | else if(signallevel==5||signallevel==6)FillHistos(d,flistNoCutsOther,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
624c07ab | 2684 | |
2685 | //LOOSE CUTS Case | |
ac4c229c | 2686 | if(signallevel==1)FillHistos(d,flistLsCutsSignal,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
2687 | else if(signallevel==2)FillHistos(d,flistLsCutsFromDstar,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
2688 | else if(signallevel==3||signallevel==4)FillHistos(d,flistLsCutsFromB,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
c387e585 | 2689 | else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistLsCutsBack,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
ac4c229c | 2690 | else if(signallevel==5||signallevel==6)FillHistos(d,flistLsCutsOther,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
624c07ab | 2691 | |
2692 | //TIGHT CUTS Case | |
ac4c229c | 2693 | if(signallevel==1)FillHistos(d,flistTghCutsSignal,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
2694 | else if(signallevel==2)FillHistos(d,flistTghCutsFromDstar,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
2695 | else if(signallevel==3||signallevel==4)FillHistos(d,flistTghCutsFromB,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); | |
c387e585 | 2696 | else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistTghCutsBack,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
ac4c229c | 2697 | else if(signallevel==5||signallevel==6)FillHistos(d,flistTghCutsOther,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); |
2698 | ||
624c07ab | 2699 | |
2700 | if(aodDMC!=0x0){ | |
2701 | delete aodDMC; | |
2702 | aodDMC=0x0; | |
2703 | } | |
ac4c229c | 2704 | |
624c07ab | 2705 | if(unsetvtx) d->UnsetOwnPrimaryVtx(); |
ac4c229c | 2706 | |
624c07ab | 2707 | } |
c387e585 | 2708 | |
624c07ab | 2709 | // ####################### POST OUTPUT TLIST DATA ######################### |
2710 | // ####### histo for #AOD entries already posted | |
2711 | ||
2712 | PostData(2,fSignalType); | |
2713 | PostData(3,fSignalTypeLsCuts); | |
2714 | PostData(4,fSignalTypeTghCuts); | |
ac4c229c | 2715 | PostData(5,flistNoCutsSignal); |
2716 | PostData(6,flistNoCutsBack); | |
2717 | PostData(7,flistNoCutsFromB); | |
2718 | PostData(8,flistNoCutsFromDstar); | |
2719 | PostData(9,flistNoCutsOther); | |
2720 | PostData(10,flistLsCutsSignal); | |
2721 | PostData(11,flistLsCutsBack); | |
2722 | PostData(12,flistLsCutsFromB); | |
2723 | PostData(13,flistLsCutsFromDstar); | |
2724 | PostData(14,flistLsCutsOther); | |
2725 | PostData(15,flistTghCutsSignal); | |
2726 | PostData(16,flistTghCutsBack); | |
2727 | PostData(17,flistTghCutsFromB); | |
2728 | PostData(18,flistTghCutsFromDstar); | |
2729 | PostData(19,flistTghCutsOther); | |
624c07ab | 2730 | |
2731 | return; | |
2732 | } | |
2733 | ||
2734 | //_________________________________________ | |
2735 | Int_t AliAnalysisTaskSECharmFraction::SetStandardCuts(Double_t pt,Double_t invMassCut){ | |
2736 | //############# | |
2737 | // TEMPORARY: to be change in : | |
2738 | // for(j<nptbins) | |
2739 | // if pt < standardptbin[j+1] | |
2740 | // SetCuts, bin=j | |
2741 | // break | |
2742 | // | |
2743 | // the way the cuts are set is for further development | |
2744 | // (to be interfaced with AliAnalsysTaskSETuneCuts) | |
c387e585 | 2745 | // |
2746 | // Cuts: | |
2747 | // 0 = inv. mass half width [GeV] | |
2748 | // 1 = dca [cm] | |
2749 | // 2 = cosThetaStar | |
2750 | // 3 = pTK [GeV/c] | |
2751 | // 4 = pTPi [GeV/c] | |
2752 | // 5 = d0K [cm] upper limit! | |
2753 | // 6 = d0Pi [cm] upper limit! | |
2754 | // 7 = d0d0 [cm^2] | |
2755 | // 8 = cosThetaPoint | |
2756 | ||
624c07ab | 2757 | Int_t ptbin=-1; |
2758 | if (pt>0. && pt<=1.) { | |
2759 | ptbin=0; | |
c387e585 | 2760 | fVHFtight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0002,0.5); |
624c07ab | 2761 | fVHFloose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7); |
2762 | } | |
2763 | ||
2764 | if(pt>1. && pt<=3.) { | |
2765 | ptbin=1; | |
c387e585 | 2766 | fVHFtight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,-0.0002,0.6); |
624c07ab | 2767 | fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8); |
2768 | //printf("I'm in the bin %d\n",ptbin); | |
2769 | } | |
2770 | ||
2771 | if(pt>3. && pt<=5.){ | |
2772 | ptbin=2; | |
c387e585 | 2773 | fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.0001,0.8); |
624c07ab | 2774 | fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8); |
2775 | //printf("I'm in the bin %d\n",ptbin); | |
2776 | } | |
2777 | if(pt>5.){ | |
2778 | ptbin=3; | |
c387e585 | 2779 | fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00005,0.8); |
624c07ab | 2780 | fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9); |
2781 | }//if(pt>5) | |
2782 | return ptbin; | |
2783 | } | |
2784 | ||
2785 | //__________________________________________________________ | |
2786 | void AliAnalysisTaskSECharmFraction::CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar){ | |
2787 | //Check wheter the candidate inv. mass is compatible with signal or sideband inv. mass selection | |
2788 | ||
2789 | d->InvMassD0(invMassD0,invMassD0bar); | |
2790 | //CHECK if ISPEAK | |
2791 | if(TMath::Abs(invMassD0-fmD0PDG)<fsignalInvMassCut)isPeakD0=kTRUE; | |
2792 | if(TMath::Abs(invMassD0bar-fmD0PDG)<fsignalInvMassCut)isPeakD0bar=kTRUE; | |
2793 | //CHECK if ISSIDEBAND: no constraint is present between signal region definition and side band definition | |
2794 | // ######## TO BE CHANGED the distinction between sidebandD0 and sidebandD0bar is meaningless | |
2795 | // and it is present only for side band region study (see which inv mass has the D0(D0bar) | |
2796 | // in case the D0bar(D0) is in the sideband) ####### | |
2797 | if(TMath::Abs(invMassD0-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){ | |
2798 | isSideBandD0=kTRUE; | |
2799 | } | |
2800 | if(TMath::Abs(invMassD0bar-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0bar-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){ | |
2801 | isSideBandD0bar=kTRUE; | |
2802 | } | |
2803 | ||
2804 | } | |
2805 | ||
2806 | ||
2807 | ||
2808 | //_______________________ | |
ac4c229c | 2809 | AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx){ |
624c07ab | 2810 | //THIS METHOD CHECK THE TYPE OF SIGNAL/BACKGROUND THE CANDIDATE IS. |
2811 | // IF (!AND ONLY IF) THE TWO DAUGHTERS COME FROM A COMMONE MOTHER A FAKE TRUE SECONDARY VERTEX IS CONSTRUCTED (aodDMC) | |
2812 | // | |
2813 | // THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to | |
7eb5a89e | 2814 | // 1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB |
2815 | // then background categories: -1: one or both daughters is a fake track | |
c387e585 | 2816 | // 5: both daughters come from a D meson != D0 |
624c07ab | 2817 | // 6: both daughters come from a D0->4prongs |
2818 | // 7: both daughetrs are primaries | |
2819 | // 8: generic background (can include one of the previous if desired) | |
ac4c229c | 2820 | // 9: daughters out of acceptance |
624c07ab | 2821 | // 10: pathologic cases (not clear) |
2822 | // 11: end of the method without output | |
2823 | // 12: different result than MatchToMC method | |
2824 | ||
2825 | AliAODMCParticle *mum1=0x0; | |
2826 | AliAODMCParticle *b1=0x0,*b2=0x0; | |
2827 | AliAODMCParticle *grandmoth1=0x0; | |
2828 | massMumTrue=-1; | |
2829 | ||
2830 | Int_t pdgmum,dglabels[2],matchtoMC; | |
2831 | Int_t pdgdaughters[2]={211,321}; | |
2832 | // get daughter AOD tracks | |
2833 | AliAODTrack *trk0 = (AliAODTrack*)d->GetDaughter(0); | |
2834 | AliAODTrack *trk1 = (AliAODTrack*)d->GetDaughter(1); | |
2835 | AliAODRecoDecayHF *aodDMC=0x0; | |
2836 | if(trk0==0x0||trk1==0x0){ | |
2837 | AliDebug(2,"Delete tracks I AM \n"); | |
2838 | ||
2839 | signaltype=-1; | |
2840 | return aodDMC; | |
2841 | ||
2842 | } | |
2843 | dglabels[0]=trk0->GetLabel(); | |
2844 | dglabels[1]=trk1->GetLabel(); | |
2845 | if(dglabels[0]==-1||dglabels[1]==-1){ | |
2846 | AliDebug(2,"HERE I AM \n"); | |
2847 | ||
2848 | //fake tracks | |
2849 | ||
7eb5a89e | 2850 | signaltype=-1; |
624c07ab | 2851 | return aodDMC; |
2852 | ||
2853 | } | |
2854 | // printf("Before entering the MC checks \n"); | |
2855 | ||
2856 | b1=(AliAODMCParticle*)arrayMC->At(trk0->GetLabel()); | |
2857 | b2=(AliAODMCParticle*)arrayMC->At(trk1->GetLabel()); | |
2858 | ||
2859 | if(b1->GetMother()==-1||b2->GetMother()==-1){ | |
2860 | //Tracks with no mother ????? FAKE DECAY VERTEX | |
2861 | ||
2862 | ||
2863 | signaltype=10; | |
2864 | return aodDMC; | |
2865 | } | |
2866 | ||
2867 | mum1=(AliAODMCParticle*)arrayMC->At(b1->GetMother()); | |
2868 | // mum2=(AliAODMCParticle*)arrayMC->At(b2->GetMother());//FOR FURTHER USE | |
2869 | ||
2870 | if(b1->GetMother()!=b2->GetMother()){ | |
2871 | //Check the label of the mother is the same | |
2872 | // NOT SAME MOTHER | |
2873 | ||
2874 | ||
2875 | signaltype=8; | |
2876 | return aodDMC; | |
2877 | } | |
2878 | massMumTrue=mum1->GetCalcMass(); | |
2879 | ||
2880 | matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters); | |
2881 | aodDMC=ConstructFakeTrueSecVtx(b1,b2,mum1,primaryVtx); | |
2882 | ||
2883 | if(aodDMC==0x0){ | |
2884 | signaltype=10; | |
2885 | return aodDMC; | |
2886 | } | |
2887 | ||
2888 | // if((mum1->GetPdgCode()!=mum2->GetPdgCode()))continue; //Check the mother is the same particle | |
2889 | // printf("Particle codes: tr1: %d, tr2: %d, mum1: %d, mum 2: %d \n",b1->GetPdgCode(),b2->GetPdgCode(),mum1->GetPdgCode(),mum2->GetPdgCode()); | |
2890 | if(!((TMath::Abs(b1->GetPdgCode())==321&&TMath::Abs(b1->GetPdgCode())!=211)||(TMath::Abs(b1->GetPdgCode())==211&&TMath::Abs(b1->GetPdgCode()!=321)))){ | |
2891 | // Not a Kaon and a Pion | |
2892 | ||
2893 | signaltype=8; | |
2894 | return aodDMC; | |
2895 | } | |
2896 | ||
2897 | pdgmum=mum1->GetPdgCode(); | |
2898 | if(TMath::Abs(pdgmum)!=421){ | |
2899 | if(TMath::Abs(pdgmum)==411||TMath::Abs(pdgmum)==431||TMath::Abs(pdgmum)==443){ | |
2900 | // IT IS A SECONDARY VERTEX FROM CHARM BUT NOT A D0 | |
2901 | ||
2902 | signaltype=5; | |
2903 | return aodDMC; | |
2904 | } | |
2905 | else { | |
2906 | signaltype=8; | |
2907 | return aodDMC; | |
2908 | } | |
2909 | } | |
2910 | ||
2911 | if(mum1->GetDaughter(1)-mum1->GetDaughter(0)+1!=2){ | |
2912 | // from D0 but NOT A 2 PRONG DECAY | |
2913 | signaltype=6; | |
2914 | return aodDMC; | |
2915 | ||
2916 | } | |
2917 | ||
2918 | if(mum1->GetMother()==-1){ | |
2919 | // A particle coming from nothing | |
2920 | signaltype=10; | |
2921 | return aodDMC; | |
c387e585 | 2922 | |
624c07ab | 2923 | } |
7eb5a89e | 2924 | Bool_t isfromDstar=kFALSE; |
2925 | // matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters); | |
624c07ab | 2926 | grandmoth1=(AliAODMCParticle*)arrayMC->At(mum1->GetMother()); |
7eb5a89e | 2927 | if(TMath::Abs(grandmoth1->GetPdgCode())==413||TMath::Abs(grandmoth1->GetPdgCode())==423)isfromDstar=kTRUE;// D0 COMING FROM A D0* |
2928 | ||
c387e585 | 2929 | /* |
2930 | //CHECK FOR CABIBBO SUPPRESSED DECAY | |
2931 | Int_t isCabibSup=0,pdgKaon; | |
2932 | ||
2933 | pdgKaon=b1->GetPdgCode(); | |
2934 | if(TMath::Abs(pdgKaon)!=321)pdgKaon=b2->GetPdgCode(); | |
2935 | if(pdgmum>0&&pdgKaon>0)isCabibSup=1; | |
2936 | if(pdgmum<0&&pdgKaon<0)isCabibSup=1; | |
2937 | if(isCabibSup){ | |
2938 | signaltype=0; | |
2939 | return aodDMC; | |
2940 | } | |
2941 | */ | |
624c07ab | 2942 | // if(fcheckMCD0){//THIS CHECK IS NEEDED TO AVOID POSSIBLE FAILURE IN THE SECOND WHILE, FOR DEBUGGING |
2943 | while(TMath::Abs(grandmoth1->GetPdgCode())!=4&&TMath::Abs(grandmoth1->GetPdgCode())!=5){ | |
2944 | if(grandmoth1->GetMother()==-1){ | |
2945 | //### THE FOLLOWING IN CASE OF DEBUGGING ##########Ã | |
2946 | /*printf("mother=-1, pdgcode: %d \n",grandmoth1->GetPdgCode()); | |
2947 | Int_t son=grandmoth1->GetDaughter(0); | |
2948 | sonpart=(AliAODMCParticle*)arrayMC->At(son); | |
2949 | while(TMath::Abs(sonpart->GetPdgCode())!=421){ | |
2950 | printf("mother=-1, pdgcode: %d \n",sonpart->GetPdgCode()); | |
2951 | son++; | |
2952 | sonpart=(AliAODMCParticle*)arrayMC->At(son); | |
2953 | }*/ | |
2954 | ||
2955 | signaltype=10; | |
2956 | return aodDMC; | |
2957 | } | |
2958 | grandmoth1=(AliAODMCParticle*)arrayMC->At(grandmoth1->GetMother()); | |
2959 | } | |
2960 | ||
2961 | if(TMath::Abs(grandmoth1->GetPdgCode())==4){ | |
2962 | if(matchtoMC!=-1){ | |
7eb5a89e | 2963 | |
2964 | if(isfromDstar)signaltype=2; | |
2965 | else signaltype=1; | |
624c07ab | 2966 | return aodDMC; |
2967 | } | |
2968 | else { | |
2969 | signaltype=12; | |
2970 | return aodDMC; | |
7eb5a89e | 2971 | |
624c07ab | 2972 | } |
2973 | } | |
2974 | else if(TMath::Abs(grandmoth1->GetPdgCode())==5){ | |
2975 | if(matchtoMC!=-1){ | |
7eb5a89e | 2976 | if(isfromDstar)signaltype=4; |
2977 | else signaltype=3; | |
624c07ab | 2978 | return aodDMC; |
2979 | ||
2980 | } | |
2981 | else { | |
2982 | ||
2983 | signaltype=12; | |
2984 | return aodDMC; | |
2985 | } | |
2986 | } | |
2987 | signaltype=11;// JUST FOR SAFETY: SHOULD NEVER REACH THIS POINT | |
2988 | return aodDMC; | |
2989 | // return 11; | |
2990 | } | |
2991 | ||
2992 | //___________________________________ | |
ac4c229c | 2993 | AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::ConstructFakeTrueSecVtx(const AliAODMCParticle *b1, const AliAODMCParticle *b2, const AliAODMCParticle *mum,Double_t *primaryVtxTrue){ |
624c07ab | 2994 | // CONSTRUCT A FAKE TRUE SECONDARY VERTEX (aodDMC) |
2995 | //!!!NOTE THAT ONLY ONE MOTHER IS CONSIDERED: THE METHOD REQUIRES THE DAUGHTERS COME FROM THE SAME MOTHER !! | |
2996 | if(b1==0x0||b2==0x0)return 0x0; | |
2997 | if(mum==0x0)return 0x0; | |
2998 | Double_t pD[3],xD[3],pXtrTrue[2],pYtrTrue[2],pZtrTrue[2],xtr1[3],xtr2[3]; | |
2999 | Int_t charge[2]={0,0}; | |
3000 | if(b1->Charge()==-1)charge[0]=1; | |
3001 | else { | |
3002 | if(b2->Charge()==-1){ | |
3003 | //printf("Same charges for prongs \n"); | |
3004 | return 0x0; | |
3005 | } | |
3006 | charge[1]=1; | |
3007 | } | |
3008 | ||
3009 | pXtrTrue[charge[0]]=b1->Px(); | |
3010 | pYtrTrue[charge[0]]=b1->Py(); | |
3011 | pZtrTrue[charge[0]]=b1->Pz(); | |
3012 | if(!b1->XvYvZv(xtr1)){ | |
3013 | return 0x0; | |
3014 | } | |
3015 | ||
3016 | pXtrTrue[charge[1]]=b2->Px(); | |
3017 | pYtrTrue[charge[1]]=b2->Py(); | |
3018 | pZtrTrue[charge[1]]=b2->Pz(); | |
3019 | ||
3020 | if(!mum->PxPyPz(pD)){ | |
3021 | //printf("!D from B:Get momentum failed \n"); | |
3022 | return 0x0; | |
3023 | } | |
3024 | if(!mum->XvYvZv(xD)){ | |
3025 | //printf("!D from B:Get position failed \n"); | |
3026 | return 0x0; | |
3027 | } | |
3028 | /* ############ THIS HAPPENS FROM TIME TO TIME: NUMERIC PROBLEM KNOWN ################# | |
3029 | if(pXtrTrue[0]+pXtrTrue[1]!=pD[0]){ | |
3030 | }*/ | |
3031 | ||
3032 | ||
3033 | if(!b2->XvYvZv(xtr2)){ | |
3034 | return 0x0; | |
3035 | } | |
3036 | Double_t d0dummy[2]={0.,0.};//TEMPORARY : dummy d0 for AliAODRecoDeay constructor | |
3037 | AliAODRecoDecayHF* aodDMC=new AliAODRecoDecayHF(primaryVtxTrue,xD,2,0,pXtrTrue,pYtrTrue,pZtrTrue,d0dummy); | |
3038 | ||
3039 | /* ######## THE FOLLOWINF FOR DEBUGGING ############ | |
3040 | Printf("testing the Fake vertex: SecVtxX: %f, Px: %f, Py: %f, Pz:%f \n ",aodDMC->GetSecVtxX(),aodDMC->Px(),aodDMC->Py(),aodDMC->Pz()); | |
3041 | Printf("pD: x=%f, y=%f,z=%f\n",pD[0],pD[1],pD[2]); | |
3042 | Printf("Daughters :px1:%f, px2:%f \n",pXtrTrue[0],pXtrTrue[1]); | |
3043 | Printf("Daughters :py1:%f, py2:%f \n",pYtrTrue[0],pYtrTrue[1]); | |
3044 | Printf("Daughters :pz1:%f, pz2:%f \n",pZtrTrue[0],pZtrTrue[1]); | |
3045 | Printf("Mother pdg: %d",mum->GetPdgCode()); | |
3046 | Printf("Impact Par Prod: %f\n",aodDMC->ImpParXY()); | |
3047 | */ | |
3048 | ||
3049 | return aodDMC; | |
3050 | } | |
3051 | ||
3052 | //________________________________________________________ | |
ac4c229c | 3053 | Bool_t AliAnalysisTaskSECharmFraction::FillHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Int_t okD0,Int_t okD0bar,Double_t invMassD0,Double_t invMassD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBand,Double_t massmumtrue,AliAODRecoDecayHF *aodDMC,Double_t *vtxTrue){//FILL THE HISTOGRAMS: TAKE THE HISTOS FROM THE list NAME |
3054 | ||
624c07ab | 3055 | |
3056 | if((!okD0)&&(!okD0bar))return kTRUE; | |
3057 | ||
3058 | // ######### Get Standard label for hist in tlist ############### | |
3059 | TString namehist=list->GetName(),str; | |
3060 | namehist.ReplaceAll("list",""); | |
3061 | ||
3062 | // ######### Global properties histos ################# | |
ac4c229c | 3063 | // ####### take care: only for candidates which pass the cuts !! not for side band ######## |
3064 | if((isPeakD0&&okD0)||(isPeakD0bar&&okD0bar)){ | |
3065 | str="hCPtaVSd0d0"; | |
3066 | str.Append(namehist.Data()); | |
3067 | ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0(),d->CosPointingAngle()); | |
3068 | ||
3069 | str="hSecVtxZ"; | |
3070 | str.Append(namehist.Data()); | |
3071 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxZ()); | |
3072 | ||
3073 | str="hSecVtxX"; | |
3074 | str.Append(namehist.Data()); | |
3075 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.); | |
3076 | ||
3077 | str="hSecVtxY"; | |
3078 | str.Append(namehist.Data()); | |
3079 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxY()*10000.); | |
3080 | ||
3081 | str="hSecVtxXY"; | |
3082 | str.Append(namehist.Data()); | |
3083 | ((TH2F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.,d->GetSecVtxY()*10000.); | |
3084 | ||
3085 | str="hSecVtxPhi"; | |
3086 | str.Append(namehist.Data()); | |
3087 | ((TH1F*)list->FindObject(str.Data()))->Fill(TMath::ATan2(d->GetSecVtxY()*10000.,d->GetSecVtxX()*10000.)*TMath::RadToDeg()); | |
3088 | ||
3089 | str="hCPta"; | |
3090 | str.Append(namehist.Data()); | |
3091 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->CosPointingAngle()); | |
3092 | ||
3093 | str="hd0xd0"; | |
3094 | str.Append(namehist.Data()); | |
3095 | ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0()); | |
3096 | } | |
624c07ab | 3097 | |
ac4c229c | 3098 | |
3099 | // ######### Invariant mass histos ################# | |
3100 | str="hMass"; | |
624c07ab | 3101 | str.Append(namehist.Data()); |
ac4c229c | 3102 | ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0); |
3103 | ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar); | |
624c07ab | 3104 | |
3105 | ||
ac4c229c | 3106 | if(isPeakD0||isPeakD0bar){ |
3107 | str="hMass"; | |
3108 | str.Append(namehist.Data()); | |
3109 | str.Append("PM"); | |
3110 | if(isPeakD0&&okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0); | |
3111 | if(isPeakD0bar&&okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar); | |
3112 | } | |
3113 | if(isSideBand){ | |
3114 | str="hMass"; | |
3115 | str.Append(namehist.Data()); | |
3116 | str.Append("SB"); | |
3117 | if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0); | |
3118 | if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar); | |
3119 | } | |
624c07ab | 3120 | |
ac4c229c | 3121 | if(massmumtrue>0.){ |
3122 | str="hMassTrue"; | |
3123 | str.Append(namehist.Data()); | |
3124 | ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue); | |
3125 | ||
3126 | if(isPeakD0||isPeakD0bar){ | |
3127 | str="hMassTrue"; | |
3128 | str.Append(namehist.Data()); | |
3129 | str.Append("PM"); | |
3130 | ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue); | |
3131 | } | |
3132 | if(isSideBand){ | |
3133 | str="hMassTrue"; | |
3134 | str.Append(namehist.Data()); | |
3135 | str.Append("SB"); | |
3136 | ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue); | |
3137 | } | |
3138 | } | |
3139 | ||
3140 | // ################ D0 Impact Parameter Histos ##################### | |
3141 | if((isPeakD0&&okD0)||(isPeakD0bar&&okD0bar)){ | |
3142 | str="hd0D0"; | |
3143 | str.Append(namehist.Data()); | |
3144 | str.Append("PM"); | |
3145 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.); | |
3146 | ||
3147 | str="hd0D0pt"; | |
3148 | str.Append(namehist.Data()); | |
3149 | str.Append("_PkMss_pt"); | |
3150 | str+=ptbin; | |
3151 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.); | |
624c07ab | 3152 | |
ac4c229c | 3153 | |
3154 | if(vtxTrue){ | |
3155 | str="hd0D0VtxTrue"; | |
3156 | str.Append(namehist.Data()); | |
3157 | str.Append("PM"); | |
3158 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.); | |
3159 | ||
3160 | str="hd0D0VtxTruept"; | |
3161 | str.Append(namehist.Data()); | |
3162 | str.Append("_PkMss_pt"); | |
3163 | str+=ptbin; | |
3164 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.); | |
3165 | } | |
3166 | ||
3167 | if(aodDMC!=0x0){ | |
3168 | aodDMC->Print(""); | |
3169 | aodDMC->ImpParXY(); | |
3170 | aodDMC->Print(""); | |
3171 | str="hMCd0D0"; | |
3172 | str.Append(namehist.Data()); | |
3173 | str.Append("PM"); | |
3174 | ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.); | |
3175 | ||
3176 | str="hMCd0D0pt"; | |
3177 | str.Append(namehist.Data()); | |
3178 | str.Append("_PkMss_pt"); | |
3179 | str+=ptbin; | |
3180 | ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.); | |
3181 | } | |
3182 | ||
3183 | } | |
3184 | else if(isSideBand){ | |
3185 | str="hd0D0"; | |
3186 | str.Append(namehist.Data()); | |
3187 | str.Append("SB"); | |
3188 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.); | |
3189 | ||
3190 | str="hd0D0pt"; | |
3191 | str.Append(namehist.Data()); | |
3192 | str.Append("_SBMss_pt"); | |
3193 | str+=ptbin; | |
3194 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.); | |
3195 | ||
3196 | ||
3197 | if(vtxTrue){ | |
3198 | str="hd0D0VtxTrue"; | |
3199 | str.Append(namehist.Data()); | |
3200 | str.Append("SB"); | |
3201 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.); | |
3202 | ||
3203 | str="hd0D0VtxTruept"; | |
3204 | str.Append(namehist.Data()); | |
3205 | str.Append("_SBMss_pt"); | |
3206 | str+=ptbin; | |
3207 | ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.); | |
3208 | ||
3209 | } | |
3210 | ||
3211 | if(aodDMC!=0x0){ | |
3212 | str="hMCd0D0"; | |
3213 | str.Append(namehist.Data()); | |
3214 | str.Append("SB"); | |
3215 | ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.); | |
3216 | ||
3217 | str="hMCd0D0pt"; | |
3218 | str.Append(namehist.Data()); | |
3219 | str.Append("_SBMss_pt"); | |
3220 | str+=ptbin; | |
3221 | ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.); | |
3222 | } | |
3223 | ||
3224 | } | |
624c07ab | 3225 | |
3226 | return kTRUE; | |
3227 | } | |
3228 | ||
ac4c229c | 3229 | |
3230 | void AliAnalysisTaskSECharmFraction::SetNPtBins(Int_t nbins,const Double_t *ptbins){ | |
3231 | if((fptbins)!=0x0)delete fptbins; | |
3232 | fnbins=nbins;fptbins=new Double_t[fnbins]; | |
3233 | memcpy(fptbins,ptbins,fnbins*sizeof(Double_t)); | |
3234 | return; | |
3235 | } | |
3236 | ||
3237 | void AliAnalysisTaskSECharmFraction::SetStandardMassSelection(){ | |
3238 | //SET THE DEFAULT VALUES FOR INVARIANT MASS SELECTION | |
3239 | SetSignalInvMassCut(); | |
3240 | SetLargeInvMassCut(); | |
3241 | SetSideBandInvMassCut(); | |
3242 | SetSideBandInvMassWindow(); | |
3243 | return; | |
3244 | } | |
3245 | ||
3246 | ||
624c07ab | 3247 | void AliAnalysisTaskSECharmFraction::Terminate(const Option_t*){ |
3248 | //TERMINATE METHOD: NOTHING TO DO | |
3249 | ||
3250 | ||
3251 | } |