Use genuine GetB() from AliTracker rather than copy-past (thnks Y.Belikov)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSECharmFraction.cxx
CommitLineData
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
25#include <TChain.h>
26#include <TTree.h>
27#include <TH1F.h>
28#include <TH2F.h>
29#include <TCanvas.h>
30#include <TDatabasePDG.h>
31#include <TMath.h>
32#include <TROOT.h>
33#include "AliAnalysisTaskSE.h"
34#include "AliAnalysisManager.h"
35#include "AliAODEvent.h"
36#include "AliAODInputHandler.h"
37#include "AliAnalysisVertexingHF.h"
38#include "AliAODRecoDecayHF2Prong.h"
39#include "AliAODRecoDecayHF.h"
40#include "AliAODRecoDecay.h"
41#include "AliAODTrack.h"
42#include "AliAODVertex.h"
43#include "AliAODMCParticle.h"
44#include "AliAODMCHeader.h"
45#include "AliAnalysisTaskSECharmFraction.h"
46
47ClassImp(AliAnalysisTaskSECharmFraction)
48
49//________________________________________________________________________
50 AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction()
51 : AliAnalysisTaskSE(),
52 fVHFloose(0),
53 fVHFtight(0),
54 fmD0PDG(),
55 fnbins(),
56 fptbins(0),
57 fsignalInvMassCut(),
58 flargeInvMassCut(),
59 fsidebandInvMassCut(),
60 fsidebandInvMassWindow(),
61 fUseMC(kTRUE),
62 fNentries(0),
63 fSignalType(0),
64 fSignalTypeLsCuts(0),
65 fSignalTypeTghCuts(0),
66 flist_NoCuts_Signal(0),
67 flist_NoCuts_Back(0),
68 flist_NoCuts_FromB(0),
69 flist_NoCuts_FromDstar(0),
70 flist_NoCuts_Other(0),
71 flist_LsCuts_Signal(0),
72 flist_LsCuts_Back(0),
73 flist_LsCuts_FromB(0),
74 flist_LsCuts_FromDstar(0),
75 flist_LsCuts_Other(0),
76 flist_TghCuts_Signal(0),
77 flist_TghCuts_Back(0),
78 flist_TghCuts_FromB(0),
79 flist_TghCuts_FromDstar(0),
80 flist_TghCuts_Other(0)
81
82{
83 //Default constructor
84}
85//________________________________________________________________________
86 AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name)
87 : AliAnalysisTaskSE(name),
88 fVHFloose(0),
89 fVHFtight(0),
90 fmD0PDG(),
91 fnbins(),
92 fptbins(0),
93 fsignalInvMassCut(),
94 flargeInvMassCut(),
95 fsidebandInvMassCut(),
96 fsidebandInvMassWindow(),
97 fUseMC(kTRUE),
98 fNentries(0),
99 fSignalType(0),
100 fSignalTypeLsCuts(0),
101 fSignalTypeTghCuts(0),
102 flist_NoCuts_Signal(0),
103 flist_NoCuts_Back(0),
104 flist_NoCuts_FromB(0),
105 flist_NoCuts_FromDstar(0),
106 flist_NoCuts_Other(0),
107 flist_LsCuts_Signal(0),
108 flist_LsCuts_Back(0),
109 flist_LsCuts_FromB(0),
110 flist_LsCuts_FromDstar(0),
111 flist_LsCuts_Other(0),
112 flist_TghCuts_Signal(0),
113 flist_TghCuts_Back(0),
114 flist_TghCuts_FromB(0),
115 flist_TghCuts_FromDstar(0),
116 flist_TghCuts_Other(0)
117
118{
119 // Constructor
120
121 // Define input and output slots here
122 // Input slot #0 works with a TChain
123 // Output slot #0 writes into a TH1 container
124
125 //Standard pt bin
126 fnbins=4;
127 fptbins=new Double_t[fnbins+1];
128 fptbins[0]=0.;
129 fptbins[1]=1.;
130 fptbins[2]=3.;
131 fptbins[3]=5.;
132 fptbins[4]=1000.;
133
134 SetStandardMassSelection();
135 DefineOutput(1, TH1F::Class());
136 DefineOutput(2, TH1F::Class());
137 DefineOutput(3, TH1F::Class());
138 DefineOutput(4, TH1F::Class());
139 for(Int_t j=5;j<20;j++){
140 DefineOutput(j, TList::Class());
141 }
142
143
144}
145
146
147AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name,Int_t nptbins,Double_t *ptbins)
148 : AliAnalysisTaskSE(name),
149 fVHFloose(0),
150 fVHFtight(0),
151 fmD0PDG(),
152 fnbins(),
153 fptbins(0),
154 fsignalInvMassCut(),
155 flargeInvMassCut(),
156 fsidebandInvMassCut(),
157 fsidebandInvMassWindow(),
158 fUseMC(kTRUE),
159 fNentries(0),
160 fSignalType(0),
161 fSignalTypeLsCuts(0),
162 fSignalTypeTghCuts(0),
163 flist_NoCuts_Signal(0),
164 flist_NoCuts_Back(0),
165 flist_NoCuts_FromB(0),
166 flist_NoCuts_FromDstar(0),
167 flist_NoCuts_Other(0),
168 flist_LsCuts_Signal(0),
169 flist_LsCuts_Back(0),
170 flist_LsCuts_FromB(0),
171 flist_LsCuts_FromDstar(0),
172 flist_LsCuts_Other(0),
173 flist_TghCuts_Signal(0),
174 flist_TghCuts_Back(0),
175 flist_TghCuts_FromB(0),
176 flist_TghCuts_FromDstar(0),
177 flist_TghCuts_Other(0)
178{
179 // Constructor
180 // ptbins must be of dimension nptbins +1
181
182 SetNPtBins(nptbins,ptbins);
183 SetStandardMassSelection();
184 // Define input and output slots here
185
186 // Output slot #0 writes into a TH1 container
187 DefineOutput(1, TH1F::Class());
188 DefineOutput(2, TH1F::Class());
189 DefineOutput(3, TH1F::Class());
190 DefineOutput(4, TH1F::Class());
191 for(Int_t j=5;j<20;j++){
192
193 DefineOutput(j, TList::Class());
194 }
195
196
197}
198
199//________________________________________________________________________
200AliAnalysisTaskSECharmFraction::~AliAnalysisTaskSECharmFraction()
201{ //Destructor
202
203 if (fVHFtight) {
204 delete fVHFtight;
205 fVHFtight = 0;
206 }
207 if (fVHFloose) {
208 delete fVHFloose;
209 fVHFloose = 0;
210 }
211 if (fNentries) {
212 delete fNentries;
213 fNentries = 0;
214 }
215 if (fSignalType) {
216 delete fSignalType;
217 fSignalType = 0;
218 }
219 if (fSignalTypeLsCuts) {
220 delete fSignalTypeLsCuts;
221 fSignalTypeLsCuts = 0;
222 }
223 if (fSignalTypeTghCuts) {
224 delete fSignalTypeTghCuts;
225 fSignalTypeTghCuts = 0;
226 }
227 if(flist_NoCuts_Signal){
228 delete flist_NoCuts_Signal;
229 flist_NoCuts_Signal=0;
230 }
231 if(flist_NoCuts_Back){
232 delete flist_NoCuts_Back;
233 flist_NoCuts_Back=0;
234 }
235 if(flist_NoCuts_FromB){
236 delete flist_NoCuts_FromB;
237 flist_NoCuts_FromB=0;
238 }
239 if(flist_NoCuts_FromDstar){
240 delete flist_NoCuts_FromDstar;
241 flist_NoCuts_FromDstar=0;
242 }
243 if(flist_NoCuts_Other){
244 delete flist_NoCuts_Other;
245 flist_NoCuts_Other=0;
246 }
247
248 if(flist_LsCuts_Signal){
249 delete flist_LsCuts_Signal;
250 flist_LsCuts_Signal=0;
251 }
252 if(flist_LsCuts_Back){
253 delete flist_LsCuts_Back;
254 flist_LsCuts_Back=0;
255 }
256 if(flist_LsCuts_FromB){
257 delete flist_LsCuts_FromB;
258 flist_LsCuts_FromB=0;
259 }
260 if(flist_LsCuts_FromDstar){
261 delete flist_LsCuts_FromDstar;
262 flist_LsCuts_FromDstar=0;
263 }
264 if(flist_LsCuts_Other){
265 delete flist_LsCuts_Other;
266 flist_LsCuts_Other=0;
267 }
268
269 if(flist_TghCuts_Signal){
270 delete flist_TghCuts_Signal;
271 flist_TghCuts_Signal=0;
272 }
273 if(flist_TghCuts_Back){
274 delete flist_TghCuts_Back;
275 flist_TghCuts_Back=0;
276 }
277 if(flist_TghCuts_FromB){
278 delete flist_TghCuts_FromB;
279 flist_TghCuts_FromB=0;
280 }
281 if(flist_TghCuts_FromDstar){
282 delete flist_TghCuts_FromDstar;
283 flist_TghCuts_FromDstar=0;
284 }
285 if(flist_TghCuts_Other){
286 delete flist_TghCuts_Other;
287 flist_TghCuts_Other=0;
288 }
289
290
291}
292
293
294//________________________________________________________________________
295void AliAnalysisTaskSECharmFraction::Init()
296{
297 // Initialization
298
299 if(fDebug > 1) printf("AnalysisTaskSED0Mass::Init() \n");
300 fmD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
301
302 gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C");
303
304 // 2 sets of dedidcated cuts -- defined in UserExec
305 // the config file and the way the cuts are set is for further development
306 // (to be interfaced with AliAnalsysTaskSETuneCuts)
307
308 fVHFtight = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()");
309 fVHFloose = (AliAnalysisVertexingHF*)gROOT->ProcessLine("ConfigVertexingHF()");
310 if(!fptbins){
311 //SET STANDARD PT BINNING
312 fnbins=4;
313 fptbins=new Double_t[fnbins+1];
314 fptbins[0]=0.;
315 fptbins[1]=1.;
316 fptbins[2]=3.;
317 fptbins[3]=5.;
318 fptbins[4]=1000.;
319 }
320 return;
321}
322
323//________________________________________________________________________
324void AliAnalysisTaskSECharmFraction::UserCreateOutputObjects()
325{
326 // Create histograms
327 // Called once
328
329
330 TString namehist;
331 TString titlehist;
332 TString strnamept,strtitlept;
333
334 fNentries=new TH1F("nentriesChFr", "Look at the number of entries! = number of AODs", 2,1.,2.);
335 fSignalType=new TH1F("hsignaltype", "Histo for type of MC signal", 21,-1.,20.);
336 fSignalTypeLsCuts=new TH1F("hsignaltypeLsCuts", "Histo for type of MC signal with loose cuts", 21,-1.,20.);
337 fSignalTypeTghCuts=new TH1F("hsignaltypeTghCuts", "Histo for type of MC signal with tight cuts", 21,-1.,20.);
338
339 //########## DEFINE THE TLISTS ##################
340
341 flist_NoCuts_Signal = new TList();
342 flist_NoCuts_Signal->SetOwner();
343 flist_NoCuts_Signal->SetName("list_nc_sign");
344
345 flist_NoCuts_Back = new TList();
346 flist_NoCuts_Back->SetOwner();
347 flist_NoCuts_Back->SetName("list_nc_back");
348
349 flist_NoCuts_FromB = new TList();
350 flist_NoCuts_FromB->SetOwner();
351 flist_NoCuts_FromB->SetName("list_nc_fromB");
352
353 flist_NoCuts_FromDstar = new TList();
354 flist_NoCuts_FromDstar->SetOwner();
355 flist_NoCuts_FromDstar->SetName("list_nc_fromDstar");
356
357 flist_NoCuts_Other = new TList();
358 flist_NoCuts_Other->SetOwner();
359 flist_NoCuts_Other->SetName("list_nc_other");
360
361
362 flist_LsCuts_Signal = new TList();
363 flist_LsCuts_Signal->SetOwner();
364 flist_LsCuts_Signal->SetName("list_ls_sign");
365
366 flist_LsCuts_Back = new TList();
367 flist_LsCuts_Back->SetOwner();
368 flist_LsCuts_Back->SetName("list_ls_back");
369
370 flist_LsCuts_FromB = new TList();
371 flist_LsCuts_FromB->SetOwner();
372 flist_LsCuts_FromB->SetName("list_ls_fromB");
373
374 flist_LsCuts_FromDstar = new TList();
375 flist_LsCuts_FromDstar->SetOwner();
376 flist_LsCuts_FromDstar->SetName("list_ls_fromDstar");
377
378 flist_LsCuts_Other = new TList();
379 flist_LsCuts_Other->SetOwner();
380 flist_LsCuts_Other->SetName("list_ls_other");
381
382
383 flist_TghCuts_Signal = new TList();
384 flist_TghCuts_Signal->SetOwner();
385 flist_TghCuts_Signal->SetName("list_tgh_sign");
386
387 flist_TghCuts_Back = new TList();
388 flist_TghCuts_Back->SetOwner();
389 flist_TghCuts_Back->SetName("list_tgh_back");
390
391 flist_TghCuts_FromB = new TList();
392 flist_TghCuts_FromB->SetOwner();
393 flist_TghCuts_FromB->SetName("list_tgh_fromB");
394
395 flist_TghCuts_FromDstar = new TList();
396 flist_TghCuts_FromDstar->SetOwner();
397 flist_TghCuts_FromDstar->SetName("list_tgh_fromDstar");
398
399 flist_TghCuts_Other = new TList();
400 flist_TghCuts_Other->SetOwner();
401 flist_TghCuts_Other->SetName("list_tgh_other");
402
403
404
405
406 //################################################################################################
407 // #
408 // HISTOS FOR NO CUTS CASE #
409 // #
410 //################################################################################################
411
412
413 //############ NO CUTS SIGNAL HISTOGRAMS ###############
414 //
415 // ####### global properties histo ############
416
417 TH2F *hCPtaVSd0d0_nc_sign=new TH2F("hCPtaVSd0d0_nc_sign","hCPtaVSd0d0_NoCuts_Signal",1000,-100000.,100000.,100,0.,1.);
418 TH1F *hSecVtxZ_nc_sign=new TH1F("hSecVtxZ_nc_sign","hSecVtxZ_NoCuts_Signal",1000,-8.,8.);
419 TH1F *hSecVtxX_nc_sign=new TH1F("hSecVtxX_nc_sign","hSecVtxX_NoCuts_Signal",1000,-3000.,3000.);
420 TH1F *hSecVtxY_nc_sign=new TH1F("hSecVtxY_nc_sign","hSecVtxY_NoCuts_Signal",1000,-3000.,3000.);
421 TH2F *hSecVtxXY_nc_sign=new TH2F("hSecVtxXY_nc_sign","hSecVtxXY_NoCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
422 TH1F *hSecVtxPhi_nc_sign=new TH1F("hSecVtxPhi_nc_sign","hSecVtxPhi_NoCuts_Signal",180,-180.1,180.1);
423 TH1F *hCPta_nc_sign=new TH1F("hCPta_nc_sign","hCPta_NoCuts_Signal",100,0.,1.);
424 TH1F *hd0xd0_nc_sign=new TH1F("hd0xd0_nc_sign","hd0xd0_NoCuts_Signal",1000,-100000.,100000.);
425 TH1F *hMassTrue_nc_sign=new TH1F("hMassTrue_nc_sign","D^{0} MC inv. Mass No Cuts Signal(All momenta)",600,1.600,2.200);
426 TH1F *hMass_nc_sign=new TH1F("hMass_nc_sign","D^{0} inv. Mass No Cuts Signal (All momenta)",600,1.600,2.200);
427 hMass_nc_sign->Sumw2();
428 TH1F *hMassTrue_nc_sign_pm=new TH1F("hMassTrue_nc_sign_pm","D^{0} MC inv. Mass No Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
429 TH1F *hMass_nc_sign_pm=new TH1F("hMass_nc_sign_pm","D^{0} inv. Mass No Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
430 hMass_nc_sign_pm->Sumw2();
431
432 TH1F *hMassTrue_SB_nc_sign=new TH1F("hMassTrue_nc_sign_sb","D^{0} MC inv. Mass in Side Bands No Cuts Signal(All momenta)",600,1.600,2.200);
433 TH1F *hMass_SB_nc_sign=new TH1F("hMass_nc_sign_sb","D^{0} inv. Mass in Side Bands No Cuts Signal (All momenta)",600,1.600,2.200);
434 hMass_SB_nc_sign->Sumw2();
435
436 flist_NoCuts_Signal->Add(hCPtaVSd0d0_nc_sign);
437 flist_NoCuts_Signal->Add(hSecVtxZ_nc_sign);
438 flist_NoCuts_Signal->Add(hSecVtxY_nc_sign);
439 flist_NoCuts_Signal->Add(hSecVtxX_nc_sign);
440 flist_NoCuts_Signal->Add(hSecVtxXY_nc_sign);
441 flist_NoCuts_Signal->Add(hSecVtxPhi_nc_sign);
442 flist_NoCuts_Signal->Add(hCPta_nc_sign);
443 flist_NoCuts_Signal->Add(hd0xd0_nc_sign);
444 flist_NoCuts_Signal->Add(hMassTrue_nc_sign);
445 flist_NoCuts_Signal->Add(hMass_nc_sign);
446 flist_NoCuts_Signal->Add(hMassTrue_nc_sign_pm);
447 flist_NoCuts_Signal->Add(hMass_nc_sign_pm);
448 flist_NoCuts_Signal->Add(hMassTrue_SB_nc_sign);
449 flist_NoCuts_Signal->Add(hMass_SB_nc_sign);
450
451 // ####### d0 D0 histos ############
452 TH1F *hd0D0_nc_sign_pm = new TH1F("hd0D0_nc_sign_pm","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
453 hd0D0_nc_sign_pm->SetXTitle("Impact parameter [#mum]");
454 hd0D0_nc_sign_pm->SetYTitle("Entries");
455
456 TH1F *hd0D0VtxTrue_nc_sign_pm = new TH1F("hd0D0VtxTrue_nc_sign_pm","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
457 hd0D0VtxTrue_nc_sign_pm->SetXTitle("Impact parameter [#mum]");
458 hd0D0VtxTrue_nc_sign_pm->SetYTitle("Entries");
459
460 TH1F *hMCd0D0_nc_sign_pm = new TH1F("hMCd0D0_nc_sign_pm","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
461 hMCd0D0_nc_sign_pm->SetXTitle("MC Impact parameter [#mum]");
462 hMCd0D0_nc_sign_pm->SetYTitle("Entries");
463
464 TH1F *hd0D0_nc_sign_sb = new TH1F("hd0D0_nc_sign_sb","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
465 hd0D0_nc_sign_sb->SetXTitle("Impact parameter [#mum]");
466 hd0D0_nc_sign_sb->SetYTitle("Entries");
467
468 TH1F *hd0D0VtxTrue_nc_sign_sb = new TH1F("hd0D0VtxTrue_nc_sign_sb","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
469 hd0D0VtxTrue_nc_sign_sb->SetXTitle("Impact parameter [#mum]");
470 hd0D0VtxTrue_nc_sign_sb->SetYTitle("Entries");
471
472 TH1F *hMCd0D0_nc_sign_sb = new TH1F("hMCd0D0_nc_sign_sb","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
473 hMCd0D0_nc_sign_sb->SetXTitle("MC Impact parameter [#mum]");
474 hMCd0D0_nc_sign_sb->SetYTitle("Entries");
475
476 flist_NoCuts_Signal->Add(hd0D0_nc_sign_pm);
477 flist_NoCuts_Signal->Add(hd0D0VtxTrue_nc_sign_pm);
478 flist_NoCuts_Signal->Add(hMCd0D0_nc_sign_pm);
479 flist_NoCuts_Signal->Add(hd0D0_nc_sign_sb);
480 flist_NoCuts_Signal->Add(hd0D0VtxTrue_nc_sign_sb);
481 flist_NoCuts_Signal->Add(hMCd0D0_nc_sign_sb);
482
483 TH1F **hd0D0pt_nc_sign_pm=new TH1F*[fnbins];
484 TH1F **hMCd0D0pt_nc_sign_pm=new TH1F*[fnbins];
485 TH1F ** hd0D0VtxTruept_nc_sign_pm=new TH1F*[fnbins];
486 TH1F **hd0D0pt_nc_sign_sb=new TH1F*[fnbins];
487 TH1F **hMCd0D0pt_nc_sign_sb=new TH1F*[fnbins];
488 TH1F ** hd0D0VtxTruept_nc_sign_sb=new TH1F*[fnbins];
489 namehist="hd0D0pt_nc_sign_";
490 titlehist="D^{0} impact par. plot, No Cuts, Signal, ";
491 for(Int_t i=0;i<fnbins;i++){
492 strnamept=namehist;
493 strnamept.Append("PkMss_pt");
494 strnamept+=i;
495
496 strtitlept=titlehist;
497 strtitlept.Append(" Mass Peak, ");
498 strtitlept+=fptbins[i];
499 strtitlept.Append("<= pt <");
500 strtitlept+=fptbins[i+1];
501 strtitlept.Append(" [GeV/c]");
502
503 hd0D0pt_nc_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
504 hd0D0pt_nc_sign_pm[i]->SetXTitle("Impact parameter [#mum] ");
505 hd0D0pt_nc_sign_pm[i]->SetYTitle("Entries");
506 flist_NoCuts_Signal->Add(hd0D0pt_nc_sign_pm[i]);
507
508 strnamept.ReplaceAll("hd0D0","hMCd0D0");
509 hMCd0D0pt_nc_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
510 hMCd0D0pt_nc_sign_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
511 hMCd0D0pt_nc_sign_pm[i]->SetYTitle("Entries");
512 flist_NoCuts_Signal->Add(hMCd0D0pt_nc_sign_pm[i]);
513
514
515 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
516 hd0D0VtxTruept_nc_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
517 hd0D0VtxTruept_nc_sign_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
518 hd0D0VtxTruept_nc_sign_pm[i]->SetYTitle("Entries");
519 flist_NoCuts_Signal->Add(hd0D0VtxTruept_nc_sign_pm[i]);
520
521 strnamept=namehist;
522 strnamept.Append("SBMss_pt");
523 strnamept+=i;
524
525 strtitlept=titlehist;
526 strtitlept.Append(" Side Bands, ");
527 strtitlept+=fptbins[i];
528 strtitlept.Append("<= pt <");
529 strtitlept+=fptbins[i+1];
530 strtitlept.Append(" [GeV/c]");
531
532 hd0D0pt_nc_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
533 hd0D0pt_nc_sign_sb[i]->SetXTitle("Impact parameter [#mum] ");
534 hd0D0pt_nc_sign_sb[i]->SetYTitle("Entries");
535 flist_NoCuts_Signal->Add(hd0D0pt_nc_sign_sb[i]);
536
537 strnamept.ReplaceAll("hd0D0","hMCd0D0");
538 hMCd0D0pt_nc_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
539 hMCd0D0pt_nc_sign_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
540 hMCd0D0pt_nc_sign_sb[i]->SetYTitle("Entries");
541 flist_NoCuts_Signal->Add(hMCd0D0pt_nc_sign_sb[i]);
542
543 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
544 hd0D0VtxTruept_nc_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
545 hd0D0VtxTruept_nc_sign_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
546 hd0D0VtxTruept_nc_sign_sb[i]->SetYTitle("Entries");
547 flist_NoCuts_Signal->Add(hd0D0VtxTruept_nc_sign_sb[i]);
548 }
549
550
551 //############ NO CUTS BACKGROUND HISTOGRAMS ###########
552 //
553 // ######## global properties histos #######
554 TH2F *hCPtaVSd0d0_nc_back=new TH2F("hCPtaVSd0d0_nc_back","hCPtaVSd0d0_NoCuts_Background",1000,-100000.,100000.,100,0.,1.);
555 TH1F *hSecVtxZ_nc_back=new TH1F("hSecVtxZ_nc_back","hSecVtxZ_NoCuts_Background",1000,-8.,8.);
556 TH1F *hSecVtxX_nc_back=new TH1F("hSecVtxX_nc_back","hSecVtxX_NoCuts_Background",1000,-3000.,3000.);
557 TH1F *hSecVtxY_nc_back=new TH1F("hSecVtxY_nc_back","hSecVtxY_NoCuts_Background",1000,-3000.,3000.);
558 TH2F *hSecVtxXY_nc_back=new TH2F("hSecVtxXY_nc_back","hSecVtxXY_NoCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
559 TH1F *hSecVtxPhi_nc_back=new TH1F("hSecVtxPhi_nc_back","hSecVtxPhi_NoCuts_Background",180,-180.1,180.1);
560 TH1F *hCPta_nc_back=new TH1F("hCPta_nc_back","hCPta_NoCuts_Background",100,0.,1.);
561 TH1F *hd0xd0_nc_back=new TH1F("hd0xd0_nc_back","hd0xd0_NoCuts_Background",1000,-100000.,100000.);
562 TH1F *hMassTrue_nc_back=new TH1F("hMassTrue_nc_back","D^{0} MC inv. Mass No Cuts Background(All momenta)",600,1.600,2.200);
563 TH1F *hMass_nc_back=new TH1F("hMass_nc_back","D^{0} inv. Mass No Cuts Background (All momenta)",600,1.600,2.200);
564 hMass_nc_back->Sumw2();
565 TH1F *hMassTrue_nc_back_pm=new TH1F("hMassTrue_nc_back_pm","D^{0} MC inv. Mass No Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
566 TH1F *hMass_nc_back_pm=new TH1F("hMass_nc_back_pm","D^{0} inv. Mass No Cuts Background (All momenta), MassPeak",600,1.600,2.200);
567 hMass_nc_back_pm->Sumw2();
568 TH1F *hMassTrue_SB_nc_back=new TH1F("hMassTrue_nc_back_sb","D^{0} MC inv. Mass in Side Bands No Cuts Background(All momenta)",600,1.600,2.200);
569 TH1F *hMass_SB_nc_back=new TH1F("hMass_nc_back_sb","D^{0} inv. Mass in Side Bands No Cuts Background (All momenta)",600,1.600,2.200);
570 hMass_SB_nc_back->Sumw2();
571
572 flist_NoCuts_Back->Add(hCPtaVSd0d0_nc_back);
573 flist_NoCuts_Back->Add(hSecVtxZ_nc_back);
574 flist_NoCuts_Back->Add(hSecVtxY_nc_back);
575 flist_NoCuts_Back->Add(hSecVtxX_nc_back);
576 flist_NoCuts_Back->Add(hSecVtxXY_nc_back);
577 flist_NoCuts_Back->Add(hSecVtxPhi_nc_back);
578 flist_NoCuts_Back->Add(hCPta_nc_back);
579 flist_NoCuts_Back->Add(hd0xd0_nc_back);
580 flist_NoCuts_Back->Add(hMassTrue_nc_back);
581 flist_NoCuts_Back->Add(hMass_nc_back);
582 flist_NoCuts_Back->Add(hMassTrue_nc_back_pm);
583 flist_NoCuts_Back->Add(hMass_nc_back_pm);
584 flist_NoCuts_Back->Add(hMassTrue_SB_nc_back);
585 flist_NoCuts_Back->Add(hMass_SB_nc_back);
586
587
588 // ####### d0 D0 histos ############
589
590 TH1F *hd0D0_nc_back_pm = new TH1F("hd0D0_nc_back_pm","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
591 hd0D0_nc_back_pm->SetXTitle("Impact parameter [#mum]");
592 hd0D0_nc_back_pm->SetYTitle("Entries");
593
594 TH1F *hd0D0VtxTrue_nc_back_pm = new TH1F("hd0D0VtxTrue_nc_back_pm","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
595 hd0D0VtxTrue_nc_back_pm->SetXTitle("Impact parameter [#mum]");
596 hd0D0VtxTrue_nc_back_pm->SetYTitle("Entries");
597
598 TH1F *hMCd0D0_nc_back_pm = new TH1F("hMCd0D0_nc_back_pm","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
599 hMCd0D0_nc_back_pm->SetXTitle("MC Impact parameter [#mum]");
600 hMCd0D0_nc_back_pm->SetYTitle("Entries");
601
602 TH1F *hd0D0_nc_back_sb = new TH1F("hd0D0_nc_back_sb","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
603 hd0D0_nc_back_sb->SetXTitle("Impact parameter [#mum]");
604 hd0D0_nc_back_sb->SetYTitle("Entries");
605
606 TH1F *hd0D0VtxTrue_nc_back_sb = new TH1F("hd0D0VtxTrue_nc_back_sb","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
607 hd0D0VtxTrue_nc_back_sb->SetXTitle("Impact parameter [#mum]");
608 hd0D0VtxTrue_nc_back_sb->SetYTitle("Entries");
609
610 TH1F *hMCd0D0_nc_back_sb = new TH1F("hMCd0D0_nc_back_sb","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
611 hMCd0D0_nc_back_sb->SetXTitle("MC Impact parameter [#mum]");
612 hMCd0D0_nc_back_sb->SetYTitle("Entries");
613
614 flist_NoCuts_Back->Add(hd0D0_nc_back_pm);
615 flist_NoCuts_Back->Add(hd0D0VtxTrue_nc_back_pm);
616 flist_NoCuts_Back->Add(hMCd0D0_nc_back_pm);
617 flist_NoCuts_Back->Add(hd0D0_nc_back_sb);
618 flist_NoCuts_Back->Add(hd0D0VtxTrue_nc_back_sb);
619 flist_NoCuts_Back->Add(hMCd0D0_nc_back_sb);
620
621 TH1F **hd0D0pt_nc_back_pm=new TH1F*[fnbins];
622 TH1F **hMCd0D0pt_nc_back_pm=new TH1F*[fnbins];
623 TH1F ** hd0D0VtxTruept_nc_back_pm=new TH1F*[fnbins];
624 TH1F **hd0D0pt_nc_back_sb=new TH1F*[fnbins];
625 TH1F **hMCd0D0pt_nc_back_sb=new TH1F*[fnbins];
626 TH1F ** hd0D0VtxTruept_nc_back_sb=new TH1F*[fnbins];
627 namehist="hd0D0pt_nc_back_";
628 titlehist="D^{0} impact par. plot, No Cuts, Background, ";
629 for(Int_t i=0;i<fnbins;i++){
630 strnamept=namehist;
631 strnamept.Append("PkMss_pt");
632 strnamept+=i;
633
634 strtitlept=titlehist;
635 strtitlept.Append(" Mass Peak, ");
636 strtitlept+=fptbins[i];
637 strtitlept.Append("<= pt <");
638 strtitlept+=fptbins[i+1];
639 strtitlept.Append(" [GeV/c]");
640
641 hd0D0pt_nc_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
642 hd0D0pt_nc_back_pm[i]->SetXTitle("Impact parameter [#mum] ");
643 hd0D0pt_nc_back_pm[i]->SetYTitle("Entries");
644 flist_NoCuts_Back->Add(hd0D0pt_nc_back_pm[i]);
645
646 strnamept.ReplaceAll("hd0D0","hMCd0D0");
647 hMCd0D0pt_nc_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
648 hMCd0D0pt_nc_back_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
649 hMCd0D0pt_nc_back_pm[i]->SetYTitle("Entries");
650 flist_NoCuts_Back->Add(hMCd0D0pt_nc_back_pm[i]);
651
652
653 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
654 hd0D0VtxTruept_nc_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
655 hd0D0VtxTruept_nc_back_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
656 hd0D0VtxTruept_nc_back_pm[i]->SetYTitle("Entries");
657 flist_NoCuts_Back->Add(hd0D0VtxTruept_nc_back_pm[i]);
658
659 strnamept=namehist;
660 strnamept.Append("SBMss_pt");
661 strnamept+=i;
662
663 strtitlept=titlehist;
664 strtitlept.Append(" Side Bands, ");
665 strtitlept+=fptbins[i];
666 strtitlept.Append("<= pt <");
667 strtitlept+=fptbins[i+1];
668 strtitlept.Append(" [GeV/c]");
669
670 hd0D0pt_nc_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
671 hd0D0pt_nc_back_sb[i]->SetXTitle("Impact parameter [#mum] ");
672 hd0D0pt_nc_back_sb[i]->SetYTitle("Entries");
673 flist_NoCuts_Back->Add(hd0D0pt_nc_back_sb[i]);
674
675 strnamept.ReplaceAll("hd0D0","hMCd0D0");
676 hMCd0D0pt_nc_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
677 hMCd0D0pt_nc_back_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
678 hMCd0D0pt_nc_back_sb[i]->SetYTitle("Entries");
679 flist_NoCuts_Back->Add(hMCd0D0pt_nc_back_sb[i]);
680
681 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
682 hd0D0VtxTruept_nc_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
683 hd0D0VtxTruept_nc_back_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
684 hd0D0VtxTruept_nc_back_sb[i]->SetYTitle("Entries");
685 flist_NoCuts_Back->Add(hd0D0VtxTruept_nc_back_sb[i]);
686 }
687
688
689
690 //############ NO CUTS FROMB HISTOGRAMS ###########
691 //
692 //####### global properties histos
693
694 TH2F *hCPtaVSd0d0_nc_fromB=new TH2F("hCPtaVSd0d0_nc_fromB","hCPtaVSd0d0_NoCuts_FromB",1000,-100000.,100000.,100,0.,1.);
695 TH1F *hSecVtxZ_nc_fromB=new TH1F("hSecVtxZ_nc_fromB","hSecVtxZ_NoCuts_FromB",1000,-8.,8.);
696 TH1F *hSecVtxX_nc_fromB=new TH1F("hSecVtxX_nc_fromB","hSecVtxX_NoCuts_FromB",1000,-3000.,3000.);
697 TH1F *hSecVtxY_nc_fromB=new TH1F("hSecVtxY_nc_fromB","hSecVtxY_NoCuts_FromB",1000,-3000.,3000.);
698 TH2F *hSecVtxXY_nc_fromB=new TH2F("hSecVtxXY_nc_fromB","hSecVtxXY_NoCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
699 TH1F *hSecVtxPhi_nc_fromB=new TH1F("hSecVtxPhi_nc_fromB","hSecVtxPhi_NoCuts_FromB",180,-180.1,180.1);
700 TH1F *hCPta_nc_fromB=new TH1F("hCPta_nc_fromB","hCPta_NoCuts_FromB",100,0.,1.);
701 TH1F *hd0xd0_nc_fromB=new TH1F("hd0xd0_nc_fromB","hd0xd0_NoCuts_FromB",1000,-100000.,100000.);
702 TH1F *hMassTrue_nc_fromB=new TH1F("hMassTrue_nc_fromB","D^{0} MC inv. Mass No Cuts FromB(All momenta)",600,1.600,2.200);
703 TH1F *hMass_nc_fromB=new TH1F("hMass_nc_fromB","D^{0} inv. Mass No Cuts FromB (All momenta)",600,1.600,2.200);
704 hMass_nc_fromB->Sumw2();
705 TH1F *hMassTrue_nc_fromB_pm=new TH1F("hMassTrue_nc_fromB_pm","D^{0} MC inv. Mass No Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
706 TH1F *hMass_nc_fromB_pm=new TH1F("hMass_nc_fromB_pm","D^{0} inv. Mass No Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
707 hMass_nc_fromB->Sumw2();
708 TH1F *hMassTrue_SB_nc_fromB=new TH1F("hMassTrue_nc_fromB_sb","D^{0} MC inv. Mass in Side Bands No Cuts FromB(All momenta)",600,1.600,2.200);
709 TH1F *hMass_SB_nc_fromB=new TH1F("hMass_nc_fromB_sb","D^{0} inv. Mass in Side Bands No Cuts FromB (All momenta)",600,1.600,2.200);
710 hMass_SB_nc_fromB->Sumw2();
711
712 flist_NoCuts_FromB->Add(hCPtaVSd0d0_nc_fromB);
713 flist_NoCuts_FromB->Add(hSecVtxZ_nc_fromB);
714 flist_NoCuts_FromB->Add(hSecVtxY_nc_fromB);
715 flist_NoCuts_FromB->Add(hSecVtxX_nc_fromB);
716 flist_NoCuts_FromB->Add(hSecVtxXY_nc_fromB);
717 flist_NoCuts_FromB->Add(hSecVtxPhi_nc_fromB);
718 flist_NoCuts_FromB->Add(hCPta_nc_fromB);
719 flist_NoCuts_FromB->Add(hd0xd0_nc_fromB);
720 flist_NoCuts_FromB->Add(hMassTrue_nc_fromB);
721 flist_NoCuts_FromB->Add(hMass_nc_fromB);
722 flist_NoCuts_FromB->Add(hMassTrue_nc_fromB_pm);
723 flist_NoCuts_FromB->Add(hMass_nc_fromB_pm);
724 flist_NoCuts_FromB->Add(hMassTrue_SB_nc_fromB);
725 flist_NoCuts_FromB->Add(hMass_SB_nc_fromB);
726
727 // ######### d0 D0 histos ##############
728 TH1F *hd0D0_nc_fromB_pm = new TH1F("hd0D0_nc_fromB_pm","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
729 hd0D0_nc_fromB_pm->SetXTitle("Impact parameter [#mum]");
730 hd0D0_nc_fromB_pm->SetYTitle("Entries");
731
732 TH1F *hd0D0VtxTrue_nc_fromB_pm = new TH1F("hd0D0VtxTrue_nc_fromB_pm","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
733 hd0D0VtxTrue_nc_fromB_pm->SetXTitle("Impact parameter [#mum]");
734 hd0D0VtxTrue_nc_fromB_pm->SetYTitle("Entries");
735
736 TH1F *hMCd0D0_nc_fromB_pm = new TH1F("hMCd0D0_nc_fromB_pm","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
737 hMCd0D0_nc_fromB_pm->SetXTitle("MC Impact parameter [#mum]");
738 hMCd0D0_nc_fromB_pm->SetYTitle("Entries");
739
740 TH1F *hd0D0_nc_fromB_sb = new TH1F("hd0D0_nc_fromB_sb","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
741 hd0D0_nc_fromB_sb->SetXTitle("Impact parameter [#mum]");
742 hd0D0_nc_fromB_sb->SetYTitle("Entries");
743
744 TH1F *hd0D0VtxTrue_nc_fromB_sb = new TH1F("hd0D0VtxTrue_nc_fromB_sb","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
745 hd0D0VtxTrue_nc_fromB_sb->SetXTitle("Impact parameter [#mum]");
746 hd0D0VtxTrue_nc_fromB_sb->SetYTitle("Entries");
747
748 TH1F *hMCd0D0_nc_fromB_sb = new TH1F("hMCd0D0_nc_fromB_sb","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
749 hMCd0D0_nc_fromB_sb->SetXTitle("MC Impact parameter [#mum]");
750 hMCd0D0_nc_fromB_sb->SetYTitle("Entries");
751
752 flist_NoCuts_FromB->Add(hd0D0_nc_fromB_pm);
753 flist_NoCuts_FromB->Add(hd0D0VtxTrue_nc_fromB_pm);
754 flist_NoCuts_FromB->Add(hMCd0D0_nc_fromB_pm);
755 flist_NoCuts_FromB->Add(hd0D0_nc_fromB_sb);
756 flist_NoCuts_FromB->Add(hd0D0VtxTrue_nc_fromB_sb);
757 flist_NoCuts_FromB->Add(hMCd0D0_nc_fromB_sb);
758
759 TH1F **hd0D0pt_nc_fromB_pm=new TH1F*[fnbins];
760 TH1F **hMCd0D0pt_nc_fromB_pm=new TH1F*[fnbins];
761 TH1F ** hd0D0VtxTruept_nc_fromB_pm=new TH1F*[fnbins];
762 TH1F **hd0D0pt_nc_fromB_sb=new TH1F*[fnbins];
763 TH1F **hMCd0D0pt_nc_fromB_sb=new TH1F*[fnbins];
764 TH1F ** hd0D0VtxTruept_nc_fromB_sb=new TH1F*[fnbins];
765 namehist="hd0D0pt_nc_fromB_";
766 titlehist="D^{0} impact par. plot, No Cuts, FromB, ";
767 for(Int_t i=0;i<fnbins;i++){
768 strnamept=namehist;
769 strnamept.Append("PkMss_pt");
770 strnamept+=i;
771
772 strtitlept=titlehist;
773 strtitlept.Append(" Mass Peak, ");
774 strtitlept+=fptbins[i];
775 strtitlept.Append("<= pt <");
776 strtitlept+=fptbins[i+1];
777 strtitlept.Append(" [GeV/c]");
778
779 hd0D0pt_nc_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
780 hd0D0pt_nc_fromB_pm[i]->SetXTitle("Impact parameter [#mum] ");
781 hd0D0pt_nc_fromB_pm[i]->SetYTitle("Entries");
782 flist_NoCuts_FromB->Add(hd0D0pt_nc_fromB_pm[i]);
783
784 strnamept.ReplaceAll("hd0D0","hMCd0D0");
785 hMCd0D0pt_nc_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
786 hMCd0D0pt_nc_fromB_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
787 hMCd0D0pt_nc_fromB_pm[i]->SetYTitle("Entries");
788 flist_NoCuts_FromB->Add(hMCd0D0pt_nc_fromB_pm[i]);
789
790
791 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
792 hd0D0VtxTruept_nc_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
793 hd0D0VtxTruept_nc_fromB_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
794 hd0D0VtxTruept_nc_fromB_pm[i]->SetYTitle("Entries");
795 flist_NoCuts_FromB->Add(hd0D0VtxTruept_nc_fromB_pm[i]);
796
797 strnamept=namehist;
798 strnamept.Append("SBMss_pt");
799 strnamept+=i;
800
801 strtitlept=titlehist;
802 strtitlept.Append(" Side Bands, ");
803 strtitlept+=fptbins[i];
804 strtitlept.Append("<= pt <");
805 strtitlept+=fptbins[i+1];
806 strtitlept.Append(" [GeV/c]");
807
808 hd0D0pt_nc_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
809 hd0D0pt_nc_fromB_sb[i]->SetXTitle("Impact parameter [#mum] ");
810 hd0D0pt_nc_fromB_sb[i]->SetYTitle("Entries");
811 flist_NoCuts_FromB->Add(hd0D0pt_nc_fromB_sb[i]);
812
813 strnamept.ReplaceAll("hd0D0","hMCd0D0");
814 hMCd0D0pt_nc_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
815 hMCd0D0pt_nc_fromB_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
816 hMCd0D0pt_nc_fromB_sb[i]->SetYTitle("Entries");
817 flist_NoCuts_FromB->Add(hMCd0D0pt_nc_fromB_sb[i]);
818
819 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
820 hd0D0VtxTruept_nc_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
821 hd0D0VtxTruept_nc_fromB_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
822 hd0D0VtxTruept_nc_fromB_sb[i]->SetYTitle("Entries");
823 flist_NoCuts_FromB->Add(hd0D0VtxTruept_nc_fromB_sb[i]);
824 }
825
826
827
828 //############ NO CUTS FROM DSTAR HISTOGRAMS ###########
829 //
830 //############# global properties histos #######
831
832 TH2F *hCPtaVSd0d0_nc_fromDstar=new TH2F("hCPtaVSd0d0_nc_fromDstar","hCPtaVSd0d0_NoCuts_FromDStar",1000,-100000.,100000.,100,0.,1.);
833 TH1F *hSecVtxZ_nc_fromDstar=new TH1F("hSecVtxZ_nc_fromDstar","hSecVtxZ_NoCuts_FromDStar",1000,-8.,8.);
834 TH1F *hSecVtxX_nc_fromDstar=new TH1F("hSecVtxX_nc_fromDstar","hSecVtxX_NoCuts_FromDStar",1000,-3000.,3000.);
835 TH1F *hSecVtxY_nc_fromDstar=new TH1F("hSecVtxY_nc_fromDstar","hSecVtxY_NoCuts_FromDStar",1000,-3000.,3000.);
836 TH2F *hSecVtxXY_nc_fromDstar=new TH2F("hSecVtxXY_nc_fromDstar","hSecVtxXY_NoCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
837 TH1F *hSecVtxPhi_nc_fromDstar=new TH1F("hSecVtxPhi_nc_fromDstar","hSecVtxPhi_NoCuts_FromDStar",180,-180.1,180.1);
838 TH1F *hCPta_nc_fromDstar=new TH1F("hCPta_nc_fromDstar","hCPta_NoCuts_FromDStar",100,0.,1.);
839 TH1F *hd0xd0_nc_fromDstar=new TH1F("hd0xd0_nc_fromDstar","hd0xd0_NoCuts_FromDStar",1000,-100000.,100000.);
840 TH1F *hMassTrue_nc_fromDstar=new TH1F("hMassTrue_nc_fromDstar","D^{0} MC inv. Mass No Cuts FromDStar(All momenta)",600,1.600,2.200);
841 TH1F *hMass_nc_fromDstar=new TH1F("hMass_nc_fromDstar","D^{0} inv. Mass No Cuts FromDStar (All momenta)",600,1.600,2.200);
842 hMass_nc_fromDstar->Sumw2();
843 TH1F *hMassTrue_nc_fromDstar_pm=new TH1F("hMassTrue_nc_fromDstar_pm","D^{0} MC inv. Mass No Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
844 TH1F *hMass_nc_fromDstar_pm=new TH1F("hMass_nc_fromDstar_pm","D^{0} inv. Mass No Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
845 hMass_nc_fromDstar_pm->Sumw2();
846 TH1F *hMassTrue_SB_nc_fromDstar=new TH1F("hMassTrue_nc_fromDstar_sb","D^{0} MC inv. Mass in Side Bands No Cuts FromDStar(All momenta)",600,1.600,2.200);
847 TH1F *hMass_SB_nc_fromDstar=new TH1F("hMass_nc_fromDstar_sb","D^{0} inv. Mass in Side Bands No Cuts FromDStar (All momenta)",600,1.600,2.200);
848 hMass_SB_nc_fromDstar->Sumw2();
849
850 flist_NoCuts_FromDstar->Add(hCPtaVSd0d0_nc_fromDstar);
851 flist_NoCuts_FromDstar->Add(hSecVtxZ_nc_fromDstar);
852 flist_NoCuts_FromDstar->Add(hSecVtxY_nc_fromDstar);
853 flist_NoCuts_FromDstar->Add(hSecVtxX_nc_fromDstar);
854 flist_NoCuts_FromDstar->Add(hSecVtxXY_nc_fromDstar);
855 flist_NoCuts_FromDstar->Add(hSecVtxPhi_nc_fromDstar);
856 flist_NoCuts_FromDstar->Add(hCPta_nc_fromDstar);
857 flist_NoCuts_FromDstar->Add(hd0xd0_nc_fromDstar);
858 flist_NoCuts_FromDstar->Add(hMassTrue_nc_fromDstar);
859 flist_NoCuts_FromDstar->Add(hMass_nc_fromDstar);
860 flist_NoCuts_FromDstar->Add(hMassTrue_nc_fromDstar_pm);
861 flist_NoCuts_FromDstar->Add(hMass_nc_fromDstar_pm);
862 flist_NoCuts_FromDstar->Add(hMassTrue_SB_nc_fromDstar);
863 flist_NoCuts_FromDstar->Add(hMass_SB_nc_fromDstar);
864
865 //########## d0 D0 histos #############
866 TH1F *hd0D0_nc_fromDst_pm = new TH1F("hd0D0_nc_fromDstar_pm","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
867 hd0D0_nc_fromDst_pm->SetXTitle("Impact parameter [#mum]");
868 hd0D0_nc_fromDst_pm->SetYTitle("Entries");
869
870 TH1F *hd0D0VtxTrue_nc_fromDst_pm = new TH1F("hd0D0VtxTrue_nc_fromDstar_pm","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
871 hd0D0VtxTrue_nc_fromDst_pm->SetXTitle("Impact parameter [#mum]");
872 hd0D0VtxTrue_nc_fromDst_pm->SetYTitle("Entries");
873
874 TH1F *hMCd0D0_nc_fromDst_pm = new TH1F("hMCd0D0_nc_fromDstar_pm","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
875 hMCd0D0_nc_fromDst_pm->SetXTitle("MC Impact parameter [#mum]");
876 hMCd0D0_nc_fromDst_pm->SetYTitle("Entries");
877
878 TH1F *hd0D0_nc_fromDst_sb = new TH1F("hd0D0_nc_fromDstar_sb","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
879 hd0D0_nc_fromDst_sb->SetXTitle("Impact parameter [#mum]");
880 hd0D0_nc_fromDst_sb->SetYTitle("Entries");
881
882 TH1F *hd0D0VtxTrue_nc_fromDst_sb = new TH1F("hd0D0VtxTrue_nc_fromDstar_sb","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
883 hd0D0VtxTrue_nc_fromDst_sb->SetXTitle("Impact parameter [#mum]");
884 hd0D0VtxTrue_nc_fromDst_sb->SetYTitle("Entries");
885
886 TH1F *hMCd0D0_nc_fromDst_sb = new TH1F("hMCd0D0_nc_fromDstar_sb","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
887 hMCd0D0_nc_fromDst_sb->SetXTitle("MC Impact parameter [#mum]");
888 hMCd0D0_nc_fromDst_sb->SetYTitle("Entries");
889
890 flist_NoCuts_FromDstar->Add(hd0D0_nc_fromDst_pm);
891 flist_NoCuts_FromDstar->Add(hd0D0VtxTrue_nc_fromDst_pm);
892 flist_NoCuts_FromDstar->Add(hMCd0D0_nc_fromDst_pm);
893 flist_NoCuts_FromDstar->Add(hd0D0_nc_fromDst_sb);
894 flist_NoCuts_FromDstar->Add(hd0D0VtxTrue_nc_fromDst_sb);
895 flist_NoCuts_FromDstar->Add(hMCd0D0_nc_fromDst_sb);
896
897 TH1F **hd0D0pt_nc_fromDst_pm=new TH1F*[fnbins];
898 TH1F **hMCd0D0pt_nc_fromDst_pm=new TH1F*[fnbins];
899 TH1F ** hd0D0VtxTruept_nc_fromDst_pm=new TH1F*[fnbins];
900 TH1F **hd0D0pt_nc_fromDst_sb=new TH1F*[fnbins];
901 TH1F **hMCd0D0pt_nc_fromDst_sb=new TH1F*[fnbins];
902 TH1F ** hd0D0VtxTruept_nc_fromDst_sb=new TH1F*[fnbins];
903 namehist="hd0D0pt_nc_fromDstar_";
904 titlehist="D^{0} impact par. plot, No Cuts, FromDStar, ";
905 for(Int_t i=0;i<fnbins;i++){
906 strnamept=namehist;
907 strnamept.Append("PkMss_pt");
908 strnamept+=i;
909
910 strtitlept=titlehist;
911 strtitlept.Append(" Mass Peak, ");
912 strtitlept+=fptbins[i];
913 strtitlept.Append("<= pt <");
914 strtitlept+=fptbins[i+1];
915 strtitlept.Append(" [GeV/c]");
916
917 hd0D0pt_nc_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
918 hd0D0pt_nc_fromDst_pm[i]->SetXTitle("Impact parameter [#mum] ");
919 hd0D0pt_nc_fromDst_pm[i]->SetYTitle("Entries");
920 flist_NoCuts_FromDstar->Add(hd0D0pt_nc_fromDst_pm[i]);
921
922 strnamept.ReplaceAll("hd0D0","hMCd0D0");
923 hMCd0D0pt_nc_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
924 hMCd0D0pt_nc_fromDst_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
925 hMCd0D0pt_nc_fromDst_pm[i]->SetYTitle("Entries");
926 flist_NoCuts_FromDstar->Add(hMCd0D0pt_nc_fromDst_pm[i]);
927
928
929 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
930 hd0D0VtxTruept_nc_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
931 hd0D0VtxTruept_nc_fromDst_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
932 hd0D0VtxTruept_nc_fromDst_pm[i]->SetYTitle("Entries");
933 flist_NoCuts_FromDstar->Add(hd0D0VtxTruept_nc_fromDst_pm[i]);
934
935 strnamept=namehist;
936 strnamept.Append("SBMss_pt");
937 strnamept+=i;
938
939 strtitlept=titlehist;
940 strtitlept.Append(" Side Bands, ");
941 strtitlept+=fptbins[i];
942 strtitlept.Append("<= pt <");
943 strtitlept+=fptbins[i+1];
944 strtitlept.Append(" [GeV/c]");
945
946 hd0D0pt_nc_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
947 hd0D0pt_nc_fromDst_sb[i]->SetXTitle("Impact parameter [#mum] ");
948 hd0D0pt_nc_fromDst_sb[i]->SetYTitle("Entries");
949 flist_NoCuts_FromDstar->Add(hd0D0pt_nc_fromDst_sb[i]);
950
951 strnamept.ReplaceAll("hd0D0","hMCd0D0");
952 hMCd0D0pt_nc_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
953 hMCd0D0pt_nc_fromDst_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
954 hMCd0D0pt_nc_fromDst_sb[i]->SetYTitle("Entries");
955 flist_NoCuts_FromDstar->Add(hMCd0D0pt_nc_fromDst_sb[i]);
956
957 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
958 hd0D0VtxTruept_nc_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
959 hd0D0VtxTruept_nc_fromDst_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
960 hd0D0VtxTruept_nc_fromDst_sb[i]->SetYTitle("Entries");
961 flist_NoCuts_FromDstar->Add(hd0D0VtxTruept_nc_fromDst_sb[i]);
962 }
963
964
965 //############ NO CUTS OTHER HISTOGRAMS ###########
966 //
967 //########### global properties histos ###########
968
969 TH2F *hCPtaVSd0d0_nc_other=new TH2F("hCPtaVSd0d0_nc_other","hCPtaVSd0d0_NoCuts_other",1000,-100000.,100000.,100,0.,1.);
970 TH1F *hSecVtxZ_nc_other=new TH1F("hSecVtxZ_nc_other","hSecVtxZ_NoCuts_other",1000,-8.,8.);
971 TH1F *hSecVtxX_nc_other=new TH1F("hSecVtxX_nc_other","hSecVtxX_NoCuts_other",1000,-3000.,3000.);
972 TH1F *hSecVtxY_nc_other=new TH1F("hSecVtxY_nc_other","hSecVtxY_NoCuts_other",1000,-3000.,3000.);
973 TH2F *hSecVtxXY_nc_other=new TH2F("hSecVtxXY_nc_other","hSecVtxXY_NoCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
974 TH1F *hSecVtxPhi_nc_other=new TH1F("hSecVtxPhi_nc_other","hSecVtxPhi_NoCuts_other",180,-180.1,180.1);
975 TH1F *hCPta_nc_other=new TH1F("hCPta_nc_other","hCPta_NoCuts_other",100,0.,1.);
976 TH1F *hd0xd0_nc_other=new TH1F("hd0xd0_nc_other","hd0xd0_NoCuts_other",1000,-100000.,100000.);
977 TH1F *hMassTrue_nc_other=new TH1F("hMassTrue_nc_other","D^{0} MC inv. Mass No Cuts other(All momenta)",600,1.600,2.200);
978 TH1F *hMass_nc_other=new TH1F("hMass_nc_other","D^{0} inv. Mass No Cuts other (All momenta)",600,1.600,2.200);
979 hMass_nc_other->Sumw2();
980 TH1F *hMassTrue_nc_other_pm=new TH1F("hMassTrue_nc_other_pm","D^{0} MC inv. Mass No Cuts Other, Mass Peak. (All momenta)",600,1.600,2.200);
981 TH1F *hMass_nc_other_pm=new TH1F("hMass_nc_other_pm","D^{0} inv. Mass No Cuts Other (All momenta), MassPeak",600,1.600,2.200);
982 hMass_nc_other_pm->Sumw2();
983 TH1F *hMassTrue_SB_nc_other=new TH1F("hMassTrue_nc_other_sb","D^{0} MC inv. Mass in Side Bands No Cuts other(All momenta)",600,1.600,2.200);
984 TH1F *hMass_SB_nc_other=new TH1F("hMass_nc_other_sb","D^{0} inv. Mass in Side Bands No Cuts other (All momenta)",600,1.600,2.200);
985 hMass_SB_nc_other->Sumw2();
986
987 flist_NoCuts_Other->Add(hCPtaVSd0d0_nc_other);
988 flist_NoCuts_Other->Add(hSecVtxZ_nc_other);
989 flist_NoCuts_Other->Add(hSecVtxY_nc_other);
990 flist_NoCuts_Other->Add(hSecVtxX_nc_other);
991 flist_NoCuts_Other->Add(hSecVtxXY_nc_other);
992 flist_NoCuts_Other->Add(hSecVtxPhi_nc_other);
993 flist_NoCuts_Other->Add(hCPta_nc_other);
994 flist_NoCuts_Other->Add(hd0xd0_nc_other);
995 flist_NoCuts_Other->Add(hMassTrue_nc_other);
996 flist_NoCuts_Other->Add(hMass_nc_other);
997 flist_NoCuts_Other->Add(hMassTrue_nc_other_pm);
998 flist_NoCuts_Other->Add(hMass_nc_other_pm);
999 flist_NoCuts_Other->Add(hMassTrue_SB_nc_other);
1000 flist_NoCuts_Other->Add(hMass_SB_nc_other);
1001
1002 //############# d0 D0 histos ###############à
1003 TH1F *hd0D0_nc_other_pm = new TH1F("hd0D0_nc_other_pm","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1004 hd0D0_nc_other_pm->SetXTitle("Impact parameter [#mum]");
1005 hd0D0_nc_other_pm->SetYTitle("Entries");
1006
1007 TH1F *hd0D0VtxTrue_nc_other_pm = new TH1F("hd0D0VtxTrue_nc_other_pm","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1008 hd0D0VtxTrue_nc_other_pm->SetXTitle("Impact parameter [#mum]");
1009 hd0D0VtxTrue_nc_other_pm->SetYTitle("Entries");
1010
1011 TH1F *hMCd0D0_nc_other_pm = new TH1F("hMCd0D0_nc_other_pm","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1012 hMCd0D0_nc_other_pm->SetXTitle("MC Impact parameter [#mum]");
1013 hMCd0D0_nc_other_pm->SetYTitle("Entries");
1014
1015 TH1F *hd0D0_nc_other_sb = new TH1F("hd0D0_nc_other_sb","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1016 hd0D0_nc_other_sb->SetXTitle("Impact parameter [#mum]");
1017 hd0D0_nc_other_sb->SetYTitle("Entries");
1018
1019 TH1F *hd0D0VtxTrue_nc_other_sb = new TH1F("hd0D0VtxTrue_nc_other_sb","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1020 hd0D0VtxTrue_nc_other_sb->SetXTitle("Impact parameter [#mum]");
1021 hd0D0VtxTrue_nc_other_sb->SetYTitle("Entries");
1022
1023 TH1F *hMCd0D0_nc_other_sb = new TH1F("hMCd0D0_nc_other_sb","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1024 hMCd0D0_nc_other_sb->SetXTitle("MC Impact parameter [#mum]");
1025 hMCd0D0_nc_other_sb->SetYTitle("Entries");
1026
1027 flist_NoCuts_Other->Add(hd0D0_nc_other_pm);
1028 flist_NoCuts_Other->Add(hd0D0VtxTrue_nc_other_pm);
1029 flist_NoCuts_Other->Add(hMCd0D0_nc_other_pm);
1030 flist_NoCuts_Other->Add(hd0D0_nc_other_sb);
1031 flist_NoCuts_Other->Add(hd0D0VtxTrue_nc_other_sb);
1032 flist_NoCuts_Other->Add(hMCd0D0_nc_other_sb);
1033
1034 TH1F **hd0D0pt_nc_other_pm=new TH1F*[fnbins];
1035 TH1F **hMCd0D0pt_nc_other_pm=new TH1F*[fnbins];
1036 TH1F ** hd0D0VtxTruept_nc_other_pm=new TH1F*[fnbins];
1037 TH1F **hd0D0pt_nc_other_sb=new TH1F*[fnbins];
1038 TH1F **hMCd0D0pt_nc_other_sb=new TH1F*[fnbins];
1039 TH1F ** hd0D0VtxTruept_nc_other_sb=new TH1F*[fnbins];
1040 namehist="hd0D0pt_nc_other_";
1041 titlehist="D^{0} impact par. plot, No Cuts, Other, ";
1042 for(Int_t i=0;i<fnbins;i++){
1043 strnamept=namehist;
1044 strnamept.Append("PkMss_pt");
1045 strnamept+=i;
1046
1047 strtitlept=titlehist;
1048 strtitlept.Append(" Mass Peak, ");
1049 strtitlept+=fptbins[i];
1050 strtitlept.Append("<= pt <");
1051 strtitlept+=fptbins[i+1];
1052 strtitlept.Append(" [GeV/c]");
1053
1054 hd0D0pt_nc_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1055 hd0D0pt_nc_other_pm[i]->SetXTitle("Impact parameter [#mum] ");
1056 hd0D0pt_nc_other_pm[i]->SetYTitle("Entries");
1057 flist_NoCuts_Other->Add(hd0D0pt_nc_other_pm[i]);
1058
1059 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1060 hMCd0D0pt_nc_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1061 hMCd0D0pt_nc_other_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1062 hMCd0D0pt_nc_other_pm[i]->SetYTitle("Entries");
1063 flist_NoCuts_Other->Add(hMCd0D0pt_nc_other_pm[i]);
1064
1065
1066 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1067 hd0D0VtxTruept_nc_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1068 hd0D0VtxTruept_nc_other_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1069 hd0D0VtxTruept_nc_other_pm[i]->SetYTitle("Entries");
1070 flist_NoCuts_Other->Add(hd0D0VtxTruept_nc_other_pm[i]);
1071
1072 strnamept=namehist;
1073 strnamept.Append("SBMss_pt");
1074 strnamept+=i;
1075
1076 strtitlept=titlehist;
1077 strtitlept.Append(" Side Bands, ");
1078 strtitlept+=fptbins[i];
1079 strtitlept.Append("<= pt <");
1080 strtitlept+=fptbins[i+1];
1081 strtitlept.Append(" [GeV/c]");
1082
1083 hd0D0pt_nc_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1084 hd0D0pt_nc_other_sb[i]->SetXTitle("Impact parameter [#mum] ");
1085 hd0D0pt_nc_other_sb[i]->SetYTitle("Entries");
1086 flist_NoCuts_Other->Add(hd0D0pt_nc_other_sb[i]);
1087
1088 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1089 hMCd0D0pt_nc_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1090 hMCd0D0pt_nc_other_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1091 hMCd0D0pt_nc_other_sb[i]->SetYTitle("Entries");
1092 flist_NoCuts_Other->Add(hMCd0D0pt_nc_other_sb[i]);
1093
1094 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1095 hd0D0VtxTruept_nc_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1096 hd0D0VtxTruept_nc_other_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1097 hd0D0VtxTruept_nc_other_sb[i]->SetYTitle("Entries");
1098 flist_NoCuts_Other->Add(hd0D0VtxTruept_nc_other_sb[i]);
1099 }
1100
1101
1102 //################################################################################################
1103 // #
1104 // HISTOS FOR LOOSE CUTS #
1105 // #
1106 //################################################################################################
1107
1108 //############ LOOSE CUTS SIGNAL HISTOGRAMS ###############
1109 //
1110 // ####### global properties histo ############
1111
1112 TH2F *hCPtaVSd0d0_ls_sign=new TH2F("hCPtaVSd0d0_ls_sign","hCPtaVSd0d0_LooseCuts_Signal",1000,-100000.,100000.,100,0.,1.);
1113 TH1F *hSecVtxZ_ls_sign=new TH1F("hSecVtxZ_ls_sign","hSecVtxZ_LooseCuts_Signal",1000,-8.,8.);
1114 TH1F *hSecVtxX_ls_sign=new TH1F("hSecVtxX_ls_sign","hSecVtxX_LooseCuts_Signal",1000,-3000.,3000.);
1115 TH1F *hSecVtxY_ls_sign=new TH1F("hSecVtxY_ls_sign","hSecVtxY_LooseCuts_Signal",1000,-3000.,3000.);
1116 TH2F *hSecVtxXY_ls_sign=new TH2F("hSecVtxXY_ls_sign","hSecVtxXY_LooseCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
1117 TH1F *hSecVtxPhi_ls_sign=new TH1F("hSecVtxPhi_ls_sign","hSecVtxPhi_LooseCuts_Signal",180,-180.1,180.1);
1118 TH1F *hCPta_ls_sign=new TH1F("hCPta_ls_sign","hCPta_LooseCuts_Signal",100,0.,1.);
1119 TH1F *hd0xd0_ls_sign=new TH1F("hd0xd0_ls_sign","hd0xd0_LooseCuts_Signal",1000,-100000.,100000.);
1120 TH1F *hMassTrue_ls_sign=new TH1F("hMassTrue_ls_sign","D^{0} MC inv. Mass Loose Cuts Signal(All momenta)",600,1.600,2.200);
1121 TH1F *hMass_ls_sign=new TH1F("hMass_ls_sign","D^{0} inv. Mass Loose Cuts Signal (All momenta)",600,1.600,2.200);
1122 hMass_ls_sign->Sumw2();
1123 TH1F *hMassTrue_ls_sign_pm=new TH1F("hMassTrue_ls_sign_pm","D^{0} MC inv. Mass Loose Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
1124 TH1F *hMass_ls_sign_pm=new TH1F("hMass_ls_sign_pm","D^{0} inv. Mass Loose Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
1125 hMass_ls_sign_pm->Sumw2();
1126 TH1F *hMassTrue_SB_ls_sign=new TH1F("hMassTrue_ls_sign_sb","D^{0} MC inv. Mass in Side Bands Loose Cuts Signal(All momenta)",600,1.600,2.200);
1127 TH1F *hMass_SB_ls_sign=new TH1F("hMass_ls_sign_sb","D^{0} inv. Mass in Side Bands Loose Cuts Signal (All momenta)",600,1.600,2.200);
1128 hMass_SB_ls_sign->Sumw2();
1129
1130 flist_LsCuts_Signal->Add(hCPtaVSd0d0_ls_sign);
1131 flist_LsCuts_Signal->Add(hSecVtxZ_ls_sign);
1132 flist_LsCuts_Signal->Add(hSecVtxY_ls_sign);
1133 flist_LsCuts_Signal->Add(hSecVtxX_ls_sign);
1134 flist_LsCuts_Signal->Add(hSecVtxXY_ls_sign);
1135 flist_LsCuts_Signal->Add(hSecVtxPhi_ls_sign);
1136 flist_LsCuts_Signal->Add(hCPta_ls_sign);
1137 flist_LsCuts_Signal->Add(hd0xd0_ls_sign);
1138 flist_LsCuts_Signal->Add(hMassTrue_ls_sign);
1139 flist_LsCuts_Signal->Add(hMass_ls_sign);
1140 flist_LsCuts_Signal->Add(hMassTrue_ls_sign_pm);
1141 flist_LsCuts_Signal->Add(hMass_ls_sign_pm);
1142 flist_LsCuts_Signal->Add(hMassTrue_SB_ls_sign);
1143 flist_LsCuts_Signal->Add(hMass_SB_ls_sign);
1144
1145 // ####### d0 D0 histos ############
1146 TH1F *hd0D0_ls_sign_pm = new TH1F("hd0D0_ls_sign_pm","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1147 hd0D0_ls_sign_pm->SetXTitle("Impact parameter [#mum]");
1148 hd0D0_ls_sign_pm->SetYTitle("Entries");
1149
1150 TH1F *hd0D0VtxTrue_ls_sign_pm = new TH1F("hd0D0VtxTrue_ls_sign_pm","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1151 hd0D0VtxTrue_ls_sign_pm->SetXTitle("Impact parameter [#mum]");
1152 hd0D0VtxTrue_ls_sign_pm->SetYTitle("Entries");
1153
1154 TH1F *hMCd0D0_ls_sign_pm = new TH1F("hMCd0D0_ls_sign_pm","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1155 hMCd0D0_ls_sign_pm->SetXTitle("MC Impact parameter [#mum]");
1156 hMCd0D0_ls_sign_pm->SetYTitle("Entries");
1157
1158 TH1F *hd0D0_ls_sign_sb = new TH1F("hd0D0_ls_sign_sb","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1159 hd0D0_ls_sign_sb->SetXTitle("Impact parameter [#mum]");
1160 hd0D0_ls_sign_sb->SetYTitle("Entries");
1161
1162 TH1F *hd0D0VtxTrue_ls_sign_sb = new TH1F("hd0D0VtxTrue_ls_sign_sb","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1163 hd0D0VtxTrue_ls_sign_sb->SetXTitle("Impact parameter [#mum]");
1164 hd0D0VtxTrue_ls_sign_sb->SetYTitle("Entries");
1165
1166 TH1F *hMCd0D0_ls_sign_sb = new TH1F("hMCd0D0_ls_sign_sb","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1167 hMCd0D0_ls_sign_sb->SetXTitle("MC Impact parameter [#mum]");
1168 hMCd0D0_ls_sign_sb->SetYTitle("Entries");
1169
1170 flist_LsCuts_Signal->Add(hd0D0_ls_sign_pm);
1171 flist_LsCuts_Signal->Add(hd0D0VtxTrue_ls_sign_pm);
1172 flist_LsCuts_Signal->Add(hMCd0D0_ls_sign_pm);
1173 flist_LsCuts_Signal->Add(hd0D0_ls_sign_sb);
1174 flist_LsCuts_Signal->Add(hd0D0VtxTrue_ls_sign_sb);
1175 flist_LsCuts_Signal->Add(hMCd0D0_ls_sign_sb);
1176
1177 TH1F **hd0D0pt_ls_sign_pm=new TH1F*[fnbins];
1178 TH1F **hMCd0D0pt_ls_sign_pm=new TH1F*[fnbins];
1179 TH1F ** hd0D0VtxTruept_ls_sign_pm=new TH1F*[fnbins];
1180 TH1F **hd0D0pt_ls_sign_sb=new TH1F*[fnbins];
1181 TH1F **hMCd0D0pt_ls_sign_sb=new TH1F*[fnbins];
1182 TH1F ** hd0D0VtxTruept_ls_sign_sb=new TH1F*[fnbins];
1183 namehist="hd0D0pt_ls_sign_";
1184 titlehist="D^{0} impact par. plot, Loose Cuts, Signal, ";
1185 for(Int_t i=0;i<fnbins;i++){
1186 strnamept=namehist;
1187 strnamept.Append("PkMss_pt");
1188 strnamept+=i;
1189
1190 strtitlept=titlehist;
1191 strtitlept.Append(" Mass Peak, ");
1192 strtitlept+=fptbins[i];
1193 strtitlept.Append("<= pt <");
1194 strtitlept+=fptbins[i+1];
1195 strtitlept.Append(" [GeV/c]");
1196
1197 hd0D0pt_ls_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1198 hd0D0pt_ls_sign_pm[i]->SetXTitle("Impact parameter [#mum] ");
1199 hd0D0pt_ls_sign_pm[i]->SetYTitle("Entries");
1200 flist_LsCuts_Signal->Add(hd0D0pt_ls_sign_pm[i]);
1201
1202 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1203 hMCd0D0pt_ls_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1204 hMCd0D0pt_ls_sign_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1205 hMCd0D0pt_ls_sign_pm[i]->SetYTitle("Entries");
1206 flist_LsCuts_Signal->Add(hMCd0D0pt_ls_sign_pm[i]);
1207
1208
1209 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1210 hd0D0VtxTruept_ls_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1211 hd0D0VtxTruept_ls_sign_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1212 hd0D0VtxTruept_ls_sign_pm[i]->SetYTitle("Entries");
1213 flist_LsCuts_Signal->Add(hd0D0VtxTruept_ls_sign_pm[i]);
1214
1215 strnamept=namehist;
1216 strnamept.Append("SBMss_pt");
1217 strnamept+=i;
1218
1219 strtitlept=titlehist;
1220 strtitlept.Append(" Side Bands, ");
1221 strtitlept+=fptbins[i];
1222 strtitlept.Append("<= pt <");
1223 strtitlept+=fptbins[i+1];
1224 strtitlept.Append(" [GeV/c]");
1225
1226 hd0D0pt_ls_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1227 hd0D0pt_ls_sign_sb[i]->SetXTitle("Impact parameter [#mum] ");
1228 hd0D0pt_ls_sign_sb[i]->SetYTitle("Entries");
1229 flist_LsCuts_Signal->Add(hd0D0pt_ls_sign_sb[i]);
1230
1231 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1232 hMCd0D0pt_ls_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1233 hMCd0D0pt_ls_sign_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1234 hMCd0D0pt_ls_sign_sb[i]->SetYTitle("Entries");
1235 flist_LsCuts_Signal->Add(hMCd0D0pt_ls_sign_sb[i]);
1236
1237 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1238 hd0D0VtxTruept_ls_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1239 hd0D0VtxTruept_ls_sign_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1240 hd0D0VtxTruept_ls_sign_sb[i]->SetYTitle("Entries");
1241 flist_LsCuts_Signal->Add(hd0D0VtxTruept_ls_sign_sb[i]);
1242 }
1243
1244
1245 //############ LOOSE CUTS BACKGROUND HISTOGRAMS ###########
1246 //
1247 // ######## global properties histos #######
1248 TH2F *hCPtaVSd0d0_ls_back=new TH2F("hCPtaVSd0d0_ls_back","hCPtaVSd0d0_LooseCuts_Background",1000,-100000.,100000.,100,0.,1.);
1249 TH1F *hSecVtxZ_ls_back=new TH1F("hSecVtxZ_ls_back","hSecVtxZ_LooseCuts_Background",1000,-8.,8.);
1250 TH1F *hSecVtxX_ls_back=new TH1F("hSecVtxX_ls_back","hSecVtxX_LooseCuts_Background",1000,-3000.,3000.);
1251 TH1F *hSecVtxY_ls_back=new TH1F("hSecVtxY_ls_back","hSecVtxY_LooseCuts_Background",1000,-3000.,3000.);
1252 TH2F *hSecVtxXY_ls_back=new TH2F("hSecVtxXY_ls_back","hSecVtxXY_LooseCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
1253 TH1F *hSecVtxPhi_ls_back=new TH1F("hSecVtxPhi_ls_back","hSecVtxPhi_LooseCuts_Background",180,-180.1,180.1);
1254 TH1F *hCPta_ls_back=new TH1F("hCPta_ls_back","hCPta_LooseCuts_Background",100,0.,1.);
1255 TH1F *hd0xd0_ls_back=new TH1F("hd0xd0_ls_back","hd0xd0_LooseCuts_Background",1000,-100000.,100000.);
1256 TH1F *hMassTrue_ls_back=new TH1F("hMassTrue_ls_back","D^{0} MC inv. Mass Loose Cuts Background(All momenta)",600,1.600,2.200);
1257 TH1F *hMass_ls_back=new TH1F("hMass_ls_back","D^{0} inv. Mass Loose Cuts Background (All momenta)",600,1.600,2.200);
1258 hMass_ls_back->Sumw2();
1259 TH1F *hMassTrue_ls_back_pm=new TH1F("hMassTrue_ls_back_pm","D^{0} MC inv. Mass Loose Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
1260 TH1F *hMass_ls_back_pm=new TH1F("hMass_ls_back_pm","D^{0} inv. Mass Loose Cuts Background (All momenta), MassPeak",600,1.600,2.200);
1261 hMass_ls_back_pm->Sumw2();
1262 TH1F *hMassTrue_SB_ls_back=new TH1F("hMassTrue_ls_back_sb","D^{0} MC inv. Mass in Side Bands Loose Cuts Background(All momenta)",600,1.600,2.200);
1263 TH1F *hMass_SB_ls_back=new TH1F("hMass_ls_back_sb","D^{0} inv. Mass in Side Bands Loose Cuts Background (All momenta)",600,1.600,2.200);
1264 hMass_SB_ls_back->Sumw2();
1265
1266 flist_LsCuts_Back->Add(hCPtaVSd0d0_ls_back);
1267 flist_LsCuts_Back->Add(hSecVtxZ_ls_back);
1268 flist_LsCuts_Back->Add(hSecVtxY_ls_back);
1269 flist_LsCuts_Back->Add(hSecVtxX_ls_back);
1270 flist_LsCuts_Back->Add(hSecVtxXY_ls_back);
1271 flist_LsCuts_Back->Add(hSecVtxPhi_ls_back);
1272 flist_LsCuts_Back->Add(hCPta_ls_back);
1273 flist_LsCuts_Back->Add(hd0xd0_ls_back);
1274 flist_LsCuts_Back->Add(hMassTrue_ls_back);
1275 flist_LsCuts_Back->Add(hMass_ls_back);
1276 flist_LsCuts_Back->Add(hMassTrue_ls_back_pm);
1277 flist_LsCuts_Back->Add(hMass_ls_back_pm);
1278 flist_LsCuts_Back->Add(hMassTrue_SB_ls_back);
1279 flist_LsCuts_Back->Add(hMass_SB_ls_back);
1280
1281
1282 // ####### d0 D0 histos ############
1283
1284 TH1F *hd0D0_ls_back_pm = new TH1F("hd0D0_ls_back_pm","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1285 hd0D0_ls_back_pm->SetXTitle("Impact parameter [#mum]");
1286 hd0D0_ls_back_pm->SetYTitle("Entries");
1287
1288 TH1F *hd0D0VtxTrue_ls_back_pm = new TH1F("hd0D0VtxTrue_ls_back_pm","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1289 hd0D0VtxTrue_ls_back_pm->SetXTitle("Impact parameter [#mum]");
1290 hd0D0VtxTrue_ls_back_pm->SetYTitle("Entries");
1291
1292 TH1F *hMCd0D0_ls_back_pm = new TH1F("hMCd0D0_ls_back_pm","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1293 hMCd0D0_ls_back_pm->SetXTitle("MC Impact parameter [#mum]");
1294 hMCd0D0_ls_back_pm->SetYTitle("Entries");
1295
1296 TH1F *hd0D0_ls_back_sb = new TH1F("hd0D0_ls_back_sb","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1297 hd0D0_ls_back_sb->SetXTitle("Impact parameter [#mum]");
1298 hd0D0_ls_back_sb->SetYTitle("Entries");
1299
1300 TH1F *hd0D0VtxTrue_ls_back_sb = new TH1F("hd0D0VtxTrue_ls_back_sb","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1301 hd0D0VtxTrue_ls_back_sb->SetXTitle("Impact parameter [#mum]");
1302 hd0D0VtxTrue_ls_back_sb->SetYTitle("Entries");
1303
1304 TH1F *hMCd0D0_ls_back_sb = new TH1F("hMCd0D0_ls_back_sb","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1305 hMCd0D0_ls_back_sb->SetXTitle("MC Impact parameter [#mum]");
1306 hMCd0D0_ls_back_sb->SetYTitle("Entries");
1307
1308 flist_LsCuts_Back->Add(hd0D0_ls_back_pm);
1309 flist_LsCuts_Back->Add(hd0D0VtxTrue_ls_back_pm);
1310 flist_LsCuts_Back->Add(hMCd0D0_ls_back_pm);
1311 flist_LsCuts_Back->Add(hd0D0_ls_back_sb);
1312 flist_LsCuts_Back->Add(hd0D0VtxTrue_ls_back_sb);
1313 flist_LsCuts_Back->Add(hMCd0D0_ls_back_sb);
1314
1315 TH1F **hd0D0pt_ls_back_pm=new TH1F*[fnbins];
1316 TH1F **hMCd0D0pt_ls_back_pm=new TH1F*[fnbins];
1317 TH1F ** hd0D0VtxTruept_ls_back_pm=new TH1F*[fnbins];
1318 TH1F **hd0D0pt_ls_back_sb=new TH1F*[fnbins];
1319 TH1F **hMCd0D0pt_ls_back_sb=new TH1F*[fnbins];
1320 TH1F ** hd0D0VtxTruept_ls_back_sb=new TH1F*[fnbins];
1321 namehist="hd0D0pt_ls_back_";
1322 titlehist="D^{0} impact par. plot, Loose Cuts, Background, ";
1323 for(Int_t i=0;i<fnbins;i++){
1324 strnamept=namehist;
1325 strnamept.Append("PkMss_pt");
1326 strnamept+=i;
1327
1328 strtitlept=titlehist;
1329 strtitlept.Append(" Mass Peak, ");
1330 strtitlept+=fptbins[i];
1331 strtitlept.Append("<= pt <");
1332 strtitlept+=fptbins[i+1];
1333 strtitlept.Append(" [GeV/c]");
1334
1335 hd0D0pt_ls_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1336 hd0D0pt_ls_back_pm[i]->SetXTitle("Impact parameter [#mum] ");
1337 hd0D0pt_ls_back_pm[i]->SetYTitle("Entries");
1338 flist_LsCuts_Back->Add(hd0D0pt_ls_back_pm[i]);
1339
1340 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1341 hMCd0D0pt_ls_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1342 hMCd0D0pt_ls_back_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1343 hMCd0D0pt_ls_back_pm[i]->SetYTitle("Entries");
1344 flist_LsCuts_Back->Add(hMCd0D0pt_ls_back_pm[i]);
1345
1346
1347 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1348 hd0D0VtxTruept_ls_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1349 hd0D0VtxTruept_ls_back_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1350 hd0D0VtxTruept_ls_back_pm[i]->SetYTitle("Entries");
1351 flist_LsCuts_Back->Add(hd0D0VtxTruept_ls_back_pm[i]);
1352
1353 strnamept=namehist;
1354 strnamept.Append("SBMss_pt");
1355 strnamept+=i;
1356
1357 strtitlept=titlehist;
1358 strtitlept.Append(" Side Bands, ");
1359 strtitlept+=fptbins[i];
1360 strtitlept.Append("<= pt <");
1361 strtitlept+=fptbins[i+1];
1362 strtitlept.Append(" [GeV/c]");
1363
1364 hd0D0pt_ls_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1365 hd0D0pt_ls_back_sb[i]->SetXTitle("Impact parameter [#mum] ");
1366 hd0D0pt_ls_back_sb[i]->SetYTitle("Entries");
1367 flist_LsCuts_Back->Add(hd0D0pt_ls_back_sb[i]);
1368
1369 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1370 hMCd0D0pt_ls_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1371 hMCd0D0pt_ls_back_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1372 hMCd0D0pt_ls_back_sb[i]->SetYTitle("Entries");
1373 flist_LsCuts_Back->Add(hMCd0D0pt_ls_back_sb[i]);
1374
1375 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1376 hd0D0VtxTruept_ls_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1377 hd0D0VtxTruept_ls_back_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1378 hd0D0VtxTruept_ls_back_sb[i]->SetYTitle("Entries");
1379 flist_LsCuts_Back->Add(hd0D0VtxTruept_ls_back_sb[i]);
1380 }
1381
1382
1383
1384 //############ LOOSE CUTS FROMB HISTOGRAMS ###########
1385 //
1386 //####### global properties histos
1387
1388 TH2F *hCPtaVSd0d0_ls_fromB=new TH2F("hCPtaVSd0d0_ls_fromB","hCPtaVSd0d0_LooseCuts_FromB",1000,-100000.,100000.,100,0.,1.);
1389 TH1F *hSecVtxZ_ls_fromB=new TH1F("hSecVtxZ_ls_fromB","hSecVtxZ_LooseCuts_FromB",1000,-8.,8.);
1390 TH1F *hSecVtxX_ls_fromB=new TH1F("hSecVtxX_ls_fromB","hSecVtxX_LooseCuts_FromB",1000,-3000.,3000.);
1391 TH1F *hSecVtxY_ls_fromB=new TH1F("hSecVtxY_ls_fromB","hSecVtxY_LooseCuts_FromB",1000,-3000.,3000.);
1392 TH2F *hSecVtxXY_ls_fromB=new TH2F("hSecVtxXY_ls_fromB","hSecVtxXY_LooseCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
1393 TH1F *hSecVtxPhi_ls_fromB=new TH1F("hSecVtxPhi_ls_fromB","hSecVtxPhi_LooseCuts_FromB",180,-180.1,180.1);
1394 TH1F *hCPta_ls_fromB=new TH1F("hCPta_ls_fromB","hCPta_LooseCuts_FromB",100,0.,1.);
1395 TH1F *hd0xd0_ls_fromB=new TH1F("hd0xd0_ls_fromB","hd0xd0_LooseCuts_FromB",1000,-100000.,100000.);
1396 TH1F *hMassTrue_ls_fromB=new TH1F("hMassTrue_ls_fromB","D^{0} MC inv. Mass Loose Cuts FromB(All momenta)",600,1.600,2.200);
1397 TH1F *hMass_ls_fromB=new TH1F("hMass_ls_fromB","D^{0} inv. Mass Loose Cuts FromB (All momenta)",600,1.600,2.200);
1398 hMass_ls_fromB->Sumw2();
1399 TH1F *hMassTrue_ls_fromB_pm=new TH1F("hMassTrue_ls_fromB_pm","D^{0} MC inv. Mass Loose Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
1400 TH1F *hMass_ls_fromB_pm=new TH1F("hMass_ls_fromB_pm","D^{0} inv. Mass Loose Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
1401 hMass_ls_fromB_pm->Sumw2();
1402 TH1F *hMassTrue_SB_ls_fromB=new TH1F("hMassTrue_ls_fromB_sb","D^{0} MC inv. Mass in Side Bands Loose Cuts FromB(All momenta)",600,1.600,2.200);
1403 TH1F *hMass_SB_ls_fromB=new TH1F("hMass_ls_fromB_sb","D^{0} inv. Mass in Side Bands Loose Cuts FromB (All momenta)",600,1.600,2.200);
1404 hMass_SB_ls_fromB->Sumw2();
1405
1406 flist_LsCuts_FromB->Add(hCPtaVSd0d0_ls_fromB);
1407 flist_LsCuts_FromB->Add(hSecVtxZ_ls_fromB);
1408 flist_LsCuts_FromB->Add(hSecVtxY_ls_fromB);
1409 flist_LsCuts_FromB->Add(hSecVtxX_ls_fromB);
1410 flist_LsCuts_FromB->Add(hSecVtxXY_ls_fromB);
1411 flist_LsCuts_FromB->Add(hSecVtxPhi_ls_fromB);
1412 flist_LsCuts_FromB->Add(hCPta_ls_fromB);
1413 flist_LsCuts_FromB->Add(hd0xd0_ls_fromB);
1414 flist_LsCuts_FromB->Add(hMassTrue_ls_fromB);
1415 flist_LsCuts_FromB->Add(hMass_ls_fromB);
1416 flist_LsCuts_FromB->Add(hMassTrue_ls_fromB_pm);
1417 flist_LsCuts_FromB->Add(hMass_ls_fromB_pm);
1418 flist_LsCuts_FromB->Add(hMassTrue_SB_ls_fromB);
1419 flist_LsCuts_FromB->Add(hMass_SB_ls_fromB);
1420
1421 // ######### d0 D0 histos ##############
1422 TH1F *hd0D0_ls_fromB_pm = new TH1F("hd0D0_ls_fromB_pm","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1423 hd0D0_ls_fromB_pm->SetXTitle("Impact parameter [#mum]");
1424 hd0D0_ls_fromB_pm->SetYTitle("Entries");
1425
1426 TH1F *hd0D0VtxTrue_ls_fromB_pm = new TH1F("hd0D0VtxTrue_ls_fromB_pm","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1427 hd0D0VtxTrue_ls_fromB_pm->SetXTitle("Impact parameter [#mum]");
1428 hd0D0VtxTrue_ls_fromB_pm->SetYTitle("Entries");
1429
1430 TH1F *hMCd0D0_ls_fromB_pm = new TH1F("hMCd0D0_ls_fromB_pm","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1431 hMCd0D0_ls_fromB_pm->SetXTitle("MC Impact parameter [#mum]");
1432 hMCd0D0_ls_fromB_pm->SetYTitle("Entries");
1433
1434 TH1F *hd0D0_ls_fromB_sb = new TH1F("hd0D0_ls_fromB_sb","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1435 hd0D0_ls_fromB_sb->SetXTitle("Impact parameter [#mum]");
1436 hd0D0_ls_fromB_sb->SetYTitle("Entries");
1437
1438 TH1F *hd0D0VtxTrue_ls_fromB_sb = new TH1F("hd0D0VtxTrue_ls_fromB_sb","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1439 hd0D0VtxTrue_ls_fromB_sb->SetXTitle("Impact parameter [#mum]");
1440 hd0D0VtxTrue_ls_fromB_sb->SetYTitle("Entries");
1441
1442 TH1F *hMCd0D0_ls_fromB_sb = new TH1F("hMCd0D0_ls_fromB_sb","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1443 hMCd0D0_ls_fromB_sb->SetXTitle("MC Impact parameter [#mum]");
1444 hMCd0D0_ls_fromB_sb->SetYTitle("Entries");
1445
1446 flist_LsCuts_FromB->Add(hd0D0_ls_fromB_pm);
1447 flist_LsCuts_FromB->Add(hd0D0VtxTrue_ls_fromB_pm);
1448 flist_LsCuts_FromB->Add(hMCd0D0_ls_fromB_pm);
1449 flist_LsCuts_FromB->Add(hd0D0_ls_fromB_sb);
1450 flist_LsCuts_FromB->Add(hd0D0VtxTrue_ls_fromB_sb);
1451 flist_LsCuts_FromB->Add(hMCd0D0_ls_fromB_sb);
1452
1453 TH1F **hd0D0pt_ls_fromB_pm=new TH1F*[fnbins];
1454 TH1F **hMCd0D0pt_ls_fromB_pm=new TH1F*[fnbins];
1455 TH1F ** hd0D0VtxTruept_ls_fromB_pm=new TH1F*[fnbins];
1456 TH1F **hd0D0pt_ls_fromB_sb=new TH1F*[fnbins];
1457 TH1F **hMCd0D0pt_ls_fromB_sb=new TH1F*[fnbins];
1458 TH1F ** hd0D0VtxTruept_ls_fromB_sb=new TH1F*[fnbins];
1459 namehist="hd0D0pt_ls_fromB_";
1460 titlehist="D^{0} impact par. plot, Loose Cuts, FromB, ";
1461 for(Int_t i=0;i<fnbins;i++){
1462 strnamept=namehist;
1463 strnamept.Append("PkMss_pt");
1464 strnamept+=i;
1465
1466 strtitlept=titlehist;
1467 strtitlept.Append(" Mass Peak, ");
1468 strtitlept+=fptbins[i];
1469 strtitlept.Append("<= pt <");
1470 strtitlept+=fptbins[i+1];
1471 strtitlept.Append(" [GeV/c]");
1472
1473 hd0D0pt_ls_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1474 hd0D0pt_ls_fromB_pm[i]->SetXTitle("Impact parameter [#mum] ");
1475 hd0D0pt_ls_fromB_pm[i]->SetYTitle("Entries");
1476 flist_LsCuts_FromB->Add(hd0D0pt_ls_fromB_pm[i]);
1477
1478 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1479 hMCd0D0pt_ls_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1480 hMCd0D0pt_ls_fromB_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1481 hMCd0D0pt_ls_fromB_pm[i]->SetYTitle("Entries");
1482 flist_LsCuts_FromB->Add(hMCd0D0pt_ls_fromB_pm[i]);
1483
1484
1485 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1486 hd0D0VtxTruept_ls_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1487 hd0D0VtxTruept_ls_fromB_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1488 hd0D0VtxTruept_ls_fromB_pm[i]->SetYTitle("Entries");
1489 flist_LsCuts_FromB->Add(hd0D0VtxTruept_ls_fromB_pm[i]);
1490
1491 strnamept=namehist;
1492 strnamept.Append("SBMss_pt");
1493 strnamept+=i;
1494
1495 strtitlept=titlehist;
1496 strtitlept.Append(" Side Bands, ");
1497 strtitlept+=fptbins[i];
1498 strtitlept.Append("<= pt <");
1499 strtitlept+=fptbins[i+1];
1500 strtitlept.Append(" [GeV/c]");
1501
1502 hd0D0pt_ls_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1503 hd0D0pt_ls_fromB_sb[i]->SetXTitle("Impact parameter [#mum] ");
1504 hd0D0pt_ls_fromB_sb[i]->SetYTitle("Entries");
1505 flist_LsCuts_FromB->Add(hd0D0pt_ls_fromB_sb[i]);
1506
1507 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1508 hMCd0D0pt_ls_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1509 hMCd0D0pt_ls_fromB_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1510 hMCd0D0pt_ls_fromB_sb[i]->SetYTitle("Entries");
1511 flist_LsCuts_FromB->Add(hMCd0D0pt_ls_fromB_sb[i]);
1512
1513 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1514 hd0D0VtxTruept_ls_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1515 hd0D0VtxTruept_ls_fromB_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1516 hd0D0VtxTruept_ls_fromB_sb[i]->SetYTitle("Entries");
1517 flist_LsCuts_FromB->Add(hd0D0VtxTruept_ls_fromB_sb[i]);
1518 }
1519
1520
1521
1522 //############ LOOSE CUTS FROM DSTAR HISTOGRAMS ###########
1523 //
1524 //############## global properties histos
1525 TH2F *hCPtaVSd0d0_ls_fromDstar=new TH2F("hCPtaVSd0d0_ls_fromDstar","hCPtaVSd0d0_LooseCuts_FromDStar",1000,-100000.,100000.,100,0.,1.);
1526 TH1F *hSecVtxZ_ls_fromDstar=new TH1F("hSecVtxZ_ls_fromDstar","hSecVtxZ_LooseCuts_FromDStar",1000,-8.,8.);
1527 TH1F *hSecVtxX_ls_fromDstar=new TH1F("hSecVtxX_ls_fromDstar","hSecVtxX_LooseCuts_FromDStar",1000,-3000.,3000.);
1528 TH1F *hSecVtxY_ls_fromDstar=new TH1F("hSecVtxY_ls_fromDstar","hSecVtxY_LooseCuts_FromDStar",1000,-3000.,3000.);
1529 TH2F *hSecVtxXY_ls_fromDstar=new TH2F("hSecVtxXY_ls_fromDstar","hSecVtxXY_LooseCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
1530 TH1F *hSecVtxPhi_ls_fromDstar=new TH1F("hSecVtxPhi_ls_fromDstar","hSecVtxPhi_LooseCuts_FromDStar",180,-180.1,180.1);
1531 TH1F *hCPta_ls_fromDstar=new TH1F("hCPta_ls_fromDstar","hCPta_LooseCuts_FromDStar",100,0.,1.);
1532 TH1F *hd0xd0_ls_fromDstar=new TH1F("hd0xd0_ls_fromDstar","hd0xd0_LooseCuts_FromDStar",1000,-100000.,100000.);
1533 TH1F *hMassTrue_ls_fromDstar=new TH1F("hMassTrue_ls_fromDstar","D^{0} MC inv. Mass Loose Cuts FromDStar(All momenta)",600,1.600,2.200);
1534 TH1F *hMass_ls_fromDstar=new TH1F("hMass_ls_fromDstar","D^{0} inv. Mass Loose Cuts FromDStar (All momenta)",600,1.600,2.200);
1535 hMass_ls_fromDstar->Sumw2();
1536 TH1F *hMassTrue_ls_fromDstar_pm=new TH1F("hMassTrue_ls_fromDstar_pm","D^{0} MC inv. Mass Loose Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
1537 TH1F *hMass_ls_fromDstar_pm=new TH1F("hMass_ls_fromDstar_pm","D^{0} inv. Mass Loose Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
1538 hMass_ls_fromDstar_pm->Sumw2();
1539 TH1F *hMassTrue_SB_ls_fromDstar=new TH1F("hMassTrue_ls_fromDstar_sb","D^{0} MC inv. Mass in Side Bands Loose Cuts FromDStar(All momenta)",600,1.600,2.200);
1540 TH1F *hMass_SB_ls_fromDstar=new TH1F("hMass_ls_fromDstar_sb","D^{0} inv. Mass in Side Bands Loose Cuts FromDStar (All momenta)",600,1.600,2.200);
1541 hMass_SB_ls_fromDstar->Sumw2();
1542
1543 flist_LsCuts_FromDstar->Add(hCPtaVSd0d0_ls_fromDstar);
1544 flist_LsCuts_FromDstar->Add(hSecVtxZ_ls_fromDstar);
1545 flist_LsCuts_FromDstar->Add(hSecVtxY_ls_fromDstar);
1546 flist_LsCuts_FromDstar->Add(hSecVtxX_ls_fromDstar);
1547 flist_LsCuts_FromDstar->Add(hSecVtxXY_ls_fromDstar);
1548 flist_LsCuts_FromDstar->Add(hSecVtxPhi_ls_fromDstar);
1549 flist_LsCuts_FromDstar->Add(hCPta_ls_fromDstar);
1550 flist_LsCuts_FromDstar->Add(hd0xd0_ls_fromDstar);
1551 flist_LsCuts_FromDstar->Add(hMassTrue_ls_fromDstar);
1552 flist_LsCuts_FromDstar->Add(hMass_ls_fromDstar);
1553 flist_LsCuts_FromDstar->Add(hMassTrue_ls_fromDstar_pm);
1554 flist_LsCuts_FromDstar->Add(hMass_ls_fromDstar_pm);
1555 flist_LsCuts_FromDstar->Add(hMassTrue_SB_ls_fromDstar);
1556 flist_LsCuts_FromDstar->Add(hMass_SB_ls_fromDstar);
1557
1558 //########## d0 D0 histos #############
1559 TH1F *hd0D0_ls_fromDst_pm = new TH1F("hd0D0_ls_fromDstar_pm","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1560 hd0D0_ls_fromDst_pm->SetXTitle("Impact parameter [#mum]");
1561 hd0D0_ls_fromDst_pm->SetYTitle("Entries");
1562
1563 TH1F *hd0D0VtxTrue_ls_fromDst_pm = new TH1F("hd0D0VtxTrue_ls_fromDstar_pm","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1564 hd0D0VtxTrue_ls_fromDst_pm->SetXTitle("Impact parameter [#mum]");
1565 hd0D0VtxTrue_ls_fromDst_pm->SetYTitle("Entries");
1566
1567 TH1F *hMCd0D0_ls_fromDst_pm = new TH1F("hMCd0D0_ls_fromDstar_pm","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1568 hMCd0D0_ls_fromDst_pm->SetXTitle("MC Impact parameter [#mum]");
1569 hMCd0D0_ls_fromDst_pm->SetYTitle("Entries");
1570
1571 TH1F *hd0D0_ls_fromDst_sb = new TH1F("hd0D0_ls_fromDstar_sb","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1572 hd0D0_ls_fromDst_sb->SetXTitle("Impact parameter [#mum]");
1573 hd0D0_ls_fromDst_sb->SetYTitle("Entries");
1574
1575 TH1F *hd0D0VtxTrue_ls_fromDst_sb = new TH1F("hd0D0VtxTrue_ls_fromDstar_sb","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1576 hd0D0VtxTrue_ls_fromDst_sb->SetXTitle("Impact parameter [#mum]");
1577 hd0D0VtxTrue_ls_fromDst_sb->SetYTitle("Entries");
1578
1579 TH1F *hMCd0D0_ls_fromDst_sb = new TH1F("hMCd0D0_ls_fromDstar_sb","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1580 hMCd0D0_ls_fromDst_sb->SetXTitle("MC Impact parameter [#mum]");
1581 hMCd0D0_ls_fromDst_sb->SetYTitle("Entries");
1582
1583 flist_LsCuts_FromDstar->Add(hd0D0_ls_fromDst_pm);
1584 flist_LsCuts_FromDstar->Add(hd0D0VtxTrue_ls_fromDst_pm);
1585 flist_LsCuts_FromDstar->Add(hMCd0D0_ls_fromDst_pm);
1586 flist_LsCuts_FromDstar->Add(hd0D0_ls_fromDst_sb);
1587 flist_LsCuts_FromDstar->Add(hd0D0VtxTrue_ls_fromDst_sb);
1588 flist_LsCuts_FromDstar->Add(hMCd0D0_ls_fromDst_sb);
1589
1590 TH1F **hd0D0pt_ls_fromDst_pm=new TH1F*[fnbins];
1591 TH1F **hMCd0D0pt_ls_fromDst_pm=new TH1F*[fnbins];
1592 TH1F ** hd0D0VtxTruept_ls_fromDst_pm=new TH1F*[fnbins];
1593 TH1F **hd0D0pt_ls_fromDst_sb=new TH1F*[fnbins];
1594 TH1F **hMCd0D0pt_ls_fromDst_sb=new TH1F*[fnbins];
1595 TH1F ** hd0D0VtxTruept_ls_fromDst_sb=new TH1F*[fnbins];
1596 namehist="hd0D0pt_ls_fromDstar_";
1597 titlehist="D^{0} impact par. plot, Loose Cuts, FromDStar, ";
1598 for(Int_t i=0;i<fnbins;i++){
1599 strnamept=namehist;
1600 strnamept.Append("PkMss_pt");
1601 strnamept+=i;
1602
1603 strtitlept=titlehist;
1604 strtitlept.Append(" Mass Peak, ");
1605 strtitlept+=fptbins[i];
1606 strtitlept.Append("<= pt <");
1607 strtitlept+=fptbins[i+1];
1608 strtitlept.Append(" [GeV/c]");
1609
1610 hd0D0pt_ls_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1611 hd0D0pt_ls_fromDst_pm[i]->SetXTitle("Impact parameter [#mum] ");
1612 hd0D0pt_ls_fromDst_pm[i]->SetYTitle("Entries");
1613 flist_LsCuts_FromDstar->Add(hd0D0pt_ls_fromDst_pm[i]);
1614
1615 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1616 hMCd0D0pt_ls_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1617 hMCd0D0pt_ls_fromDst_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1618 hMCd0D0pt_ls_fromDst_pm[i]->SetYTitle("Entries");
1619 flist_LsCuts_FromDstar->Add(hMCd0D0pt_ls_fromDst_pm[i]);
1620
1621
1622 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1623 hd0D0VtxTruept_ls_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1624 hd0D0VtxTruept_ls_fromDst_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1625 hd0D0VtxTruept_ls_fromDst_pm[i]->SetYTitle("Entries");
1626 flist_LsCuts_FromDstar->Add(hd0D0VtxTruept_ls_fromDst_pm[i]);
1627
1628 strnamept=namehist;
1629 strnamept.Append("SBMss_pt");
1630 strnamept+=i;
1631
1632 strtitlept=titlehist;
1633 strtitlept.Append(" Side Bands, ");
1634 strtitlept+=fptbins[i];
1635 strtitlept.Append("<= pt <");
1636 strtitlept+=fptbins[i+1];
1637 strtitlept.Append(" [GeV/c]");
1638
1639 hd0D0pt_ls_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1640 hd0D0pt_ls_fromDst_sb[i]->SetXTitle("Impact parameter [#mum] ");
1641 hd0D0pt_ls_fromDst_sb[i]->SetYTitle("Entries");
1642 flist_LsCuts_FromDstar->Add(hd0D0pt_ls_fromDst_sb[i]);
1643
1644 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1645 hMCd0D0pt_ls_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1646 hMCd0D0pt_ls_fromDst_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1647 hMCd0D0pt_ls_fromDst_sb[i]->SetYTitle("Entries");
1648 flist_LsCuts_FromDstar->Add(hMCd0D0pt_ls_fromDst_sb[i]);
1649
1650 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1651 hd0D0VtxTruept_ls_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1652 hd0D0VtxTruept_ls_fromDst_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1653 hd0D0VtxTruept_ls_fromDst_sb[i]->SetYTitle("Entries");
1654 flist_LsCuts_FromDstar->Add(hd0D0VtxTruept_ls_fromDst_sb[i]);
1655 }
1656
1657
1658 //############ LOOSE CUTS OTHER HISTOGRAMS ###########
1659 //
1660 //########### global properties histos ###########
1661
1662 TH2F *hCPtaVSd0d0_ls_other=new TH2F("hCPtaVSd0d0_ls_other","hCPtaVSd0d0_LooseCuts_other",1000,-100000.,100000.,100,0.,1.);
1663 TH1F *hSecVtxZ_ls_other=new TH1F("hSecVtxZ_ls_other","hSecVtxZ_LooseCuts_other",1000,-8.,8.);
1664 TH1F *hSecVtxX_ls_other=new TH1F("hSecVtxX_ls_other","hSecVtxX_LooseCuts_other",1000,-3000.,3000.);
1665 TH1F *hSecVtxY_ls_other=new TH1F("hSecVtxY_ls_other","hSecVtxY_LooseCuts_other",1000,-3000.,3000.);
1666 TH2F *hSecVtxXY_ls_other=new TH2F("hSecVtxXY_ls_other","hSecVtxXY_LooseCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
1667 TH1F *hSecVtxPhi_ls_other=new TH1F("hSecVtxPhi_ls_other","hSecVtxPhi_LooseCuts_other",180,-180.1,180.1);
1668 TH1F *hCPta_ls_other=new TH1F("hCPta_ls_other","hCPta_LooseCuts_other",100,0.,1.);
1669 TH1F *hd0xd0_ls_other=new TH1F("hd0xd0_ls_other","hd0xd0_LooseCuts_other",1000,-100000.,100000.);
1670 TH1F *hMassTrue_ls_other=new TH1F("hMassTrue_ls_other","D^{0} MC inv. Mass Loose Cuts other(All momenta)",600,1.600,2.200);
1671 TH1F *hMass_ls_other=new TH1F("hMass_ls_other","D^{0} inv. Mass Loose Cuts other (All momenta)",600,1.600,2.200);
1672 hMass_ls_other->Sumw2();
1673 TH1F *hMassTrue_ls_other_pm=new TH1F("hMassTrue_ls_other_pm","D^{0} MC inv. Mass Loose Cuts other, Mass Peak. (All momenta)",600,1.600,2.200);
1674 TH1F *hMass_ls_other_pm=new TH1F("hMass_ls_other_pm","D^{0} inv. Mass Loose Cuts other (All momenta), MassPeak",600,1.600,2.200);
1675 hMass_ls_other_pm->Sumw2();
1676 TH1F *hMassTrue_SB_ls_other=new TH1F("hMassTrue_ls_other_sb","D^{0} MC inv. Mass in Side Bands Loose Cuts other(All momenta)",600,1.600,2.200);
1677 TH1F *hMass_SB_ls_other=new TH1F("hMass_ls_other_sb","D^{0} inv. Mass in Side Bands Loose Cuts other (All momenta)",600,1.600,2.200);
1678 hMass_SB_ls_other->Sumw2();
1679
1680 flist_LsCuts_Other->Add(hCPtaVSd0d0_ls_other);
1681 flist_LsCuts_Other->Add(hSecVtxZ_ls_other);
1682 flist_LsCuts_Other->Add(hSecVtxY_ls_other);
1683 flist_LsCuts_Other->Add(hSecVtxX_ls_other);
1684 flist_LsCuts_Other->Add(hSecVtxXY_ls_other);
1685 flist_LsCuts_Other->Add(hSecVtxPhi_ls_other);
1686 flist_LsCuts_Other->Add(hCPta_ls_other);
1687 flist_LsCuts_Other->Add(hd0xd0_ls_other);
1688 flist_LsCuts_Other->Add(hMassTrue_ls_other);
1689 flist_LsCuts_Other->Add(hMass_ls_other);
1690 flist_LsCuts_Other->Add(hMassTrue_ls_other_pm);
1691 flist_LsCuts_Other->Add(hMass_ls_other_pm);
1692 flist_LsCuts_Other->Add(hMassTrue_SB_ls_other);
1693 flist_LsCuts_Other->Add(hMass_SB_ls_other);
1694
1695 //############# d0 D0 histos ###############à
1696 TH1F *hd0D0_ls_other_pm = new TH1F("hd0D0_ls_other_pm","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1697 hd0D0_ls_other_pm->SetXTitle("Impact parameter [#mum]");
1698 hd0D0_ls_other_pm->SetYTitle("Entries");
1699
1700 TH1F *hd0D0VtxTrue_ls_other_pm = new TH1F("hd0D0VtxTrue_ls_other_pm","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1701 hd0D0VtxTrue_ls_other_pm->SetXTitle("Impact parameter [#mum]");
1702 hd0D0VtxTrue_ls_other_pm->SetYTitle("Entries");
1703
1704 TH1F *hMCd0D0_ls_other_pm = new TH1F("hMCd0D0_ls_other_pm","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1705 hMCd0D0_ls_other_pm->SetXTitle("MC Impact parameter [#mum]");
1706 hMCd0D0_ls_other_pm->SetYTitle("Entries");
1707
1708 TH1F *hd0D0_ls_other_sb = new TH1F("hd0D0_ls_other_sb","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1709 hd0D0_ls_other_sb->SetXTitle("Impact parameter [#mum]");
1710 hd0D0_ls_other_sb->SetYTitle("Entries");
1711
1712 TH1F *hd0D0VtxTrue_ls_other_sb = new TH1F("hd0D0VtxTrue_ls_other_sb","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1713 hd0D0VtxTrue_ls_other_sb->SetXTitle("Impact parameter [#mum]");
1714 hd0D0VtxTrue_ls_other_sb->SetYTitle("Entries");
1715
1716 TH1F *hMCd0D0_ls_other_sb = new TH1F("hMCd0D0_ls_other_sb","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1717 hMCd0D0_ls_other_sb->SetXTitle("MC Impact parameter [#mum]");
1718 hMCd0D0_ls_other_sb->SetYTitle("Entries");
1719
1720 flist_LsCuts_Other->Add(hd0D0_ls_other_pm);
1721 flist_LsCuts_Other->Add(hd0D0VtxTrue_ls_other_pm);
1722 flist_LsCuts_Other->Add(hMCd0D0_ls_other_pm);
1723 flist_LsCuts_Other->Add(hd0D0_ls_other_sb);
1724 flist_LsCuts_Other->Add(hd0D0VtxTrue_ls_other_sb);
1725 flist_LsCuts_Other->Add(hMCd0D0_ls_other_sb);
1726
1727 TH1F **hd0D0pt_ls_other_pm=new TH1F*[fnbins];
1728 TH1F **hMCd0D0pt_ls_other_pm=new TH1F*[fnbins];
1729 TH1F ** hd0D0VtxTruept_ls_other_pm=new TH1F*[fnbins];
1730 TH1F **hd0D0pt_ls_other_sb=new TH1F*[fnbins];
1731 TH1F **hMCd0D0pt_ls_other_sb=new TH1F*[fnbins];
1732 TH1F ** hd0D0VtxTruept_ls_other_sb=new TH1F*[fnbins];
1733 namehist="hd0D0pt_ls_other_";
1734 titlehist="D^{0} impact par. plot, Loose Cuts, Other, ";
1735 for(Int_t i=0;i<fnbins;i++){
1736 strnamept=namehist;
1737 strnamept.Append("PkMss_pt");
1738 strnamept+=i;
1739
1740 strtitlept=titlehist;
1741 strtitlept.Append(" Mass Peak, ");
1742 strtitlept+=fptbins[i];
1743 strtitlept.Append("<= pt <");
1744 strtitlept+=fptbins[i+1];
1745 strtitlept.Append(" [GeV/c]");
1746
1747 hd0D0pt_ls_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1748 hd0D0pt_ls_other_pm[i]->SetXTitle("Impact parameter [#mum] ");
1749 hd0D0pt_ls_other_pm[i]->SetYTitle("Entries");
1750 flist_LsCuts_Other->Add(hd0D0pt_ls_other_pm[i]);
1751
1752 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1753 hMCd0D0pt_ls_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1754 hMCd0D0pt_ls_other_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1755 hMCd0D0pt_ls_other_pm[i]->SetYTitle("Entries");
1756 flist_LsCuts_Other->Add(hMCd0D0pt_ls_other_pm[i]);
1757
1758
1759 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1760 hd0D0VtxTruept_ls_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1761 hd0D0VtxTruept_ls_other_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1762 hd0D0VtxTruept_ls_other_pm[i]->SetYTitle("Entries");
1763 flist_LsCuts_Other->Add(hd0D0VtxTruept_ls_other_pm[i]);
1764
1765 strnamept=namehist;
1766 strnamept.Append("SBMss_pt");
1767 strnamept+=i;
1768
1769 strtitlept=titlehist;
1770 strtitlept.Append(" Side Bands, ");
1771 strtitlept+=fptbins[i];
1772 strtitlept.Append("<= pt <");
1773 strtitlept+=fptbins[i+1];
1774 strtitlept.Append(" [GeV/c]");
1775
1776 hd0D0pt_ls_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1777 hd0D0pt_ls_other_sb[i]->SetXTitle("Impact parameter [#mum] ");
1778 hd0D0pt_ls_other_sb[i]->SetYTitle("Entries");
1779 flist_LsCuts_Other->Add(hd0D0pt_ls_other_sb[i]);
1780
1781 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1782 hMCd0D0pt_ls_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1783 hMCd0D0pt_ls_other_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1784 hMCd0D0pt_ls_other_sb[i]->SetYTitle("Entries");
1785 flist_LsCuts_Other->Add(hMCd0D0pt_ls_other_sb[i]);
1786
1787 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1788 hd0D0VtxTruept_ls_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1789 hd0D0VtxTruept_ls_other_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1790 hd0D0VtxTruept_ls_other_sb[i]->SetYTitle("Entries");
1791 flist_LsCuts_Other->Add(hd0D0VtxTruept_ls_other_sb[i]);
1792 }
1793
1794
1795
1796
1797 //################################################################################################
1798 // #
1799 // HISTOS FOR TIGHT CUTS #
1800 // #
1801 //################################################################################################
1802
1803 //############ TIGHT CUTS SIGNAL HISTOGRAMS ###############
1804 //
1805 // ####### global properties histo ############
1806
1807 TH2F *hCPtaVSd0d0_tgh_sign=new TH2F("hCPtaVSd0d0_tgh_sign","hCPtaVSd0d0_TightCuts_Signal",1000,-100000.,100000.,100,0.,1.);
1808 TH1F *hSecVtxZ_tgh_sign=new TH1F("hSecVtxZ_tgh_sign","hSecVtxZ_TightCuts_Signal",1000,-8.,8.);
1809 TH1F *hSecVtxX_tgh_sign=new TH1F("hSecVtxX_tgh_sign","hSecVtxX_TightCuts_Signal",1000,-3000.,3000.);
1810 TH1F *hSecVtxY_tgh_sign=new TH1F("hSecVtxY_tgh_sign","hSecVtxY_TightCuts_Signal",1000,-3000.,3000.);
1811 TH2F *hSecVtxXY_tgh_sign=new TH2F("hSecVtxXY_tgh_sign","hSecVtxXY_TightCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
1812 TH1F *hSecVtxPhi_tgh_sign=new TH1F("hSecVtxPhi_tgh_sign","hSecVtxPhi_TightCuts_Signal",180,-180.1,180.1);
1813 TH1F *hCPta_tgh_sign=new TH1F("hCPta_tgh_sign","hCPta_TightCuts_Signal",100,0.,1.);
1814 TH1F *hd0xd0_tgh_sign=new TH1F("hd0xd0_tgh_sign","hd0xd0_TightCuts_Signal",1000,-100000.,100000.);
1815 TH1F *hMassTrue_tgh_sign=new TH1F("hMassTrue_tgh_sign","D^{0} MC inv. Mass Tight Cuts Signal(All momenta)",600,1.600,2.200);
1816 TH1F *hMass_tgh_sign=new TH1F("hMass_tgh_sign","D^{0} inv. Mass Tight Cuts Signal (All momenta)",600,1.600,2.200);
1817 hMass_tgh_sign->Sumw2();
1818 TH1F *hMassTrue_tgh_sign_pm=new TH1F("hMassTrue_tgh_sign_pm","D^{0} MC inv. Mass Tight Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
1819 TH1F *hMass_tgh_sign_pm=new TH1F("hMass_tgh_sign_pm","D^{0} inv. Mass Tight Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
1820 hMass_tgh_sign_pm->Sumw2();
1821 TH1F *hMassTrue_SB_tgh_sign=new TH1F("hMassTrue_tgh_sign_sb","D^{0} MC inv. Mass in Side Bands Tight Cuts Signal(All momenta)",600,1.600,2.200);
1822 TH1F *hMass_SB_tgh_sign=new TH1F("hMass_tgh_sign_sb","D^{0} inv. Mass in Side Bands Tight Cuts Signal (All momenta)",600,1.600,2.200);
1823 hMass_SB_tgh_sign->Sumw2();
1824
1825 flist_TghCuts_Signal->Add(hCPtaVSd0d0_tgh_sign);
1826 flist_TghCuts_Signal->Add(hSecVtxZ_tgh_sign);
1827 flist_TghCuts_Signal->Add(hSecVtxY_tgh_sign);
1828 flist_TghCuts_Signal->Add(hSecVtxX_tgh_sign);
1829 flist_TghCuts_Signal->Add(hSecVtxXY_tgh_sign);
1830 flist_TghCuts_Signal->Add(hSecVtxPhi_tgh_sign);
1831 flist_TghCuts_Signal->Add(hCPta_tgh_sign);
1832 flist_TghCuts_Signal->Add(hd0xd0_tgh_sign);
1833 flist_TghCuts_Signal->Add(hMassTrue_tgh_sign);
1834 flist_TghCuts_Signal->Add(hMass_tgh_sign);
1835 flist_TghCuts_Signal->Add(hMassTrue_tgh_sign_pm);
1836 flist_TghCuts_Signal->Add(hMass_tgh_sign_pm);
1837 flist_TghCuts_Signal->Add(hMassTrue_SB_tgh_sign);
1838 flist_TghCuts_Signal->Add(hMass_SB_tgh_sign);
1839
1840 // ####### d0 D0 histos ############
1841 TH1F *hd0D0_tgh_sign_pm = new TH1F("hd0D0_tgh_sign_pm","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1842 hd0D0_tgh_sign_pm->SetXTitle("Impact parameter [#mum]");
1843 hd0D0_tgh_sign_pm->SetYTitle("Entries");
1844
1845 TH1F *hd0D0VtxTrue_tgh_sign_pm = new TH1F("hd0D0VtxTrue_tgh_sign_pm","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1846 hd0D0VtxTrue_tgh_sign_pm->SetXTitle("Impact parameter [#mum]");
1847 hd0D0VtxTrue_tgh_sign_pm->SetYTitle("Entries");
1848
1849 TH1F *hMCd0D0_tgh_sign_pm = new TH1F("hMCd0D0_tgh_sign_pm","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1850 hMCd0D0_tgh_sign_pm->SetXTitle("MC Impact parameter [#mum]");
1851 hMCd0D0_tgh_sign_pm->SetYTitle("Entries");
1852
1853 TH1F *hd0D0_tgh_sign_sb = new TH1F("hd0D0_tgh_sign_sb","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1854 hd0D0_tgh_sign_sb->SetXTitle("Impact parameter [#mum]");
1855 hd0D0_tgh_sign_sb->SetYTitle("Entries");
1856
1857 TH1F *hd0D0VtxTrue_tgh_sign_sb = new TH1F("hd0D0VtxTrue_tgh_sign_sb","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1858 hd0D0VtxTrue_tgh_sign_sb->SetXTitle("Impact parameter [#mum]");
1859 hd0D0VtxTrue_tgh_sign_sb->SetYTitle("Entries");
1860
1861 TH1F *hMCd0D0_tgh_sign_sb = new TH1F("hMCd0D0_tgh_sign_sb","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
1862 hMCd0D0_tgh_sign_sb->SetXTitle("MC Impact parameter [#mum]");
1863 hMCd0D0_tgh_sign_sb->SetYTitle("Entries");
1864
1865 flist_TghCuts_Signal->Add(hd0D0_tgh_sign_pm);
1866 flist_TghCuts_Signal->Add(hd0D0VtxTrue_tgh_sign_pm);
1867 flist_TghCuts_Signal->Add(hMCd0D0_tgh_sign_pm);
1868 flist_TghCuts_Signal->Add(hd0D0_tgh_sign_sb);
1869 flist_TghCuts_Signal->Add(hd0D0VtxTrue_tgh_sign_sb);
1870 flist_TghCuts_Signal->Add(hMCd0D0_tgh_sign_sb);
1871
1872 TH1F **hd0D0pt_tgh_sign_pm=new TH1F*[fnbins];
1873 TH1F **hMCd0D0pt_tgh_sign_pm=new TH1F*[fnbins];
1874 TH1F ** hd0D0VtxTruept_tgh_sign_pm=new TH1F*[fnbins];
1875 TH1F **hd0D0pt_tgh_sign_sb=new TH1F*[fnbins];
1876 TH1F **hMCd0D0pt_tgh_sign_sb=new TH1F*[fnbins];
1877 TH1F ** hd0D0VtxTruept_tgh_sign_sb=new TH1F*[fnbins];
1878 namehist="hd0D0pt_tgh_sign_";
1879 titlehist="D^{0} impact par. plot, Tight Cuts, Signal, ";
1880 for(Int_t i=0;i<fnbins;i++){
1881 strnamept=namehist;
1882 strnamept.Append("PkMss_pt");
1883 strnamept+=i;
1884
1885 strtitlept=titlehist;
1886 strtitlept.Append(" Mass Peak, ");
1887 strtitlept+=fptbins[i];
1888 strtitlept.Append("<= pt <");
1889 strtitlept+=fptbins[i+1];
1890 strtitlept.Append(" [GeV/c]");
1891
1892 hd0D0pt_tgh_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1893 hd0D0pt_tgh_sign_pm[i]->SetXTitle("Impact parameter [#mum] ");
1894 hd0D0pt_tgh_sign_pm[i]->SetYTitle("Entries");
1895 flist_TghCuts_Signal->Add(hd0D0pt_tgh_sign_pm[i]);
1896
1897 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1898 hMCd0D0pt_tgh_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1899 hMCd0D0pt_tgh_sign_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
1900 hMCd0D0pt_tgh_sign_pm[i]->SetYTitle("Entries");
1901 flist_TghCuts_Signal->Add(hMCd0D0pt_tgh_sign_pm[i]);
1902
1903
1904 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1905 hd0D0VtxTruept_tgh_sign_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1906 hd0D0VtxTruept_tgh_sign_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1907 hd0D0VtxTruept_tgh_sign_pm[i]->SetYTitle("Entries");
1908 flist_TghCuts_Signal->Add(hd0D0VtxTruept_tgh_sign_pm[i]);
1909
1910 strnamept=namehist;
1911 strnamept.Append("SBMss_pt");
1912 strnamept+=i;
1913
1914 strtitlept=titlehist;
1915 strtitlept.Append(" Side Bands, ");
1916 strtitlept+=fptbins[i];
1917 strtitlept.Append("<= pt <");
1918 strtitlept+=fptbins[i+1];
1919 strtitlept.Append(" [GeV/c]");
1920
1921 hd0D0pt_tgh_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1922 hd0D0pt_tgh_sign_sb[i]->SetXTitle("Impact parameter [#mum] ");
1923 hd0D0pt_tgh_sign_sb[i]->SetYTitle("Entries");
1924 flist_TghCuts_Signal->Add(hd0D0pt_tgh_sign_sb[i]);
1925
1926 strnamept.ReplaceAll("hd0D0","hMCd0D0");
1927 hMCd0D0pt_tgh_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1928 hMCd0D0pt_tgh_sign_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
1929 hMCd0D0pt_tgh_sign_sb[i]->SetYTitle("Entries");
1930 flist_TghCuts_Signal->Add(hMCd0D0pt_tgh_sign_sb[i]);
1931
1932 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
1933 hd0D0VtxTruept_tgh_sign_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1934 hd0D0VtxTruept_tgh_sign_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1935 hd0D0VtxTruept_tgh_sign_sb[i]->SetYTitle("Entries");
1936 flist_TghCuts_Signal->Add(hd0D0VtxTruept_tgh_sign_sb[i]);
1937 }
1938
1939
1940 //############ TIGHT CUTS BACKGROUND HISTOGRAMS ###########
1941 //
1942 // ######## global properties histos #######
1943 TH2F *hCPtaVSd0d0_tgh_back=new TH2F("hCPtaVSd0d0_tgh_back","hCPtaVSd0d0_TightCuts_Background",1000,-100000.,100000.,100,0.,1.);
1944 TH1F *hSecVtxZ_tgh_back=new TH1F("hSecVtxZ_tgh_back","hSecVtxZ_TightCuts_Background",1000,-8.,8.);
1945 TH1F *hSecVtxX_tgh_back=new TH1F("hSecVtxX_tgh_back","hSecVtxX_TightCuts_Background",1000,-3000.,3000.);
1946 TH1F *hSecVtxY_tgh_back=new TH1F("hSecVtxY_tgh_back","hSecVtxY_TightCuts_Background",1000,-3000.,3000.);
1947 TH2F *hSecVtxXY_tgh_back=new TH2F("hSecVtxXY_tgh_back","hSecVtxXY_TightCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
1948 TH1F *hSecVtxPhi_tgh_back=new TH1F("hSecVtxPhi_tgh_back","hSecVtxPhi_TightCuts_Background",180,-180.1,180.1);
1949 TH1F *hCPta_tgh_back=new TH1F("hCPta_tgh_back","hCPta_TightCuts_Background",100,0.,1.);
1950 TH1F *hd0xd0_tgh_back=new TH1F("hd0xd0_tgh_back","hd0xd0_TightCuts_Background",1000,-100000.,100000.);
1951 TH1F *hMassTrue_tgh_back=new TH1F("hMassTrue_tgh_back","D^{0} MC inv. Mass Tight Cuts Background(All momenta)",600,1.600,2.200);
1952 TH1F *hMass_tgh_back=new TH1F("hMass_tgh_back","D^{0} inv. Mass Tight Cuts Background (All momenta)",600,1.600,2.200);
1953 hMass_tgh_back->Sumw2();
1954 TH1F *hMassTrue_tgh_back_pm=new TH1F("hMassTrue_tgh_back_pm","D^{0} MC inv. Mass Tight Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
1955 TH1F *hMass_tgh_back_pm=new TH1F("hMass_tgh_back_pm","D^{0} inv. Mass Tight Cuts Background (All momenta), MassPeak",600,1.600,2.200);
1956 hMass_tgh_back_pm->Sumw2();
1957 TH1F *hMassTrue_SB_tgh_back=new TH1F("hMassTrue_tgh_back_sb","D^{0} MC inv. Mass in Side Bands Tight Cuts Backgrround(All momenta)",600,1.600,2.200);
1958 TH1F *hMass_SB_tgh_back=new TH1F("hMass_tgh_back_sb","D^{0} inv. Mass in Side Bands Tight Cuts Background (All momenta)",600,1.600,2.200);
1959 hMass_SB_tgh_back->Sumw2();
1960
1961 flist_TghCuts_Back->Add(hCPtaVSd0d0_tgh_back);
1962 flist_TghCuts_Back->Add(hSecVtxZ_tgh_back);
1963 flist_TghCuts_Back->Add(hSecVtxY_tgh_back);
1964 flist_TghCuts_Back->Add(hSecVtxX_tgh_back);
1965 flist_TghCuts_Back->Add(hSecVtxXY_tgh_back);
1966 flist_TghCuts_Back->Add(hSecVtxPhi_tgh_back);
1967 flist_TghCuts_Back->Add(hCPta_tgh_back);
1968 flist_TghCuts_Back->Add(hd0xd0_tgh_back);
1969 flist_TghCuts_Back->Add(hMassTrue_tgh_back);
1970 flist_TghCuts_Back->Add(hMass_tgh_back);
1971 flist_TghCuts_Back->Add(hMassTrue_tgh_back_pm);
1972 flist_TghCuts_Back->Add(hMass_tgh_back_pm);
1973 flist_TghCuts_Back->Add(hMassTrue_SB_tgh_back);
1974 flist_TghCuts_Back->Add(hMass_SB_tgh_back);
1975
1976
1977 // ####### d0 D0 histos ############
1978
1979 TH1F *hd0D0_tgh_back_pm = new TH1F("hd0D0_tgh_back_pm","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1980 hd0D0_tgh_back_pm->SetXTitle("Impact parameter [#mum]");
1981 hd0D0_tgh_back_pm->SetYTitle("Entries");
1982
1983 TH1F *hd0D0VtxTrue_tgh_back_pm = new TH1F("hd0D0VtxTrue_tgh_back_pm","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1984 hd0D0VtxTrue_tgh_back_pm->SetXTitle("Impact parameter [#mum]");
1985 hd0D0VtxTrue_tgh_back_pm->SetYTitle("Entries");
1986
1987 TH1F *hMCd0D0_tgh_back_pm = new TH1F("hMCd0D0_tgh_back_pm","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1988 hMCd0D0_tgh_back_pm->SetXTitle("MC Impact parameter [#mum]");
1989 hMCd0D0_tgh_back_pm->SetYTitle("Entries");
1990
1991 TH1F *hd0D0_tgh_back_sb = new TH1F("hd0D0_tgh_back_sb","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1992 hd0D0_tgh_back_sb->SetXTitle("Impact parameter [#mum]");
1993 hd0D0_tgh_back_sb->SetYTitle("Entries");
1994
1995 TH1F *hd0D0VtxTrue_tgh_back_sb = new TH1F("hd0D0VtxTrue_tgh_back_sb","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1996 hd0D0VtxTrue_tgh_back_sb->SetXTitle("Impact parameter [#mum]");
1997 hd0D0VtxTrue_tgh_back_sb->SetYTitle("Entries");
1998
1999 TH1F *hMCd0D0_tgh_back_sb = new TH1F("hMCd0D0_tgh_back_sb","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2000 hMCd0D0_tgh_back_sb->SetXTitle("MC Impact parameter [#mum]");
2001 hMCd0D0_tgh_back_sb->SetYTitle("Entries");
2002
2003 flist_TghCuts_Back->Add(hd0D0_tgh_back_pm);
2004 flist_TghCuts_Back->Add(hd0D0VtxTrue_tgh_back_pm);
2005 flist_TghCuts_Back->Add(hMCd0D0_tgh_back_pm);
2006 flist_TghCuts_Back->Add(hd0D0_tgh_back_sb);
2007 flist_TghCuts_Back->Add(hd0D0VtxTrue_tgh_back_sb);
2008 flist_TghCuts_Back->Add(hMCd0D0_tgh_back_sb);
2009
2010 TH1F **hd0D0pt_tgh_back_pm=new TH1F*[fnbins];
2011 TH1F **hMCd0D0pt_tgh_back_pm=new TH1F*[fnbins];
2012 TH1F ** hd0D0VtxTruept_tgh_back_pm=new TH1F*[fnbins];
2013 TH1F **hd0D0pt_tgh_back_sb=new TH1F*[fnbins];
2014 TH1F **hMCd0D0pt_tgh_back_sb=new TH1F*[fnbins];
2015 TH1F ** hd0D0VtxTruept_tgh_back_sb=new TH1F*[fnbins];
2016 namehist="hd0D0pt_tgh_back_";
2017 titlehist="D^{0} impact par. plot, Tight Cuts, Background, ";
2018 for(Int_t i=0;i<fnbins;i++){
2019 strnamept=namehist;
2020 strnamept.Append("PkMss_pt");
2021 strnamept+=i;
2022
2023 strtitlept=titlehist;
2024 strtitlept.Append(" Mass Peak, ");
2025 strtitlept+=fptbins[i];
2026 strtitlept.Append("<= pt <");
2027 strtitlept+=fptbins[i+1];
2028 strtitlept.Append(" [GeV/c]");
2029
2030 hd0D0pt_tgh_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2031 hd0D0pt_tgh_back_pm[i]->SetXTitle("Impact parameter [#mum] ");
2032 hd0D0pt_tgh_back_pm[i]->SetYTitle("Entries");
2033 flist_TghCuts_Back->Add(hd0D0pt_tgh_back_pm[i]);
2034
2035 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2036 hMCd0D0pt_tgh_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2037 hMCd0D0pt_tgh_back_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
2038 hMCd0D0pt_tgh_back_pm[i]->SetYTitle("Entries");
2039 flist_TghCuts_Back->Add(hMCd0D0pt_tgh_back_pm[i]);
2040
2041
2042 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2043 hd0D0VtxTruept_tgh_back_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2044 hd0D0VtxTruept_tgh_back_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2045 hd0D0VtxTruept_tgh_back_pm[i]->SetYTitle("Entries");
2046 flist_TghCuts_Back->Add(hd0D0VtxTruept_tgh_back_pm[i]);
2047
2048 strnamept=namehist;
2049 strnamept.Append("SBMss_pt");
2050 strnamept+=i;
2051
2052 strtitlept=titlehist;
2053 strtitlept.Append(" Side Bands, ");
2054 strtitlept+=fptbins[i];
2055 strtitlept.Append("<= pt <");
2056 strtitlept+=fptbins[i+1];
2057 strtitlept.Append(" [GeV/c]");
2058
2059 hd0D0pt_tgh_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2060 hd0D0pt_tgh_back_sb[i]->SetXTitle("Impact parameter [#mum] ");
2061 hd0D0pt_tgh_back_sb[i]->SetYTitle("Entries");
2062 flist_TghCuts_Back->Add(hd0D0pt_tgh_back_sb[i]);
2063
2064 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2065 hMCd0D0pt_tgh_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2066 hMCd0D0pt_tgh_back_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
2067 hMCd0D0pt_tgh_back_sb[i]->SetYTitle("Entries");
2068 flist_TghCuts_Back->Add(hMCd0D0pt_tgh_back_sb[i]);
2069
2070 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2071 hd0D0VtxTruept_tgh_back_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2072 hd0D0VtxTruept_tgh_back_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2073 hd0D0VtxTruept_tgh_back_sb[i]->SetYTitle("Entries");
2074 flist_TghCuts_Back->Add(hd0D0VtxTruept_tgh_back_sb[i]);
2075 }
2076
2077
2078
2079 //############ TIGHT CUTS FROMB HISTOGRAMS ###########
2080 //
2081 //####### global properties histos
2082
2083 TH2F *hCPtaVSd0d0_tgh_fromB=new TH2F("hCPtaVSd0d0_tgh_fromB","hCPtaVSd0d0_TightCuts_FromB",1000,-100000.,100000.,100,0.,1.);
2084 TH1F *hSecVtxZ_tgh_fromB=new TH1F("hSecVtxZ_tgh_fromB","hSecVtxZ_TightCuts_FromB",1000,-8.,8.);
2085 TH1F *hSecVtxX_tgh_fromB=new TH1F("hSecVtxX_tgh_fromB","hSecVtxX_TightCuts_FromB",1000,-3000.,3000.);
2086 TH1F *hSecVtxY_tgh_fromB=new TH1F("hSecVtxY_tgh_fromB","hSecVtxY_TightCuts_FromB",1000,-3000.,3000.);
2087 TH2F *hSecVtxXY_tgh_fromB=new TH2F("hSecVtxXY_tgh_fromB","hSecVtxXY_TightCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
2088 TH1F *hSecVtxPhi_tgh_fromB=new TH1F("hSecVtxPhi_tgh_fromB","hSecVtxPhi_TightCuts_FromB",180,-180.1,180.1);
2089 TH1F *hCPta_tgh_fromB=new TH1F("hCPta_tgh_fromB","hCPta_TightCuts_FromB",100,0.,1.);
2090 TH1F *hd0xd0_tgh_fromB=new TH1F("hd0xd0_tgh_fromB","hd0xd0_TightCuts_FromB",1000,-100000.,100000.);
2091 TH1F *hMassTrue_tgh_fromB=new TH1F("hMassTrue_tgh_fromB","D^{0} MC inv. Mass Tight Cuts FromB(All momenta)",600,1.600,2.200);
2092 TH1F *hMass_tgh_fromB=new TH1F("hMass_tgh_fromB","D^{0} inv. Mass Tight Cuts FromB (All momenta)",600,1.600,2.200);
2093 hMass_tgh_fromB->Sumw2();
2094 TH1F *hMassTrue_tgh_fromB_pm=new TH1F("hMassTrue_tgh_fromB_pm","D^{0} MC inv. Mass Tight Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
2095 TH1F *hMass_tgh_fromB_pm=new TH1F("hMass_tgh_fromB_pm","D^{0} inv. Mass Tight Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
2096 hMass_tgh_fromB_pm->Sumw2();
2097 TH1F *hMassTrue_SB_tgh_fromB=new TH1F("hMassTrue_tgh_fromB_sb","D^{0} MC inv. Mass in Side Bands Tight Cuts FromB(All momenta)",600,1.600,2.200);
2098 TH1F *hMass_SB_tgh_fromB=new TH1F("hMass_tgh_fromB_sb","D^{0} inv. Mass in Side Bands Tight Cuts FromB (All momenta)",600,1.600,2.200);
2099 hMass_SB_tgh_fromB->Sumw2();
2100
2101 flist_TghCuts_FromB->Add(hCPtaVSd0d0_tgh_fromB);
2102 flist_TghCuts_FromB->Add(hSecVtxZ_tgh_fromB);
2103 flist_TghCuts_FromB->Add(hSecVtxY_tgh_fromB);
2104 flist_TghCuts_FromB->Add(hSecVtxX_tgh_fromB);
2105 flist_TghCuts_FromB->Add(hSecVtxXY_tgh_fromB);
2106 flist_TghCuts_FromB->Add(hSecVtxPhi_tgh_fromB);
2107 flist_TghCuts_FromB->Add(hCPta_tgh_fromB);
2108 flist_TghCuts_FromB->Add(hd0xd0_tgh_fromB);
2109 flist_TghCuts_FromB->Add(hMassTrue_tgh_fromB);
2110 flist_TghCuts_FromB->Add(hMass_tgh_fromB);
2111 flist_TghCuts_FromB->Add(hMassTrue_tgh_fromB_pm);
2112 flist_TghCuts_FromB->Add(hMass_tgh_fromB_pm);
2113 flist_TghCuts_FromB->Add(hMassTrue_SB_tgh_fromB);
2114 flist_TghCuts_FromB->Add(hMass_SB_tgh_fromB);
2115
2116 // ######### d0 D0 histos ##############
2117 TH1F *hd0D0_tgh_fromB_pm = new TH1F("hd0D0_tgh_fromB_pm","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2118 hd0D0_tgh_fromB_pm->SetXTitle("Impact parameter [#mum]");
2119 hd0D0_tgh_fromB_pm->SetYTitle("Entries");
2120
2121 TH1F *hd0D0VtxTrue_tgh_fromB_pm = new TH1F("hd0D0VtxTrue_tgh_fromB_pm","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2122 hd0D0VtxTrue_tgh_fromB_pm->SetXTitle("Impact parameter [#mum]");
2123 hd0D0VtxTrue_tgh_fromB_pm->SetYTitle("Entries");
2124
2125 TH1F *hMCd0D0_tgh_fromB_pm = new TH1F("hMCd0D0_tgh_fromB_pm","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2126 hMCd0D0_tgh_fromB_pm->SetXTitle("MC Impact parameter [#mum]");
2127 hMCd0D0_tgh_fromB_pm->SetYTitle("Entries");
2128
2129 TH1F *hd0D0_tgh_fromB_sb = new TH1F("hd0D0_tgh_fromB_sb","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2130 hd0D0_tgh_fromB_sb->SetXTitle("Impact parameter [#mum]");
2131 hd0D0_tgh_fromB_sb->SetYTitle("Entries");
2132
2133 TH1F *hd0D0VtxTrue_tgh_fromB_sb = new TH1F("hd0D0VtxTrue_tgh_fromB_sb","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2134 hd0D0VtxTrue_tgh_fromB_sb->SetXTitle("Impact parameter [#mum]");
2135 hd0D0VtxTrue_tgh_fromB_sb->SetYTitle("Entries");
2136
2137 TH1F *hMCd0D0_tgh_fromB_sb = new TH1F("hMCd0D0_tgh_fromB_sb","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2138 hMCd0D0_tgh_fromB_sb->SetXTitle("MC Impact parameter [#mum]");
2139 hMCd0D0_tgh_fromB_sb->SetYTitle("Entries");
2140
2141 flist_TghCuts_FromB->Add(hd0D0_tgh_fromB_pm);
2142 flist_TghCuts_FromB->Add(hd0D0VtxTrue_tgh_fromB_pm);
2143 flist_TghCuts_FromB->Add(hMCd0D0_tgh_fromB_pm);
2144 flist_TghCuts_FromB->Add(hd0D0_tgh_fromB_sb);
2145 flist_TghCuts_FromB->Add(hd0D0VtxTrue_tgh_fromB_sb);
2146 flist_TghCuts_FromB->Add(hMCd0D0_tgh_fromB_sb);
2147
2148 TH1F **hd0D0pt_tgh_fromB_pm=new TH1F*[fnbins];
2149 TH1F **hMCd0D0pt_tgh_fromB_pm=new TH1F*[fnbins];
2150 TH1F ** hd0D0VtxTruept_tgh_fromB_pm=new TH1F*[fnbins];
2151 TH1F **hd0D0pt_tgh_fromB_sb=new TH1F*[fnbins];
2152 TH1F **hMCd0D0pt_tgh_fromB_sb=new TH1F*[fnbins];
2153 TH1F ** hd0D0VtxTruept_tgh_fromB_sb=new TH1F*[fnbins];
2154 namehist="hd0D0pt_tgh_fromB_";
2155 titlehist="D^{0} impact par. plot, Tight Cuts, FromB, ";
2156 for(Int_t i=0;i<fnbins;i++){
2157 strnamept=namehist;
2158 strnamept.Append("PkMss_pt");
2159 strnamept+=i;
2160
2161 strtitlept=titlehist;
2162 strtitlept.Append(" Mass Peak, ");
2163 strtitlept+=fptbins[i];
2164 strtitlept.Append("<= pt <");
2165 strtitlept+=fptbins[i+1];
2166 strtitlept.Append(" [GeV/c]");
2167
2168 hd0D0pt_tgh_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2169 hd0D0pt_tgh_fromB_pm[i]->SetXTitle("Impact parameter [#mum] ");
2170 hd0D0pt_tgh_fromB_pm[i]->SetYTitle("Entries");
2171 flist_TghCuts_FromB->Add(hd0D0pt_tgh_fromB_pm[i]);
2172
2173 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2174 hMCd0D0pt_tgh_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2175 hMCd0D0pt_tgh_fromB_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
2176 hMCd0D0pt_tgh_fromB_pm[i]->SetYTitle("Entries");
2177 flist_TghCuts_FromB->Add(hMCd0D0pt_tgh_fromB_pm[i]);
2178
2179
2180 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2181 hd0D0VtxTruept_tgh_fromB_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2182 hd0D0VtxTruept_tgh_fromB_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2183 hd0D0VtxTruept_tgh_fromB_pm[i]->SetYTitle("Entries");
2184 flist_TghCuts_FromB->Add(hd0D0VtxTruept_tgh_fromB_pm[i]);
2185
2186 strnamept=namehist;
2187 strnamept.Append("SBMss_pt");
2188 strnamept+=i;
2189
2190 strtitlept=titlehist;
2191 strtitlept.Append(" Side Bands, ");
2192 strtitlept+=fptbins[i];
2193 strtitlept.Append("<= pt <");
2194 strtitlept+=fptbins[i+1];
2195 strtitlept.Append(" [GeV/c]");
2196
2197 hd0D0pt_tgh_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2198 hd0D0pt_tgh_fromB_sb[i]->SetXTitle("Impact parameter [#mum] ");
2199 hd0D0pt_tgh_fromB_sb[i]->SetYTitle("Entries");
2200 flist_TghCuts_FromB->Add(hd0D0pt_tgh_fromB_sb[i]);
2201
2202 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2203 hMCd0D0pt_tgh_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2204 hMCd0D0pt_tgh_fromB_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
2205 hMCd0D0pt_tgh_fromB_sb[i]->SetYTitle("Entries");
2206 flist_TghCuts_FromB->Add(hMCd0D0pt_tgh_fromB_sb[i]);
2207
2208 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2209 hd0D0VtxTruept_tgh_fromB_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2210 hd0D0VtxTruept_tgh_fromB_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2211 hd0D0VtxTruept_tgh_fromB_sb[i]->SetYTitle("Entries");
2212 flist_TghCuts_FromB->Add(hd0D0VtxTruept_tgh_fromB_sb[i]);
2213 }
2214
2215
2216
2217 //############ TIGHT CUTS FROM DSTAR HISTOGRAMS ###########
2218 //
2219 //############## global properties histos
2220 TH2F *hCPtaVSd0d0_tgh_fromDstar=new TH2F("hCPtaVSd0d0_tgh_fromDstar","hCPtaVSd0d0_TightCuts_FromDStar",1000,-100000.,100000.,100,0.,1.);
2221 TH1F *hSecVtxZ_tgh_fromDstar=new TH1F("hSecVtxZ_tgh_fromDstar","hSecVtxZ_TightCuts_FromDStar",1000,-8.,8.);
2222 TH1F *hSecVtxX_tgh_fromDstar=new TH1F("hSecVtxX_tgh_fromDstar","hSecVtxX_TightCuts_FromDStar",1000,-3000.,3000.);
2223 TH1F *hSecVtxY_tgh_fromDstar=new TH1F("hSecVtxY_tgh_fromDstar","hSecVtxY_TightCuts_FromDStar",1000,-3000.,3000.);
2224 TH2F *hSecVtxXY_tgh_fromDstar=new TH2F("hSecVtxXY_tgh_fromDstar","hSecVtxXY_TightCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
2225 TH1F *hSecVtxPhi_tgh_fromDstar=new TH1F("hSecVtxPhi_tgh_fromDstar","hSecVtxPhi_TightCuts_FromDStar",180,-180.1,180.1);
2226 TH1F *hCPta_tgh_fromDstar=new TH1F("hCPta_tgh_fromDstar","hCPta_TightCuts_FromDStar",100,0.,1.);
2227 TH1F *hd0xd0_tgh_fromDstar=new TH1F("hd0xd0_tgh_fromDstar","hd0xd0_TightCuts_FromDStar",1000,-100000.,100000.);
2228 TH1F *hMassTrue_tgh_fromDstar=new TH1F("hMassTrue_tgh_fromDstar","D^{0} MC inv. Mass Tight Cuts FromDStar(All momenta)",600,1.600,2.200);
2229 TH1F *hMass_tgh_fromDstar=new TH1F("hMass_tgh_fromDstar","D^{0} inv. Mass Tight Cuts FromDStar (All momenta)",600,1.600,2.200);
2230 hMass_tgh_fromDstar->Sumw2();
2231 TH1F *hMassTrue_tgh_fromDstar_pm=new TH1F("hMassTrue_tgh_fromDstar_pm","D^{0} MC inv. Mass Tight Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
2232 TH1F *hMass_tgh_fromDstar_pm=new TH1F("hMass_tgh_fromDstar_pm","D^{0} inv. Mass Tight Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
2233 hMass_tgh_fromDstar_pm->Sumw2();
2234 TH1F *hMassTrue_SB_tgh_fromDstar=new TH1F("hMassTrue_tgh_fromDstar_sb","D^{0} MC inv. Mass in Side Bands Tight Cuts FromDStar(All momenta)",600,1.600,2.200);
2235 TH1F *hMass_SB_tgh_fromDstar=new TH1F("hMass_tgh_fromDstar_sb","D^{0} inv. Mass in Side Bands Tight Cuts FromDStar (All momenta)",600,1.600,2.200);
2236 hMass_SB_tgh_fromDstar->Sumw2();
2237
2238 flist_TghCuts_FromDstar->Add(hCPtaVSd0d0_tgh_fromDstar);
2239 flist_TghCuts_FromDstar->Add(hSecVtxZ_tgh_fromDstar);
2240 flist_TghCuts_FromDstar->Add(hSecVtxY_tgh_fromDstar);
2241 flist_TghCuts_FromDstar->Add(hSecVtxX_tgh_fromDstar);
2242 flist_TghCuts_FromDstar->Add(hSecVtxXY_tgh_fromDstar);
2243 flist_TghCuts_FromDstar->Add(hSecVtxPhi_tgh_fromDstar);
2244 flist_TghCuts_FromDstar->Add(hCPta_tgh_fromDstar);
2245 flist_TghCuts_FromDstar->Add(hd0xd0_tgh_fromDstar);
2246 flist_TghCuts_FromDstar->Add(hMassTrue_tgh_fromDstar);
2247 flist_TghCuts_FromDstar->Add(hMass_tgh_fromDstar);
2248 flist_TghCuts_FromDstar->Add(hMassTrue_tgh_fromDstar_pm);
2249 flist_TghCuts_FromDstar->Add(hMass_tgh_fromDstar_pm);
2250 flist_TghCuts_FromDstar->Add(hMassTrue_SB_tgh_fromDstar);
2251 flist_TghCuts_FromDstar->Add(hMass_SB_tgh_fromDstar);
2252
2253 //########## d0 D0 histos #############
2254 TH1F *hd0D0_tgh_fromDst_pm = new TH1F("hd0D0_tgh_fromDstar_pm","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2255 hd0D0_tgh_fromDst_pm->SetXTitle("Impact parameter [#mum]");
2256 hd0D0_tgh_fromDst_pm->SetYTitle("Entries");
2257
2258 TH1F *hd0D0VtxTrue_tgh_fromDst_pm = new TH1F("hd0D0VtxTrue_tgh_fromDstar_pm","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2259 hd0D0VtxTrue_tgh_fromDst_pm->SetXTitle("Impact parameter [#mum]");
2260 hd0D0VtxTrue_tgh_fromDst_pm->SetYTitle("Entries");
2261
2262 TH1F *hMCd0D0_tgh_fromDst_pm = new TH1F("hMCd0D0_tgh_fromDstar_pm","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2263 hMCd0D0_tgh_fromDst_pm->SetXTitle("MC Impact parameter [#mum]");
2264 hMCd0D0_tgh_fromDst_pm->SetYTitle("Entries");
2265
2266 TH1F *hd0D0_tgh_fromDst_sb = new TH1F("hd0D0_tgh_fromDstar_sb","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2267 hd0D0_tgh_fromDst_sb->SetXTitle("Impact parameter [#mum]");
2268 hd0D0_tgh_fromDst_sb->SetYTitle("Entries");
2269
2270 TH1F *hd0D0VtxTrue_tgh_fromDst_sb = new TH1F("hd0D0VtxTrue_tgh_fromDstar_sb","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2271 hd0D0VtxTrue_tgh_fromDst_sb->SetXTitle("Impact parameter [#mum]");
2272 hd0D0VtxTrue_tgh_fromDst_sb->SetYTitle("Entries");
2273
2274 TH1F *hMCd0D0_tgh_fromDst_sb = new TH1F("hMCd0D0_tgh_fromDstar_sb","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
2275 hMCd0D0_tgh_fromDst_sb->SetXTitle("MC Impact parameter [#mum]");
2276 hMCd0D0_tgh_fromDst_sb->SetYTitle("Entries");
2277
2278 flist_TghCuts_FromDstar->Add(hd0D0_tgh_fromDst_pm);
2279 flist_TghCuts_FromDstar->Add(hd0D0VtxTrue_tgh_fromDst_pm);
2280 flist_TghCuts_FromDstar->Add(hMCd0D0_tgh_fromDst_pm);
2281 flist_TghCuts_FromDstar->Add(hd0D0_tgh_fromDst_sb);
2282 flist_TghCuts_FromDstar->Add(hd0D0VtxTrue_tgh_fromDst_sb);
2283 flist_TghCuts_FromDstar->Add(hMCd0D0_tgh_fromDst_sb);
2284
2285 TH1F **hd0D0pt_tgh_fromDst_pm=new TH1F*[fnbins];
2286 TH1F **hMCd0D0pt_tgh_fromDst_pm=new TH1F*[fnbins];
2287 TH1F ** hd0D0VtxTruept_tgh_fromDst_pm=new TH1F*[fnbins];
2288 TH1F **hd0D0pt_tgh_fromDst_sb=new TH1F*[fnbins];
2289 TH1F **hMCd0D0pt_tgh_fromDst_sb=new TH1F*[fnbins];
2290 TH1F ** hd0D0VtxTruept_tgh_fromDst_sb=new TH1F*[fnbins];
2291 namehist="hd0D0pt_tgh_fromDstar_";
2292 titlehist="D^{0} impact par. plot, Tight Cuts, FromDStar, ";
2293 for(Int_t i=0;i<fnbins;i++){
2294 strnamept=namehist;
2295 strnamept.Append("PkMss_pt");
2296 strnamept+=i;
2297
2298 strtitlept=titlehist;
2299 strtitlept.Append(" Mass Peak, ");
2300 strtitlept+=fptbins[i];
2301 strtitlept.Append("<= pt <");
2302 strtitlept+=fptbins[i+1];
2303 strtitlept.Append(" [GeV/c]");
2304
2305 hd0D0pt_tgh_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2306 hd0D0pt_tgh_fromDst_pm[i]->SetXTitle("Impact parameter [#mum] ");
2307 hd0D0pt_tgh_fromDst_pm[i]->SetYTitle("Entries");
2308 flist_TghCuts_FromDstar->Add(hd0D0pt_tgh_fromDst_pm[i]);
2309
2310 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2311 hMCd0D0pt_tgh_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2312 hMCd0D0pt_tgh_fromDst_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
2313 hMCd0D0pt_tgh_fromDst_pm[i]->SetYTitle("Entries");
2314 flist_TghCuts_FromDstar->Add(hMCd0D0pt_tgh_fromDst_pm[i]);
2315
2316
2317 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2318 hd0D0VtxTruept_tgh_fromDst_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2319 hd0D0VtxTruept_tgh_fromDst_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2320 hd0D0VtxTruept_tgh_fromDst_pm[i]->SetYTitle("Entries");
2321 flist_TghCuts_FromDstar->Add(hd0D0VtxTruept_tgh_fromDst_pm[i]);
2322
2323 strnamept=namehist;
2324 strnamept.Append("SBMss_pt");
2325 strnamept+=i;
2326
2327 strtitlept=titlehist;
2328 strtitlept.Append(" Side Bands, ");
2329 strtitlept+=fptbins[i];
2330 strtitlept.Append("<= pt <");
2331 strtitlept+=fptbins[i+1];
2332 strtitlept.Append(" [GeV/c]");
2333
2334 hd0D0pt_tgh_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2335 hd0D0pt_tgh_fromDst_sb[i]->SetXTitle("Impact parameter [#mum] ");
2336 hd0D0pt_tgh_fromDst_sb[i]->SetYTitle("Entries");
2337 flist_TghCuts_FromDstar->Add(hd0D0pt_tgh_fromDst_sb[i]);
2338
2339 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2340 hMCd0D0pt_tgh_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2341 hMCd0D0pt_tgh_fromDst_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
2342 hMCd0D0pt_tgh_fromDst_sb[i]->SetYTitle("Entries");
2343 flist_TghCuts_FromDstar->Add(hMCd0D0pt_tgh_fromDst_sb[i]);
2344
2345 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2346 hd0D0VtxTruept_tgh_fromDst_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2347 hd0D0VtxTruept_tgh_fromDst_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2348 hd0D0VtxTruept_tgh_fromDst_sb[i]->SetYTitle("Entries");
2349 flist_TghCuts_FromDstar->Add(hd0D0VtxTruept_tgh_fromDst_sb[i]);
2350 }
2351
2352
2353 //############ TIGHT CUTS OTHER HISTOGRAMS ###########
2354 //
2355 //########### global properties histos ###########
2356
2357 TH2F *hCPtaVSd0d0_tgh_other=new TH2F("hCPtaVSd0d0_tgh_other","hCPtaVSd0d0_TightCuts_other",1000,-100000.,100000.,100,0.,1.);
2358 TH1F *hSecVtxZ_tgh_other=new TH1F("hSecVtxZ_tgh_other","hSecVtxZ_TightCuts_other",1000,-8.,8.);
2359 TH1F *hSecVtxX_tgh_other=new TH1F("hSecVtxX_tgh_other","hSecVtxX_TightCuts_other",1000,-3000.,3000.);
2360 TH1F *hSecVtxY_tgh_other=new TH1F("hSecVtxY_tgh_other","hSecVtxY_TightCuts_other",1000,-3000.,3000.);
2361 TH2F *hSecVtxXY_tgh_other=new TH2F("hSecVtxXY_tgh_other","hSecVtxXY_TightCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
2362 TH1F *hSecVtxPhi_tgh_other=new TH1F("hSecVtxPhi_tgh_other","hSecVtxPhi_TightCuts_other",180,-180.1,180.1);
2363 TH1F *hCPta_tgh_other=new TH1F("hCPta_tgh_other","hCPta_TightCuts_other",100,0.,1.);
2364 TH1F *hd0xd0_tgh_other=new TH1F("hd0xd0_tgh_other","hd0xd0_TightCuts_other",1000,-100000.,100000.);
2365 TH1F *hMassTrue_tgh_other=new TH1F("hMassTrue_tgh_other","D^{0} MC inv. Mass Tight Cuts other(All momenta)",600,1.600,2.200);
2366 TH1F *hMass_tgh_other=new TH1F("hMass_tgh_other","D^{0} inv. Mass Tight Cuts other (All momenta)",600,1.600,2.200);
2367 hMass_tgh_other->Sumw2();
2368 TH1F *hMassTrue_tgh_other_pm=new TH1F("hMassTrue_tgh_other_pm","D^{0} MC inv. Mass Tight Cuts other, Mass Peak. (All momenta)",600,1.600,2.200);
2369 TH1F *hMass_tgh_other_pm=new TH1F("hMass_tgh_other_pm","D^{0} inv. Mass Tight Cuts other (All momenta), MassPeak",600,1.600,2.200);
2370 hMass_tgh_other_pm->Sumw2();
2371 TH1F *hMassTrue_SB_tgh_other=new TH1F("hMassTrue_tgh_other_sb","D^{0} MC inv. Mass in Side Bands Tight Cuts other(All momenta)",600,1.600,2.200);
2372 TH1F *hMass_SB_tgh_other=new TH1F("hMass_tgh_other_sb","D^{0} inv. Mass in Side Bands Tight Cuts other (All momenta)",600,1.600,2.200);
2373 hMass_SB_tgh_other->Sumw2();
2374
2375 flist_TghCuts_Other->Add(hCPtaVSd0d0_tgh_other);
2376 flist_TghCuts_Other->Add(hSecVtxZ_tgh_other);
2377 flist_TghCuts_Other->Add(hSecVtxY_tgh_other);
2378 flist_TghCuts_Other->Add(hSecVtxX_tgh_other);
2379 flist_TghCuts_Other->Add(hSecVtxXY_tgh_other);
2380 flist_TghCuts_Other->Add(hSecVtxPhi_tgh_other);
2381 flist_TghCuts_Other->Add(hCPta_tgh_other);
2382 flist_TghCuts_Other->Add(hd0xd0_tgh_other);
2383 flist_TghCuts_Other->Add(hMassTrue_tgh_other);
2384 flist_TghCuts_Other->Add(hMass_tgh_other);
2385 flist_TghCuts_Other->Add(hMassTrue_tgh_other_pm);
2386 flist_TghCuts_Other->Add(hMass_tgh_other_pm);
2387 flist_TghCuts_Other->Add(hMassTrue_SB_tgh_other);
2388 flist_TghCuts_Other->Add(hMass_SB_tgh_other);
2389
2390 //############# d0 D0 histos ###############à
2391 TH1F *hd0D0_tgh_other_pm = new TH1F("hd0D0_tgh_other_pm","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2392 hd0D0_tgh_other_pm->SetXTitle("Impact parameter [#mum]");
2393 hd0D0_tgh_other_pm->SetYTitle("Entries");
2394
2395 TH1F *hd0D0VtxTrue_tgh_other_pm = new TH1F("hd0D0VtxTrue_tgh_other_pm","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2396 hd0D0VtxTrue_tgh_other_pm->SetXTitle("Impact parameter [#mum]");
2397 hd0D0VtxTrue_tgh_other_pm->SetYTitle("Entries");
2398
2399 TH1F *hMCd0D0_tgh_other_pm = new TH1F("hMCd0D0_tgh_other_pm","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2400 hMCd0D0_tgh_other_pm->SetXTitle("MC Impact parameter [#mum]");
2401 hMCd0D0_tgh_other_pm->SetYTitle("Entries");
2402
2403 TH1F *hd0D0_tgh_other_sb = new TH1F("hd0D0_tgh_other_sb","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2404 hd0D0_tgh_other_sb->SetXTitle("Impact parameter [#mum]");
2405 hd0D0_tgh_other_sb->SetYTitle("Entries");
2406
2407 TH1F *hd0D0VtxTrue_tgh_other_sb = new TH1F("hd0D0VtxTrue_tgh_other_sb","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2408 hd0D0VtxTrue_tgh_other_sb->SetXTitle("Impact parameter [#mum]");
2409 hd0D0VtxTrue_tgh_other_sb->SetYTitle("Entries");
2410
2411 TH1F *hMCd0D0_tgh_other_sb = new TH1F("hMCd0D0_tgh_other_sb","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
2412 hMCd0D0_tgh_other_sb->SetXTitle("MC Impact parameter [#mum]");
2413 hMCd0D0_tgh_other_sb->SetYTitle("Entries");
2414
2415 flist_TghCuts_Other->Add(hd0D0_tgh_other_pm);
2416 flist_TghCuts_Other->Add(hd0D0VtxTrue_tgh_other_pm);
2417 flist_TghCuts_Other->Add(hMCd0D0_tgh_other_pm);
2418 flist_TghCuts_Other->Add(hd0D0_tgh_other_sb);
2419 flist_TghCuts_Other->Add(hd0D0VtxTrue_tgh_other_sb);
2420 flist_TghCuts_Other->Add(hMCd0D0_tgh_other_sb);
2421
2422 TH1F **hd0D0pt_tgh_other_pm=new TH1F*[fnbins];
2423 TH1F **hMCd0D0pt_tgh_other_pm=new TH1F*[fnbins];
2424 TH1F ** hd0D0VtxTruept_tgh_other_pm=new TH1F*[fnbins];
2425 TH1F **hd0D0pt_tgh_other_sb=new TH1F*[fnbins];
2426 TH1F **hMCd0D0pt_tgh_other_sb=new TH1F*[fnbins];
2427 TH1F ** hd0D0VtxTruept_tgh_other_sb=new TH1F*[fnbins];
2428 namehist="hd0D0pt_tgh_other_";
2429 titlehist="D^{0} impact par. plot, Tight Cuts, Other, ";
2430 for(Int_t i=0;i<fnbins;i++){
2431 strnamept=namehist;
2432 strnamept.Append("PkMss_pt");
2433 strnamept+=i;
2434
2435 strtitlept=titlehist;
2436 strtitlept.Append(" Mass Peak, ");
2437 strtitlept+=fptbins[i];
2438 strtitlept.Append("<= pt <");
2439 strtitlept+=fptbins[i+1];
2440 strtitlept.Append(" [GeV/c]");
2441
2442 hd0D0pt_tgh_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2443 hd0D0pt_tgh_other_pm[i]->SetXTitle("Impact parameter [#mum] ");
2444 hd0D0pt_tgh_other_pm[i]->SetYTitle("Entries");
2445 flist_TghCuts_Other->Add(hd0D0pt_tgh_other_pm[i]);
2446
2447 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2448 hMCd0D0pt_tgh_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2449 hMCd0D0pt_tgh_other_pm[i]->SetXTitle("MC Impact parameter [#mum] ");
2450 hMCd0D0pt_tgh_other_pm[i]->SetYTitle("Entries");
2451 flist_TghCuts_Other->Add(hMCd0D0pt_tgh_other_pm[i]);
2452
2453
2454 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2455 hd0D0VtxTruept_tgh_other_pm[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2456 hd0D0VtxTruept_tgh_other_pm[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2457 hd0D0VtxTruept_tgh_other_pm[i]->SetYTitle("Entries");
2458 flist_TghCuts_Other->Add(hd0D0VtxTruept_tgh_other_pm[i]);
2459
2460 strnamept=namehist;
2461 strnamept.Append("SBMss_pt");
2462 strnamept+=i;
2463
2464 strtitlept=titlehist;
2465 strtitlept.Append(" Side Bands, ");
2466 strtitlept+=fptbins[i];
2467 strtitlept.Append("<= pt <");
2468 strtitlept+=fptbins[i+1];
2469 strtitlept.Append(" [GeV/c]");
2470
2471 hd0D0pt_tgh_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2472 hd0D0pt_tgh_other_sb[i]->SetXTitle("Impact parameter [#mum] ");
2473 hd0D0pt_tgh_other_sb[i]->SetYTitle("Entries");
2474 flist_TghCuts_Other->Add(hd0D0pt_tgh_other_sb[i]);
2475
2476 strnamept.ReplaceAll("hd0D0","hMCd0D0");
2477 hMCd0D0pt_tgh_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2478 hMCd0D0pt_tgh_other_sb[i]->SetXTitle("MC Impact parameter [#mum] ");
2479 hMCd0D0pt_tgh_other_sb[i]->SetYTitle("Entries");
2480 flist_TghCuts_Other->Add(hMCd0D0pt_tgh_other_sb[i]);
2481
2482 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
2483 hd0D0VtxTruept_tgh_other_sb[i] = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2484 hd0D0VtxTruept_tgh_other_sb[i]->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2485 hd0D0VtxTruept_tgh_other_sb[i]->SetYTitle("Entries");
2486 flist_TghCuts_Other->Add(hd0D0VtxTruept_tgh_other_sb[i]);
2487 }
2488
2489
2490}
2491
2492
2493
2494//________________________________________________________________________
2495void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
2496{
2497 // Execute analysis for current event:
2498 // heavy flavor candidates association to MC truth
2499
2500 AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
2501
2502
2503 // load D0->Kpi candidates
2504 TClonesArray *arrayD0toKpi =
2505 (TClonesArray*)aod->GetList()->FindObject("D0toKpi");
2506 if(!arrayD0toKpi) {
2507 Printf("AliAnalysisTaskSECharmFraction::UserExec: D0toKpi branch not found!\n");
2508 return;
2509 }
2510
2511 // AOD primary vertex
2512 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
2513
2514
2515 // load MC particles
2516 TClonesArray *arrayMC =
2517 (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
2518 if(!arrayMC) {
2519 Printf("AliAnalysisTaskSECharmFraction::UserExec: MC particles branch not found!\n");
2520 return;
2521 }
2522
2523 // load MC header
2524 AliAODMCHeader *aodmcHeader =
2525 (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
2526 if(!aodmcHeader) {
2527 Printf("AliAnalysisTaskSECharmFraction::UserExec: MC header branch not found!\n");
2528 return;
2529 }
2530
2531 // MC primary vertex
2532 Double_t vtxTrue[3];
2533 aodmcHeader->GetVertex(vtxTrue);
2534
2535 if (!aod) {
2536 Printf("ERROR: aod not available");
2537 return;
2538 }
2539 //histogram filled with 1 for every AOD
2540 fNentries->Fill(1);
2541 PostData(1,fNentries);
2542
2543
2544 //Printf("There are %d tracks in this event", aod->GetNumberOfTracks());
2545 // Int_t nTotHF=0,nTotDstar=0,nTot3Prong=0;
2546 Int_t nTotD0toKpi=0;
2547 Int_t okD0_tight,okD0bar_tight,okD0_loose,okD0bar_loose;
2548 Bool_t isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar,isSideBand;
2549 Int_t signallevel=-1;
2550 Int_t ptbin;
2551 // const Int_t nptbins=10;
2552 Double_t invMassD0,invMassD0bar,ptD0,massmumtrue;
2553
2554
2555 AliAODRecoDecayHF *aodDMC=0x0;// to be used to create a fake true sec vertex
2556 // make trkIDtoEntry register (temporary)
2557 Int_t trkIDtoEntry[100000];
2558 for(Int_t it=0;it<aod->GetNumberOfTracks();it++) {
2559 AliAODTrack *track = aod->GetTrack(it);
2560 if(track->GetID()<0) {
2561 //printf("Track ID <0, id= %d\n",track->GetID());
2562 return;
2563 }
2564 trkIDtoEntry[track->GetID()]=it;
2565 }
2566
2567
2568 // loop over D0->Kpi candidates
2569 Int_t nD0toKpi = arrayD0toKpi->GetEntriesFast();
2570 nTotD0toKpi += nD0toKpi;
2571 // cout<<"Number of D0->Kpi: "<<nD0toKpi<<endl;
2572
2573 for (Int_t iD0toKpi = 0; iD0toKpi < nD0toKpi; iD0toKpi++) {
2574 if(aodDMC!=0x0)delete aodDMC;
2575
2576 isPeakD0=kFALSE;
2577 isPeakD0bar=kFALSE;
2578 isSideBandD0=kFALSE;
2579 isSideBandD0bar=kFALSE;
2580 isSideBand=kFALSE;
2581 okD0_tight=0;
2582 okD0bar_tight=0;
2583 okD0_loose=0;
2584 okD0bar_loose=0;
2585
2586 signallevel=-1;
2587
2588
2589 AliAODRecoDecayHF2Prong *d = (AliAODRecoDecayHF2Prong*)arrayD0toKpi->UncheckedAt(iD0toKpi);
2590 Bool_t unsetvtx=kFALSE;
2591 if(!d->GetOwnPrimaryVtx()) {
2592 d->SetOwnPrimaryVtx(vtx1); // needed to compute all variables
2593 unsetvtx=kTRUE;
2594 }
2595
2596 ptD0=d->Pt();
2597
2598 //####### DATA SELECTION ###########
2599
2600
2601 //######## INVARIANT MASS SELECTION ###############
2602 CheckInvMassD0(d,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar);
2603 if(isSideBandD0&&isSideBandD0bar)isSideBand=kTRUE;// TEMPORARY, NOT DONE IN THE METHOD CALLED ABOVE ONLY FOR FURTHER SIDE BAND STUDY
2604
2605 // INVESTIGATE SIGNAL TYPE : ACCESS TO MC INFORMATION
2606 aodDMC=GetD0toKPiSignalType(d,arrayMC,signallevel,massmumtrue,vtxTrue);
2607 fSignalType->Fill(signallevel);
2608 // END OF BACKGROUND TYPE SELECTION
2609
2610 // NOW APPLY CUTS
2611 //NO CUTS CASE IS FOR FREE
2612
2613 // CHECK TIGHTER CUTS
2614 ptbin=SetStandardCuts(ptD0,flargeInvMassCut);
2615 d->SelectD0(fVHFtight->GetD0toKpiCuts(),okD0_tight,okD0bar_tight);
2616 if((isPeakD0&&okD0_tight)||(isPeakD0bar&&okD0bar_tight))fSignalTypeTghCuts->Fill(signallevel);
2617
2618 // CHECK LOOSER CUTS
2619 ptbin=SetStandardCuts(ptD0,flargeInvMassCut);
2620 d->SelectD0(fVHFloose->GetD0toKpiCuts(),okD0_loose,okD0bar_loose);
2621 if((isPeakD0&&okD0_loose)||(isPeakD0bar&&okD0bar_loose))fSignalTypeLsCuts->Fill(signallevel);
2622
2623
2624 //################### FILL HISTOS ########################
2625 //################################################################
2626 //
2627 //######## improvement: SPEED HERE CAN BE IMPROVED: CALCULATE ONCE AND FOR ALL
2628 // CANDIDATE VARIABLES
2629
2630 //NO CUTS Case: force okD0 and okD0bar = kTRUE
2631 if(signallevel==1)FillHistos(d,flist_NoCuts_Signal,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2632 else if(signallevel==2)FillHistos(d,flist_NoCuts_FromDstar,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
7eb5a89e 2633 else if(signallevel==3||signallevel==4)FillHistos(d,flist_NoCuts_FromB,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2634 else if(signallevel==-1||signallevel==7||signallevel==8)FillHistos(d,flist_NoCuts_Back,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
624c07ab 2635 else if(signallevel==5||signallevel==6)FillHistos(d,flist_NoCuts_Other,ptbin,kTRUE,kTRUE,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2636
2637 //LOOSE CUTS Case
2638 if(signallevel==1)FillHistos(d,flist_LsCuts_Signal,ptbin,okD0_loose,okD0bar_loose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2639 else if(signallevel==2)FillHistos(d,flist_LsCuts_FromDstar,ptbin,okD0_loose,okD0bar_loose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
7eb5a89e 2640 else if(signallevel==3||signallevel==4)FillHistos(d,flist_LsCuts_FromB,ptbin,okD0_loose,okD0bar_loose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2641 else if(signallevel==-1||signallevel==7||signallevel==8)FillHistos(d,flist_LsCuts_Back,ptbin,okD0_loose,okD0bar_loose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
624c07ab 2642 else if(signallevel==5||signallevel==6)FillHistos(d,flist_LsCuts_Other,ptbin,okD0_loose,okD0bar_loose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2643
2644 //TIGHT CUTS Case
2645 if(signallevel==1)FillHistos(d,flist_TghCuts_Signal,ptbin,okD0_tight,okD0bar_tight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2646 else if(signallevel==2)FillHistos(d,flist_TghCuts_FromDstar,ptbin,okD0_tight,okD0bar_tight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
7eb5a89e 2647 else if(signallevel==3||signallevel==4)FillHistos(d,flist_TghCuts_FromB,ptbin,okD0_tight,okD0bar_tight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2648 else if(signallevel==-1||signallevel==7||signallevel==8)FillHistos(d,flist_TghCuts_Back,ptbin,okD0_tight,okD0bar_tight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
624c07ab 2649 else if(signallevel==5||signallevel==6)FillHistos(d,flist_TghCuts_Other,ptbin,okD0_tight,okD0bar_tight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
2650
2651
2652 if(aodDMC!=0x0){
2653 delete aodDMC;
2654 aodDMC=0x0;
2655 }
2656
2657 if(unsetvtx) d->UnsetOwnPrimaryVtx();
2658
2659 }
2660
2661 // ####################### POST OUTPUT TLIST DATA #########################
2662 // ####### histo for #AOD entries already posted
2663
2664 PostData(2,fSignalType);
2665 PostData(3,fSignalTypeLsCuts);
2666 PostData(4,fSignalTypeTghCuts);
2667 PostData(5,flist_NoCuts_Signal);
2668 PostData(6,flist_NoCuts_Back);
2669 PostData(7,flist_NoCuts_FromB);
2670 PostData(8,flist_NoCuts_FromDstar);
2671 PostData(9,flist_NoCuts_Other);
2672 PostData(10,flist_LsCuts_Signal);
2673 PostData(11,flist_LsCuts_Back);
2674 PostData(12,flist_LsCuts_FromB);
2675 PostData(13,flist_LsCuts_FromDstar);
2676 PostData(14,flist_LsCuts_Other);
2677 PostData(15,flist_TghCuts_Signal);
2678 PostData(16,flist_TghCuts_Back);
2679 PostData(17,flist_TghCuts_FromB);
2680 PostData(18,flist_TghCuts_FromDstar);
2681 PostData(19,flist_TghCuts_Other);
2682
2683 return;
2684}
2685
2686//_________________________________________
2687Int_t AliAnalysisTaskSECharmFraction::SetStandardCuts(Double_t pt,Double_t invMassCut){
2688 //#############
2689 // TEMPORARY: to be change in :
2690 // for(j<nptbins)
2691 // if pt < standardptbin[j+1]
2692 // SetCuts, bin=j
2693 // break
2694 //
2695 // the way the cuts are set is for further development
2696 // (to be interfaced with AliAnalsysTaskSETuneCuts)
2697 Int_t ptbin=-1;
2698 if (pt>0. && pt<=1.) {
2699 ptbin=0;
2700 fVHFtight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0003,0.7);
2701 fVHFloose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
2702 }
2703
2704 if(pt>1. && pt<=3.) {
2705 ptbin=1;
2706 fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.0003,0.9);
2707 fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
2708 //printf("I'm in the bin %d\n",ptbin);
2709 }
2710
2711 if(pt>3. && pt<=5.){
2712 ptbin=2;
2713 fVHFtight->SetD0toKpiCuts(invMassCut,0.015,0.8,0.7,0.7,0.05,0.05,-0.0002,0.9);
2714 fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
2715 //printf("I'm in the bin %d\n",ptbin);
2716 }
2717 if(pt>5.){
2718 ptbin=3;
2719 fVHFtight->SetD0toKpiCuts(invMassCut,0.015,0.8,0.7,0.7,0.05,0.05,-0.0002,0.95);
2720 fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
2721 }//if(pt>5)
2722 return ptbin;
2723}
2724
2725//__________________________________________________________
2726void AliAnalysisTaskSECharmFraction::CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar){
2727 //Check wheter the candidate inv. mass is compatible with signal or sideband inv. mass selection
2728
2729 d->InvMassD0(invMassD0,invMassD0bar);
2730 //CHECK if ISPEAK
2731 if(TMath::Abs(invMassD0-fmD0PDG)<fsignalInvMassCut)isPeakD0=kTRUE;
2732 if(TMath::Abs(invMassD0bar-fmD0PDG)<fsignalInvMassCut)isPeakD0bar=kTRUE;
2733 //CHECK if ISSIDEBAND: no constraint is present between signal region definition and side band definition
2734 // ######## TO BE CHANGED the distinction between sidebandD0 and sidebandD0bar is meaningless
2735 // and it is present only for side band region study (see which inv mass has the D0(D0bar)
2736 // in case the D0bar(D0) is in the sideband) #######
2737 if(TMath::Abs(invMassD0-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){
2738 isSideBandD0=kTRUE;
2739 }
2740 if(TMath::Abs(invMassD0bar-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0bar-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){
2741 isSideBandD0bar=kTRUE;
2742 }
2743
2744}
2745
2746
2747
2748//_______________________
2749AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::GetD0toKPiSignalType(AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx){
2750 //THIS METHOD CHECK THE TYPE OF SIGNAL/BACKGROUND THE CANDIDATE IS.
2751 // IF (!AND ONLY IF) THE TWO DAUGHTERS COME FROM A COMMONE MOTHER A FAKE TRUE SECONDARY VERTEX IS CONSTRUCTED (aodDMC)
2752 //
2753 // THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to
7eb5a89e 2754 // 1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB
2755 // then background categories: -1: one or both daughters is a fake track
624c07ab 2756 // 5: one or both daughters come from a D meson != D0
2757 // 6: both daughters come from a D0->4prongs
2758 // 7: both daughetrs are primaries
2759 // 8: generic background (can include one of the previous if desired)
2760 //
2761 // 10: pathologic cases (not clear)
2762 // 11: end of the method without output
2763 // 12: different result than MatchToMC method
2764
2765 AliAODMCParticle *mum1=0x0;
2766 AliAODMCParticle *b1=0x0,*b2=0x0;
2767 AliAODMCParticle *grandmoth1=0x0;
2768 massMumTrue=-1;
2769
2770 Int_t pdgmum,dglabels[2],matchtoMC;
2771 Int_t pdgdaughters[2]={211,321};
2772 // get daughter AOD tracks
2773 AliAODTrack *trk0 = (AliAODTrack*)d->GetDaughter(0);
2774 AliAODTrack *trk1 = (AliAODTrack*)d->GetDaughter(1);
2775 AliAODRecoDecayHF *aodDMC=0x0;
2776 if(trk0==0x0||trk1==0x0){
2777 AliDebug(2,"Delete tracks I AM \n");
2778
2779 signaltype=-1;
2780 return aodDMC;
2781
2782 }
2783 dglabels[0]=trk0->GetLabel();
2784 dglabels[1]=trk1->GetLabel();
2785 if(dglabels[0]==-1||dglabels[1]==-1){
2786 AliDebug(2,"HERE I AM \n");
2787
2788 //fake tracks
2789
7eb5a89e 2790 signaltype=-1;
624c07ab 2791 return aodDMC;
2792
2793 }
2794 // printf("Before entering the MC checks \n");
2795
2796 b1=(AliAODMCParticle*)arrayMC->At(trk0->GetLabel());
2797 b2=(AliAODMCParticle*)arrayMC->At(trk1->GetLabel());
2798
2799 if(b1->GetMother()==-1||b2->GetMother()==-1){
2800 //Tracks with no mother ????? FAKE DECAY VERTEX
2801
2802
2803 signaltype=10;
2804 return aodDMC;
2805 }
2806
2807 mum1=(AliAODMCParticle*)arrayMC->At(b1->GetMother());
2808 // mum2=(AliAODMCParticle*)arrayMC->At(b2->GetMother());//FOR FURTHER USE
2809
2810 if(b1->GetMother()!=b2->GetMother()){
2811 //Check the label of the mother is the same
2812 // NOT SAME MOTHER
2813
2814
2815 signaltype=8;
2816 return aodDMC;
2817 }
2818 massMumTrue=mum1->GetCalcMass();
2819
2820 matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters);
2821 aodDMC=ConstructFakeTrueSecVtx(b1,b2,mum1,primaryVtx);
2822
2823 if(aodDMC==0x0){
2824 signaltype=10;
2825 return aodDMC;
2826 }
2827
2828 // if((mum1->GetPdgCode()!=mum2->GetPdgCode()))continue; //Check the mother is the same particle
2829 // printf("Particle codes: tr1: %d, tr2: %d, mum1: %d, mum 2: %d \n",b1->GetPdgCode(),b2->GetPdgCode(),mum1->GetPdgCode(),mum2->GetPdgCode());
2830 if(!((TMath::Abs(b1->GetPdgCode())==321&&TMath::Abs(b1->GetPdgCode())!=211)||(TMath::Abs(b1->GetPdgCode())==211&&TMath::Abs(b1->GetPdgCode()!=321)))){
2831 // Not a Kaon and a Pion
2832
2833 signaltype=8;
2834 return aodDMC;
2835 }
2836
2837 pdgmum=mum1->GetPdgCode();
2838 if(TMath::Abs(pdgmum)!=421){
2839 if(TMath::Abs(pdgmum)==411||TMath::Abs(pdgmum)==431||TMath::Abs(pdgmum)==443){
2840 // IT IS A SECONDARY VERTEX FROM CHARM BUT NOT A D0
2841
2842 signaltype=5;
2843 return aodDMC;
2844 }
2845 else {
2846 signaltype=8;
2847 return aodDMC;
2848 }
2849 }
2850
2851 if(mum1->GetDaughter(1)-mum1->GetDaughter(0)+1!=2){
2852 // from D0 but NOT A 2 PRONG DECAY
2853 signaltype=6;
2854 return aodDMC;
2855
2856 }
2857
2858 if(mum1->GetMother()==-1){
2859 // A particle coming from nothing
2860 signaltype=10;
2861 return aodDMC;
2862
2863 }
7eb5a89e 2864 Bool_t isfromDstar=kFALSE;
2865 // matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters);
624c07ab 2866 grandmoth1=(AliAODMCParticle*)arrayMC->At(mum1->GetMother());
7eb5a89e 2867 if(TMath::Abs(grandmoth1->GetPdgCode())==413||TMath::Abs(grandmoth1->GetPdgCode())==423)isfromDstar=kTRUE;// D0 COMING FROM A D0*
2868
624c07ab 2869 // if(fcheckMCD0){//THIS CHECK IS NEEDED TO AVOID POSSIBLE FAILURE IN THE SECOND WHILE, FOR DEBUGGING
2870 while(TMath::Abs(grandmoth1->GetPdgCode())!=4&&TMath::Abs(grandmoth1->GetPdgCode())!=5){
2871 if(grandmoth1->GetMother()==-1){
2872 //### THE FOLLOWING IN CASE OF DEBUGGING ##########à
2873 /*printf("mother=-1, pdgcode: %d \n",grandmoth1->GetPdgCode());
2874 Int_t son=grandmoth1->GetDaughter(0);
2875 sonpart=(AliAODMCParticle*)arrayMC->At(son);
2876 while(TMath::Abs(sonpart->GetPdgCode())!=421){
2877 printf("mother=-1, pdgcode: %d \n",sonpart->GetPdgCode());
2878 son++;
2879 sonpart=(AliAODMCParticle*)arrayMC->At(son);
2880 }*/
2881
2882 signaltype=10;
2883 return aodDMC;
2884 }
2885 grandmoth1=(AliAODMCParticle*)arrayMC->At(grandmoth1->GetMother());
2886 }
2887
2888 if(TMath::Abs(grandmoth1->GetPdgCode())==4){
2889 if(matchtoMC!=-1){
7eb5a89e 2890
2891 if(isfromDstar)signaltype=2;
2892 else signaltype=1;
624c07ab 2893 return aodDMC;
2894 }
2895 else {
2896 signaltype=12;
2897 return aodDMC;
7eb5a89e 2898
624c07ab 2899 }
2900 }
2901 else if(TMath::Abs(grandmoth1->GetPdgCode())==5){
2902 if(matchtoMC!=-1){
7eb5a89e 2903 if(isfromDstar)signaltype=4;
2904 else signaltype=3;
624c07ab 2905 return aodDMC;
2906
2907 }
2908 else {
2909
2910 signaltype=12;
2911 return aodDMC;
2912 }
2913 }
2914 signaltype=11;// JUST FOR SAFETY: SHOULD NEVER REACH THIS POINT
2915 return aodDMC;
2916 // return 11;
2917}
2918
2919//___________________________________
2920AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::ConstructFakeTrueSecVtx(AliAODMCParticle *b1, AliAODMCParticle *b2, AliAODMCParticle *mum,Double_t *primaryVtxTrue){
2921 // CONSTRUCT A FAKE TRUE SECONDARY VERTEX (aodDMC)
2922 //!!!NOTE THAT ONLY ONE MOTHER IS CONSIDERED: THE METHOD REQUIRES THE DAUGHTERS COME FROM THE SAME MOTHER !!
2923 if(b1==0x0||b2==0x0)return 0x0;
2924 if(mum==0x0)return 0x0;
2925 Double_t pD[3],xD[3],pXtrTrue[2],pYtrTrue[2],pZtrTrue[2],xtr1[3],xtr2[3];
2926 Int_t charge[2]={0,0};
2927 if(b1->Charge()==-1)charge[0]=1;
2928 else {
2929 if(b2->Charge()==-1){
2930 //printf("Same charges for prongs \n");
2931 return 0x0;
2932 }
2933 charge[1]=1;
2934 }
2935
2936 pXtrTrue[charge[0]]=b1->Px();
2937 pYtrTrue[charge[0]]=b1->Py();
2938 pZtrTrue[charge[0]]=b1->Pz();
2939 if(!b1->XvYvZv(xtr1)){
2940 return 0x0;
2941 }
2942
2943 pXtrTrue[charge[1]]=b2->Px();
2944 pYtrTrue[charge[1]]=b2->Py();
2945 pZtrTrue[charge[1]]=b2->Pz();
2946
2947 if(!mum->PxPyPz(pD)){
2948 //printf("!D from B:Get momentum failed \n");
2949 return 0x0;
2950 }
2951 if(!mum->XvYvZv(xD)){
2952 //printf("!D from B:Get position failed \n");
2953 return 0x0;
2954 }
2955 /* ############ THIS HAPPENS FROM TIME TO TIME: NUMERIC PROBLEM KNOWN #################
2956 if(pXtrTrue[0]+pXtrTrue[1]!=pD[0]){
2957 }*/
2958
2959
2960 if(!b2->XvYvZv(xtr2)){
2961 return 0x0;
2962 }
2963 Double_t d0dummy[2]={0.,0.};//TEMPORARY : dummy d0 for AliAODRecoDeay constructor
2964 AliAODRecoDecayHF* aodDMC=new AliAODRecoDecayHF(primaryVtxTrue,xD,2,0,pXtrTrue,pYtrTrue,pZtrTrue,d0dummy);
2965
2966 /* ######## THE FOLLOWINF FOR DEBUGGING ############
2967 Printf("testing the Fake vertex: SecVtxX: %f, Px: %f, Py: %f, Pz:%f \n ",aodDMC->GetSecVtxX(),aodDMC->Px(),aodDMC->Py(),aodDMC->Pz());
2968 Printf("pD: x=%f, y=%f,z=%f\n",pD[0],pD[1],pD[2]);
2969 Printf("Daughters :px1:%f, px2:%f \n",pXtrTrue[0],pXtrTrue[1]);
2970 Printf("Daughters :py1:%f, py2:%f \n",pYtrTrue[0],pYtrTrue[1]);
2971 Printf("Daughters :pz1:%f, pz2:%f \n",pZtrTrue[0],pZtrTrue[1]);
2972 Printf("Mother pdg: %d",mum->GetPdgCode());
2973 Printf("Impact Par Prod: %f\n",aodDMC->ImpParXY());
2974 */
2975
2976 return aodDMC;
2977}
2978
2979//________________________________________________________
2980Bool_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){
2981
2982 if((!okD0)&&(!okD0bar))return kTRUE;
2983
2984 // ######### Get Standard label for hist in tlist ###############
2985 TString namehist=list->GetName(),str;
2986 namehist.ReplaceAll("list","");
2987
2988 // ######### Global properties histos #################
2989 str="hCPtaVSd0d0";
2990 str.Append(namehist.Data());
2991 ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0(),d->CosPointingAngle());
2992
2993 str="hSecVtxZ";
2994 str.Append(namehist.Data());
2995 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxZ());
2996
2997 str="hSecVtxX";
2998 str.Append(namehist.Data());
2999 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.);
3000
3001 str="hSecVtxY";
3002 str.Append(namehist.Data());
3003 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxY()*10000.);
3004
3005 str="hSecVtxXY";
3006 str.Append(namehist.Data());
3007 ((TH2F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.,d->GetSecVtxY()*10000.);
3008
3009 str="hSecVtxPhi";
3010 str.Append(namehist.Data());
3011 ((TH1F*)list->FindObject(str.Data()))->Fill(TMath::ATan2(d->GetSecVtxY()*10000.,d->GetSecVtxX()*10000.)*TMath::RadToDeg());
3012
3013 str="hCPta";
3014 str.Append(namehist.Data());
3015 ((TH1F*)list->FindObject(str.Data()))->Fill(d->CosPointingAngle());
3016
3017 str="hd0xd0";
3018 str.Append(namehist.Data());
3019 ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0());
3020
3021
3022 // ######### Invariant mass histos #################
3023 str="hMass";
3024 str.Append(namehist.Data());
3025 ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
3026 ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
3027
3028
3029 if(isPeakD0||isPeakD0bar){
3030 str="hMass";
3031 str.Append(namehist.Data());
3032 str.Append("_pm");
3033 if(isPeakD0&&okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
3034 if(isPeakD0bar&&okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
3035 }
3036 if(isSideBand){
3037 str="hMass";
3038 str.Append(namehist.Data());
3039 str.Append("_sb");
3040 if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
3041 if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
3042 }
3043
3044 if(massmumtrue>0.){
3045 str="hMassTrue";
3046 str.Append(namehist.Data());
3047 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
3048
3049 if(isPeakD0||isPeakD0bar){
3050 str="hMassTrue";
3051 str.Append(namehist.Data());
3052 str.Append("_pm");
3053 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
3054 }
3055 if(isSideBand){
3056 str="hMassTrue";
3057 str.Append(namehist.Data());
3058 str.Append("_sb");
3059 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
3060 }
3061 }
3062
3063 // ################ D0 Impact Parameter Histos #####################
3064 if(isPeakD0||isPeakD0bar){
3065 str="hd0D0";
3066 str.Append(namehist.Data());
3067 str.Append("_pm");
3068 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
3069
3070 str="hd0D0pt";
3071 str.Append(namehist.Data());
3072 str.Append("_PkMss_pt");
3073 str+=ptbin;
3074 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
3075
3076
3077 if(vtxTrue){
3078 str="hd0D0VtxTrue";
3079 str.Append(namehist.Data());
3080 str.Append("_pm");
3081 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
3082
3083 str="hd0D0VtxTruept";
3084 str.Append(namehist.Data());
3085 str.Append("_PkMss_pt");
3086 str+=ptbin;
3087 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
3088
3089 }
3090
3091 if(aodDMC!=0x0){
3092 aodDMC->Print("");
3093 aodDMC->ImpParXY();
3094 aodDMC->Print("");
3095 str="hMCd0D0";
3096 str.Append(namehist.Data());
3097 str.Append("_pm");
3098 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
3099
3100 str="hMCd0D0pt";
3101 str.Append(namehist.Data());
3102 str.Append("_PkMss_pt");
3103 str+=ptbin;
3104 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
3105 }
3106
3107 }
3108 else if(isSideBand){
3109 str="hd0D0";
3110 str.Append(namehist.Data());
3111 str.Append("_sb");
3112 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
3113
3114 str="hd0D0pt";
3115 str.Append(namehist.Data());
3116 str.Append("_SBMss_pt");
3117 str+=ptbin;
3118 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
3119
3120
3121 if(vtxTrue){
3122 str="hd0D0VtxTrue";
3123 str.Append(namehist.Data());
3124 str.Append("_sb");
3125 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
3126
3127 str="hd0D0VtxTruept";
3128 str.Append(namehist.Data());
3129 str.Append("_SBMss_pt");
3130 str+=ptbin;
3131 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
3132
3133 }
3134
3135 if(aodDMC!=0x0){
3136 str="hMCd0D0";
3137 str.Append(namehist.Data());
3138 str.Append("_sb");
3139 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
3140
3141 str="hMCd0D0pt";
3142 str.Append(namehist.Data());
3143 str.Append("_SBMss_pt");
3144 str+=ptbin;
3145 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
3146 }
3147
3148 }
3149
3150 return kTRUE;
3151}
3152
3153void AliAnalysisTaskSECharmFraction::Terminate(const Option_t*){
3154 //TERMINATE METHOD: NOTHING TO DO
3155
3156
3157}