]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/AliAnalysisTaskSECharmFraction.cxx
Update of D+ classes: added acceptance cut, added histograms (Francesco)
[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
ac4c229c 25
624c07ab 26#include <TH1F.h>
27#include <TH2F.h>
624c07ab 28#include <TDatabasePDG.h>
29#include <TMath.h>
30#include <TROOT.h>
624c07ab 31#include "AliAODEvent.h"
624c07ab 32#include "AliAODRecoDecayHF2Prong.h"
33#include "AliAODRecoDecayHF.h"
34#include "AliAODRecoDecay.h"
e047b348 35#include "AliAnalysisDataSlot.h"
36#include "AliAnalysisDataContainer.h"
624c07ab 37#include "AliAODTrack.h"
e047b348 38#include "AliAODHandler.h"
39#include "AliESDtrack.h"
624c07ab 40#include "AliAODVertex.h"
e047b348 41#include "AliESDVertex.h"
42#include "AliVertexerTracks.h"
624c07ab 43#include "AliAODMCParticle.h"
e047b348 44#include "AliAODPid.h"
45#include "AliTPCPIDResponse.h"
624c07ab 46#include "AliAODMCHeader.h"
ac4c229c 47#include "AliAnalysisVertexingHF.h"
624c07ab 48#include "AliAnalysisTaskSECharmFraction.h"
e047b348 49#include "AliRDHFCutsD0toKpi.h"
50#include "AliAODInputHandler.h"
51#include "AliAnalysisManager.h"
ac4c229c 52
53class TCanvas;
54class TTree;
55class TChain;
ac4c229c 56class AliAnalysisTaskSE;
57
58
624c07ab 59ClassImp(AliAnalysisTaskSECharmFraction)
60
61//________________________________________________________________________
62 AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction()
63 : AliAnalysisTaskSE(),
e047b348 64 fCutsLoose(0),
65 fCutsTight(0),
bf74e6db 66 fReadMC(kFALSE),
e047b348 67 fLikeSign(kFALSE),
68 fusePID(kTRUE),
624c07ab 69 fmD0PDG(),
e047b348 70 fnbins(1),
624c07ab 71 fptbins(0),
e047b348 72 fNtrMaxforVtx(-1),
73 fptAll(),
74 fptAllSq(),
75 fptMax(),
c387e585 76 fAcceptanceCuts(),
624c07ab 77 fsignalInvMassCut(),
78 flargeInvMassCut(),
79 fsidebandInvMassCut(),
80 fsidebandInvMassWindow(),
81 fUseMC(kTRUE),
82 fNentries(0),
83 fSignalType(0),
84 fSignalTypeLsCuts(0),
85 fSignalTypeTghCuts(0),
e047b348 86 flistMCproperties(0),
ac4c229c 87 flistNoCutsSignal(0),
88 flistNoCutsBack(0),
89 flistNoCutsFromB(0),
90 flistNoCutsFromDstar(0),
91 flistNoCutsOther(0),
92 flistLsCutsSignal(0),
93 flistLsCutsBack(0),
94 flistLsCutsFromB(0),
95 flistLsCutsFromDstar(0),
96 flistLsCutsOther(0),
97 flistTghCutsSignal(0),
98 flistTghCutsBack(0),
99 flistTghCutsFromB(0),
100 flistTghCutsFromDstar(0),
101 flistTghCutsOther(0)
624c07ab 102
103{
104 //Default constructor
105}
106//________________________________________________________________________
107 AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name)
108 : AliAnalysisTaskSE(name),
e047b348 109 fCutsLoose(0x0),
110 fCutsTight(0x0),
bf74e6db 111 fReadMC(kFALSE),
e047b348 112 fLikeSign(kFALSE),
113 fusePID(kTRUE),
624c07ab 114 fmD0PDG(),
e047b348 115 fnbins(1),
624c07ab 116 fptbins(0),
e047b348 117 fNtrMaxforVtx(-1),
118 fptAll(),
119 fptAllSq(),
120 fptMax(),
c387e585 121 fAcceptanceCuts(),
e047b348 122 fsignalInvMassCut(-1.),
123 flargeInvMassCut(-1.),
124 fsidebandInvMassCut(-1.),
125 fsidebandInvMassWindow(-1.),
126 fUseMC(kFALSE),
624c07ab 127 fNentries(0),
128 fSignalType(0),
129 fSignalTypeLsCuts(0),
130 fSignalTypeTghCuts(0),
e047b348 131 flistMCproperties(0),
ac4c229c 132 flistNoCutsSignal(0),
133 flistNoCutsBack(0),
134 flistNoCutsFromB(0),
135 flistNoCutsFromDstar(0),
136 flistNoCutsOther(0),
137 flistLsCutsSignal(0),
138 flistLsCutsBack(0),
139 flistLsCutsFromB(0),
140 flistLsCutsFromDstar(0),
141 flistLsCutsOther(0),
142 flistTghCutsSignal(0),
143 flistTghCutsBack(0),
144 flistTghCutsFromB(0),
145 flistTghCutsFromDstar(0),
146 flistTghCutsOther(0)
624c07ab 147
148{
149 // Constructor
150
151 // Define input and output slots here
152 // Input slot #0 works with a TChain
153 // Output slot #0 writes into a TH1 container
154
155 //Standard pt bin
e047b348 156 fnbins=SetStandardCuts(fptbins);// THIS TO SET NBINS AND BINNING
157
624c07ab 158 DefineOutput(1, TH1F::Class());
159 DefineOutput(2, TH1F::Class());
160 DefineOutput(3, TH1F::Class());
161 DefineOutput(4, TH1F::Class());
e047b348 162 for(Int_t j=5;j<21;j++){
624c07ab 163 DefineOutput(j, TList::Class());
164 }
165
e047b348 166 // Output slot for the Cut Objects
167 DefineOutput(21,AliRDHFCutsD0toKpi::Class()); //My private output
168 DefineOutput(22,AliRDHFCutsD0toKpi::Class()); //My private output
624c07ab 169
170}
171
172
e047b348 173AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name,AliRDHFCutsD0toKpi *cutsA,AliRDHFCutsD0toKpi *cutsB)
624c07ab 174 : AliAnalysisTaskSE(name),
e047b348 175 fCutsLoose(0),
176 fCutsTight(0),
bf74e6db 177 fReadMC(kFALSE),
e047b348 178 fLikeSign(kFALSE),
179 fusePID(kTRUE),
624c07ab 180 fmD0PDG(),
e047b348 181 fnbins(1),
624c07ab 182 fptbins(0),
e047b348 183 fNtrMaxforVtx(-1),
184 fptAll(),
185 fptAllSq(),
186 fptMax(),
c387e585 187 fAcceptanceCuts(),
e047b348 188 fsignalInvMassCut(-1.),
189 flargeInvMassCut(-1.),
190 fsidebandInvMassCut(-1.),
191 fsidebandInvMassWindow(-1.),
192 fUseMC(kFALSE),
624c07ab 193 fNentries(0),
194 fSignalType(0),
195 fSignalTypeLsCuts(0),
196 fSignalTypeTghCuts(0),
e047b348 197 flistMCproperties(0),
ac4c229c 198 flistNoCutsSignal(0),
199 flistNoCutsBack(0),
200 flistNoCutsFromB(0),
201 flistNoCutsFromDstar(0),
202 flistNoCutsOther(0),
203 flistLsCutsSignal(0),
204 flistLsCutsBack(0),
205 flistLsCutsFromB(0),
206 flistLsCutsFromDstar(0),
207 flistLsCutsOther(0),
208 flistTghCutsSignal(0),
209 flistTghCutsBack(0),
210 flistTghCutsFromB(0),
211 flistTghCutsFromDstar(0),
212 flistTghCutsOther(0)
624c07ab 213{
214 // Constructor
e047b348 215 if(fCutsTight)delete fCutsTight;fCutsTight=NULL;
216 if(fCutsLoose)delete fCutsLoose;fCutsLoose=NULL;
217
218 //Check consistency between sets of cuts:
219 if(cutsA->GetNPtBins()!=cutsB->GetNPtBins()){
220 printf("Different number of pt bins between the two sets of cuts: SWITCH TO STANDARD CUTS \n");
221 fnbins=SetStandardCuts(fptbins);
222 }
223 else{
224 fCutsTight=new AliRDHFCutsD0toKpi(*cutsA);
225 fCutsLoose=new AliRDHFCutsD0toKpi(*cutsB);
226 for(Int_t j=0;j<cutsA->GetNPtBins();j++){
227 if(TMath::Abs(cutsA->GetPtBinLimits()[j]-cutsB->GetPtBinLimits()[j])>1.e-7){
228 printf("Different pt bin limits in the two set of cuts: use the first as reference \n");
229 fCutsLoose->SetPtBins(cutsA->GetNPtBins(),cutsA->GetPtBinLimits());
230 break;
231 }
232 }
233 SetPtBins(fCutsTight->GetNPtBins(),fCutsTight->GetPtBinLimits());
234 }
624c07ab 235
624c07ab 236 // Output slot #0 writes into a TH1 container
237 DefineOutput(1, TH1F::Class());
238 DefineOutput(2, TH1F::Class());
239 DefineOutput(3, TH1F::Class());
240 DefineOutput(4, TH1F::Class());
e047b348 241 for(Int_t j=5;j<21;j++){
624c07ab 242
243 DefineOutput(j, TList::Class());
244 }
e047b348 245 // Output slot for the Cut Objects
246 DefineOutput(21,AliRDHFCutsD0toKpi::Class()); //My private output
247 DefineOutput(22,AliRDHFCutsD0toKpi::Class()); //My private output
624c07ab 248
249}
250
251//________________________________________________________________________
252AliAnalysisTaskSECharmFraction::~AliAnalysisTaskSECharmFraction()
253{ //Destructor
254
e047b348 255 if (fCutsTight) {
256 delete fCutsTight;
257 fCutsTight = 0;
624c07ab 258 }
e047b348 259 if (fCutsLoose) {
260 delete fCutsLoose;
261 fCutsLoose = 0;
624c07ab 262 }
ac4c229c 263 if(fptbins){
264 delete fptbins;
265 fptbins =0;
266 }
c387e585 267 /* if(fAcceptanceCuts){
ac4c229c 268 delete fAcceptanceCuts;
269 fAcceptanceCuts=0;
c387e585 270 }*/
624c07ab 271 if (fNentries) {
272 delete fNentries;
273 fNentries = 0;
274 }
275 if (fSignalType) {
276 delete fSignalType;
277 fSignalType = 0;
278 }
279 if (fSignalTypeLsCuts) {
280 delete fSignalTypeLsCuts;
281 fSignalTypeLsCuts = 0;
282 }
283 if (fSignalTypeTghCuts) {
284 delete fSignalTypeTghCuts;
285 fSignalTypeTghCuts = 0;
286 }
e047b348 287 if(flistMCproperties){
288 delete flistMCproperties;
289 flistMCproperties=0;
290 }
ac4c229c 291 if(flistNoCutsSignal){
292 delete flistNoCutsSignal;
293 flistNoCutsSignal=0;
624c07ab 294 }
ac4c229c 295 if(flistNoCutsBack){
296 delete flistNoCutsBack;
297 flistNoCutsBack=0;
624c07ab 298 }
ac4c229c 299 if(flistNoCutsFromB){
300 delete flistNoCutsFromB;
301 flistNoCutsFromB=0;
624c07ab 302 }
ac4c229c 303 if(flistNoCutsFromDstar){
304 delete flistNoCutsFromDstar;
305 flistNoCutsFromDstar=0;
624c07ab 306 }
ac4c229c 307 if(flistNoCutsOther){
308 delete flistNoCutsOther;
309 flistNoCutsOther=0;
624c07ab 310 }
311
ac4c229c 312 if(flistLsCutsSignal){
313 delete flistLsCutsSignal;
314 flistLsCutsSignal=0;
624c07ab 315 }
ac4c229c 316 if(flistLsCutsBack){
317 delete flistLsCutsBack;
318 flistLsCutsBack=0;
624c07ab 319 }
ac4c229c 320 if(flistLsCutsFromB){
321 delete flistLsCutsFromB;
322 flistLsCutsFromB=0;
624c07ab 323 }
ac4c229c 324 if(flistLsCutsFromDstar){
325 delete flistLsCutsFromDstar;
326 flistLsCutsFromDstar=0;
624c07ab 327 }
ac4c229c 328 if(flistLsCutsOther){
329 delete flistLsCutsOther;
330 flistLsCutsOther=0;
624c07ab 331 }
332
ac4c229c 333 if(flistTghCutsSignal){
334 delete flistTghCutsSignal;
335 flistTghCutsSignal=0;
624c07ab 336 }
ac4c229c 337 if(flistTghCutsBack){
338 delete flistTghCutsBack;
339 flistTghCutsBack=0;
624c07ab 340 }
ac4c229c 341 if(flistTghCutsFromB){
342 delete flistTghCutsFromB;
343 flistTghCutsFromB=0;
624c07ab 344 }
ac4c229c 345 if(flistTghCutsFromDstar){
346 delete flistTghCutsFromDstar;
347 flistTghCutsFromDstar=0;
624c07ab 348 }
ac4c229c 349 if(flistTghCutsOther){
350 delete flistTghCutsOther;
351 flistTghCutsOther=0;
624c07ab 352 }
353
354
355}
356
357
358//________________________________________________________________________
359void AliAnalysisTaskSECharmFraction::Init()
360{
361 // Initialization
362
363 if(fDebug > 1) printf("AnalysisTaskSED0Mass::Init() \n");
364 fmD0PDG = TDatabasePDG::Instance()->GetParticle(421)->Mass();
365
e047b348 366 // gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/ConfigVertexingHF.C");
367 // gROOT->LoadMacro("$ALICE_ROOT/PWG3/vertexingHF/D0fromBSetCuts.C");
368 // 2 sets of dedicated cuts: fCutsTight is assumed as the standard cut object
624c07ab 369
e047b348 370 // SetAcceptanceCut();
371 if(fNtrMaxforVtx<0)SetNMaxTrForVtx(3); //DEFAULT : NO SELECTION
372 if(fsignalInvMassCut<0.||flargeInvMassCut<0.||fsidebandInvMassCut<0.||fsidebandInvMassWindow<0.){
373 printf("AliAnalysisTaskSECharmFraction: Not All info for mass selection provided: switch to default values \n");
374 SetStandardMassSelection();
624c07ab 375 }
e047b348 376
377 AliRDHFCutsD0toKpi* copyfCutsTight=new AliRDHFCutsD0toKpi(*fCutsTight);
378 const char* nameoutputTight=GetOutputSlot(21)->GetContainer()->GetName();
379 copyfCutsTight->SetName(nameoutputTight);
380 AliRDHFCutsD0toKpi* copyfCutsLoose=new AliRDHFCutsD0toKpi(*fCutsLoose);
381 const char* nameoutputLoose=GetOutputSlot(22)->GetContainer()->GetName();
382 copyfCutsLoose->SetName(nameoutputLoose);
383 // Post the data
384 PostData(21,copyfCutsTight);
385 PostData(22,copyfCutsLoose);
386
624c07ab 387 return;
388}
389
390//________________________________________________________________________
391void AliAnalysisTaskSECharmFraction::UserCreateOutputObjects()
392{
393 // Create histograms
394 // Called once
c387e585 395
396 // ################ NAMING SCHEME ###################################
397 // LISTS NAMING SCHEME
398 // "list" + cut selection string + MC selection string
399 // cut strings: "NC" =nocuts, "LSC"= loose cuts, "TGHC"= tight cuts
400 // MC sel. strings: "sign"= D0 from c quark
401 // "fromDstar" = D0 from Dstar from c quark
402 // "fromB"= D0from B decay (->from b quark) + D0from Dstar from B
403 // "back"= backgroun, generic except the cas "other"
404 // "other"= background case for candidates made of a pion and a kaon coming from the same D0 (in 4 prong) or from D+
405 //
406 // HISTS NAMING SCHEME
407 //
408 // "h" + specific name + cut selection string + MC selection string + (InvMass region string) + (pt string)
409 //
410 // cut selection strings = those for lists
411 // MC selection strings = those for lists
412 // inv mass region strings : "PM" or "SB" for global properties and pt integrated histos
413 // "_PkMss" or "_SBMss" for impact par. pt dependent histos
414 // pt string : "_pt" + integer number of ptbin
415 //
416 //###################################################################
624c07ab 417
418 TString namehist;
419 TString titlehist;
420 TString strnamept,strtitlept;
e047b348 421 Printf("INSIDE USER CREATE \n");
624c07ab 422 fNentries=new TH1F("nentriesChFr", "Look at the number of entries! = number of AODs", 2,1.,2.);
e047b348 423 fSignalType=new TH1F("hsignaltype", "Histo for type of MC signal", 61,-1.,60.);
424 fSignalTypeLsCuts=new TH1F("hsignaltypeLsCuts", "Histo for type of MC signal with loose cuts", 61,-1.,60.);
425 fSignalTypeTghCuts=new TH1F("hsignaltypeTghCuts", "Histo for type of MC signal with tight cuts", 61,-1.,60.);
624c07ab 426
427 //########## DEFINE THE TLISTS ##################
e047b348 428 flistMCproperties=new TList();
429 flistMCproperties->SetOwner();
430 flistMCproperties->SetName("listMCproperties");
431
ac4c229c 432 flistNoCutsSignal = new TList();
433 flistNoCutsSignal->SetOwner();
434 flistNoCutsSignal->SetName("listNCsign");
624c07ab 435
ac4c229c 436 flistNoCutsBack = new TList();
437 flistNoCutsBack->SetOwner();
438 flistNoCutsBack->SetName("listNCback");
624c07ab 439
ac4c229c 440 flistNoCutsFromB = new TList();
441 flistNoCutsFromB->SetOwner();
442 flistNoCutsFromB->SetName("listNCfromB");
624c07ab 443
ac4c229c 444 flistNoCutsFromDstar = new TList();
445 flistNoCutsFromDstar->SetOwner();
446 flistNoCutsFromDstar->SetName("listNCfromDstar");
624c07ab 447
ac4c229c 448 flistNoCutsOther = new TList();
449 flistNoCutsOther->SetOwner();
450 flistNoCutsOther->SetName("listNCother");
624c07ab 451
452
ac4c229c 453 flistLsCutsSignal = new TList();
454 flistLsCutsSignal->SetOwner();
455 flistLsCutsSignal->SetName("listLSCsign");
624c07ab 456
ac4c229c 457 flistLsCutsBack = new TList();
458 flistLsCutsBack->SetOwner();
459 flistLsCutsBack->SetName("listLSCback");
624c07ab 460
ac4c229c 461 flistLsCutsFromB = new TList();
462 flistLsCutsFromB->SetOwner();
463 flistLsCutsFromB->SetName("listLSCfromB");
624c07ab 464
ac4c229c 465 flistLsCutsFromDstar = new TList();
466 flistLsCutsFromDstar->SetOwner();
467 flistLsCutsFromDstar->SetName("listLSCfromDstar");
624c07ab 468
ac4c229c 469 flistLsCutsOther = new TList();
470 flistLsCutsOther->SetOwner();
471 flistLsCutsOther->SetName("listLSCother");
624c07ab 472
473
ac4c229c 474 flistTghCutsSignal = new TList();
475 flistTghCutsSignal->SetOwner();
476 flistTghCutsSignal->SetName("listTGHCsign");
624c07ab 477
ac4c229c 478 flistTghCutsBack = new TList();
479 flistTghCutsBack->SetOwner();
480 flistTghCutsBack->SetName("listTGHCback");
624c07ab 481
ac4c229c 482 flistTghCutsFromB = new TList();
483 flistTghCutsFromB->SetOwner();
484 flistTghCutsFromB->SetName("listTGHCfromB");
624c07ab 485
ac4c229c 486 flistTghCutsFromDstar = new TList();
487 flistTghCutsFromDstar->SetOwner();
488 flistTghCutsFromDstar->SetName("listTGHCfromDstar");
624c07ab 489
ac4c229c 490 flistTghCutsOther = new TList();
491 flistTghCutsOther->SetOwner();
492 flistTghCutsOther->SetName("listTGHCother");
624c07ab 493
494
495
e047b348 496 Float_t ptbinsD0arr[35]={0.,0.1,0.2,0.3,0.4,0.5,0.6,0.8,1.,1.25,1.5,1.75,2.,2.3,2.6,3.,3.5,4.,4.5,5.,5.5,6.,7.,8.,9.,10.,12.,14.,16.,20.,25.,30.,40.,50.,100.};
497 Float_t dumbinning[201];
498 for(Int_t j=0;j<201;j++){
499 dumbinning[j]=(Float_t)j*0.5;
500 }
501 //################################################################################################
502 // #
503 // HISTO FOR MC PROPERTIES OF D0, c quarks and B mesons #
504 // #
505 //################################################################################################
506 TH1F *hMCcquarkAllPt=new TH1F("hMCcquarkAllPt","c quark Pt (all cquarks produced)",34,ptbinsD0arr);
507 TH1F *hMCcquarkAllEta=new TH1F("hMCcquarkAllEta","c quark Eta (all cquarks produced)",50,-3.,3.);
508 TH1F *hMCcquarkAllEnergy=new TH1F("hMCcquarkAllEnergy","c quark Pt (all cquarks produced)",200,0.,100.);
509 TH1F *hMCcquarkNdaught=new TH1F("hMCcquarkNdaught","N cquark daughters (all cquarks produced)",100,0.,100.);
510 TH1F *hMCD0fromcPt=new TH1F("hMCD0fromcPt","D0 from c Pt",34,ptbinsD0arr);
511 TH1F *hMCD0fromcEta=new TH1F("hMCD0fromcEta","D0 from c Eta",50,-3.,3.);
512 TH1F *hMCD0fromcEnergy=new TH1F("hMCD0fromcEnergy","D0 from c Energy",200,0.,100.);
513
514 TH2F *hMCD0VscquarkPt=new TH2F("hMCD0VscquarkPt","D0 pt Vs cquark pt",34,ptbinsD0arr,34,ptbinsD0arr);
515 TH2F *hMCD0VscquarkEnergy=new TH2F("hMCD0VscquarkEnergy","D0 Energy Vs cquark Energy",200,0.,50.,200,0.,50.);
516 TH1F *hMCD0deltacquarkEnergy=new TH1F("hMCD0deltacquarkEnergy","Fractional D0 Energy w.r.t. cquark Energy",20,0.,1.);
517 TH1F *hMCD0EnergyVsAvcquarkDaughtEn=new TH1F("hMCD0EnergyVsAvcquarkDaughtEn","#Delta(E^{D^0}-E_{avg})/E_{cquark}",40,-1.,1.);
518 TH1F *hMCD0cquarkAngle=new TH1F("hMCD0cquarkAngle","cosine of the angle between D0 and c quark particle",40,-1.,1.);
519 TH2F *hMCD0cquarkAngleEnergy=new TH2F("hMCD0cquarkAngleEnergy","cosine of the angle between D0 and c quark particle as a function of Energy",25,0.,50.,40,-1.,1.);
520
521 TH1I *hMCfromBpdgB=new TH1I("hMCfromBpdgB","hMCfromBpdgB",10000,0.,10000);
522 TH1F *hMCBhadrPt=new TH1F("hMCBhadrPt","B hadr Pt",34,ptbinsD0arr);
523 TH1F *hMCBhadrEta=new TH1F("hMCBhadrEta","B hadr Eta",50,-3.,3.);
524 TH1F *hMCBhadrEnergy=new TH1F("hMCBhadrEnergy","B hadr Pt",200,0.,100.);
525 TH1F *hMCBhadrNdaught=new TH1F("hMCBhadrNdaught","N Bhadr daughters",100,0.,100.);
526 TH1F *hMCD0fromBPt=new TH1F("hMCD0fromBPt","D0 from B Pt",34,ptbinsD0arr);
527 TH1F *hMCD0fromBEta=new TH1F("hMCD0fromBEta","D0 from B Eta",50,-3.,3.);
528 TH1F *hMCD0fromBEnergy=new TH1F("hMCD0fromBEnergy","D0 from B Energy",200,0.,100.);
529
530 TH2F *hMCD0VsBhadrPt=new TH2F("hMCD0VsBhadrPt","D0 pt Vs Bhadr pt",34,ptbinsD0arr,34,ptbinsD0arr);
531 TH2F *hMCD0VsBhadrEnergy=new TH2F("hMCD0VsBhadrEnergy","D0 Energy Vs Bhadr Energy",200,0.,50.,200,0.,50.);
532 TH1F *hMCD0deltaBhadrEnergy=new TH1F("hMCD0deltaBhadrEnergy","Fractional D0 Energy w.r.t. Bhadr Energy",20,0.,1.);
533 TH1F *hMCD0EnergyVsAvBDaughtEn=new TH1F("hMCD0EnergyVsAvBDaughtEn","#Delta(E^{D^0}-E_{avg})/E_{Bahdr}",40,-1.,1.);
534 TH1F *hMCD0BhadrAngle=new TH1F("hMCD0BhadrAngle","cosine of the angle between D0 and Bhadr particle",40,-1.,1.);
535 TH2F *hMCD0BhadrAngleEnergy=new TH2F("hMCD0BhadrAngleEnergy","cosine of the angle between D0 and Bhadr particle as a function of Energy",25,0.,50.,40,-1.,1.);
536
537 TH1I *hMCPartFound=new TH1I("hMCPartFound","1=c,2=D0,3=fromBall,4=fromBmeson,5=fromBbaryon",6,0,6);
538
539
540 flistMCproperties->Add(hMCcquarkAllPt);
541 flistMCproperties->Add(hMCcquarkAllEta);
542 flistMCproperties->Add(hMCcquarkAllEnergy);
543 flistMCproperties->Add(hMCcquarkNdaught);
544 flistMCproperties->Add(hMCD0fromcPt);
545 flistMCproperties->Add(hMCD0fromcEta);
546 flistMCproperties->Add(hMCD0fromcEnergy);
547 flistMCproperties->Add(hMCD0VscquarkPt);
548 flistMCproperties->Add(hMCD0VscquarkEnergy);
549 flistMCproperties->Add(hMCD0deltacquarkEnergy);
550 flistMCproperties->Add(hMCD0EnergyVsAvcquarkDaughtEn);
551 flistMCproperties->Add(hMCD0cquarkAngle);
552 flistMCproperties->Add(hMCD0cquarkAngleEnergy);
553
554 flistMCproperties->Add(hMCfromBpdgB);
555 flistMCproperties->Add(hMCBhadrPt);
556 flistMCproperties->Add(hMCBhadrEta);
557 flistMCproperties->Add(hMCBhadrEnergy);
558 flistMCproperties->Add(hMCBhadrNdaught);
559 flistMCproperties->Add(hMCD0fromBPt);
560 flistMCproperties->Add(hMCD0fromBEta);
561 flistMCproperties->Add(hMCD0fromBEnergy);
562 flistMCproperties->Add(hMCD0VsBhadrPt);
563 flistMCproperties->Add(hMCD0VsBhadrEnergy);
564 flistMCproperties->Add(hMCD0deltaBhadrEnergy);
565 flistMCproperties->Add(hMCD0EnergyVsAvBDaughtEn);
566 flistMCproperties->Add(hMCD0BhadrAngle);
567 flistMCproperties->Add(hMCD0BhadrAngleEnergy);
568 flistMCproperties->Add(hMCPartFound);
624c07ab 569
570 //################################################################################################
571 // #
572 // HISTOS FOR NO CUTS CASE #
573 // #
574 //################################################################################################
e047b348 575 Printf("AFTER MC HISTOS \n");
624c07ab 576
577 //############ NO CUTS SIGNAL HISTOGRAMS ###############
578 //
579 // ####### global properties histo ############
580
e047b348 581 TH2F *hCPtaVSd0d0NCsign=new TH2F("hCPtaVSd0d0NCsign","hCPtaVSd0d0_NoCuts_Signal",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 582 TH1F *hSecVtxZNCsign=new TH1F("hSecVtxZNCsign","hSecVtxZ_NoCuts_Signal",1000,-8.,8.);
583 TH1F *hSecVtxXNCsign=new TH1F("hSecVtxXNCsign","hSecVtxX_NoCuts_Signal",1000,-3000.,3000.);
584 TH1F *hSecVtxYNCsign=new TH1F("hSecVtxYNCsign","hSecVtxY_NoCuts_Signal",1000,-3000.,3000.);
585 TH2F *hSecVtxXYNCsign=new TH2F("hSecVtxXYNCsign","hSecVtxXY_NoCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
586 TH1F *hSecVtxPhiNCsign=new TH1F("hSecVtxPhiNCsign","hSecVtxPhi_NoCuts_Signal",180,-180.1,180.1);
e047b348 587 TH1F *hd0singlTrackNCsign=new TH1F("hd0singlTrackNCsign","hd0singlTrackNoCuts_Signal",1000,-5000.,5000.);
588 TH1F *hCPtaNCsign=new TH1F("hCPtaNCsign","hCPta_NoCuts_Signal",100,-1.,1.);
ac4c229c 589 TH1F *hd0xd0NCsign=new TH1F("hd0xd0NCsign","hd0xd0_NoCuts_Signal",1000,-100000.,100000.);
590 TH1F *hMassTrueNCsign=new TH1F("hMassTrueNCsign","D^{0} MC inv. Mass No Cuts Signal(All momenta)",600,1.600,2.200);
591 TH1F *hMassNCsign=new TH1F("hMassNCsign","D^{0} inv. Mass No Cuts Signal (All momenta)",600,1.600,2.200);
592 hMassNCsign->Sumw2();
593 TH1F *hMassTrueNCsignPM=new TH1F("hMassTrueNCsignPM","D^{0} MC inv. Mass No Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
594 TH1F *hMassNCsignPM=new TH1F("hMassNCsignPM","D^{0} inv. Mass No Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
595 hMassNCsignPM->Sumw2();
596
597 TH1F *hMassTrueNCsignSB=new TH1F("hMassTrueNCsignSB","D^{0} MC inv. Mass in Side Bands No Cuts Signal(All momenta)",600,1.600,2.200);
598 TH1F *hMassNCsignSB=new TH1F("hMassNCsignSB","D^{0} inv. Mass in Side Bands No Cuts Signal (All momenta)",600,1.600,2.200);
599 hMassNCsignSB->Sumw2();
600
601 flistNoCutsSignal->Add(hCPtaVSd0d0NCsign);
602 flistNoCutsSignal->Add(hSecVtxZNCsign);
603 flistNoCutsSignal->Add(hSecVtxYNCsign);
604 flistNoCutsSignal->Add(hSecVtxXNCsign);
605 flistNoCutsSignal->Add(hSecVtxXYNCsign);
606 flistNoCutsSignal->Add(hSecVtxPhiNCsign);
e047b348 607 flistNoCutsSignal->Add(hd0singlTrackNCsign);
ac4c229c 608 flistNoCutsSignal->Add(hCPtaNCsign);
609 flistNoCutsSignal->Add(hd0xd0NCsign);
610 flistNoCutsSignal->Add(hMassTrueNCsign);
611 flistNoCutsSignal->Add(hMassNCsign);
612 flistNoCutsSignal->Add(hMassTrueNCsignPM);
613 flistNoCutsSignal->Add(hMassNCsignPM);
614 flistNoCutsSignal->Add(hMassTrueNCsignSB);
615 flistNoCutsSignal->Add(hMassNCsignSB);
e047b348 616
617 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
618 TH1F *hdcaNCsign=new TH1F("hdcaNCsign","hdca_NoCuts_Signal",100,0.,1000.);
619 hdcaNCsign->SetXTitle("dca [#mum]");
620 hdcaNCsign->SetYTitle("Entries");
621 TH1F *hcosthetastarNCsign=new TH1F("hcosthetastarNCsign","hCosThetaStar_NoCuts_Signal",50,-1.,1.);
622 hcosthetastarNCsign->SetXTitle("cos #theta^{*}");
623 hcosthetastarNCsign->SetYTitle("Entries");
624 TH1F *hptD0NCsign=new TH1F("hptD0NCsign","D^{0} transverse momentum distribution",34,ptbinsD0arr);
625 hptD0NCsign->SetXTitle("p_{t} [GeV/c]");
626 hptD0NCsign->SetYTitle("Entries");
627 TH1F *hptD0VsMaxPtNCsign=new TH1F("hptD0VsMaxPtNCsign","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
628 TH2F *hptD0PTallsqrtNCsign=new TH2F("hptD0PTallsqrtNCsign","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
629 TH2F *hptD0PTallNCsign=new TH2F("hptD0PTallNCsign","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
630 TH2F *hptD0vsptBNCsign=new TH2F("hptD0vsptBNCsign","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
631 TH2F *hpD0vspBNCsign=new TH2F("hpD0vspBNCsign","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
632 TH2F *hptD0vsptcquarkNCsign=new TH2F("hptD0vsptcquarkNCsign","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
633 TH2F *hpD0vspcquarkNCsign=new TH2F("hpD0vspcquarkNCsign","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
634 flistNoCutsSignal->Add(hdcaNCsign);
635 flistNoCutsSignal->Add(hcosthetastarNCsign);
636 flistNoCutsSignal->Add(hptD0NCsign);
637 flistNoCutsSignal->Add(hptD0VsMaxPtNCsign);
638 flistNoCutsSignal->Add(hptD0PTallsqrtNCsign);
639 flistNoCutsSignal->Add(hptD0PTallNCsign);
640 flistNoCutsSignal->Add(hptD0vsptBNCsign);
641 flistNoCutsSignal->Add(hpD0vspBNCsign);
642 flistNoCutsSignal->Add(hptD0vsptcquarkNCsign);
643 flistNoCutsSignal->Add(hpD0vspcquarkNCsign);
644
645 TH1F *hd0zD0ptNCsign;
646 TH1F *hInvMassNCsign;
647 TH2F *hInvMassPtNCsign=new TH2F("hInvMassPtNCsign","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
648 flistNoCutsSignal->Add(hInvMassPtNCsign);
649 TH1F *hetaNCsign;
650 TH1F *hCosPDPBNCsign;
651 TH1F *hCosPcPDNCsign;
652 // ADDITIONAL HISTOS
653 TH2F *hd0D0VSd0xd0NCsignpt;
654 TH2F *hangletracksVSd0xd0NCsignpt;
655 TH2F *hangletracksVSd0D0NCsignpt;
656 TH1F *hd0xd0NCsignpt;
657
658 TH2F *hTOFpidNCsign=new TH2F("hTOFpidNCsign","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
659 flistNoCutsSignal->Add(hTOFpidNCsign);
660
661 //##################
662 for(Int_t i=0;i<fnbins;i++){
663 //Printf("INSIDE HISTOS CREATION LOOP: %d \n",fnbins);
664
665 namehist="hd0zD0ptNCsign_pt";
666 namehist+=i;
667 titlehist="d0(z) No Cuts Signalm ptbin=";
668 titlehist+=i;
669 hd0zD0ptNCsign=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
670 hd0zD0ptNCsign->SetXTitle("d_{0}(z) [#mum]");
671 hd0zD0ptNCsign->SetYTitle("Entries");
672 flistNoCutsSignal->Add(hd0zD0ptNCsign);
673
674 namehist="hInvMassNCsign_pt";
675 namehist+=i;
676 titlehist="Invariant Mass No Cuts Signal ptbin=";
677 titlehist+=i;
678 hInvMassNCsign=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
679 hInvMassNCsign->SetXTitle("Invariant Mass [GeV]");
680 hInvMassNCsign->SetYTitle("Entries");
681 flistNoCutsSignal->Add(hInvMassNCsign);
682
683 namehist="hetaNCsign_pt";
684 namehist+=i;
685 titlehist="eta No Cuts Signal ptbin=";
686 titlehist+=i;
687 hetaNCsign=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
688 hetaNCsign->SetXTitle("Pseudorapidity");
689 hetaNCsign->SetYTitle("Entries");
690 flistNoCutsSignal->Add(hetaNCsign);
691
692 namehist="hCosPDPBNCsign_pt";
693 namehist+=i;
694 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
695 titlehist+=i;
696 hCosPDPBNCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
697 hCosPDPBNCsign->SetXTitle("Cosine between D0 momentum and B momentum");
698 hCosPDPBNCsign->SetYTitle("Entries");
699 flistNoCutsSignal->Add(hCosPDPBNCsign);
700
701 namehist="hCosPcPDNCsign_pt";
702 namehist+=i;
703 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
704 titlehist+=i;
705 hCosPcPDNCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
706 hCosPcPDNCsign->SetXTitle("Cosine between c quark momentum and D0 momentum");
707 hCosPcPDNCsign->SetYTitle("Entries");
708 flistNoCutsSignal->Add(hCosPcPDNCsign);
709
710
711 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
712 namehist="hd0xd0NCsign_pt";
713 namehist+=i;
714 titlehist="d0xd0 No Cuts Signal ptbin=";
715 titlehist+=i;
716 hd0xd0NCsignpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
717 hd0xd0NCsignpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
718 hd0xd0NCsignpt->SetYTitle("Entries");
719 flistNoCutsSignal->Add(hd0xd0NCsignpt);
720
721
722 namehist="hd0D0VSd0xd0NCsign_pt";
723 namehist+=i;
724 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Signal ptbin=";
725 titlehist+=i;
726 hd0D0VSd0xd0NCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
727 hd0D0VSd0xd0NCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
728 hd0D0VSd0xd0NCsignpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
729 flistNoCutsSignal->Add(hd0D0VSd0xd0NCsignpt);
730
731
732 namehist="hangletracksVSd0xd0NCsign_pt";
733 namehist+=i;
734 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Signal ptbin=";
735 titlehist+=i;
736 hangletracksVSd0xd0NCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
737 hangletracksVSd0xd0NCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
738 hangletracksVSd0xd0NCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
739 flistNoCutsSignal->Add(hangletracksVSd0xd0NCsignpt);
740
741
742 namehist="hangletracksVSd0D0NCsign_pt";
743 namehist+=i;
744 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} No Cuts Signal ptbin=";
745 titlehist+=i;
746 hangletracksVSd0D0NCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
747 hangletracksVSd0D0NCsignpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
748 hangletracksVSd0D0NCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
749 flistNoCutsSignal->Add(hangletracksVSd0D0NCsignpt);
750
751 }
752 Printf("AFTER LOOP HISTOS CREATION \n");
753 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
754 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
624c07ab 755
756 // ####### d0 D0 histos ############
ac4c229c 757 TH1F *hd0D0NCsignPM = new TH1F("hd0D0NCsignPM","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
758 hd0D0NCsignPM->SetXTitle("Impact parameter [#mum]");
759 hd0D0NCsignPM->SetYTitle("Entries");
760
761 TH1F *hd0D0VtxTrueNCsignPM = new TH1F("hd0D0VtxTrueNCsignPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
762 hd0D0VtxTrueNCsignPM->SetXTitle("Impact parameter [#mum]");
763 hd0D0VtxTrueNCsignPM->SetYTitle("Entries");
764
765 TH1F *hMCd0D0NCsignPM = new TH1F("hMCd0D0NCsignPM","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
766 hMCd0D0NCsignPM->SetXTitle("MC Impact parameter [#mum]");
767 hMCd0D0NCsignPM->SetYTitle("Entries");
768
769 TH1F *hd0D0NCsignSB = new TH1F("hd0D0NCsignSB","D^{0} impact par. plot , No Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
770 hd0D0NCsignSB->SetXTitle("Impact parameter [#mum]");
771 hd0D0NCsignSB->SetYTitle("Entries");
772
773 TH1F *hd0D0VtxTrueNCsignSB = new TH1F("hd0D0VtxTrueNCsignSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
774 hd0D0VtxTrueNCsignSB->SetXTitle("Impact parameter [#mum]");
775 hd0D0VtxTrueNCsignSB->SetYTitle("Entries");
776
777 TH1F *hMCd0D0NCsignSB = new TH1F("hMCd0D0NCsignSB","D^{0} impact par. plot, No Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
778 hMCd0D0NCsignSB->SetXTitle("MC Impact parameter [#mum]");
779 hMCd0D0NCsignSB->SetYTitle("Entries");
780
781 flistNoCutsSignal->Add(hd0D0NCsignPM);
782 flistNoCutsSignal->Add(hd0D0VtxTrueNCsignPM);
783 flistNoCutsSignal->Add(hMCd0D0NCsignPM);
784 flistNoCutsSignal->Add(hd0D0NCsignSB);
785 flistNoCutsSignal->Add(hd0D0VtxTrueNCsignSB);
786 flistNoCutsSignal->Add(hMCd0D0NCsignSB);
787
e047b348 788 TH1F *hd0D0ptNCsignPM;
789 TH1F *hMCd0D0ptNCsignPM;
790 TH1F *hd0D0VtxTrueptNCsignPM;
791 TH1F *hd0D0ptNCsignSB;
792 TH1F *hMCd0D0ptNCsignSB;
793 TH1F *hd0D0VtxTrueptNCsignSB;
ac4c229c 794 namehist="hd0D0ptNCsign_";
624c07ab 795 titlehist="D^{0} impact par. plot, No Cuts, Signal, ";
796 for(Int_t i=0;i<fnbins;i++){
e047b348 797 Printf("IN HISTOS CREATION USING PTBINS VALUES for NAMES \n");
624c07ab 798 strnamept=namehist;
799 strnamept.Append("PkMss_pt");
800 strnamept+=i;
801
802 strtitlept=titlehist;
803 strtitlept.Append(" Mass Peak, ");
e047b348 804
624c07ab 805 strtitlept+=fptbins[i];
e047b348 806 Printf("IN HISTOS CREATION USING PTBINS VALUES for NAMES %d: %f\n",i,fptbins[i]);
624c07ab 807 strtitlept.Append("<= pt <");
808 strtitlept+=fptbins[i+1];
809 strtitlept.Append(" [GeV/c]");
810
e047b348 811 hd0D0ptNCsignPM= new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
812 hd0D0ptNCsignPM->SetXTitle("Impact parameter [#mum] ");
813 hd0D0ptNCsignPM->SetYTitle("Entries");
814 flistNoCutsSignal->Add(hd0D0ptNCsignPM);
624c07ab 815
816 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 817 hMCd0D0ptNCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
818 hMCd0D0ptNCsignPM->SetXTitle("MC Impact parameter [#mum] ");
819 hMCd0D0ptNCsignPM->SetYTitle("Entries");
820 flistNoCutsSignal->Add(hMCd0D0ptNCsignPM);
624c07ab 821
822
823 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 824 hd0D0VtxTrueptNCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
825 hd0D0VtxTrueptNCsignPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
826 hd0D0VtxTrueptNCsignPM->SetYTitle("Entries");
827 flistNoCutsSignal->Add(hd0D0VtxTrueptNCsignPM);
624c07ab 828
829 strnamept=namehist;
830 strnamept.Append("SBMss_pt");
831 strnamept+=i;
832
833 strtitlept=titlehist;
834 strtitlept.Append(" Side Bands, ");
835 strtitlept+=fptbins[i];
836 strtitlept.Append("<= pt <");
837 strtitlept+=fptbins[i+1];
838 strtitlept.Append(" [GeV/c]");
839
e047b348 840 hd0D0ptNCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
841 hd0D0ptNCsignSB->SetXTitle("Impact parameter [#mum] ");
842 hd0D0ptNCsignSB->SetYTitle("Entries");
843 flistNoCutsSignal->Add(hd0D0ptNCsignSB);
624c07ab 844
845 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 846 hMCd0D0ptNCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
847 hMCd0D0ptNCsignSB->SetXTitle("MC Impact parameter [#mum] ");
848 hMCd0D0ptNCsignSB->SetYTitle("Entries");
849 flistNoCutsSignal->Add(hMCd0D0ptNCsignSB);
624c07ab 850
851 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 852 hd0D0VtxTrueptNCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
853 hd0D0VtxTrueptNCsignSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
854 hd0D0VtxTrueptNCsignSB->SetYTitle("Entries");
855 flistNoCutsSignal->Add(hd0D0VtxTrueptNCsignSB);
624c07ab 856 }
857
e047b348 858 Printf("AFTER SIGNAL HISTOS CREATION for NOCUTS\n");
859
624c07ab 860
861 //############ NO CUTS BACKGROUND HISTOGRAMS ###########
862 //
863 // ######## global properties histos #######
e047b348 864 TH2F *hCPtaVSd0d0NCback=new TH2F("hCPtaVSd0d0NCback","hCPtaVSd0d0_NoCuts_Background",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 865 TH1F *hSecVtxZNCback=new TH1F("hSecVtxZNCback","hSecVtxZ_NoCuts_Background",1000,-8.,8.);
866 TH1F *hSecVtxXNCback=new TH1F("hSecVtxXNCback","hSecVtxX_NoCuts_Background",1000,-3000.,3000.);
867 TH1F *hSecVtxYNCback=new TH1F("hSecVtxYNCback","hSecVtxY_NoCuts_Background",1000,-3000.,3000.);
868 TH2F *hSecVtxXYNCback=new TH2F("hSecVtxXYNCback","hSecVtxXY_NoCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
869 TH1F *hSecVtxPhiNCback=new TH1F("hSecVtxPhiNCback","hSecVtxPhi_NoCuts_Background",180,-180.1,180.1);
e047b348 870 TH1F *hd0singlTrackNCback=new TH1F("hd0singlTrackNCback","hd0singlTrackNoCuts_Back",1000,-5000.,5000.);
871 TH1F *hCPtaNCback=new TH1F("hCPtaNCback","hCPta_NoCuts_Background",100,-1.,1.);
ac4c229c 872 TH1F *hd0xd0NCback=new TH1F("hd0xd0NCback","hd0xd0_NoCuts_Background",1000,-100000.,100000.);
873 TH1F *hMassTrueNCback=new TH1F("hMassTrueNCback","D^{0} MC inv. Mass No Cuts Background(All momenta)",600,1.600,2.200);
874 TH1F *hMassNCback=new TH1F("hMassNCback","D^{0} inv. Mass No Cuts Background (All momenta)",600,1.600,2.200);
875 hMassNCback->Sumw2();
876 TH1F *hMassTrueNCbackPM=new TH1F("hMassTrueNCbackPM","D^{0} MC inv. Mass No Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
877 TH1F *hMassNCbackPM=new TH1F("hMassNCbackPM","D^{0} inv. Mass No Cuts Background (All momenta), MassPeak",600,1.600,2.200);
878 hMassNCbackPM->Sumw2();
879 TH1F *hMassTrueNCbackSB=new TH1F("hMassTrueNCbackSB","D^{0} MC inv. Mass in Side Bands No Cuts Background(All momenta)",600,1.600,2.200);
880 TH1F *hMassNCbackSB=new TH1F("hMassNCbackSB","D^{0} inv. Mass in Side Bands No Cuts Background (All momenta)",600,1.600,2.200);
881 hMassNCbackSB->Sumw2();
882
883 flistNoCutsBack->Add(hCPtaVSd0d0NCback);
884 flistNoCutsBack->Add(hSecVtxZNCback);
885 flistNoCutsBack->Add(hSecVtxYNCback);
886 flistNoCutsBack->Add(hSecVtxXNCback);
887 flistNoCutsBack->Add(hSecVtxXYNCback);
888 flistNoCutsBack->Add(hSecVtxPhiNCback);
e047b348 889 flistNoCutsBack->Add(hd0singlTrackNCback);
ac4c229c 890 flistNoCutsBack->Add(hCPtaNCback);
891 flistNoCutsBack->Add(hd0xd0NCback);
892 flistNoCutsBack->Add(hMassTrueNCback);
893 flistNoCutsBack->Add(hMassNCback);
894 flistNoCutsBack->Add(hMassTrueNCbackPM);
895 flistNoCutsBack->Add(hMassNCbackPM);
896 flistNoCutsBack->Add(hMassTrueNCbackSB);
897 flistNoCutsBack->Add(hMassNCbackSB);
624c07ab 898
899
e047b348 900 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
901 TH1F *hdcaNCback=new TH1F("hdcaNCback","hdca_NoCuts_Backgr",100,0.,1000.);
902 hdcaNCback->SetXTitle("dca [#mum]");
903 hdcaNCback->SetYTitle("Entries");
904 TH1F *hcosthetastarNCback=new TH1F("hcosthetastarNCback","hCosThetaStar_NoCuts_Backgr",50,-1.,1.);
905 hcosthetastarNCback->SetXTitle("cos #theta^{*}");
906 hcosthetastarNCback->SetYTitle("Entries");
907 TH1F *hptD0NCback=new TH1F("hptD0NCback","D^{0} transverse momentum distribution",34,ptbinsD0arr);
908 hptD0NCback->SetXTitle("p_{t} [GeV/c]");
909 hptD0NCback->SetYTitle("Entries");
910 TH1F *hptD0VsMaxPtNCback=new TH1F("hptD0VsMaxPtNCback","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
911 TH2F *hptD0PTallsqrtNCback=new TH2F("hptD0PTallsqrtNCback","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
912 TH2F *hptD0PTallNCback=new TH2F("hptD0PTallNCback","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
913 TH2F *hptD0vsptBNCback=new TH2F("hptD0vsptBNCback","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
914 TH2F *hpD0vspBNCback=new TH2F("hpD0vspBNCback","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
915 TH2F *hptD0vsptcquarkNCback=new TH2F("hptD0vsptcquarkNCback","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
916 TH2F *hpD0vspcquarkNCback=new TH2F("hpD0vspcquarkNCback","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
917 flistNoCutsBack->Add(hdcaNCback);
918 flistNoCutsBack->Add(hcosthetastarNCback);
919 flistNoCutsBack->Add(hptD0NCback);
920 flistNoCutsBack->Add(hptD0VsMaxPtNCback);
921 flistNoCutsBack->Add(hptD0PTallsqrtNCback);
922 flistNoCutsBack->Add(hptD0PTallNCback);
923 flistNoCutsBack->Add(hptD0vsptBNCback);
924 flistNoCutsBack->Add(hpD0vspBNCback);
925 flistNoCutsBack->Add(hptD0vsptcquarkNCback);
926 flistNoCutsBack->Add(hpD0vspcquarkNCback);
927
928 TH1F *hd0zD0ptNCback;
929 TH1F *hInvMassNCback;
930 TH2F *hInvMassPtNCback=new TH2F("hInvMassPtNCback","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
931 TH1F *hetaNCback;
932 TH1F *hCosPDPBNCback;
933 TH1F *hCosPcPDNCback;
934 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
935 TH2F *hd0D0VSd0xd0NCbackpt;
936 TH2F *hangletracksVSd0xd0NCbackpt;
937 TH2F *hangletracksVSd0D0NCbackpt;
938 TH1F *hd0xd0NCbackpt;
939 flistNoCutsBack->Add(hInvMassPtNCback);
940
941 TH2F *hTOFpidNCback=new TH2F("hTOFpidNCback","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
942 flistNoCutsBack->Add(hTOFpidNCback);
943
944 for(Int_t i=0;i<fnbins;i++){
945 namehist="hd0zD0ptNCback_pt";
946 namehist+=i;
947 titlehist="d0(z) No Cuts Backgrm ptbin=";
948 titlehist+=i;
949 hd0zD0ptNCback=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
950 hd0zD0ptNCback->SetXTitle("d_{0}(z) [#mum]");
951 hd0zD0ptNCback->SetYTitle("Entries");
952 flistNoCutsBack->Add(hd0zD0ptNCback);
953
954 namehist="hInvMassNCback_pt";
955 namehist+=i;
956 titlehist="Invariant Mass No Cuts Backgr ptbin=";
957 titlehist+=i;
958 hInvMassNCback=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
959 hInvMassNCback->SetXTitle("Invariant Mass [GeV]");
960 hInvMassNCback->SetYTitle("Entries");
961 flistNoCutsBack->Add(hInvMassNCback);
962
963 namehist="hetaNCback_pt";
964 namehist+=i;
965 titlehist="eta No Cuts Backgr ptbin=";
966 titlehist+=i;
967 hetaNCback=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
968 hetaNCback->SetXTitle("Pseudorapidity");
969 hetaNCback->SetYTitle("Entries");
970 flistNoCutsBack->Add(hetaNCback);
971
972 namehist="hCosPDPBNCback_pt";
973 namehist+=i;
974 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
975 titlehist+=i;
976 hCosPDPBNCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
977 hCosPDPBNCback->SetXTitle("Cosine between D0 momentum and B momentum");
978 hCosPDPBNCback->SetYTitle("Entries");
979 flistNoCutsBack->Add(hCosPDPBNCback);
980
981 namehist="hCosPcPDNCback_pt";
982 namehist+=i;
983 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
984 titlehist+=i;
985 hCosPcPDNCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
986 hCosPcPDNCback->SetXTitle("Cosine between c quark momentum and D0 momentum");
987 hCosPcPDNCback->SetYTitle("Entries");
988 flistNoCutsBack->Add(hCosPcPDNCback);
989
990
991 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
992 namehist="hd0xd0NCback_pt";
993 namehist+=i;
994 titlehist="d0xd0 No Cuts Background ptbin=";
995 titlehist+=i;
996 hd0xd0NCbackpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
997 hd0xd0NCbackpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
998 hd0xd0NCbackpt->SetYTitle("Entries");
999 flistNoCutsBack->Add(hd0xd0NCbackpt);
1000
1001
1002 namehist="hd0D0VSd0xd0NCback_pt";
1003 namehist+=i;
1004 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Back ptbin=";
1005 titlehist+=i;
1006 hd0D0VSd0xd0NCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
1007 hd0D0VSd0xd0NCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1008 hd0D0VSd0xd0NCbackpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
1009 flistNoCutsBack->Add(hd0D0VSd0xd0NCbackpt);
1010
1011
1012 namehist="hangletracksVSd0xd0NCback_pt";
1013 namehist+=i;
1014 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Back ptbin=";
1015 titlehist+=i;
1016 hangletracksVSd0xd0NCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
1017 hangletracksVSd0xd0NCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1018 hangletracksVSd0xd0NCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
1019 flistNoCutsBack->Add(hangletracksVSd0xd0NCbackpt);
1020
1021
1022 namehist="hangletracksVSd0D0NCback_pt";
1023 namehist+=i;
1024 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} No Cuts Back ptbin=";
1025 titlehist+=i;
1026 hangletracksVSd0D0NCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
1027 hangletracksVSd0D0NCbackpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
1028 hangletracksVSd0D0NCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
1029 flistNoCutsBack->Add(hangletracksVSd0D0NCbackpt);
1030
1031
1032
1033 }
1034 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
1035 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1036
1037
1038
624c07ab 1039 // ####### d0 D0 histos ############
1040
ac4c229c 1041 TH1F *hd0D0NCbackPM = new TH1F("hd0D0NCbackPM","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1042 hd0D0NCbackPM->SetXTitle("Impact parameter [#mum]");
1043 hd0D0NCbackPM->SetYTitle("Entries");
1044
1045 TH1F *hd0D0VtxTrueNCbackPM = new TH1F("hd0D0VtxTrueNCbackPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1046 hd0D0VtxTrueNCbackPM->SetXTitle("Impact parameter [#mum]");
1047 hd0D0VtxTrueNCbackPM->SetYTitle("Entries");
1048
1049 TH1F *hMCd0D0NCbackPM = new TH1F("hMCd0D0NCbackPM","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1050 hMCd0D0NCbackPM->SetXTitle("MC Impact parameter [#mum]");
1051 hMCd0D0NCbackPM->SetYTitle("Entries");
1052
1053 TH1F *hd0D0NCbackSB = new TH1F("hd0D0NCbackSB","D^{0} impact par. plot , No Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1054 hd0D0NCbackSB->SetXTitle("Impact parameter [#mum]");
1055 hd0D0NCbackSB->SetYTitle("Entries");
1056
1057 TH1F *hd0D0VtxTrueNCbackSB = new TH1F("hd0D0VtxTrueNCbackSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1058 hd0D0VtxTrueNCbackSB->SetXTitle("Impact parameter [#mum]");
1059 hd0D0VtxTrueNCbackSB->SetYTitle("Entries");
1060
1061 TH1F *hMCd0D0NCbackSB = new TH1F("hMCd0D0NCbackSB","D^{0} impact par. plot, No Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
1062 hMCd0D0NCbackSB->SetXTitle("MC Impact parameter [#mum]");
1063 hMCd0D0NCbackSB->SetYTitle("Entries");
1064
1065 flistNoCutsBack->Add(hd0D0NCbackPM);
1066 flistNoCutsBack->Add(hd0D0VtxTrueNCbackPM);
1067 flistNoCutsBack->Add(hMCd0D0NCbackPM);
1068 flistNoCutsBack->Add(hd0D0NCbackSB);
1069 flistNoCutsBack->Add(hd0D0VtxTrueNCbackSB);
1070 flistNoCutsBack->Add(hMCd0D0NCbackSB);
1071
e047b348 1072 TH1F *hd0D0ptNCbackPM;
1073 TH1F *hMCd0D0ptNCbackPM;
1074 TH1F *hd0D0VtxTrueptNCbackPM;
1075 TH1F *hd0D0ptNCbackSB;
1076 TH1F *hMCd0D0ptNCbackSB;
1077 TH1F *hd0D0VtxTrueptNCbackSB;
ac4c229c 1078 namehist="hd0D0ptNCback_";
624c07ab 1079 titlehist="D^{0} impact par. plot, No Cuts, Background, ";
1080 for(Int_t i=0;i<fnbins;i++){
1081 strnamept=namehist;
1082 strnamept.Append("PkMss_pt");
1083 strnamept+=i;
1084
1085 strtitlept=titlehist;
1086 strtitlept.Append(" Mass Peak, ");
1087 strtitlept+=fptbins[i];
1088 strtitlept.Append("<= pt <");
1089 strtitlept+=fptbins[i+1];
1090 strtitlept.Append(" [GeV/c]");
1091
e047b348 1092 hd0D0ptNCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1093 hd0D0ptNCbackPM->SetXTitle("Impact parameter [#mum] ");
1094 hd0D0ptNCbackPM->SetYTitle("Entries");
1095 flistNoCutsBack->Add(hd0D0ptNCbackPM);
624c07ab 1096
1097 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1098 hMCd0D0ptNCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1099 hMCd0D0ptNCbackPM->SetXTitle("MC Impact parameter [#mum] ");
1100 hMCd0D0ptNCbackPM->SetYTitle("Entries");
1101 flistNoCutsBack->Add(hMCd0D0ptNCbackPM);
624c07ab 1102
1103
1104 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1105 hd0D0VtxTrueptNCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1106 hd0D0VtxTrueptNCbackPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1107 hd0D0VtxTrueptNCbackPM->SetYTitle("Entries");
1108 flistNoCutsBack->Add(hd0D0VtxTrueptNCbackPM);
624c07ab 1109
1110 strnamept=namehist;
1111 strnamept.Append("SBMss_pt");
1112 strnamept+=i;
1113
1114 strtitlept=titlehist;
1115 strtitlept.Append(" Side Bands, ");
1116 strtitlept+=fptbins[i];
1117 strtitlept.Append("<= pt <");
1118 strtitlept+=fptbins[i+1];
1119 strtitlept.Append(" [GeV/c]");
1120
e047b348 1121 hd0D0ptNCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1122 hd0D0ptNCbackSB->SetXTitle("Impact parameter [#mum] ");
1123 hd0D0ptNCbackSB->SetYTitle("Entries");
1124 flistNoCutsBack->Add(hd0D0ptNCbackSB);
624c07ab 1125
1126 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1127 hMCd0D0ptNCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1128 hMCd0D0ptNCbackSB->SetXTitle("MC Impact parameter [#mum] ");
1129 hMCd0D0ptNCbackSB->SetYTitle("Entries");
1130 flistNoCutsBack->Add(hMCd0D0ptNCbackSB);
624c07ab 1131
1132 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1133 hd0D0VtxTrueptNCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1134 hd0D0VtxTrueptNCbackSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1135 hd0D0VtxTrueptNCbackSB->SetYTitle("Entries");
1136 flistNoCutsBack->Add(hd0D0VtxTrueptNCbackSB);
624c07ab 1137 }
1138
1139
1140
1141 //############ NO CUTS FROMB HISTOGRAMS ###########
1142 //
1143 //####### global properties histos
1144
e047b348 1145 TH2F *hCPtaVSd0d0NCfromB=new TH2F("hCPtaVSd0d0NCfromB","hCPtaVSd0d0_NoCuts_FromB",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 1146 TH1F *hSecVtxZNCfromB=new TH1F("hSecVtxZNCfromB","hSecVtxZ_NoCuts_FromB",1000,-8.,8.);
1147 TH1F *hSecVtxXNCfromB=new TH1F("hSecVtxXNCfromB","hSecVtxX_NoCuts_FromB",1000,-3000.,3000.);
1148 TH1F *hSecVtxYNCfromB=new TH1F("hSecVtxYNCfromB","hSecVtxY_NoCuts_FromB",1000,-3000.,3000.);
1149 TH2F *hSecVtxXYNCfromB=new TH2F("hSecVtxXYNCfromB","hSecVtxXY_NoCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
1150 TH1F *hSecVtxPhiNCfromB=new TH1F("hSecVtxPhiNCfromB","hSecVtxPhi_NoCuts_FromB",180,-180.1,180.1);
e047b348 1151 TH1F *hd0singlTrackNCfromB=new TH1F("hd0singlTrackNCfromB","hd0singlTrackNoCuts_FromB",1000,-5000.,5000.);
1152 TH1F *hCPtaNCfromB=new TH1F("hCPtaNCfromB","hCPta_NoCuts_FromB",100,-1.,1.);
ac4c229c 1153 TH1F *hd0xd0NCfromB=new TH1F("hd0xd0NCfromB","hd0xd0_NoCuts_FromB",1000,-100000.,100000.);
1154 TH1F *hMassTrueNCfromB=new TH1F("hMassTrueNCfromB","D^{0} MC inv. Mass No Cuts FromB(All momenta)",600,1.600,2.200);
1155 TH1F *hMassNCfromB=new TH1F("hMassNCfromB","D^{0} inv. Mass No Cuts FromB (All momenta)",600,1.600,2.200);
1156 hMassNCfromB->Sumw2();
1157 TH1F *hMassTrueNCfromBPM=new TH1F("hMassTrueNCfromBPM","D^{0} MC inv. Mass No Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
1158 TH1F *hMassNCfromBPM=new TH1F("hMassNCfromBPM","D^{0} inv. Mass No Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
1159 hMassNCfromB->Sumw2();
1160 TH1F *hMassTrueNCfromBSB=new TH1F("hMassTrueNCfromBSB","D^{0} MC inv. Mass in Side Bands No Cuts FromB(All momenta)",600,1.600,2.200);
1161 TH1F *hMassNCfromBSB=new TH1F("hMassNCfromBSB","D^{0} inv. Mass in Side Bands No Cuts FromB (All momenta)",600,1.600,2.200);
1162 hMassNCfromBSB->Sumw2();
1163
1164 flistNoCutsFromB->Add(hCPtaVSd0d0NCfromB);
1165 flistNoCutsFromB->Add(hSecVtxZNCfromB);
1166 flistNoCutsFromB->Add(hSecVtxYNCfromB);
1167 flistNoCutsFromB->Add(hSecVtxXNCfromB);
1168 flistNoCutsFromB->Add(hSecVtxXYNCfromB);
1169 flistNoCutsFromB->Add(hSecVtxPhiNCfromB);
e047b348 1170 flistNoCutsFromB->Add(hd0singlTrackNCfromB);
ac4c229c 1171 flistNoCutsFromB->Add(hCPtaNCfromB);
1172 flistNoCutsFromB->Add(hd0xd0NCfromB);
1173 flistNoCutsFromB->Add(hMassTrueNCfromB);
1174 flistNoCutsFromB->Add(hMassNCfromB);
1175 flistNoCutsFromB->Add(hMassTrueNCfromBPM);
1176 flistNoCutsFromB->Add(hMassNCfromBPM);
1177 flistNoCutsFromB->Add(hMassTrueNCfromBSB);
1178 flistNoCutsFromB->Add(hMassNCfromBSB);
624c07ab 1179
e047b348 1180
1181
1182
1183
1184 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
1185 TH1F *hdcaNCfromB=new TH1F("hdcaNCfromB","hdca_NoCuts_FromB",100,0.,1000.);
1186 hdcaNCfromB->SetXTitle("dca [#mum]");
1187 hdcaNCfromB->SetYTitle("Entries");
1188 TH1F *hcosthetastarNCfromB=new TH1F("hcosthetastarNCfromB","hCosThetaStar_NoCuts_FromB",50,-1.,1.);
1189 hcosthetastarNCfromB->SetXTitle("cos #theta^{*}");
1190 hcosthetastarNCfromB->SetYTitle("Entries");
1191 TH1F *hptD0NCfromB=new TH1F("hptD0NCfromB","D^{0} transverse momentum distribution",34,ptbinsD0arr);
1192 hptD0NCfromB->SetXTitle("p_{t} [GeV/c]");
1193 hptD0NCfromB->SetYTitle("Entries");
1194 TH1F *hptD0VsMaxPtNCfromB=new TH1F("hptD0VsMaxPtNCfromB","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
1195 TH2F *hptD0PTallsqrtNCfromB=new TH2F("hptD0PTallsqrtNCfromB","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
1196 TH2F *hptD0PTallNCfromB=new TH2F("hptD0PTallNCfromB","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
1197 TH2F *hptD0vsptBNCfromB=new TH2F("hptD0vsptBNCfromB","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1198 TH2F *hpD0vspBNCfromB=new TH2F("hpD0vspBNCfromB","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1199 TH2F *hptD0vsptcquarkNCfromB=new TH2F("hptD0vsptcquarkNCfromB","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1200 TH2F *hpD0vspcquarkNCfromB=new TH2F("hpD0vspcquarkNCfromB","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1201 flistNoCutsFromB->Add(hdcaNCfromB);
1202 flistNoCutsFromB->Add(hcosthetastarNCfromB);
1203 flistNoCutsFromB->Add(hptD0NCfromB);
1204 flistNoCutsFromB->Add(hptD0VsMaxPtNCfromB);
1205 flistNoCutsFromB->Add(hptD0PTallsqrtNCfromB);
1206 flistNoCutsFromB->Add(hptD0PTallNCfromB);
1207 flistNoCutsFromB->Add(hptD0vsptBNCfromB);
1208 flistNoCutsFromB->Add(hpD0vspBNCfromB);
1209 flistNoCutsFromB->Add(hptD0vsptcquarkNCfromB);
1210 flistNoCutsFromB->Add(hpD0vspcquarkNCfromB);
1211
1212 TH1F *hd0zD0ptNCfromB;
1213 TH1F *hInvMassNCfromB;
1214 TH2F *hInvMassPtNCfromB=new TH2F("hInvMassPtNCfromB","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
1215 TH1F *hetaNCfromB;
1216 TH1F *hCosPDPBNCfromB;
1217 TH1F *hCosPcPDNCfromB;
1218
1219 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1220 TH2F *hd0D0VSd0xd0NCfromBpt;
1221 TH2F *hangletracksVSd0xd0NCfromBpt;
1222 TH2F *hangletracksVSd0D0NCfromBpt;
1223 TH1F *hd0xd0NCfromBpt;
1224 flistNoCutsFromB->Add(hInvMassPtNCfromB);
1225
1226 TH2F *hTOFpidNCfromB=new TH2F("hTOFpidNCfromB","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
1227 flistNoCutsFromB->Add(hTOFpidNCfromB);
1228
1229 for(Int_t i=0;i<fnbins;i++){
1230 namehist="hd0zD0ptNCfromB_pt";
1231 namehist+=i;
1232 titlehist="d0(z) No Cuts FromB ptbin=";
1233 titlehist+=i;
1234 hd0zD0ptNCfromB=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
1235 hd0zD0ptNCfromB->SetXTitle("d_{0}(z) [#mum]");
1236 hd0zD0ptNCfromB->SetYTitle("Entries");
1237 flistNoCutsFromB->Add(hd0zD0ptNCfromB);
1238
1239 namehist="hInvMassNCfromB_pt";
1240 namehist+=i;
1241 titlehist="Invariant Mass No Cuts FromB ptbin=";
1242 titlehist+=i;
1243 hInvMassNCfromB=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
1244 hInvMassNCfromB->SetXTitle("Invariant Mass [GeV]");
1245 hInvMassNCfromB->SetYTitle("Entries");
1246 flistNoCutsFromB->Add(hInvMassNCfromB);
1247
1248 namehist="hetaNCfromB_pt";
1249 namehist+=i;
1250 titlehist="eta No Cuts FromB ptbin=";
1251 titlehist+=i;
1252 hetaNCfromB=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
1253 hetaNCfromB->SetXTitle("Pseudorapidity");
1254 hetaNCfromB->SetYTitle("Entries");
1255 flistNoCutsFromB->Add(hetaNCfromB);
1256
1257 namehist="hCosPDPBNCfromB_pt";
1258 namehist+=i;
1259 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
1260 titlehist+=i;
1261 hCosPDPBNCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1262 hCosPDPBNCfromB->SetXTitle("Cosine between D0 momentum and B momentum");
1263 hCosPDPBNCfromB->SetYTitle("Entries");
1264 flistNoCutsFromB->Add(hCosPDPBNCfromB);
1265
1266 namehist="hCosPcPDNCfromB_pt";
1267 namehist+=i;
1268 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
1269 titlehist+=i;
1270 hCosPcPDNCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1271 hCosPcPDNCfromB->SetXTitle("Cosine between c quark momentum and D0 momentum");
1272 hCosPcPDNCfromB->SetYTitle("Entries");
1273 flistNoCutsFromB->Add(hCosPcPDNCfromB);
1274
1275// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1276 namehist="hd0xd0NCfromB_pt";
1277 namehist+=i;
1278 titlehist="d0xd0 No Cuts FromB ptbin=";
1279 titlehist+=i;
1280 hd0xd0NCfromBpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
1281 hd0xd0NCfromBpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
1282 hd0xd0NCfromBpt->SetYTitle("Entries");
1283 flistNoCutsFromB->Add(hd0xd0NCfromBpt);
1284
1285
1286 namehist="hd0D0VSd0xd0NCfromB_pt";
1287 namehist+=i;
1288 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} No Cuts FromB ptbin=";
1289 titlehist+=i;
1290 hd0D0VSd0xd0NCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
1291 hd0D0VSd0xd0NCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1292 hd0D0VSd0xd0NCfromBpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
1293 flistNoCutsFromB->Add(hd0D0VSd0xd0NCfromBpt);
1294
1295
1296 namehist="hangletracksVSd0xd0NCfromB_pt";
1297 namehist+=i;
1298 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} No Cuts FromB ptbin=";
1299 titlehist+=i;
1300 hangletracksVSd0xd0NCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
1301 hangletracksVSd0xd0NCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1302 hangletracksVSd0xd0NCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
1303 flistNoCutsFromB->Add(hangletracksVSd0xd0NCfromBpt);
1304
1305
1306 namehist="hangletracksVSd0D0NCfromB_pt";
1307 namehist+=i;
1308 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} No Cuts FromB ptbin=";
1309 titlehist+=i;
1310 hangletracksVSd0D0NCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
1311 hangletracksVSd0D0NCfromBpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
1312 hangletracksVSd0D0NCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
1313 flistNoCutsFromB->Add(hangletracksVSd0D0NCfromBpt);
1314
1315
1316 }
1317 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
1318 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1319
1320
1321
624c07ab 1322 // ######### d0 D0 histos ##############
ac4c229c 1323 TH1F *hd0D0NCfromBPM = new TH1F("hd0D0NCfromBPM","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1324 hd0D0NCfromBPM->SetXTitle("Impact parameter [#mum]");
1325 hd0D0NCfromBPM->SetYTitle("Entries");
1326
1327 TH1F *hd0D0VtxTrueNCfromBPM = new TH1F("hd0D0VtxTrueNCfromBPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1328 hd0D0VtxTrueNCfromBPM->SetXTitle("Impact parameter [#mum]");
1329 hd0D0VtxTrueNCfromBPM->SetYTitle("Entries");
1330
1331 TH1F *hMCd0D0NCfromBPM = new TH1F("hMCd0D0NCfromBPM","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1332 hMCd0D0NCfromBPM->SetXTitle("MC Impact parameter [#mum]");
1333 hMCd0D0NCfromBPM->SetYTitle("Entries");
1334
1335 TH1F *hd0D0NCfromBSB = new TH1F("hd0D0NCfromBSB","D^{0} impact par. plot , No Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1336 hd0D0NCfromBSB->SetXTitle("Impact parameter [#mum]");
1337 hd0D0NCfromBSB->SetYTitle("Entries");
1338
1339 TH1F *hd0D0VtxTrueNCfromBSB = new TH1F("hd0D0VtxTrueNCfromBSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1340 hd0D0VtxTrueNCfromBSB->SetXTitle("Impact parameter [#mum]");
1341 hd0D0VtxTrueNCfromBSB->SetYTitle("Entries");
1342
1343 TH1F *hMCd0D0NCfromBSB = new TH1F("hMCd0D0NCfromBSB","D^{0} impact par. plot, No Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
1344 hMCd0D0NCfromBSB->SetXTitle("MC Impact parameter [#mum]");
1345 hMCd0D0NCfromBSB->SetYTitle("Entries");
1346
1347 flistNoCutsFromB->Add(hd0D0NCfromBPM);
1348 flistNoCutsFromB->Add(hd0D0VtxTrueNCfromBPM);
1349 flistNoCutsFromB->Add(hMCd0D0NCfromBPM);
1350 flistNoCutsFromB->Add(hd0D0NCfromBSB);
1351 flistNoCutsFromB->Add(hd0D0VtxTrueNCfromBSB);
1352 flistNoCutsFromB->Add(hMCd0D0NCfromBSB);
1353
e047b348 1354 TH1F *hd0D0ptNCfromBPM;
1355 TH1F *hMCd0D0ptNCfromBPM;
1356 TH1F *hd0D0VtxTrueptNCfromBPM;
1357 TH1F *hd0D0ptNCfromBSB;
1358 TH1F *hMCd0D0ptNCfromBSB;
1359 TH1F *hd0D0VtxTrueptNCfromBSB;
ac4c229c 1360 namehist="hd0D0ptNCfromB_";
624c07ab 1361 titlehist="D^{0} impact par. plot, No Cuts, FromB, ";
1362 for(Int_t i=0;i<fnbins;i++){
1363 strnamept=namehist;
1364 strnamept.Append("PkMss_pt");
1365 strnamept+=i;
1366
1367 strtitlept=titlehist;
1368 strtitlept.Append(" Mass Peak, ");
1369 strtitlept+=fptbins[i];
1370 strtitlept.Append("<= pt <");
1371 strtitlept+=fptbins[i+1];
1372 strtitlept.Append(" [GeV/c]");
1373
e047b348 1374 hd0D0ptNCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1375 hd0D0ptNCfromBPM->SetXTitle("Impact parameter [#mum] ");
1376 hd0D0ptNCfromBPM->SetYTitle("Entries");
1377 flistNoCutsFromB->Add(hd0D0ptNCfromBPM);
624c07ab 1378
1379 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1380 hMCd0D0ptNCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1381 hMCd0D0ptNCfromBPM->SetXTitle("MC Impact parameter [#mum] ");
1382 hMCd0D0ptNCfromBPM->SetYTitle("Entries");
1383 flistNoCutsFromB->Add(hMCd0D0ptNCfromBPM);
624c07ab 1384
1385
1386 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1387 hd0D0VtxTrueptNCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1388 hd0D0VtxTrueptNCfromBPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1389 hd0D0VtxTrueptNCfromBPM->SetYTitle("Entries");
1390 flistNoCutsFromB->Add(hd0D0VtxTrueptNCfromBPM);
624c07ab 1391
1392 strnamept=namehist;
1393 strnamept.Append("SBMss_pt");
1394 strnamept+=i;
1395
1396 strtitlept=titlehist;
1397 strtitlept.Append(" Side Bands, ");
1398 strtitlept+=fptbins[i];
1399 strtitlept.Append("<= pt <");
1400 strtitlept+=fptbins[i+1];
1401 strtitlept.Append(" [GeV/c]");
1402
e047b348 1403 hd0D0ptNCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1404 hd0D0ptNCfromBSB->SetXTitle("Impact parameter [#mum] ");
1405 hd0D0ptNCfromBSB->SetYTitle("Entries");
1406 flistNoCutsFromB->Add(hd0D0ptNCfromBSB);
624c07ab 1407
1408 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1409 hMCd0D0ptNCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1410 hMCd0D0ptNCfromBSB->SetXTitle("MC Impact parameter [#mum] ");
1411 hMCd0D0ptNCfromBSB->SetYTitle("Entries");
1412 flistNoCutsFromB->Add(hMCd0D0ptNCfromBSB);
624c07ab 1413
1414 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1415 hd0D0VtxTrueptNCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1416 hd0D0VtxTrueptNCfromBSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1417 hd0D0VtxTrueptNCfromBSB->SetYTitle("Entries");
1418 flistNoCutsFromB->Add(hd0D0VtxTrueptNCfromBSB);
624c07ab 1419 }
1420
1421
1422
1423 //############ NO CUTS FROM DSTAR HISTOGRAMS ###########
1424 //
1425 //############# global properties histos #######
1426
e047b348 1427 TH2F *hCPtaVSd0d0NCfromDstar=new TH2F("hCPtaVSd0d0NCfromDstar","hCPtaVSd0d0_NoCuts_FromDStar",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 1428 TH1F *hSecVtxZNCfromDstar=new TH1F("hSecVtxZNCfromDstar","hSecVtxZ_NoCuts_FromDStar",1000,-8.,8.);
1429 TH1F *hSecVtxXNCfromDstar=new TH1F("hSecVtxXNCfromDstar","hSecVtxX_NoCuts_FromDStar",1000,-3000.,3000.);
1430 TH1F *hSecVtxYNCfromDstar=new TH1F("hSecVtxYNCfromDstar","hSecVtxY_NoCuts_FromDStar",1000,-3000.,3000.);
1431 TH2F *hSecVtxXYNCfromDstar=new TH2F("hSecVtxXYNCfromDstar","hSecVtxXY_NoCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
1432 TH1F *hSecVtxPhiNCfromDstar=new TH1F("hSecVtxPhiNCfromDstar","hSecVtxPhi_NoCuts_FromDStar",180,-180.1,180.1);
e047b348 1433 TH1F *hd0singlTrackNCfromDstar=new TH1F("hd0singlTrackNCfromDstar","hd0singlTrackNoCuts_fromDstar",1000,-5000.,5000.);
1434 TH1F *hCPtaNCfromDstar=new TH1F("hCPtaNCfromDstar","hCPta_NoCuts_FromDStar",100,-1.,1.);
ac4c229c 1435 TH1F *hd0xd0NCfromDstar=new TH1F("hd0xd0NCfromDstar","hd0xd0_NoCuts_FromDStar",1000,-100000.,100000.);
1436 TH1F *hMassTrueNCfromDstar=new TH1F("hMassTrueNCfromDstar","D^{0} MC inv. Mass No Cuts FromDStar(All momenta)",600,1.600,2.200);
1437 TH1F *hMassNCfromDstar=new TH1F("hMassNCfromDstar","D^{0} inv. Mass No Cuts FromDStar (All momenta)",600,1.600,2.200);
1438 hMassNCfromDstar->Sumw2();
1439 TH1F *hMassTrueNCfromDstarPM=new TH1F("hMassTrueNCfromDstarPM","D^{0} MC inv. Mass No Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
1440 TH1F *hMassNCfromDstarPM=new TH1F("hMassNCfromDstarPM","D^{0} inv. Mass No Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
1441 hMassNCfromDstarPM->Sumw2();
1442 TH1F *hMassTrueNCfromDstarSB=new TH1F("hMassTrueNCfromDstarSB","D^{0} MC inv. Mass in Side Bands No Cuts FromDStar(All momenta)",600,1.600,2.200);
1443 TH1F *hMassNCfromDstarSB=new TH1F("hMassNCfromDstarSB","D^{0} inv. Mass in Side Bands No Cuts FromDStar (All momenta)",600,1.600,2.200);
1444 hMassNCfromDstarSB->Sumw2();
1445
1446 flistNoCutsFromDstar->Add(hCPtaVSd0d0NCfromDstar);
1447 flistNoCutsFromDstar->Add(hSecVtxZNCfromDstar);
1448 flistNoCutsFromDstar->Add(hSecVtxYNCfromDstar);
1449 flistNoCutsFromDstar->Add(hSecVtxXNCfromDstar);
1450 flistNoCutsFromDstar->Add(hSecVtxXYNCfromDstar);
1451 flistNoCutsFromDstar->Add(hSecVtxPhiNCfromDstar);
e047b348 1452 flistNoCutsFromDstar->Add(hd0singlTrackNCfromDstar);
ac4c229c 1453 flistNoCutsFromDstar->Add(hCPtaNCfromDstar);
1454 flistNoCutsFromDstar->Add(hd0xd0NCfromDstar);
1455 flistNoCutsFromDstar->Add(hMassTrueNCfromDstar);
1456 flistNoCutsFromDstar->Add(hMassNCfromDstar);
1457 flistNoCutsFromDstar->Add(hMassTrueNCfromDstarPM);
1458 flistNoCutsFromDstar->Add(hMassNCfromDstarPM);
1459 flistNoCutsFromDstar->Add(hMassTrueNCfromDstarSB);
1460 flistNoCutsFromDstar->Add(hMassNCfromDstarSB);
624c07ab 1461
e047b348 1462
1463
1464
1465//%%% NEW HISTOS %%%%%%%%%%%%%%%%
1466 TH1F *hdcaNCfromDstar=new TH1F("hdcaNCfromDstar","hdca_NoCuts_FromDstar",100,0.,1000.);
1467 hdcaNCfromDstar->SetXTitle("dca [#mum]");
1468 hdcaNCfromDstar->SetYTitle("Entries");
1469 TH1F *hcosthetastarNCfromDstar=new TH1F("hcosthetastarNCfromDstar","hCosThetaStar_NoCuts_FromDstar",50,-1.,1.);
1470 hcosthetastarNCfromDstar->SetXTitle("cos #theta^{*}");
1471 hcosthetastarNCfromDstar->SetYTitle("Entries");
1472 TH1F *hptD0NCfromDstar=new TH1F("hptD0NCfromDstar","D^{0} transverse momentum distribution",34,ptbinsD0arr);
1473 hptD0NCfromDstar->SetXTitle("p_{t} [GeV/c]");
1474 hptD0NCfromDstar->SetYTitle("Entries");
1475 TH1F *hptD0VsMaxPtNCfromDstar=new TH1F("hptD0VsMaxPtNCfromDstar","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
1476 TH2F *hptD0PTallsqrtNCfromDstar=new TH2F("hptD0PTallsqrtNCfromDstar","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
1477 TH2F *hptD0PTallNCfromDstar=new TH2F("hptD0PTallNCfromDstar","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
1478 TH2F *hptD0vsptBNCfromDstar=new TH2F("hptD0vsptBNCfromDstar","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1479 TH2F *hpD0vspBNCfromDstar=new TH2F("hpD0vspBNCfromDstar","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1480 TH2F *hptD0vsptcquarkNCfromDstar=new TH2F("hptD0vsptcquarkNCfromDstar","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1481 TH2F *hpD0vspcquarkNCfromDstar=new TH2F("hpD0vspcquarkNCfromDstar","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1482 flistNoCutsFromDstar->Add(hdcaNCfromDstar);
1483 flistNoCutsFromDstar->Add(hcosthetastarNCfromDstar);
1484 flistNoCutsFromDstar->Add(hptD0NCfromDstar);
1485 flistNoCutsFromDstar->Add(hptD0VsMaxPtNCfromDstar);
1486 flistNoCutsFromDstar->Add(hptD0PTallsqrtNCfromDstar);
1487 flistNoCutsFromDstar->Add(hptD0PTallNCfromDstar);
1488 flistNoCutsFromDstar->Add(hptD0vsptBNCfromDstar);
1489 flistNoCutsFromDstar->Add(hpD0vspBNCfromDstar);
1490 flistNoCutsFromDstar->Add(hptD0vsptcquarkNCfromDstar);
1491 flistNoCutsFromDstar->Add(hpD0vspcquarkNCfromDstar);
1492
1493 TH1F *hd0zD0ptNCfromDstar;
1494 TH1F *hInvMassNCfromDstar;
1495 TH2F *hInvMassPtNCfromDstar=new TH2F("hInvMassPtNCfromDstar","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
1496 TH1F *hetaNCfromDstar;
1497 TH1F *hCosPDPBNCfromDstar;
1498 TH1F *hCosPcPDNCfromDstar;
1499 flistNoCutsFromDstar->Add(hInvMassPtNCfromDstar);
1500 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1501 TH2F *hd0D0VSd0xd0NCfromDstarpt;
1502 TH2F *hangletracksVSd0xd0NCfromDstarpt;
1503 TH2F *hangletracksVSd0D0NCfromDstarpt;
1504 TH1F *hd0xd0NCfromDstarpt;
1505
1506 TH2F *hTOFpidNCfromDstar=new TH2F("hTOFpidNCfromDstar","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
1507 flistNoCutsFromDstar->Add(hTOFpidNCfromDstar);
1508
1509 for(Int_t i=0;i<fnbins;i++){
1510 namehist="hd0zD0ptNCfromDstar_pt";
1511 namehist+=i;
1512 titlehist="d0(z) No Cuts FromDstarm ptbin=";
1513 titlehist+=i;
1514 hd0zD0ptNCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
1515 hd0zD0ptNCfromDstar->SetXTitle("d_{0}(z) [#mum]");
1516 hd0zD0ptNCfromDstar->SetYTitle("Entries");
1517 flistNoCutsFromDstar->Add(hd0zD0ptNCfromDstar);
1518
1519 namehist="hInvMassNCfromDstar_pt";
1520 namehist+=i;
1521 titlehist="Invariant Mass No Cuts FromDstar ptbin=";
1522 titlehist+=i;
1523 hInvMassNCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
1524 hInvMassNCfromDstar->SetXTitle("Invariant Mass [GeV]");
1525 hInvMassNCfromDstar->SetYTitle("Entries");
1526 flistNoCutsFromDstar->Add(hInvMassNCfromDstar);
1527
1528 namehist="hetaNCfromDstar_pt";
1529 namehist+=i;
1530 titlehist="eta No Cuts FromDstar ptbin=";
1531 titlehist+=i;
1532 hetaNCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
1533 hetaNCfromDstar->SetXTitle("Pseudorapidity");
1534 hetaNCfromDstar->SetYTitle("Entries");
1535 flistNoCutsFromDstar->Add(hetaNCfromDstar);
1536
1537 namehist="hCosPDPBNCfromDstar_pt";
1538 namehist+=i;
1539 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
1540 titlehist+=i;
1541 hCosPDPBNCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1542 hCosPDPBNCfromDstar->SetXTitle("Cosine between D0 momentum and B momentum");
1543 hCosPDPBNCfromDstar->SetYTitle("Entries");
1544 flistNoCutsFromDstar->Add(hCosPDPBNCfromDstar);
1545
1546 namehist="hCosPcPDNCfromDstar_pt";
1547 namehist+=i;
1548 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
1549 titlehist+=i;
1550 hCosPcPDNCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1551 hCosPcPDNCfromDstar->SetXTitle("Cosine between c quark momentum and D0 momentum");
1552 hCosPcPDNCfromDstar->SetYTitle("Entries");
1553 flistNoCutsFromDstar->Add(hCosPcPDNCfromDstar);
1554
1555 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1556 namehist="hd0xd0NCfromDstar_pt";
1557 namehist+=i;
1558 titlehist="d0xd0 No Cuts FromDstar ptbin=";
1559 titlehist+=i;
1560 hd0xd0NCfromDstarpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
1561 hd0xd0NCfromDstarpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
1562 hd0xd0NCfromDstarpt->SetYTitle("Entries");
1563 flistNoCutsFromDstar->Add(hd0xd0NCfromDstarpt);
1564
1565
1566 namehist="hd0D0VSd0xd0NCfromDstar_pt";
1567 namehist+=i;
1568 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} No Cuts FromDstar ptbin=";
1569 titlehist+=i;
1570 hd0D0VSd0xd0NCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
1571 hd0D0VSd0xd0NCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1572 hd0D0VSd0xd0NCfromDstarpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
1573 flistNoCutsFromDstar->Add(hd0D0VSd0xd0NCfromDstarpt);
1574
1575
1576 namehist="hangletracksVSd0xd0NCfromDstar_pt";
1577 namehist+=i;
1578 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} No Cuts FromDstar ptbin=";
1579 titlehist+=i;
1580 hangletracksVSd0xd0NCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
1581 hangletracksVSd0xd0NCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1582 hangletracksVSd0xd0NCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
1583 flistNoCutsFromDstar->Add(hangletracksVSd0xd0NCfromDstarpt);
1584
1585
1586 namehist="hangletracksVSd0D0NCfromDstar_pt";
1587 namehist+=i;
1588 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} No Cuts FromDstar ptbin=";
1589 titlehist+=i;
1590 hangletracksVSd0D0NCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
1591 hangletracksVSd0D0NCfromDstarpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
1592 hangletracksVSd0D0NCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
1593 flistNoCutsFromDstar->Add(hangletracksVSd0D0NCfromDstarpt);
1594
1595 }
1596 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
1597 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1598
1599
624c07ab 1600 //########## d0 D0 histos #############
ac4c229c 1601 TH1F *hd0D0NCfromDstPM = new TH1F("hd0D0NCfromDstarPM","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1602 hd0D0NCfromDstPM->SetXTitle("Impact parameter [#mum]");
1603 hd0D0NCfromDstPM->SetYTitle("Entries");
1604
1605 TH1F *hd0D0VtxTrueNCfromDstPM = new TH1F("hd0D0VtxTrueNCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1606 hd0D0VtxTrueNCfromDstPM->SetXTitle("Impact parameter [#mum]");
1607 hd0D0VtxTrueNCfromDstPM->SetYTitle("Entries");
1608
1609 TH1F *hMCd0D0NCfromDstPM = new TH1F("hMCd0D0NCfromDstarPM","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1610 hMCd0D0NCfromDstPM->SetXTitle("MC Impact parameter [#mum]");
1611 hMCd0D0NCfromDstPM->SetYTitle("Entries");
1612
1613 TH1F *hd0D0NCfromDstSB = new TH1F("hd0D0NCfromDstarSB","D^{0} impact par. plot , No Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1614 hd0D0NCfromDstSB->SetXTitle("Impact parameter [#mum]");
1615 hd0D0NCfromDstSB->SetYTitle("Entries");
1616
1617 TH1F *hd0D0VtxTrueNCfromDstSB = new TH1F("hd0D0VtxTrueNCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1618 hd0D0VtxTrueNCfromDstSB->SetXTitle("Impact parameter [#mum]");
1619 hd0D0VtxTrueNCfromDstSB->SetYTitle("Entries");
1620
1621 TH1F *hMCd0D0NCfromDstSB = new TH1F("hMCd0D0NCfromDstarSB","D^{0} impact par. plot, No Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
1622 hMCd0D0NCfromDstSB->SetXTitle("MC Impact parameter [#mum]");
1623 hMCd0D0NCfromDstSB->SetYTitle("Entries");
1624
1625 flistNoCutsFromDstar->Add(hd0D0NCfromDstPM);
1626 flistNoCutsFromDstar->Add(hd0D0VtxTrueNCfromDstPM);
1627 flistNoCutsFromDstar->Add(hMCd0D0NCfromDstPM);
1628 flistNoCutsFromDstar->Add(hd0D0NCfromDstSB);
1629 flistNoCutsFromDstar->Add(hd0D0VtxTrueNCfromDstSB);
1630 flistNoCutsFromDstar->Add(hMCd0D0NCfromDstSB);
1631
e047b348 1632 TH1F *hd0D0ptNCfromDstPM;
1633 TH1F *hMCd0D0ptNCfromDstPM;
1634 TH1F *hd0D0VtxTrueptNCfromDstPM;
1635 TH1F *hd0D0ptNCfromDstSB;
1636 TH1F *hMCd0D0ptNCfromDstSB;
1637 TH1F *hd0D0VtxTrueptNCfromDstSB;
ac4c229c 1638 namehist="hd0D0ptNCfromDstar_";
624c07ab 1639 titlehist="D^{0} impact par. plot, No Cuts, FromDStar, ";
1640 for(Int_t i=0;i<fnbins;i++){
1641 strnamept=namehist;
1642 strnamept.Append("PkMss_pt");
1643 strnamept+=i;
1644
1645 strtitlept=titlehist;
1646 strtitlept.Append(" Mass Peak, ");
1647 strtitlept+=fptbins[i];
1648 strtitlept.Append("<= pt <");
1649 strtitlept+=fptbins[i+1];
1650 strtitlept.Append(" [GeV/c]");
1651
e047b348 1652 hd0D0ptNCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1653 hd0D0ptNCfromDstPM->SetXTitle("Impact parameter [#mum] ");
1654 hd0D0ptNCfromDstPM->SetYTitle("Entries");
1655 flistNoCutsFromDstar->Add(hd0D0ptNCfromDstPM);
624c07ab 1656
1657 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1658 hMCd0D0ptNCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1659 hMCd0D0ptNCfromDstPM->SetXTitle("MC Impact parameter [#mum] ");
1660 hMCd0D0ptNCfromDstPM->SetYTitle("Entries");
1661 flistNoCutsFromDstar->Add(hMCd0D0ptNCfromDstPM);
624c07ab 1662
1663
1664 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1665 hd0D0VtxTrueptNCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1666 hd0D0VtxTrueptNCfromDstPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1667 hd0D0VtxTrueptNCfromDstPM->SetYTitle("Entries");
1668 flistNoCutsFromDstar->Add(hd0D0VtxTrueptNCfromDstPM);
624c07ab 1669
1670 strnamept=namehist;
1671 strnamept.Append("SBMss_pt");
1672 strnamept+=i;
1673
1674 strtitlept=titlehist;
1675 strtitlept.Append(" Side Bands, ");
1676 strtitlept+=fptbins[i];
1677 strtitlept.Append("<= pt <");
1678 strtitlept+=fptbins[i+1];
1679 strtitlept.Append(" [GeV/c]");
1680
e047b348 1681 hd0D0ptNCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1682 hd0D0ptNCfromDstSB->SetXTitle("Impact parameter [#mum] ");
1683 hd0D0ptNCfromDstSB->SetYTitle("Entries");
1684 flistNoCutsFromDstar->Add(hd0D0ptNCfromDstSB);
624c07ab 1685
1686 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1687 hMCd0D0ptNCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1688 hMCd0D0ptNCfromDstSB->SetXTitle("MC Impact parameter [#mum] ");
1689 hMCd0D0ptNCfromDstSB->SetYTitle("Entries");
1690 flistNoCutsFromDstar->Add(hMCd0D0ptNCfromDstSB);
624c07ab 1691
1692 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1693 hd0D0VtxTrueptNCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1694 hd0D0VtxTrueptNCfromDstSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1695 hd0D0VtxTrueptNCfromDstSB->SetYTitle("Entries");
1696 flistNoCutsFromDstar->Add(hd0D0VtxTrueptNCfromDstSB);
624c07ab 1697 }
1698
1699
1700 //############ NO CUTS OTHER HISTOGRAMS ###########
1701 //
1702 //########### global properties histos ###########
1703
e047b348 1704 TH2F *hCPtaVSd0d0NCother=new TH2F("hCPtaVSd0d0NCother","hCPtaVSd0d0_NoCuts_other",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 1705 TH1F *hSecVtxZNCother=new TH1F("hSecVtxZNCother","hSecVtxZ_NoCuts_other",1000,-8.,8.);
1706 TH1F *hSecVtxXNCother=new TH1F("hSecVtxXNCother","hSecVtxX_NoCuts_other",1000,-3000.,3000.);
1707 TH1F *hSecVtxYNCother=new TH1F("hSecVtxYNCother","hSecVtxY_NoCuts_other",1000,-3000.,3000.);
1708 TH2F *hSecVtxXYNCother=new TH2F("hSecVtxXYNCother","hSecVtxXY_NoCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
1709 TH1F *hSecVtxPhiNCother=new TH1F("hSecVtxPhiNCother","hSecVtxPhi_NoCuts_other",180,-180.1,180.1);
e047b348 1710 TH1F *hd0singlTrackNCother=new TH1F("hd0singlTrackNCother","hd0singlTrackNoCuts_Other",1000,-5000.,5000.);
1711 TH1F *hCPtaNCother=new TH1F("hCPtaNCother","hCPta_NoCuts_other",100,-1.,1.);
ac4c229c 1712 TH1F *hd0xd0NCother=new TH1F("hd0xd0NCother","hd0xd0_NoCuts_other",1000,-100000.,100000.);
1713 TH1F *hMassTrueNCother=new TH1F("hMassTrueNCother","D^{0} MC inv. Mass No Cuts other(All momenta)",600,1.600,2.200);
1714 TH1F *hMassNCother=new TH1F("hMassNCother","D^{0} inv. Mass No Cuts other (All momenta)",600,1.600,2.200);
1715 hMassNCother->Sumw2();
1716 TH1F *hMassTrueNCotherPM=new TH1F("hMassTrueNCotherPM","D^{0} MC inv. Mass No Cuts Other, Mass Peak. (All momenta)",600,1.600,2.200);
1717 TH1F *hMassNCotherPM=new TH1F("hMassNCotherPM","D^{0} inv. Mass No Cuts Other (All momenta), MassPeak",600,1.600,2.200);
1718 hMassNCotherPM->Sumw2();
1719 TH1F *hMassTrueNCotherSB=new TH1F("hMassTrueNCotherSB","D^{0} MC inv. Mass in Side Bands No Cuts other(All momenta)",600,1.600,2.200);
1720 TH1F *hMassNCotherSB=new TH1F("hMassNCotherSB","D^{0} inv. Mass in Side Bands No Cuts other (All momenta)",600,1.600,2.200);
1721 hMassNCotherSB->Sumw2();
1722
1723 flistNoCutsOther->Add(hCPtaVSd0d0NCother);
1724 flistNoCutsOther->Add(hSecVtxZNCother);
1725 flistNoCutsOther->Add(hSecVtxYNCother);
1726 flistNoCutsOther->Add(hSecVtxXNCother);
1727 flistNoCutsOther->Add(hSecVtxXYNCother);
1728 flistNoCutsOther->Add(hSecVtxPhiNCother);
e047b348 1729 flistNoCutsOther->Add(hd0singlTrackNCother);
ac4c229c 1730 flistNoCutsOther->Add(hCPtaNCother);
1731 flistNoCutsOther->Add(hd0xd0NCother);
1732 flistNoCutsOther->Add(hMassTrueNCother);
1733 flistNoCutsOther->Add(hMassNCother);
1734 flistNoCutsOther->Add(hMassTrueNCotherPM);
1735 flistNoCutsOther->Add(hMassNCotherPM);
1736 flistNoCutsOther->Add(hMassTrueNCotherSB);
1737 flistNoCutsOther->Add(hMassNCotherSB);
624c07ab 1738
e047b348 1739
1740
1741 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
1742 TH1F *hdcaNCother=new TH1F("hdcaNCother","hdca_NoCuts_Other",100,0.,1000.);
1743 hdcaNCother->SetXTitle("dca [#mum]");
1744 hdcaNCother->SetYTitle("Entries");
1745 TH1F *hcosthetastarNCother=new TH1F("hcosthetastarNCother","hCosThetaStar_NoCuts_Other",50,-1.,1.);
1746 hcosthetastarNCother->SetXTitle("cos #theta^{*}");
1747 hcosthetastarNCother->SetYTitle("Entries");
1748 TH1F *hptD0NCother=new TH1F("hptD0NCother","D^{0} transverse momentum distribution",34,ptbinsD0arr);
1749 hptD0NCother->SetXTitle("p_{t} [GeV/c]");
1750 hptD0NCother->SetYTitle("Entries");
1751 TH1F *hptD0VsMaxPtNCother=new TH1F("hptD0VsMaxPtNCother","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
1752 TH2F *hptD0PTallsqrtNCother=new TH2F("hptD0PTallsqrtNCother","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
1753 TH2F *hptD0PTallNCother=new TH2F("hptD0PTallNCother","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
1754 TH2F *hptD0vsptBNCother=new TH2F("hptD0vsptBNCother","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1755 TH2F *hpD0vspBNCother=new TH2F("hpD0vspBNCother","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1756 TH2F *hptD0vsptcquarkNCother=new TH2F("hptD0vsptcquarkNCother","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1757 TH2F *hpD0vspcquarkNCother=new TH2F("hpD0vspcquarkNCother","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
1758 flistNoCutsOther->Add(hdcaNCother);
1759 flistNoCutsOther->Add(hcosthetastarNCother);
1760 flistNoCutsOther->Add(hptD0NCother);
1761 flistNoCutsOther->Add(hptD0VsMaxPtNCother);
1762 flistNoCutsOther->Add(hptD0PTallsqrtNCother);
1763 flistNoCutsOther->Add(hptD0PTallNCother);
1764 flistNoCutsOther->Add(hptD0vsptBNCother);
1765 flistNoCutsOther->Add(hpD0vspBNCother);
1766 flistNoCutsOther->Add(hptD0vsptcquarkNCother);
1767 flistNoCutsOther->Add(hpD0vspcquarkNCother);
1768
1769 TH1F *hd0zD0ptNCother;
1770 TH1F *hInvMassNCother;
1771 TH2F *hInvMassPtNCother=new TH2F("hInvMassPtNCother","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
1772 TH1F *hetaNCother;
1773 TH1F *hCosPDPBNCother;
1774 TH1F *hCosPcPDNCother;
1775 flistNoCutsOther->Add(hInvMassPtNCother);
1776 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1777 TH2F *hd0D0VSd0xd0NCotherpt;
1778 TH2F *hangletracksVSd0xd0NCotherpt;
1779 TH2F *hangletracksVSd0D0NCotherpt;
1780 TH1F *hd0xd0NCotherpt;
1781
1782 TH2F *hTOFpidNCother=new TH2F("hTOFpidNCother","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
1783 flistNoCutsOther->Add(hTOFpidNCother);
1784
1785 for(Int_t i=0;i<fnbins;i++){
1786 namehist="hd0zD0ptNCother_pt";
1787 namehist+=i;
1788 titlehist="d0(z) No Cuts Otherm ptbin=";
1789 titlehist+=i;
1790 hd0zD0ptNCother=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
1791 hd0zD0ptNCother->SetXTitle("d_{0}(z) [#mum]");
1792 hd0zD0ptNCother->SetYTitle("Entries");
1793 flistNoCutsOther->Add(hd0zD0ptNCother);
1794
1795 namehist="hInvMassNCother_pt";
1796 namehist+=i;
1797 titlehist="Invariant Mass No Cuts Other ptbin=";
1798 titlehist+=i;
1799 hInvMassNCother=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
1800 hInvMassNCother->SetXTitle("Invariant Mass [GeV]");
1801 hInvMassNCother->SetYTitle("Entries");
1802 flistNoCutsOther->Add(hInvMassNCother);
1803
1804 namehist="hetaNCother_pt";
1805 namehist+=i;
1806 titlehist="eta No Cuts Other ptbin=";
1807 titlehist+=i;
1808 hetaNCother=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
1809 hetaNCother->SetXTitle("Pseudorapidity");
1810 hetaNCother->SetYTitle("Entries");
1811 flistNoCutsOther->Add(hetaNCother);
1812
1813 namehist="hCosPDPBNCother_pt";
1814 namehist+=i;
1815 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
1816 titlehist+=i;
1817 hCosPDPBNCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1818 hCosPDPBNCother->SetXTitle("Cosine between D0 momentum and B momentum");
1819 hCosPDPBNCother->SetYTitle("Entries");
1820 flistNoCutsOther->Add(hCosPDPBNCother);
1821
1822 namehist="hCosPcPDNCother_pt";
1823 namehist+=i;
1824 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
1825 titlehist+=i;
1826 hCosPcPDNCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
1827 hCosPcPDNCother->SetXTitle("Cosine between c quark momentum and D0 momentum");
1828 hCosPcPDNCother->SetYTitle("Entries");
1829 flistNoCutsOther->Add(hCosPcPDNCother);
1830
1831
1832 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
1833 namehist="hd0xd0NCother_pt";
1834 namehist+=i;
1835 titlehist="d0xd0 No Cuts Other ptbin=";
1836 titlehist+=i;
1837 hd0xd0NCotherpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
1838 hd0xd0NCotherpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
1839 hd0xd0NCotherpt->SetYTitle("Entries");
1840 flistNoCutsOther->Add(hd0xd0NCotherpt);
1841
1842
1843 namehist="hd0D0VSd0xd0NCother_pt";
1844 namehist+=i;
1845 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Other ptbin=";
1846 titlehist+=i;
1847 hd0D0VSd0xd0NCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
1848 hd0D0VSd0xd0NCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1849 hd0D0VSd0xd0NCotherpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
1850 flistNoCutsOther->Add(hd0D0VSd0xd0NCotherpt);
1851
1852
1853 namehist="hangletracksVSd0xd0NCother_pt";
1854 namehist+=i;
1855 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} No Cuts Other ptbin=";
1856 titlehist+=i;
1857 hangletracksVSd0xd0NCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
1858 hangletracksVSd0xd0NCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
1859 hangletracksVSd0xd0NCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
1860 flistNoCutsOther->Add(hangletracksVSd0xd0NCotherpt);
1861
1862
1863 namehist="hangletracksVSd0D0NCother_pt";
1864 namehist+=i;
1865 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} No Cuts Other ptbin=";
1866 titlehist+=i;
1867 hangletracksVSd0D0NCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
1868 hangletracksVSd0D0NCotherpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
1869 hangletracksVSd0D0NCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
1870 flistNoCutsOther->Add(hangletracksVSd0D0NCotherpt);
1871
1872 }
1873 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
1874 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1875
1876
1877
1878
624c07ab 1879 //############# d0 D0 histos ###############à
ac4c229c 1880 TH1F *hd0D0NCotherPM = new TH1F("hd0D0NCotherPM","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1881 hd0D0NCotherPM->SetXTitle("Impact parameter [#mum]");
1882 hd0D0NCotherPM->SetYTitle("Entries");
1883
1884 TH1F *hd0D0VtxTrueNCotherPM = new TH1F("hd0D0VtxTrueNCotherPM","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1885 hd0D0VtxTrueNCotherPM->SetXTitle("Impact parameter [#mum]");
1886 hd0D0VtxTrueNCotherPM->SetYTitle("Entries");
1887
1888 TH1F *hMCd0D0NCotherPM = new TH1F("hMCd0D0NCotherPM","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1889 hMCd0D0NCotherPM->SetXTitle("MC Impact parameter [#mum]");
1890 hMCd0D0NCotherPM->SetYTitle("Entries");
1891
1892 TH1F *hd0D0NCotherSB = new TH1F("hd0D0NCotherSB","D^{0} impact par. plot , No Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1893 hd0D0NCotherSB->SetXTitle("Impact parameter [#mum]");
1894 hd0D0NCotherSB->SetYTitle("Entries");
1895
1896 TH1F *hd0D0VtxTrueNCotherSB = new TH1F("hd0D0VtxTrueNCotherSB","D^{0} impact par. w.r.t. True Vtx, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1897 hd0D0VtxTrueNCotherSB->SetXTitle("Impact parameter [#mum]");
1898 hd0D0VtxTrueNCotherSB->SetYTitle("Entries");
1899
1900 TH1F *hMCd0D0NCotherSB = new TH1F("hMCd0D0NCotherSB","D^{0} impact par. plot, No Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
1901 hMCd0D0NCotherSB->SetXTitle("MC Impact parameter [#mum]");
1902 hMCd0D0NCotherSB->SetYTitle("Entries");
1903
1904 flistNoCutsOther->Add(hd0D0NCotherPM);
1905 flistNoCutsOther->Add(hd0D0VtxTrueNCotherPM);
1906 flistNoCutsOther->Add(hMCd0D0NCotherPM);
1907 flistNoCutsOther->Add(hd0D0NCotherSB);
1908 flistNoCutsOther->Add(hd0D0VtxTrueNCotherSB);
1909 flistNoCutsOther->Add(hMCd0D0NCotherSB);
1910
e047b348 1911 TH1F *hd0D0ptNCotherPM;
1912 TH1F *hMCd0D0ptNCotherPM;
1913 TH1F *hd0D0VtxTrueptNCotherPM;
1914 TH1F *hd0D0ptNCotherSB;
1915 TH1F *hMCd0D0ptNCotherSB;
1916 TH1F *hd0D0VtxTrueptNCotherSB;
ac4c229c 1917 namehist="hd0D0ptNCother_";
624c07ab 1918 titlehist="D^{0} impact par. plot, No Cuts, Other, ";
1919 for(Int_t i=0;i<fnbins;i++){
1920 strnamept=namehist;
1921 strnamept.Append("PkMss_pt");
1922 strnamept+=i;
1923
1924 strtitlept=titlehist;
1925 strtitlept.Append(" Mass Peak, ");
1926 strtitlept+=fptbins[i];
1927 strtitlept.Append("<= pt <");
1928 strtitlept+=fptbins[i+1];
1929 strtitlept.Append(" [GeV/c]");
1930
e047b348 1931 hd0D0ptNCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1932 hd0D0ptNCotherPM->SetXTitle("Impact parameter [#mum] ");
1933 hd0D0ptNCotherPM->SetYTitle("Entries");
1934 flistNoCutsOther->Add(hd0D0ptNCotherPM);
624c07ab 1935
1936 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1937 hMCd0D0ptNCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1938 hMCd0D0ptNCotherPM->SetXTitle("MC Impact parameter [#mum] ");
1939 hMCd0D0ptNCotherPM->SetYTitle("Entries");
1940 flistNoCutsOther->Add(hMCd0D0ptNCotherPM);
624c07ab 1941
1942
1943 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1944 hd0D0VtxTrueptNCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1945 hd0D0VtxTrueptNCotherPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1946 hd0D0VtxTrueptNCotherPM->SetYTitle("Entries");
1947 flistNoCutsOther->Add(hd0D0VtxTrueptNCotherPM);
624c07ab 1948
1949 strnamept=namehist;
1950 strnamept.Append("SBMss_pt");
1951 strnamept+=i;
1952
1953 strtitlept=titlehist;
1954 strtitlept.Append(" Side Bands, ");
1955 strtitlept+=fptbins[i];
1956 strtitlept.Append("<= pt <");
1957 strtitlept+=fptbins[i+1];
1958 strtitlept.Append(" [GeV/c]");
1959
e047b348 1960 hd0D0ptNCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1961 hd0D0ptNCotherSB->SetXTitle("Impact parameter [#mum] ");
1962 hd0D0ptNCotherSB->SetYTitle("Entries");
1963 flistNoCutsOther->Add(hd0D0ptNCotherSB);
624c07ab 1964
1965 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 1966 hMCd0D0ptNCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1967 hMCd0D0ptNCotherSB->SetXTitle("MC Impact parameter [#mum] ");
1968 hMCd0D0ptNCotherSB->SetYTitle("Entries");
1969 flistNoCutsOther->Add(hMCd0D0ptNCotherSB);
624c07ab 1970
1971 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 1972 hd0D0VtxTrueptNCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
1973 hd0D0VtxTrueptNCotherSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
1974 hd0D0VtxTrueptNCotherSB->SetYTitle("Entries");
1975 flistNoCutsOther->Add(hd0D0VtxTrueptNCotherSB);
624c07ab 1976 }
1977
1978
1979 //################################################################################################
1980 // #
1981 // HISTOS FOR LOOSE CUTS #
1982 // #
1983 //################################################################################################
1984
1985 //############ LOOSE CUTS SIGNAL HISTOGRAMS ###############
1986 //
1987 // ####### global properties histo ############
1988
e047b348 1989 TH2F *hCPtaVSd0d0LSCsign=new TH2F("hCPtaVSd0d0LSCsign","hCPtaVSd0d0_LooseCuts_Signal",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 1990 TH1F *hSecVtxZLSCsign=new TH1F("hSecVtxZLSCsign","hSecVtxZ_LooseCuts_Signal",1000,-8.,8.);
1991 TH1F *hSecVtxXLSCsign=new TH1F("hSecVtxXLSCsign","hSecVtxX_LooseCuts_Signal",1000,-3000.,3000.);
1992 TH1F *hSecVtxYLSCsign=new TH1F("hSecVtxYLSCsign","hSecVtxY_LooseCuts_Signal",1000,-3000.,3000.);
1993 TH2F *hSecVtxXYLSCsign=new TH2F("hSecVtxXYLSCsign","hSecVtxXY_LooseCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
1994 TH1F *hSecVtxPhiLSCsign=new TH1F("hSecVtxPhiLSCsign","hSecVtxPhi_LooseCuts_Signal",180,-180.1,180.1);
e047b348 1995 TH1F *hd0singlTrackLSCsign=new TH1F("hd0singlTrackLSCsign","hd0singlTrackLooseCuts_Signal",1000,-5000.,5000.);
1996 TH1F *hCPtaLSCsign=new TH1F("hCPtaLSCsign","hCPta_LooseCuts_Signal",100,-1.,1.);
ac4c229c 1997 TH1F *hd0xd0LSCsign=new TH1F("hd0xd0LSCsign","hd0xd0_LooseCuts_Signal",1000,-100000.,100000.);
1998 TH1F *hMassTrueLSCsign=new TH1F("hMassTrueLSCsign","D^{0} MC inv. Mass Loose Cuts Signal(All momenta)",600,1.600,2.200);
1999 TH1F *hMassLSCsign=new TH1F("hMassLSCsign","D^{0} inv. Mass Loose Cuts Signal (All momenta)",600,1.600,2.200);
2000 hMassLSCsign->Sumw2();
2001 TH1F *hMassTrueLSCsignPM=new TH1F("hMassTrueLSCsignPM","D^{0} MC inv. Mass Loose Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
2002 TH1F *hMassLSCsignPM=new TH1F("hMassLSCsignPM","D^{0} inv. Mass Loose Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
2003 hMassLSCsignPM->Sumw2();
2004 TH1F *hMassTrueLSCsignSB=new TH1F("hMassTrueLSCsignSB","D^{0} MC inv. Mass in Side Bands Loose Cuts Signal(All momenta)",600,1.600,2.200);
2005 TH1F *hMassLSCsignSB=new TH1F("hMassLSCsignSB","D^{0} inv. Mass in Side Bands Loose Cuts Signal (All momenta)",600,1.600,2.200);
2006 hMassLSCsignSB->Sumw2();
2007
2008 flistLsCutsSignal->Add(hCPtaVSd0d0LSCsign);
2009 flistLsCutsSignal->Add(hSecVtxZLSCsign);
2010 flistLsCutsSignal->Add(hSecVtxYLSCsign);
2011 flistLsCutsSignal->Add(hSecVtxXLSCsign);
2012 flistLsCutsSignal->Add(hSecVtxXYLSCsign);
2013 flistLsCutsSignal->Add(hSecVtxPhiLSCsign);
e047b348 2014 flistLsCutsSignal->Add(hd0singlTrackLSCsign);
ac4c229c 2015 flistLsCutsSignal->Add(hCPtaLSCsign);
2016 flistLsCutsSignal->Add(hd0xd0LSCsign);
2017 flistLsCutsSignal->Add(hMassTrueLSCsign);
2018 flistLsCutsSignal->Add(hMassLSCsign);
2019 flistLsCutsSignal->Add(hMassTrueLSCsignPM);
2020 flistLsCutsSignal->Add(hMassLSCsignPM);
2021 flistLsCutsSignal->Add(hMassTrueLSCsignSB);
2022 flistLsCutsSignal->Add(hMassLSCsignSB);
624c07ab 2023
e047b348 2024
2025 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
2026 TH1F *hdcaLSCsign=new TH1F("hdcaLSCsign","hdca_LooseCuts_Sign",100,0.,1000.);
2027 hdcaLSCsign->SetXTitle("dca [#mum]");
2028 hdcaLSCsign->SetYTitle("Entries");
2029 TH1F *hcosthetastarLSCsign=new TH1F("hcosthetastarLSCsign","hCosThetaStar_LooseCuts_Sign",50,-1.,1.);
2030 hcosthetastarLSCsign->SetXTitle("cos #theta^{*}");
2031 hcosthetastarLSCsign->SetYTitle("Entries");
2032 TH1F *hptD0LSCsign=new TH1F("hptD0LSCsign","D^{0} transverse momentum distribution",34,ptbinsD0arr);
2033 hptD0LSCsign->SetXTitle("p_{t} [GeV/c]");
2034 hptD0LSCsign->SetYTitle("Entries");
2035 TH1F *hptD0VsMaxPtLSCsign=new TH1F("hptD0VsMaxPtLSCsign","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
2036 TH2F *hptD0PTallsqrtLSCsign=new TH2F("hptD0PTallsqrtLSCsign","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
2037 TH2F *hptD0PTallLSCsign=new TH2F("hptD0PTallLSCsign","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
2038 TH2F *hptD0vsptBLSCsign=new TH2F("hptD0vsptBLSCsign","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2039 TH2F *hpD0vspBLSCsign=new TH2F("hpD0vspBLSCsign","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2040 TH2F *hptD0vsptcquarkLSCsign=new TH2F("hptD0vsptcquarkLSCsign","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2041 TH2F *hpD0vspcquarkLSCsign=new TH2F("hpD0vspcquarkLSCsign","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2042 flistLsCutsSignal->Add(hdcaLSCsign);
2043 flistLsCutsSignal->Add(hcosthetastarLSCsign);
2044 flistLsCutsSignal->Add(hptD0LSCsign);
2045 flistLsCutsSignal->Add(hptD0VsMaxPtLSCsign);
2046 flistLsCutsSignal->Add(hptD0PTallsqrtLSCsign);
2047 flistLsCutsSignal->Add(hptD0PTallLSCsign);
2048 flistLsCutsSignal->Add(hptD0vsptBLSCsign);
2049 flistLsCutsSignal->Add(hpD0vspBLSCsign);
2050 flistLsCutsSignal->Add(hptD0vsptcquarkLSCsign);
2051 flistLsCutsSignal->Add(hpD0vspcquarkLSCsign);
2052
2053 TH1F *hd0zD0ptLSCsign;
2054 TH1F *hInvMassLSCsign;
2055 TH2F *hInvMassPtLSCsign=new TH2F("hInvMassPtLSCsign","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
2056 TH1F *hetaLSCsign;
2057 TH1F *hCosPDPBLSCsign;
2058 TH1F *hCosPcPDLSCsign;
2059 flistLsCutsSignal->Add(hInvMassPtLSCsign);
2060
2061 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2062 TH2F *hd0D0VSd0xd0LSCsignpt;
2063 TH2F *hangletracksVSd0xd0LSCsignpt;
2064 TH2F *hangletracksVSd0D0LSCsignpt;
2065 TH1F *hd0xd0LSCsignpt;
2066
2067 TH2F *hTOFpidLSCsign=new TH2F("hTOFpidLSCsign","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
2068 flistLsCutsSignal->Add(hTOFpidLSCsign);
2069
2070 for(Int_t i=0;i<fnbins;i++){
2071 namehist="hd0zD0ptLSCsign_pt";
2072 namehist+=i;
2073 titlehist="d0(z) Loose Cuts Signm ptbin=";
2074 titlehist+=i;
2075 hd0zD0ptLSCsign=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
2076 hd0zD0ptLSCsign->SetXTitle("d_{0}(z) [#mum]");
2077 hd0zD0ptLSCsign->SetYTitle("Entries");
2078 flistLsCutsSignal->Add(hd0zD0ptLSCsign);
2079
2080 namehist="hInvMassLSCsign_pt";
2081 namehist+=i;
2082 titlehist="Invariant Mass Loose Cuts Sign ptbin=";
2083 titlehist+=i;
2084 hInvMassLSCsign=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
2085 hInvMassLSCsign->SetXTitle("Invariant Mass [GeV]");
2086 hInvMassLSCsign->SetYTitle("Entries");
2087 flistLsCutsSignal->Add(hInvMassLSCsign);
2088
2089 namehist="hetaLSCsign_pt";
2090 namehist+=i;
2091 titlehist="eta Loose Cuts Sign ptbin=";
2092 titlehist+=i;
2093 hetaLSCsign=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
2094 hetaLSCsign->SetXTitle("Pseudorapidity");
2095 hetaLSCsign->SetYTitle("Entries");
2096 flistLsCutsSignal->Add(hetaLSCsign);
2097
2098 namehist="hCosPDPBLSCsign_pt";
2099 namehist+=i;
2100 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
2101 titlehist+=i;
2102 hCosPDPBLSCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2103 hCosPDPBLSCsign->SetXTitle("Cosine between D0 momentum and B momentum");
2104 hCosPDPBLSCsign->SetYTitle("Entries");
2105 flistLsCutsSignal->Add(hCosPDPBLSCsign);
2106
2107 namehist="hCosPcPDLSCsign_pt";
2108 namehist+=i;
2109 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
2110 titlehist+=i;
2111 hCosPcPDLSCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2112 hCosPcPDLSCsign->SetXTitle("Cosine between c quark momentum and D0 momentum");
2113 hCosPcPDLSCsign->SetYTitle("Entries");
2114 flistLsCutsSignal->Add(hCosPcPDLSCsign);
2115
2116
2117 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2118 namehist="hd0xd0LSCsign_pt";
2119 namehist+=i;
2120 titlehist="d0xd0 Loose Cuts Sign ptbin=";
2121 titlehist+=i;
2122 hd0xd0LSCsignpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
2123 hd0xd0LSCsignpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
2124 hd0xd0LSCsignpt->SetYTitle("Entries");
2125 flistLsCutsSignal->Add(hd0xd0LSCsignpt);
2126
2127
2128 namehist="hd0D0VSd0xd0LSCsign_pt";
2129 namehist+=i;
2130 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Sign ptbin=";
2131 titlehist+=i;
2132 hd0D0VSd0xd0LSCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
2133 hd0D0VSd0xd0LSCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2134 hd0D0VSd0xd0LSCsignpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
2135 flistLsCutsSignal->Add(hd0D0VSd0xd0LSCsignpt);
2136
2137
2138 namehist="hangletracksVSd0xd0LSCsign_pt";
2139 namehist+=i;
2140 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Sign ptbin=";
2141 titlehist+=i;
2142 hangletracksVSd0xd0LSCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
2143 hangletracksVSd0xd0LSCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2144 hangletracksVSd0xd0LSCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
2145 flistLsCutsSignal->Add(hangletracksVSd0xd0LSCsignpt);
2146
2147
2148 namehist="hangletracksVSd0D0LSCsign_pt";
2149 namehist+=i;
2150 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Loose Cuts Sign ptbin=";
2151 titlehist+=i;
2152 hangletracksVSd0D0LSCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
2153 hangletracksVSd0D0LSCsignpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
2154 hangletracksVSd0D0LSCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
2155 flistLsCutsSignal->Add(hangletracksVSd0D0LSCsignpt);
2156
2157
2158 }
2159 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
2160 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2161
2162
624c07ab 2163 // ####### d0 D0 histos ############
ac4c229c 2164 TH1F *hd0D0LSCsignPM = new TH1F("hd0D0LSCsignPM","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2165 hd0D0LSCsignPM->SetXTitle("Impact parameter [#mum]");
2166 hd0D0LSCsignPM->SetYTitle("Entries");
2167
2168 TH1F *hd0D0VtxTrueLSCsignPM = new TH1F("hd0D0VtxTrueLSCsignPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2169 hd0D0VtxTrueLSCsignPM->SetXTitle("Impact parameter [#mum]");
2170 hd0D0VtxTrueLSCsignPM->SetYTitle("Entries");
2171
2172 TH1F *hMCd0D0LSCsignPM = new TH1F("hMCd0D0LSCsignPM","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2173 hMCd0D0LSCsignPM->SetXTitle("MC Impact parameter [#mum]");
2174 hMCd0D0LSCsignPM->SetYTitle("Entries");
2175
2176 TH1F *hd0D0LSCsignSB = new TH1F("hd0D0LSCsignSB","D^{0} impact par. plot , Loose Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2177 hd0D0LSCsignSB->SetXTitle("Impact parameter [#mum]");
2178 hd0D0LSCsignSB->SetYTitle("Entries");
2179
2180 TH1F *hd0D0VtxTrueLSCsignSB = new TH1F("hd0D0VtxTrueLSCsignSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2181 hd0D0VtxTrueLSCsignSB->SetXTitle("Impact parameter [#mum]");
2182 hd0D0VtxTrueLSCsignSB->SetYTitle("Entries");
2183
2184 TH1F *hMCd0D0LSCsignSB = new TH1F("hMCd0D0LSCsignSB","D^{0} impact par. plot, Loose Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
2185 hMCd0D0LSCsignSB->SetXTitle("MC Impact parameter [#mum]");
2186 hMCd0D0LSCsignSB->SetYTitle("Entries");
2187
2188 flistLsCutsSignal->Add(hd0D0LSCsignPM);
2189 flistLsCutsSignal->Add(hd0D0VtxTrueLSCsignPM);
2190 flistLsCutsSignal->Add(hMCd0D0LSCsignPM);
2191 flistLsCutsSignal->Add(hd0D0LSCsignSB);
2192 flistLsCutsSignal->Add(hd0D0VtxTrueLSCsignSB);
2193 flistLsCutsSignal->Add(hMCd0D0LSCsignSB);
2194
e047b348 2195 TH1F *hd0D0ptLSCsignPM;
2196 TH1F *hMCd0D0ptLSCsignPM;
2197 TH1F *hd0D0VtxTrueptLSCsignPM;
2198 TH1F *hd0D0ptLSCsignSB;
2199 TH1F *hMCd0D0ptLSCsignSB;
2200 TH1F *hd0D0VtxTrueptLSCsignSB;
ac4c229c 2201 namehist="hd0D0ptLSCsign_";
624c07ab 2202 titlehist="D^{0} impact par. plot, Loose Cuts, Signal, ";
2203 for(Int_t i=0;i<fnbins;i++){
2204 strnamept=namehist;
2205 strnamept.Append("PkMss_pt");
2206 strnamept+=i;
2207
2208 strtitlept=titlehist;
2209 strtitlept.Append(" Mass Peak, ");
2210 strtitlept+=fptbins[i];
2211 strtitlept.Append("<= pt <");
2212 strtitlept+=fptbins[i+1];
2213 strtitlept.Append(" [GeV/c]");
2214
e047b348 2215 hd0D0ptLSCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2216 hd0D0ptLSCsignPM->SetXTitle("Impact parameter [#mum] ");
2217 hd0D0ptLSCsignPM->SetYTitle("Entries");
2218 flistLsCutsSignal->Add(hd0D0ptLSCsignPM);
624c07ab 2219
2220 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2221 hMCd0D0ptLSCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2222 hMCd0D0ptLSCsignPM->SetXTitle("MC Impact parameter [#mum] ");
2223 hMCd0D0ptLSCsignPM->SetYTitle("Entries");
2224 flistLsCutsSignal->Add(hMCd0D0ptLSCsignPM);
624c07ab 2225
2226
2227 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2228 hd0D0VtxTrueptLSCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2229 hd0D0VtxTrueptLSCsignPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2230 hd0D0VtxTrueptLSCsignPM->SetYTitle("Entries");
2231 flistLsCutsSignal->Add(hd0D0VtxTrueptLSCsignPM);
624c07ab 2232
2233 strnamept=namehist;
2234 strnamept.Append("SBMss_pt");
2235 strnamept+=i;
2236
2237 strtitlept=titlehist;
2238 strtitlept.Append(" Side Bands, ");
2239 strtitlept+=fptbins[i];
2240 strtitlept.Append("<= pt <");
2241 strtitlept+=fptbins[i+1];
2242 strtitlept.Append(" [GeV/c]");
2243
e047b348 2244 hd0D0ptLSCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2245 hd0D0ptLSCsignSB->SetXTitle("Impact parameter [#mum] ");
2246 hd0D0ptLSCsignSB->SetYTitle("Entries");
2247 flistLsCutsSignal->Add(hd0D0ptLSCsignSB);
624c07ab 2248
2249 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2250 hMCd0D0ptLSCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2251 hMCd0D0ptLSCsignSB->SetXTitle("MC Impact parameter [#mum] ");
2252 hMCd0D0ptLSCsignSB->SetYTitle("Entries");
2253 flistLsCutsSignal->Add(hMCd0D0ptLSCsignSB);
624c07ab 2254
2255 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2256 hd0D0VtxTrueptLSCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2257 hd0D0VtxTrueptLSCsignSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2258 hd0D0VtxTrueptLSCsignSB->SetYTitle("Entries");
2259 flistLsCutsSignal->Add(hd0D0VtxTrueptLSCsignSB);
624c07ab 2260 }
2261
2262
2263 //############ LOOSE CUTS BACKGROUND HISTOGRAMS ###########
2264 //
2265 // ######## global properties histos #######
e047b348 2266 TH2F *hCPtaVSd0d0LSCback=new TH2F("hCPtaVSd0d0LSCback","hCPtaVSd0d0_LooseCuts_Background",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 2267 TH1F *hSecVtxZLSCback=new TH1F("hSecVtxZLSCback","hSecVtxZ_LooseCuts_Background",1000,-8.,8.);
2268 TH1F *hSecVtxXLSCback=new TH1F("hSecVtxXLSCback","hSecVtxX_LooseCuts_Background",1000,-3000.,3000.);
2269 TH1F *hSecVtxYLSCback=new TH1F("hSecVtxYLSCback","hSecVtxY_LooseCuts_Background",1000,-3000.,3000.);
2270 TH2F *hSecVtxXYLSCback=new TH2F("hSecVtxXYLSCback","hSecVtxXY_LooseCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
2271 TH1F *hSecVtxPhiLSCback=new TH1F("hSecVtxPhiLSCback","hSecVtxPhi_LooseCuts_Background",180,-180.1,180.1);
e047b348 2272 TH1F *hd0singlTrackLSCback=new TH1F("hd0singlTrackLSCback","hd0singlTrackLooseCuts_Back",1000,-5000.,5000.);
2273 TH1F *hCPtaLSCback=new TH1F("hCPtaLSCback","hCPta_LooseCuts_Background",100,-1.,1.);
ac4c229c 2274 TH1F *hd0xd0LSCback=new TH1F("hd0xd0LSCback","hd0xd0_LooseCuts_Background",1000,-100000.,100000.);
2275 TH1F *hMassTrueLSCback=new TH1F("hMassTrueLSCback","D^{0} MC inv. Mass Loose Cuts Background(All momenta)",600,1.600,2.200);
2276 TH1F *hMassLSCback=new TH1F("hMassLSCback","D^{0} inv. Mass Loose Cuts Background (All momenta)",600,1.600,2.200);
2277 hMassLSCback->Sumw2();
2278 TH1F *hMassTrueLSCbackPM=new TH1F("hMassTrueLSCbackPM","D^{0} MC inv. Mass Loose Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
2279 TH1F *hMassLSCbackPM=new TH1F("hMassLSCbackPM","D^{0} inv. Mass Loose Cuts Background (All momenta), MassPeak",600,1.600,2.200);
2280 hMassLSCbackPM->Sumw2();
2281 TH1F *hMassTrueLSCbackSB=new TH1F("hMassTrueLSCbackSB","D^{0} MC inv. Mass in Side Bands Loose Cuts Background(All momenta)",600,1.600,2.200);
2282 TH1F *hMassLSCbackSB=new TH1F("hMassLSCbackSB","D^{0} inv. Mass in Side Bands Loose Cuts Background (All momenta)",600,1.600,2.200);
2283 hMassLSCbackSB->Sumw2();
2284
2285 flistLsCutsBack->Add(hCPtaVSd0d0LSCback);
2286 flistLsCutsBack->Add(hSecVtxZLSCback);
2287 flistLsCutsBack->Add(hSecVtxYLSCback);
2288 flistLsCutsBack->Add(hSecVtxXLSCback);
2289 flistLsCutsBack->Add(hSecVtxXYLSCback);
2290 flistLsCutsBack->Add(hSecVtxPhiLSCback);
e047b348 2291 flistLsCutsBack->Add(hd0singlTrackLSCback);
ac4c229c 2292 flistLsCutsBack->Add(hCPtaLSCback);
2293 flistLsCutsBack->Add(hd0xd0LSCback);
2294 flistLsCutsBack->Add(hMassTrueLSCback);
2295 flistLsCutsBack->Add(hMassLSCback);
2296 flistLsCutsBack->Add(hMassTrueLSCbackPM);
2297 flistLsCutsBack->Add(hMassLSCbackPM);
2298 flistLsCutsBack->Add(hMassTrueLSCbackSB);
2299 flistLsCutsBack->Add(hMassLSCbackSB);
624c07ab 2300
2301
e047b348 2302
2303
2304
2305
2306
2307
2308 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
2309 TH1F *hdcaLSCback=new TH1F("hdcaLSCback","hdca_LooseCuts_Backgr",100,0.,1000.);
2310 hdcaLSCback->SetXTitle("dca [#mum]");
2311 hdcaLSCback->SetYTitle("Entries");
2312 TH1F *hcosthetastarLSCback=new TH1F("hcosthetastarLSCback","hCosThetaStar_LooseCuts_Backgr",50,-1.,1.);
2313 hcosthetastarLSCback->SetXTitle("cos #theta^{*}");
2314 hcosthetastarLSCback->SetYTitle("Entries");
2315 TH1F *hptD0LSCback=new TH1F("hptD0LSCback","D^{0} transverse momentum distribution",34,ptbinsD0arr);
2316 hptD0LSCback->SetXTitle("p_{t} [GeV/c]");
2317 hptD0LSCback->SetYTitle("Entries");
2318 TH1F *hptD0VsMaxPtLSCback=new TH1F("hptD0VsMaxPtLSCback","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
2319 TH2F *hptD0PTallsqrtLSCback=new TH2F("hptD0PTallsqrtLSCback","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
2320 TH2F *hptD0PTallLSCback=new TH2F("hptD0PTallLSCback","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
2321 TH2F *hptD0vsptBLSCback=new TH2F("hptD0vsptBLSCback","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2322 TH2F *hpD0vspBLSCback=new TH2F("hpD0vspBLSCback","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2323 TH2F *hptD0vsptcquarkLSCback=new TH2F("hptD0vsptcquarkLSCback","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2324 TH2F *hpD0vspcquarkLSCback=new TH2F("hpD0vspcquarkLSCback","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2325 flistLsCutsBack->Add(hdcaLSCback);
2326 flistLsCutsBack->Add(hcosthetastarLSCback);
2327 flistLsCutsBack->Add(hptD0LSCback);
2328 flistLsCutsBack->Add(hptD0VsMaxPtLSCback);
2329 flistLsCutsBack->Add(hptD0PTallsqrtLSCback);
2330 flistLsCutsBack->Add(hptD0PTallLSCback);
2331 flistLsCutsBack->Add(hptD0vsptBLSCback);
2332 flistLsCutsBack->Add(hpD0vspBLSCback);
2333 flistLsCutsBack->Add(hptD0vsptcquarkLSCback);
2334 flistLsCutsBack->Add(hpD0vspcquarkLSCback);
2335
2336 TH1F *hd0zD0ptLSCback;
2337 TH1F *hInvMassLSCback;
2338 TH2F *hInvMassPtLSCback=new TH2F("hInvMassPtLSCback","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
2339 TH1F *hetaLSCback;
2340 TH1F *hCosPDPBLSCback;
2341 TH1F *hCosPcPDLSCback;
2342 flistLsCutsBack->Add(hInvMassPtLSCback);
2343 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2344 TH2F *hd0D0VSd0xd0LSCbackpt;
2345 TH2F *hangletracksVSd0xd0LSCbackpt;
2346 TH2F *hangletracksVSd0D0LSCbackpt;
2347 TH1F *hd0xd0LSCbackpt;
2348
2349 TH2F *hTOFpidLSCback=new TH2F("hTOFpidLSCback","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
2350 flistLsCutsBack->Add(hTOFpidLSCback);
2351
2352 for(Int_t i=0;i<fnbins;i++){
2353 namehist="hd0zD0ptLSCback_pt";
2354 namehist+=i;
2355 titlehist="d0(z) Loose Cuts Backgr ptbin=";
2356 titlehist+=i;
2357 hd0zD0ptLSCback=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
2358 hd0zD0ptLSCback->SetXTitle("d_{0}(z) [#mum]");
2359 hd0zD0ptLSCback->SetYTitle("Entries");
2360 flistLsCutsBack->Add(hd0zD0ptLSCback);
2361
2362 namehist="hInvMassLSCback_pt";
2363 namehist+=i;
2364 titlehist="Invariant Mass Loose Cuts Backgr ptbin=";
2365 titlehist+=i;
2366 hInvMassLSCback=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
2367 hInvMassLSCback->SetXTitle("Invariant Mass [GeV]");
2368 hInvMassLSCback->SetYTitle("Entries");
2369 flistLsCutsBack->Add(hInvMassLSCback);
2370
2371 namehist="hetaLSCback_pt";
2372 namehist+=i;
2373 titlehist="eta Loose Cuts Backgr ptbin=";
2374 titlehist+=i;
2375 hetaLSCback=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
2376 hetaLSCback->SetXTitle("Pseudorapidity");
2377 hetaLSCback->SetYTitle("Entries");
2378 flistLsCutsBack->Add(hetaLSCback);
2379
2380 namehist="hCosPDPBLSCback_pt";
2381 namehist+=i;
2382 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
2383 titlehist+=i;
2384 hCosPDPBLSCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2385 hCosPDPBLSCback->SetXTitle("Cosine between D0 momentum and B momentum");
2386 hCosPDPBLSCback->SetYTitle("Entries");
2387 flistLsCutsBack->Add(hCosPDPBLSCback);
2388
2389 namehist="hCosPcPDLSCback_pt";
2390 namehist+=i;
2391 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
2392 titlehist+=i;
2393 hCosPcPDLSCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2394 hCosPcPDLSCback->SetXTitle("Cosine between c quark momentum and D0 momentum");
2395 hCosPcPDLSCback->SetYTitle("Entries");
2396 flistLsCutsBack->Add(hCosPcPDLSCback);
2397
2398 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2399 namehist="hd0xd0LSCback_pt";
2400 namehist+=i;
2401 titlehist="d0xd0 Loose Cuts Back ptbin=";
2402 titlehist+=i;
2403 hd0xd0LSCbackpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
2404 hd0xd0LSCbackpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
2405 hd0xd0LSCbackpt->SetYTitle("Entries");
2406 flistLsCutsBack->Add(hd0xd0LSCbackpt);
2407
2408
2409 namehist="hd0D0VSd0xd0LSCback_pt";
2410 namehist+=i;
2411 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Back ptbin=";
2412 titlehist+=i;
2413 hd0D0VSd0xd0LSCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
2414 hd0D0VSd0xd0LSCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2415 hd0D0VSd0xd0LSCbackpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
2416 flistLsCutsBack->Add(hd0D0VSd0xd0LSCbackpt);
2417
2418
2419 namehist="hangletracksVSd0xd0LSCback_pt";
2420 namehist+=i;
2421 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Back ptbin=";
2422 titlehist+=i;
2423 hangletracksVSd0xd0LSCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
2424 hangletracksVSd0xd0LSCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2425 hangletracksVSd0xd0LSCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
2426 flistLsCutsBack->Add(hangletracksVSd0xd0LSCbackpt);
2427
2428
2429 namehist="hangletracksVSd0D0LSCback_pt";
2430 namehist+=i;
2431 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Loose Cuts Back ptbin=";
2432 titlehist+=i;
2433 hangletracksVSd0D0LSCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
2434 hangletracksVSd0D0LSCbackpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
2435 hangletracksVSd0D0LSCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
2436 flistLsCutsBack->Add(hangletracksVSd0D0LSCbackpt);
2437
2438 }
2439 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
2440 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2441
2442
2443
2444
2445
2446
2447
624c07ab 2448 // ####### d0 D0 histos ############
2449
ac4c229c 2450 TH1F *hd0D0LSCbackPM = new TH1F("hd0D0LSCbackPM","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2451 hd0D0LSCbackPM->SetXTitle("Impact parameter [#mum]");
2452 hd0D0LSCbackPM->SetYTitle("Entries");
2453
2454 TH1F *hd0D0VtxTrueLSCbackPM = new TH1F("hd0D0VtxTrueLSCbackPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2455 hd0D0VtxTrueLSCbackPM->SetXTitle("Impact parameter [#mum]");
2456 hd0D0VtxTrueLSCbackPM->SetYTitle("Entries");
2457
2458 TH1F *hMCd0D0LSCbackPM = new TH1F("hMCd0D0LSCbackPM","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2459 hMCd0D0LSCbackPM->SetXTitle("MC Impact parameter [#mum]");
2460 hMCd0D0LSCbackPM->SetYTitle("Entries");
2461
2462 TH1F *hd0D0LSCbackSB = new TH1F("hd0D0LSCbackSB","D^{0} impact par. plot , Loose Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2463 hd0D0LSCbackSB->SetXTitle("Impact parameter [#mum]");
2464 hd0D0LSCbackSB->SetYTitle("Entries");
2465
2466 TH1F *hd0D0VtxTrueLSCbackSB = new TH1F("hd0D0VtxTrueLSCbackSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2467 hd0D0VtxTrueLSCbackSB->SetXTitle("Impact parameter [#mum]");
2468 hd0D0VtxTrueLSCbackSB->SetYTitle("Entries");
2469
2470 TH1F *hMCd0D0LSCbackSB = new TH1F("hMCd0D0LSCbackSB","D^{0} impact par. plot, Loose Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
2471 hMCd0D0LSCbackSB->SetXTitle("MC Impact parameter [#mum]");
2472 hMCd0D0LSCbackSB->SetYTitle("Entries");
2473
2474 flistLsCutsBack->Add(hd0D0LSCbackPM);
2475 flistLsCutsBack->Add(hd0D0VtxTrueLSCbackPM);
2476 flistLsCutsBack->Add(hMCd0D0LSCbackPM);
2477 flistLsCutsBack->Add(hd0D0LSCbackSB);
2478 flistLsCutsBack->Add(hd0D0VtxTrueLSCbackSB);
2479 flistLsCutsBack->Add(hMCd0D0LSCbackSB);
2480
e047b348 2481 TH1F *hd0D0ptLSCbackPM;
2482 TH1F *hMCd0D0ptLSCbackPM;
2483 TH1F *hd0D0VtxTrueptLSCbackPM;
2484 TH1F *hd0D0ptLSCbackSB;
2485 TH1F *hMCd0D0ptLSCbackSB;
2486 TH1F *hd0D0VtxTrueptLSCbackSB;
ac4c229c 2487 namehist="hd0D0ptLSCback_";
624c07ab 2488 titlehist="D^{0} impact par. plot, Loose Cuts, Background, ";
2489 for(Int_t i=0;i<fnbins;i++){
2490 strnamept=namehist;
2491 strnamept.Append("PkMss_pt");
2492 strnamept+=i;
2493
2494 strtitlept=titlehist;
2495 strtitlept.Append(" Mass Peak, ");
2496 strtitlept+=fptbins[i];
2497 strtitlept.Append("<= pt <");
2498 strtitlept+=fptbins[i+1];
2499 strtitlept.Append(" [GeV/c]");
2500
e047b348 2501 hd0D0ptLSCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2502 hd0D0ptLSCbackPM->SetXTitle("Impact parameter [#mum] ");
2503 hd0D0ptLSCbackPM->SetYTitle("Entries");
2504 flistLsCutsBack->Add(hd0D0ptLSCbackPM);
624c07ab 2505
2506 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2507 hMCd0D0ptLSCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2508 hMCd0D0ptLSCbackPM->SetXTitle("MC Impact parameter [#mum] ");
2509 hMCd0D0ptLSCbackPM->SetYTitle("Entries");
2510 flistLsCutsBack->Add(hMCd0D0ptLSCbackPM);
624c07ab 2511
2512
2513 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2514 hd0D0VtxTrueptLSCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2515 hd0D0VtxTrueptLSCbackPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2516 hd0D0VtxTrueptLSCbackPM->SetYTitle("Entries");
2517 flistLsCutsBack->Add(hd0D0VtxTrueptLSCbackPM);
624c07ab 2518
2519 strnamept=namehist;
2520 strnamept.Append("SBMss_pt");
2521 strnamept+=i;
2522
2523 strtitlept=titlehist;
2524 strtitlept.Append(" Side Bands, ");
2525 strtitlept+=fptbins[i];
2526 strtitlept.Append("<= pt <");
2527 strtitlept+=fptbins[i+1];
2528 strtitlept.Append(" [GeV/c]");
2529
e047b348 2530 hd0D0ptLSCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2531 hd0D0ptLSCbackSB->SetXTitle("Impact parameter [#mum] ");
2532 hd0D0ptLSCbackSB->SetYTitle("Entries");
2533 flistLsCutsBack->Add(hd0D0ptLSCbackSB);
624c07ab 2534
2535 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2536 hMCd0D0ptLSCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2537 hMCd0D0ptLSCbackSB->SetXTitle("MC Impact parameter [#mum] ");
2538 hMCd0D0ptLSCbackSB->SetYTitle("Entries");
2539 flistLsCutsBack->Add(hMCd0D0ptLSCbackSB);
624c07ab 2540
2541 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2542 hd0D0VtxTrueptLSCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2543 hd0D0VtxTrueptLSCbackSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2544 hd0D0VtxTrueptLSCbackSB->SetYTitle("Entries");
2545 flistLsCutsBack->Add(hd0D0VtxTrueptLSCbackSB);
624c07ab 2546 }
2547
2548
2549
2550 //############ LOOSE CUTS FROMB HISTOGRAMS ###########
2551 //
2552 //####### global properties histos
2553
e047b348 2554 TH2F *hCPtaVSd0d0LSCfromB=new TH2F("hCPtaVSd0d0LSCfromB","hCPtaVSd0d0_LooseCuts_FromB",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 2555 TH1F *hSecVtxZLSCfromB=new TH1F("hSecVtxZLSCfromB","hSecVtxZ_LooseCuts_FromB",1000,-8.,8.);
2556 TH1F *hSecVtxXLSCfromB=new TH1F("hSecVtxXLSCfromB","hSecVtxX_LooseCuts_FromB",1000,-3000.,3000.);
2557 TH1F *hSecVtxYLSCfromB=new TH1F("hSecVtxYLSCfromB","hSecVtxY_LooseCuts_FromB",1000,-3000.,3000.);
2558 TH2F *hSecVtxXYLSCfromB=new TH2F("hSecVtxXYLSCfromB","hSecVtxXY_LooseCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
2559 TH1F *hSecVtxPhiLSCfromB=new TH1F("hSecVtxPhiLSCfromB","hSecVtxPhi_LooseCuts_FromB",180,-180.1,180.1);
e047b348 2560 TH1F *hd0singlTrackLSCfromB=new TH1F("hd0singlTrackLSCfromB","hd0singlTrackLooseCuts_FromB",1000,-5000.,5000.);
2561 TH1F *hCPtaLSCfromB=new TH1F("hCPtaLSCfromB","hCPta_LooseCuts_FromB",100,-1.,1.);
ac4c229c 2562 TH1F *hd0xd0LSCfromB=new TH1F("hd0xd0LSCfromB","hd0xd0_LooseCuts_FromB",1000,-100000.,100000.);
2563 TH1F *hMassTrueLSCfromB=new TH1F("hMassTrueLSCfromB","D^{0} MC inv. Mass Loose Cuts FromB(All momenta)",600,1.600,2.200);
2564 TH1F *hMassLSCfromB=new TH1F("hMassLSCfromB","D^{0} inv. Mass Loose Cuts FromB (All momenta)",600,1.600,2.200);
2565 hMassLSCfromB->Sumw2();
2566 TH1F *hMassTrueLSCfromBPM=new TH1F("hMassTrueLSCfromBPM","D^{0} MC inv. Mass Loose Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
2567 TH1F *hMassLSCfromBPM=new TH1F("hMassLSCfromBPM","D^{0} inv. Mass Loose Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
2568 hMassLSCfromBPM->Sumw2();
2569 TH1F *hMassTrueLSCfromBSB=new TH1F("hMassTrueLSCfromBSB","D^{0} MC inv. Mass in Side Bands Loose Cuts FromB(All momenta)",600,1.600,2.200);
2570 TH1F *hMassLSCfromBSB=new TH1F("hMassLSCfromBSB","D^{0} inv. Mass in Side Bands Loose Cuts FromB (All momenta)",600,1.600,2.200);
2571 hMassLSCfromBSB->Sumw2();
2572
2573 flistLsCutsFromB->Add(hCPtaVSd0d0LSCfromB);
2574 flistLsCutsFromB->Add(hSecVtxZLSCfromB);
2575 flistLsCutsFromB->Add(hSecVtxYLSCfromB);
2576 flistLsCutsFromB->Add(hSecVtxXLSCfromB);
2577 flistLsCutsFromB->Add(hSecVtxXYLSCfromB);
2578 flistLsCutsFromB->Add(hSecVtxPhiLSCfromB);
e047b348 2579 flistLsCutsFromB->Add(hd0singlTrackLSCfromB);
ac4c229c 2580 flistLsCutsFromB->Add(hCPtaLSCfromB);
2581 flistLsCutsFromB->Add(hd0xd0LSCfromB);
2582 flistLsCutsFromB->Add(hMassTrueLSCfromB);
2583 flistLsCutsFromB->Add(hMassLSCfromB);
2584 flistLsCutsFromB->Add(hMassTrueLSCfromBPM);
2585 flistLsCutsFromB->Add(hMassLSCfromBPM);
2586 flistLsCutsFromB->Add(hMassTrueLSCfromBSB);
2587 flistLsCutsFromB->Add(hMassLSCfromBSB);
624c07ab 2588
e047b348 2589
2590
2591
2592 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
2593 TH1F *hdcaLSCfromB=new TH1F("hdcaLSCfromB","hdca_LooseCuts_FromB",100,0.,1000.);
2594 hdcaLSCfromB->SetXTitle("dca [#mum]");
2595 hdcaLSCfromB->SetYTitle("Entries");
2596 TH1F *hcosthetastarLSCfromB=new TH1F("hcosthetastarLSCfromB","hCosThetaStar_LooseCuts_FromB",50,-1.,1.);
2597 hcosthetastarLSCfromB->SetXTitle("cos #theta^{*}");
2598 hcosthetastarLSCfromB->SetYTitle("Entries");
2599 TH1F *hptD0LSCfromB=new TH1F("hptD0LSCfromB","D^{0} transverse momentum distribution",34,ptbinsD0arr);
2600 hptD0LSCfromB->SetXTitle("p_{t} [GeV/c]");
2601 hptD0LSCfromB->SetYTitle("Entries");
2602 TH1F *hptD0VsMaxPtLSCfromB=new TH1F("hptD0VsMaxPtLSCfromB","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
2603 TH2F *hptD0PTallsqrtLSCfromB=new TH2F("hptD0PTallsqrtLSCfromB","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
2604 TH2F *hptD0PTallLSCfromB=new TH2F("hptD0PTallLSCfromB","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
2605 TH2F *hptD0vsptBLSCfromB=new TH2F("hptD0vsptBLSCfromB","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2606 TH2F *hpD0vspBLSCfromB=new TH2F("hpD0vspBLSCfromB","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2607 TH2F *hptD0vsptcquarkLSCfromB=new TH2F("hptD0vsptcquarkLSCfromB","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2608 TH2F *hpD0vspcquarkLSCfromB=new TH2F("hpD0vspcquarkLSCfromB","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2609 flistLsCutsFromB->Add(hdcaLSCfromB);
2610 flistLsCutsFromB->Add(hcosthetastarLSCfromB);
2611 flistLsCutsFromB->Add(hptD0LSCfromB);
2612 flistLsCutsFromB->Add(hptD0VsMaxPtLSCfromB);
2613 flistLsCutsFromB->Add(hptD0PTallsqrtLSCfromB);
2614 flistLsCutsFromB->Add(hptD0PTallLSCfromB);
2615 flistLsCutsFromB->Add(hptD0vsptBLSCfromB);
2616 flistLsCutsFromB->Add(hpD0vspBLSCfromB);
2617 flistLsCutsFromB->Add(hptD0vsptcquarkLSCfromB);
2618 flistLsCutsFromB->Add(hpD0vspcquarkLSCfromB);
2619
2620 TH1F *hd0zD0ptLSCfromB;
2621 TH1F *hInvMassLSCfromB;
2622 TH2F *hInvMassPtLSCfromB=new TH2F("hInvMassPtLSCfromB","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
2623 TH1F *hetaLSCfromB;
2624 TH1F *hCosPDPBLSCfromB;
2625 TH1F *hCosPcPDLSCfromB;
2626 flistLsCutsFromB->Add(hInvMassPtLSCfromB);
2627 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2628 TH2F *hd0D0VSd0xd0LSCfromBpt;
2629 TH2F *hangletracksVSd0xd0LSCfromBpt;
2630 TH2F *hangletracksVSd0D0LSCfromBpt;
2631 TH1F *hd0xd0LSCfromBpt;
2632
2633
2634 TH2F *hTOFpidLSCfromB=new TH2F("hTOFpidLSCfromB","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
2635 flistLsCutsFromB->Add(hTOFpidLSCfromB);
2636
2637 for(Int_t i=0;i<fnbins;i++){
2638 namehist="hd0zD0ptLSCfromB_pt";
2639 namehist+=i;
2640 titlehist="d0(z) Loose Cuts FromBm ptbin=";
2641 titlehist+=i;
2642 hd0zD0ptLSCfromB=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
2643 hd0zD0ptLSCfromB->SetXTitle("d_{0}(z) [#mum]");
2644 hd0zD0ptLSCfromB->SetYTitle("Entries");
2645 flistLsCutsFromB->Add(hd0zD0ptLSCfromB);
2646
2647 namehist="hInvMassLSCfromB_pt";
2648 namehist+=i;
2649 titlehist="Invariant Mass Loose Cuts FromB ptbin=";
2650 titlehist+=i;
2651 hInvMassLSCfromB=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
2652 hInvMassLSCfromB->SetXTitle("Invariant Mass [GeV]");
2653 hInvMassLSCfromB->SetYTitle("Entries");
2654 flistLsCutsFromB->Add(hInvMassLSCfromB);
2655
2656 namehist="hetaLSCfromB_pt";
2657 namehist+=i;
2658 titlehist="eta Loose Cuts FromB ptbin=";
2659 titlehist+=i;
2660 hetaLSCfromB=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
2661 hetaLSCfromB->SetXTitle("Pseudorapidity");
2662 hetaLSCfromB->SetYTitle("Entries");
2663 flistLsCutsFromB->Add(hetaLSCfromB);
2664
2665 namehist="hCosPDPBLSCfromB_pt";
2666 namehist+=i;
2667 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
2668 titlehist+=i;
2669 hCosPDPBLSCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2670 hCosPDPBLSCfromB->SetXTitle("Cosine between D0 momentum and B momentum");
2671 hCosPDPBLSCfromB->SetYTitle("Entries");
2672 flistLsCutsFromB->Add(hCosPDPBLSCfromB);
2673
2674 namehist="hCosPcPDLSCfromB_pt";
2675 namehist+=i;
2676 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
2677 titlehist+=i;
2678 hCosPcPDLSCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2679 hCosPcPDLSCfromB->SetXTitle("Cosine between c quark momentum and D0 momentum");
2680 hCosPcPDLSCfromB->SetYTitle("Entries");
2681 flistLsCutsFromB->Add(hCosPcPDLSCfromB);
2682
2683 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2684 namehist="hd0xd0LSCfromB_pt";
2685 namehist+=i;
2686 titlehist="d0xd0 Loose Cuts FromB ptbin=";
2687 titlehist+=i;
2688 hd0xd0LSCfromBpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
2689 hd0xd0LSCfromBpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
2690 hd0xd0LSCfromBpt->SetYTitle("Entries");
2691 flistLsCutsFromB->Add(hd0xd0LSCfromBpt);
2692
2693
2694 namehist="hd0D0VSd0xd0LSCfromB_pt";
2695 namehist+=i;
2696 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts FromB ptbin=";
2697 titlehist+=i;
2698 hd0D0VSd0xd0LSCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
2699 hd0D0VSd0xd0LSCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2700 hd0D0VSd0xd0LSCfromBpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
2701 flistLsCutsFromB->Add(hd0D0VSd0xd0LSCfromBpt);
2702
2703
2704 namehist="hangletracksVSd0xd0LSCfromB_pt";
2705 namehist+=i;
2706 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts FromB ptbin=";
2707 titlehist+=i;
2708 hangletracksVSd0xd0LSCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
2709 hangletracksVSd0xd0LSCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2710 hangletracksVSd0xd0LSCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
2711 flistLsCutsFromB->Add(hangletracksVSd0xd0LSCfromBpt);
2712
2713
2714 namehist="hangletracksVSd0D0LSCfromB_pt";
2715 namehist+=i;
2716 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Loose Cuts FromB ptbin=";
2717 titlehist+=i;
2718 hangletracksVSd0D0LSCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
2719 hangletracksVSd0D0LSCfromBpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
2720 hangletracksVSd0D0LSCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
2721 flistLsCutsFromB->Add(hangletracksVSd0D0LSCfromBpt);
2722
2723 }
2724 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
2725 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2726
2727
2728
2729
2730
624c07ab 2731 // ######### d0 D0 histos ##############
ac4c229c 2732 TH1F *hd0D0LSCfromBPM = new TH1F("hd0D0LSCfromBPM","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2733 hd0D0LSCfromBPM->SetXTitle("Impact parameter [#mum]");
2734 hd0D0LSCfromBPM->SetYTitle("Entries");
2735
2736 TH1F *hd0D0VtxTrueLSCfromBPM = new TH1F("hd0D0VtxTrueLSCfromBPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2737 hd0D0VtxTrueLSCfromBPM->SetXTitle("Impact parameter [#mum]");
2738 hd0D0VtxTrueLSCfromBPM->SetYTitle("Entries");
2739
2740 TH1F *hMCd0D0LSCfromBPM = new TH1F("hMCd0D0LSCfromBPM","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2741 hMCd0D0LSCfromBPM->SetXTitle("MC Impact parameter [#mum]");
2742 hMCd0D0LSCfromBPM->SetYTitle("Entries");
2743
2744 TH1F *hd0D0LSCfromBSB = new TH1F("hd0D0LSCfromBSB","D^{0} impact par. plot , Loose Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2745 hd0D0LSCfromBSB->SetXTitle("Impact parameter [#mum]");
2746 hd0D0LSCfromBSB->SetYTitle("Entries");
2747
2748 TH1F *hd0D0VtxTrueLSCfromBSB = new TH1F("hd0D0VtxTrueLSCfromBSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2749 hd0D0VtxTrueLSCfromBSB->SetXTitle("Impact parameter [#mum]");
2750 hd0D0VtxTrueLSCfromBSB->SetYTitle("Entries");
2751
2752 TH1F *hMCd0D0LSCfromBSB = new TH1F("hMCd0D0LSCfromBSB","D^{0} impact par. plot, Loose Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
2753 hMCd0D0LSCfromBSB->SetXTitle("MC Impact parameter [#mum]");
2754 hMCd0D0LSCfromBSB->SetYTitle("Entries");
2755
2756 flistLsCutsFromB->Add(hd0D0LSCfromBPM);
2757 flistLsCutsFromB->Add(hd0D0VtxTrueLSCfromBPM);
2758 flistLsCutsFromB->Add(hMCd0D0LSCfromBPM);
2759 flistLsCutsFromB->Add(hd0D0LSCfromBSB);
2760 flistLsCutsFromB->Add(hd0D0VtxTrueLSCfromBSB);
2761 flistLsCutsFromB->Add(hMCd0D0LSCfromBSB);
2762
e047b348 2763 TH1F *hd0D0ptLSCfromBPM;
2764 TH1F *hMCd0D0ptLSCfromBPM;
2765 TH1F *hd0D0VtxTrueptLSCfromBPM;
2766 TH1F *hd0D0ptLSCfromBSB;
2767 TH1F *hMCd0D0ptLSCfromBSB;
2768 TH1F *hd0D0VtxTrueptLSCfromBSB;
ac4c229c 2769 namehist="hd0D0ptLSCfromB_";
624c07ab 2770 titlehist="D^{0} impact par. plot, Loose Cuts, FromB, ";
2771 for(Int_t i=0;i<fnbins;i++){
2772 strnamept=namehist;
2773 strnamept.Append("PkMss_pt");
2774 strnamept+=i;
2775
2776 strtitlept=titlehist;
2777 strtitlept.Append(" Mass Peak, ");
2778 strtitlept+=fptbins[i];
2779 strtitlept.Append("<= pt <");
2780 strtitlept+=fptbins[i+1];
2781 strtitlept.Append(" [GeV/c]");
2782
e047b348 2783 hd0D0ptLSCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2784 hd0D0ptLSCfromBPM->SetXTitle("Impact parameter [#mum] ");
2785 hd0D0ptLSCfromBPM->SetYTitle("Entries");
2786 flistLsCutsFromB->Add(hd0D0ptLSCfromBPM);
624c07ab 2787
2788 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2789 hMCd0D0ptLSCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2790 hMCd0D0ptLSCfromBPM->SetXTitle("MC Impact parameter [#mum] ");
2791 hMCd0D0ptLSCfromBPM->SetYTitle("Entries");
2792 flistLsCutsFromB->Add(hMCd0D0ptLSCfromBPM);
624c07ab 2793
2794
2795 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2796 hd0D0VtxTrueptLSCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2797 hd0D0VtxTrueptLSCfromBPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2798 hd0D0VtxTrueptLSCfromBPM->SetYTitle("Entries");
2799 flistLsCutsFromB->Add(hd0D0VtxTrueptLSCfromBPM);
624c07ab 2800
2801 strnamept=namehist;
2802 strnamept.Append("SBMss_pt");
2803 strnamept+=i;
2804
2805 strtitlept=titlehist;
2806 strtitlept.Append(" Side Bands, ");
2807 strtitlept+=fptbins[i];
2808 strtitlept.Append("<= pt <");
2809 strtitlept+=fptbins[i+1];
2810 strtitlept.Append(" [GeV/c]");
2811
e047b348 2812 hd0D0ptLSCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2813 hd0D0ptLSCfromBSB->SetXTitle("Impact parameter [#mum] ");
2814 hd0D0ptLSCfromBSB->SetYTitle("Entries");
2815 flistLsCutsFromB->Add(hd0D0ptLSCfromBSB);
624c07ab 2816
2817 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 2818 hMCd0D0ptLSCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2819 hMCd0D0ptLSCfromBSB->SetXTitle("MC Impact parameter [#mum] ");
2820 hMCd0D0ptLSCfromBSB->SetYTitle("Entries");
2821 flistLsCutsFromB->Add(hMCd0D0ptLSCfromBSB);
624c07ab 2822
2823 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 2824 hd0D0VtxTrueptLSCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
2825 hd0D0VtxTrueptLSCfromBSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
2826 hd0D0VtxTrueptLSCfromBSB->SetYTitle("Entries");
2827 flistLsCutsFromB->Add(hd0D0VtxTrueptLSCfromBSB);
624c07ab 2828 }
2829
2830
2831
2832 //############ LOOSE CUTS FROM DSTAR HISTOGRAMS ###########
2833 //
2834 //############## global properties histos
e047b348 2835 TH2F *hCPtaVSd0d0LSCfromDstar=new TH2F("hCPtaVSd0d0LSCfromDstar","hCPtaVSd0d0_LooseCuts_FromDStar",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 2836 TH1F *hSecVtxZLSCfromDstar=new TH1F("hSecVtxZLSCfromDstar","hSecVtxZ_LooseCuts_FromDStar",1000,-8.,8.);
2837 TH1F *hSecVtxXLSCfromDstar=new TH1F("hSecVtxXLSCfromDstar","hSecVtxX_LooseCuts_FromDStar",1000,-3000.,3000.);
2838 TH1F *hSecVtxYLSCfromDstar=new TH1F("hSecVtxYLSCfromDstar","hSecVtxY_LooseCuts_FromDStar",1000,-3000.,3000.);
2839 TH2F *hSecVtxXYLSCfromDstar=new TH2F("hSecVtxXYLSCfromDstar","hSecVtxXY_LooseCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
2840 TH1F *hSecVtxPhiLSCfromDstar=new TH1F("hSecVtxPhiLSCfromDstar","hSecVtxPhi_LooseCuts_FromDStar",180,-180.1,180.1);
e047b348 2841 TH1F *hd0singlTrackLSCfromDstar=new TH1F("hd0singlTrackLSCfromDstar","hd0singlTrackLooseCuts_FromDstar",1000,-5000.,5000.);
2842 TH1F *hCPtaLSCfromDstar=new TH1F("hCPtaLSCfromDstar","hCPta_LooseCuts_FromDStar",100,-1.,1.);
ac4c229c 2843 TH1F *hd0xd0LSCfromDstar=new TH1F("hd0xd0LSCfromDstar","hd0xd0_LooseCuts_FromDStar",1000,-100000.,100000.);
2844 TH1F *hMassTrueLSCfromDstar=new TH1F("hMassTrueLSCfromDstar","D^{0} MC inv. Mass Loose Cuts FromDStar(All momenta)",600,1.600,2.200);
2845 TH1F *hMassLSCfromDstar=new TH1F("hMassLSCfromDstar","D^{0} inv. Mass Loose Cuts FromDStar (All momenta)",600,1.600,2.200);
2846 hMassLSCfromDstar->Sumw2();
2847 TH1F *hMassTrueLSCfromDstarPM=new TH1F("hMassTrueLSCfromDstarPM","D^{0} MC inv. Mass Loose Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
2848 TH1F *hMassLSCfromDstarPM=new TH1F("hMassLSCfromDstarPM","D^{0} inv. Mass Loose Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
2849 hMassLSCfromDstarPM->Sumw2();
2850 TH1F *hMassTrueLSCfromDstarSB=new TH1F("hMassTrueLSCfromDstarSB","D^{0} MC inv. Mass in Side Bands Loose Cuts FromDStar(All momenta)",600,1.600,2.200);
2851 TH1F *hMassLSCfromDstarSB=new TH1F("hMassLSCfromDstarSB","D^{0} inv. Mass in Side Bands Loose Cuts FromDStar (All momenta)",600,1.600,2.200);
2852 hMassLSCfromDstarSB->Sumw2();
2853
2854 flistLsCutsFromDstar->Add(hCPtaVSd0d0LSCfromDstar);
2855 flistLsCutsFromDstar->Add(hSecVtxZLSCfromDstar);
2856 flistLsCutsFromDstar->Add(hSecVtxYLSCfromDstar);
2857 flistLsCutsFromDstar->Add(hSecVtxXLSCfromDstar);
2858 flistLsCutsFromDstar->Add(hSecVtxXYLSCfromDstar);
2859 flistLsCutsFromDstar->Add(hSecVtxPhiLSCfromDstar);
e047b348 2860 flistLsCutsFromDstar->Add(hd0singlTrackLSCfromDstar);
ac4c229c 2861 flistLsCutsFromDstar->Add(hCPtaLSCfromDstar);
2862 flistLsCutsFromDstar->Add(hd0xd0LSCfromDstar);
2863 flistLsCutsFromDstar->Add(hMassTrueLSCfromDstar);
2864 flistLsCutsFromDstar->Add(hMassLSCfromDstar);
e047b348 2865 flistLsCutsFromDstar->Add(hMassTrueLSCfromDstarPM);
ac4c229c 2866 flistLsCutsFromDstar->Add(hMassLSCfromDstarPM);
2867 flistLsCutsFromDstar->Add(hMassTrueLSCfromDstarSB);
2868 flistLsCutsFromDstar->Add(hMassLSCfromDstarSB);
624c07ab 2869
e047b348 2870
2871
2872
2873
2874
2875
2876 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
2877 TH1F *hdcaLSCfromDstar=new TH1F("hdcaLSCfromDstar","hdca_LooseCuts_FromDstar",100,0.,1000.);
2878 hdcaLSCfromDstar->SetXTitle("dca [#mum]");
2879 hdcaLSCfromDstar->SetYTitle("Entries");
2880 TH1F *hcosthetastarLSCfromDstar=new TH1F("hcosthetastarLSCfromDstar","hCosThetaStar_LooseCuts_FromDstar",50,-1.,1.);
2881 hcosthetastarLSCfromDstar->SetXTitle("cos #theta^{*}");
2882 hcosthetastarLSCfromDstar->SetYTitle("Entries");
2883 TH1F *hptD0LSCfromDstar=new TH1F("hptD0LSCfromDstar","D^{0} transverse momentum distribution",34,ptbinsD0arr);
2884 hptD0LSCfromDstar->SetXTitle("p_{t} [GeV/c]");
2885 hptD0LSCfromDstar->SetYTitle("Entries");
2886 TH1F *hptD0VsMaxPtLSCfromDstar=new TH1F("hptD0VsMaxPtLSCfromDstar","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
2887 TH2F *hptD0PTallsqrtLSCfromDstar=new TH2F("hptD0PTallsqrtLSCfromDstar","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
2888 TH2F *hptD0PTallLSCfromDstar=new TH2F("hptD0PTallLSCfromDstar","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
2889 TH2F *hptD0vsptBLSCfromDstar=new TH2F("hptD0vsptBLSCfromDstar","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2890 TH2F *hpD0vspBLSCfromDstar=new TH2F("hpD0vspBLSCfromDstar","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2891 TH2F *hptD0vsptcquarkLSCfromDstar=new TH2F("hptD0vsptcquarkLSCfromDstar","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2892 TH2F *hpD0vspcquarkLSCfromDstar=new TH2F("hpD0vspcquarkLSCfromDstar","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
2893 flistLsCutsFromDstar->Add(hdcaLSCfromDstar);
2894 flistLsCutsFromDstar->Add(hcosthetastarLSCfromDstar);
2895 flistLsCutsFromDstar->Add(hptD0LSCfromDstar);
2896 flistLsCutsFromDstar->Add(hptD0VsMaxPtLSCfromDstar);
2897 flistLsCutsFromDstar->Add(hptD0PTallsqrtLSCfromDstar);
2898 flistLsCutsFromDstar->Add(hptD0PTallLSCfromDstar);
2899 flistLsCutsFromDstar->Add(hptD0vsptBLSCfromDstar);
2900 flistLsCutsFromDstar->Add(hpD0vspBLSCfromDstar);
2901 flistLsCutsFromDstar->Add(hptD0vsptcquarkLSCfromDstar);
2902 flistLsCutsFromDstar->Add(hpD0vspcquarkLSCfromDstar);
2903
2904 TH1F *hd0zD0ptLSCfromDstar;
2905 TH1F *hInvMassLSCfromDstar;
2906 TH2F *hInvMassPtLSCfromDstar=new TH2F("hInvMassPtLSCfromDstar","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
2907 TH1F *hetaLSCfromDstar;
2908 TH1F *hCosPDPBLSCfromDstar;
2909 TH1F *hCosPcPDLSCfromDstar;
2910 flistLsCutsFromDstar->Add(hInvMassPtLSCfromDstar);
2911 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2912 TH2F *hd0D0VSd0xd0LSCfromDstarpt;
2913 TH2F *hangletracksVSd0xd0LSCfromDstarpt;
2914 TH2F *hangletracksVSd0D0LSCfromDstarpt;
2915 TH1F *hd0xd0LSCfromDstarpt;
2916
2917 TH2F *hTOFpidLSCfromDstar=new TH2F("hTOFpidLSCfromDstar","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
2918 flistLsCutsFromDstar->Add(hTOFpidLSCfromDstar);
2919
2920 for(Int_t i=0;i<fnbins;i++){
2921 namehist="hd0zD0ptLSCfromDstar_pt";
2922 namehist+=i;
2923 titlehist="d0(z) Loose Cuts FromDstarm ptbin=";
2924 titlehist+=i;
2925 hd0zD0ptLSCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
2926 hd0zD0ptLSCfromDstar->SetXTitle("d_{0}(z) [#mum]");
2927 hd0zD0ptLSCfromDstar->SetYTitle("Entries");
2928 flistLsCutsFromDstar->Add(hd0zD0ptLSCfromDstar);
2929
2930 namehist="hInvMassLSCfromDstar_pt";
2931 namehist+=i;
2932 titlehist="Invariant Mass Loose Cuts FromDstar ptbin=";
2933 titlehist+=i;
2934 hInvMassLSCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
2935 hInvMassLSCfromDstar->SetXTitle("Invariant Mass [GeV]");
2936 hInvMassLSCfromDstar->SetYTitle("Entries");
2937 flistLsCutsFromDstar->Add(hInvMassLSCfromDstar);
2938
2939 namehist="hetaLSCfromDstar_pt";
2940 namehist+=i;
2941 titlehist="eta Loose Cuts FromDstar ptbin=";
2942 titlehist+=i;
2943 hetaLSCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
2944 hetaLSCfromDstar->SetXTitle("Pseudorapidity");
2945 hetaLSCfromDstar->SetYTitle("Entries");
2946 flistLsCutsFromDstar->Add(hetaLSCfromDstar);
2947
2948 namehist="hCosPDPBLSCfromDstar_pt";
2949 namehist+=i;
2950 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
2951 titlehist+=i;
2952 hCosPDPBLSCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2953 hCosPDPBLSCfromDstar->SetXTitle("Cosine between D0 momentum and B momentum");
2954 hCosPDPBLSCfromDstar->SetYTitle("Entries");
2955 flistLsCutsFromDstar->Add(hCosPDPBLSCfromDstar);
2956
2957 namehist="hCosPcPDLSCfromDstar_pt";
2958 namehist+=i;
2959 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
2960 titlehist+=i;
2961 hCosPcPDLSCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
2962 hCosPcPDLSCfromDstar->SetXTitle("Cosine between c quark momentum and D0 momentum");
2963 hCosPcPDLSCfromDstar->SetYTitle("Entries");
2964 flistLsCutsFromDstar->Add(hCosPcPDLSCfromDstar);
2965
2966 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
2967 namehist="hd0xd0LSCfromDstar_pt";
2968 namehist+=i;
2969 titlehist="d0xd0 Loose Cuts FromDstar ptbin=";
2970 titlehist+=i;
2971 hd0xd0LSCfromDstarpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
2972 hd0xd0LSCfromDstarpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
2973 hd0xd0LSCfromDstarpt->SetYTitle("Entries");
2974 flistLsCutsFromDstar->Add(hd0xd0LSCfromDstarpt);
2975
2976
2977 namehist="hd0D0VSd0xd0LSCfromDstar_pt";
2978 namehist+=i;
2979 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts FromDstar ptbin=";
2980 titlehist+=i;
2981 hd0D0VSd0xd0LSCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
2982 hd0D0VSd0xd0LSCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2983 hd0D0VSd0xd0LSCfromDstarpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
2984 flistLsCutsFromDstar->Add(hd0D0VSd0xd0LSCfromDstarpt);
2985
2986
2987 namehist="hangletracksVSd0xd0LSCfromDstar_pt";
2988 namehist+=i;
2989 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts FromDstar ptbin=";
2990 titlehist+=i;
2991 hangletracksVSd0xd0LSCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
2992 hangletracksVSd0xd0LSCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
2993 hangletracksVSd0xd0LSCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
2994 flistLsCutsFromDstar->Add(hangletracksVSd0xd0LSCfromDstarpt);
2995
2996
2997 namehist="hangletracksVSd0D0LSCfromDstar_pt";
2998 namehist+=i;
2999 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Loose Cuts FromDstar ptbin=";
3000 titlehist+=i;
3001 hangletracksVSd0D0LSCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
3002 hangletracksVSd0D0LSCfromDstarpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
3003 hangletracksVSd0D0LSCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
3004 flistLsCutsFromDstar->Add(hangletracksVSd0D0LSCfromDstarpt);
3005
3006
3007 }
3008 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
3009 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3010
3011
3012
3013
3014
3015
624c07ab 3016 //########## d0 D0 histos #############
ac4c229c 3017 TH1F *hd0D0LSCfromDstPM = new TH1F("hd0D0LSCfromDstarPM","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3018 hd0D0LSCfromDstPM->SetXTitle("Impact parameter [#mum]");
3019 hd0D0LSCfromDstPM->SetYTitle("Entries");
3020
3021 TH1F *hd0D0VtxTrueLSCfromDstPM = new TH1F("hd0D0VtxTrueLSCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3022 hd0D0VtxTrueLSCfromDstPM->SetXTitle("Impact parameter [#mum]");
3023 hd0D0VtxTrueLSCfromDstPM->SetYTitle("Entries");
3024
3025 TH1F *hMCd0D0LSCfromDstPM = new TH1F("hMCd0D0LSCfromDstarPM","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3026 hMCd0D0LSCfromDstPM->SetXTitle("MC Impact parameter [#mum]");
3027 hMCd0D0LSCfromDstPM->SetYTitle("Entries");
3028
3029 TH1F *hd0D0LSCfromDstSB = new TH1F("hd0D0LSCfromDstarSB","D^{0} impact par. plot , Loose Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3030 hd0D0LSCfromDstSB->SetXTitle("Impact parameter [#mum]");
3031 hd0D0LSCfromDstSB->SetYTitle("Entries");
3032
3033 TH1F *hd0D0VtxTrueLSCfromDstSB = new TH1F("hd0D0VtxTrueLSCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3034 hd0D0VtxTrueLSCfromDstSB->SetXTitle("Impact parameter [#mum]");
3035 hd0D0VtxTrueLSCfromDstSB->SetYTitle("Entries");
3036
3037 TH1F *hMCd0D0LSCfromDstSB = new TH1F("hMCd0D0LSCfromDstarSB","D^{0} impact par. plot, Loose Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
3038 hMCd0D0LSCfromDstSB->SetXTitle("MC Impact parameter [#mum]");
3039 hMCd0D0LSCfromDstSB->SetYTitle("Entries");
3040
3041 flistLsCutsFromDstar->Add(hd0D0LSCfromDstPM);
3042 flistLsCutsFromDstar->Add(hd0D0VtxTrueLSCfromDstPM);
3043 flistLsCutsFromDstar->Add(hMCd0D0LSCfromDstPM);
3044 flistLsCutsFromDstar->Add(hd0D0LSCfromDstSB);
3045 flistLsCutsFromDstar->Add(hd0D0VtxTrueLSCfromDstSB);
3046 flistLsCutsFromDstar->Add(hMCd0D0LSCfromDstSB);
3047
e047b348 3048 TH1F *hd0D0ptLSCfromDstPM;
3049 TH1F *hMCd0D0ptLSCfromDstPM;
3050 TH1F *hd0D0VtxTrueptLSCfromDstPM;
3051 TH1F *hd0D0ptLSCfromDstSB;
3052 TH1F *hMCd0D0ptLSCfromDstSB;
3053 TH1F *hd0D0VtxTrueptLSCfromDstSB;
ac4c229c 3054 namehist="hd0D0ptLSCfromDstar_";
624c07ab 3055 titlehist="D^{0} impact par. plot, Loose Cuts, FromDStar, ";
3056 for(Int_t i=0;i<fnbins;i++){
3057 strnamept=namehist;
3058 strnamept.Append("PkMss_pt");
3059 strnamept+=i;
3060
3061 strtitlept=titlehist;
3062 strtitlept.Append(" Mass Peak, ");
3063 strtitlept+=fptbins[i];
3064 strtitlept.Append("<= pt <");
3065 strtitlept+=fptbins[i+1];
3066 strtitlept.Append(" [GeV/c]");
3067
e047b348 3068 hd0D0ptLSCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3069 hd0D0ptLSCfromDstPM->SetXTitle("Impact parameter [#mum] ");
3070 hd0D0ptLSCfromDstPM->SetYTitle("Entries");
3071 flistLsCutsFromDstar->Add(hd0D0ptLSCfromDstPM);
624c07ab 3072
3073 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3074 hMCd0D0ptLSCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3075 hMCd0D0ptLSCfromDstPM->SetXTitle("MC Impact parameter [#mum] ");
3076 hMCd0D0ptLSCfromDstPM->SetYTitle("Entries");
3077 flistLsCutsFromDstar->Add(hMCd0D0ptLSCfromDstPM);
624c07ab 3078
3079
3080 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3081 hd0D0VtxTrueptLSCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3082 hd0D0VtxTrueptLSCfromDstPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3083 hd0D0VtxTrueptLSCfromDstPM->SetYTitle("Entries");
3084 flistLsCutsFromDstar->Add(hd0D0VtxTrueptLSCfromDstPM);
624c07ab 3085
3086 strnamept=namehist;
3087 strnamept.Append("SBMss_pt");
3088 strnamept+=i;
3089
3090 strtitlept=titlehist;
3091 strtitlept.Append(" Side Bands, ");
3092 strtitlept+=fptbins[i];
3093 strtitlept.Append("<= pt <");
3094 strtitlept+=fptbins[i+1];
3095 strtitlept.Append(" [GeV/c]");
3096
e047b348 3097 hd0D0ptLSCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3098 hd0D0ptLSCfromDstSB->SetXTitle("Impact parameter [#mum] ");
3099 hd0D0ptLSCfromDstSB->SetYTitle("Entries");
3100 flistLsCutsFromDstar->Add(hd0D0ptLSCfromDstSB);
624c07ab 3101
3102 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3103 hMCd0D0ptLSCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3104 hMCd0D0ptLSCfromDstSB->SetXTitle("MC Impact parameter [#mum] ");
3105 hMCd0D0ptLSCfromDstSB->SetYTitle("Entries");
3106 flistLsCutsFromDstar->Add(hMCd0D0ptLSCfromDstSB);
624c07ab 3107
3108 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3109 hd0D0VtxTrueptLSCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3110 hd0D0VtxTrueptLSCfromDstSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3111 hd0D0VtxTrueptLSCfromDstSB->SetYTitle("Entries");
3112 flistLsCutsFromDstar->Add(hd0D0VtxTrueptLSCfromDstSB);
624c07ab 3113 }
3114
3115
3116 //############ LOOSE CUTS OTHER HISTOGRAMS ###########
3117 //
3118 //########### global properties histos ###########
3119
e047b348 3120 TH2F *hCPtaVSd0d0LSCother=new TH2F("hCPtaVSd0d0LSCother","hCPtaVSd0d0_LooseCuts_other",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 3121 TH1F *hSecVtxZLSCother=new TH1F("hSecVtxZLSCother","hSecVtxZ_LooseCuts_other",1000,-8.,8.);
3122 TH1F *hSecVtxXLSCother=new TH1F("hSecVtxXLSCother","hSecVtxX_LooseCuts_other",1000,-3000.,3000.);
3123 TH1F *hSecVtxYLSCother=new TH1F("hSecVtxYLSCother","hSecVtxY_LooseCuts_other",1000,-3000.,3000.);
3124 TH2F *hSecVtxXYLSCother=new TH2F("hSecVtxXYLSCother","hSecVtxXY_LooseCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
3125 TH1F *hSecVtxPhiLSCother=new TH1F("hSecVtxPhiLSCother","hSecVtxPhi_LooseCuts_other",180,-180.1,180.1);
e047b348 3126 TH1F *hd0singlTrackLSCother=new TH1F("hd0singlTrackLSCother","hd0singlTrackLooseCuts_Other",1000,-5000.,5000.);
3127 TH1F *hCPtaLSCother=new TH1F("hCPtaLSCother","hCPta_LooseCuts_other",100,-1.,1.);
ac4c229c 3128 TH1F *hd0xd0LSCother=new TH1F("hd0xd0LSCother","hd0xd0_LooseCuts_other",1000,-100000.,100000.);
3129 TH1F *hMassTrueLSCother=new TH1F("hMassTrueLSCother","D^{0} MC inv. Mass Loose Cuts other(All momenta)",600,1.600,2.200);
3130 TH1F *hMassLSCother=new TH1F("hMassLSCother","D^{0} inv. Mass Loose Cuts other (All momenta)",600,1.600,2.200);
3131 hMassLSCother->Sumw2();
3132 TH1F *hMassTrueLSCotherPM=new TH1F("hMassTrueLSCotherPM","D^{0} MC inv. Mass Loose Cuts other, Mass Peak. (All momenta)",600,1.600,2.200);
3133 TH1F *hMassLSCotherPM=new TH1F("hMassLSCotherPM","D^{0} inv. Mass Loose Cuts other (All momenta), MassPeak",600,1.600,2.200);
3134 hMassLSCotherPM->Sumw2();
3135 TH1F *hMassTrueLSCotherSB=new TH1F("hMassTrueLSCotherSB","D^{0} MC inv. Mass in Side Bands Loose Cuts other(All momenta)",600,1.600,2.200);
3136 TH1F *hMassLSCotherSB=new TH1F("hMassLSCotherSB","D^{0} inv. Mass in Side Bands Loose Cuts other (All momenta)",600,1.600,2.200);
3137 hMassLSCotherSB->Sumw2();
3138
3139 flistLsCutsOther->Add(hCPtaVSd0d0LSCother);
3140 flistLsCutsOther->Add(hSecVtxZLSCother);
3141 flistLsCutsOther->Add(hSecVtxYLSCother);
3142 flistLsCutsOther->Add(hSecVtxXLSCother);
3143 flistLsCutsOther->Add(hSecVtxXYLSCother);
3144 flistLsCutsOther->Add(hSecVtxPhiLSCother);
e047b348 3145 flistLsCutsOther->Add(hd0singlTrackLSCother);
ac4c229c 3146 flistLsCutsOther->Add(hCPtaLSCother);
3147 flistLsCutsOther->Add(hd0xd0LSCother);
3148 flistLsCutsOther->Add(hMassTrueLSCother);
3149 flistLsCutsOther->Add(hMassLSCother);
3150 flistLsCutsOther->Add(hMassTrueLSCotherPM);
3151 flistLsCutsOther->Add(hMassLSCotherPM);
3152 flistLsCutsOther->Add(hMassTrueLSCotherSB);
3153 flistLsCutsOther->Add(hMassLSCotherSB);
624c07ab 3154
e047b348 3155
3156
3157
3158 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
3159 TH1F *hdcaLSCother=new TH1F("hdcaLSCother","hdca_LooseCuts_Other",100,0.,1000.);
3160 hdcaLSCother->SetXTitle("dca [#mum]");
3161 hdcaLSCother->SetYTitle("Entries");
3162 TH1F *hcosthetastarLSCother=new TH1F("hcosthetastarLSCother","hCosThetaStar_LooseCuts_Other",50,-1.,1.);
3163 hcosthetastarLSCother->SetXTitle("cos #theta^{*}");
3164 hcosthetastarLSCother->SetYTitle("Entries");
3165 TH1F *hptD0LSCother=new TH1F("hptD0LSCother","D^{0} transverse momentum distribution",34,ptbinsD0arr);
3166 hptD0LSCother->SetXTitle("p_{t} [GeV/c]");
3167 hptD0LSCother->SetYTitle("Entries");
3168 TH1F *hptD0VsMaxPtLSCother=new TH1F("hptD0VsMaxPtLSCother","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
3169 TH2F *hptD0PTallsqrtLSCother=new TH2F("hptD0PTallsqrtLSCother","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
3170 TH2F *hptD0PTallLSCother=new TH2F("hptD0PTallLSCother","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
3171 TH2F *hptD0vsptBLSCother=new TH2F("hptD0vsptBLSCother","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3172 TH2F *hpD0vspBLSCother=new TH2F("hpD0vspBLSCother","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3173 TH2F *hptD0vsptcquarkLSCother=new TH2F("hptD0vsptcquarkLSCother","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3174 TH2F *hpD0vspcquarkLSCother=new TH2F("hpD0vspcquarkLSCother","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3175 flistLsCutsOther->Add(hdcaLSCother);
3176 flistLsCutsOther->Add(hcosthetastarLSCother);
3177 flistLsCutsOther->Add(hptD0LSCother);
3178 flistLsCutsOther->Add(hptD0VsMaxPtLSCother);
3179 flistLsCutsOther->Add(hptD0PTallsqrtLSCother);
3180 flistLsCutsOther->Add(hptD0PTallLSCother);
3181 flistLsCutsOther->Add(hptD0vsptBLSCother);
3182 flistLsCutsOther->Add(hpD0vspBLSCother);
3183 flistLsCutsOther->Add(hptD0vsptcquarkLSCother);
3184 flistLsCutsOther->Add(hpD0vspcquarkLSCother);
3185
3186 TH1F *hd0zD0ptLSCother;
3187 TH1F *hInvMassLSCother;
3188 TH2F *hInvMassPtLSCother=new TH2F("hInvMassPtLSCother","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
3189 TH1F *hetaLSCother;
3190 TH1F *hCosPDPBLSCother;
3191 TH1F *hCosPcPDLSCother;
3192 flistLsCutsOther->Add(hInvMassPtLSCother);
3193 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3194 TH2F *hd0D0VSd0xd0LSCotherpt;
3195 TH2F *hangletracksVSd0xd0LSCotherpt;
3196 TH2F *hangletracksVSd0D0LSCotherpt;
3197 TH1F *hd0xd0LSCotherpt;
3198
3199 TH2F *hTOFpidLSCother=new TH2F("hTOFpidLSCother","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
3200 flistLsCutsOther->Add(hTOFpidLSCother);
3201
3202 for(Int_t i=0;i<fnbins;i++){
3203 namehist="hd0zD0ptLSCother_pt";
3204 namehist+=i;
3205 titlehist="d0(z) Loose Cuts Otherm ptbin=";
3206 titlehist+=i;
3207 hd0zD0ptLSCother=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
3208 hd0zD0ptLSCother->SetXTitle("d_{0}(z) [#mum]");
3209 hd0zD0ptLSCother->SetYTitle("Entries");
3210 flistLsCutsOther->Add(hd0zD0ptLSCother);
3211
3212 namehist="hInvMassLSCother_pt";
3213 namehist+=i;
3214 titlehist="Invariant Mass Loose Cuts Other ptbin=";
3215 titlehist+=i;
3216 hInvMassLSCother=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
3217 hInvMassLSCother->SetXTitle("Invariant Mass [GeV]");
3218 hInvMassLSCother->SetYTitle("Entries");
3219 flistLsCutsOther->Add(hInvMassLSCother);
3220
3221 namehist="hetaLSCother_pt";
3222 namehist+=i;
3223 titlehist="eta Loose Cuts Other ptbin=";
3224 titlehist+=i;
3225 hetaLSCother=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
3226 hetaLSCother->SetXTitle("Pseudorapidity");
3227 hetaLSCother->SetYTitle("Entries");
3228 flistLsCutsOther->Add(hetaLSCother);
3229
3230 namehist="hCosPDPBLSCother_pt";
3231 namehist+=i;
3232 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
3233 titlehist+=i;
3234 hCosPDPBLSCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3235 hCosPDPBLSCother->SetXTitle("Cosine between D0 momentum and B momentum");
3236 hCosPDPBLSCother->SetYTitle("Entries");
3237 flistLsCutsOther->Add(hCosPDPBLSCother);
3238
3239 namehist="hCosPcPDLSCother_pt";
3240 namehist+=i;
3241 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
3242 titlehist+=i;
3243 hCosPcPDLSCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3244 hCosPcPDLSCother->SetXTitle("Cosine between c quark momentum and D0 momentum");
3245 hCosPcPDLSCother->SetYTitle("Entries");
3246 flistLsCutsOther->Add(hCosPcPDLSCother);
3247
3248 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3249 namehist="hd0xd0LSCother_pt";
3250 namehist+=i;
3251 titlehist="d0xd0 Loose Cuts Other ptbin=";
3252 titlehist+=i;
3253 hd0xd0LSCotherpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
3254 hd0xd0LSCotherpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
3255 hd0xd0LSCotherpt->SetYTitle("Entries");
3256 flistLsCutsOther->Add(hd0xd0LSCotherpt);
3257
3258
3259 namehist="hd0D0VSd0xd0LSCother_pt";
3260 namehist+=i;
3261 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Other ptbin=";
3262 titlehist+=i;
3263 hd0D0VSd0xd0LSCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
3264 hd0D0VSd0xd0LSCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3265 hd0D0VSd0xd0LSCotherpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
3266 flistLsCutsOther->Add(hd0D0VSd0xd0LSCotherpt);
3267
3268
3269 namehist="hangletracksVSd0xd0LSCother_pt";
3270 namehist+=i;
3271 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Loose Cuts Other ptbin=";
3272 titlehist+=i;
3273 hangletracksVSd0xd0LSCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
3274 hangletracksVSd0xd0LSCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3275 hangletracksVSd0xd0LSCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
3276 flistLsCutsOther->Add(hangletracksVSd0xd0LSCotherpt);
3277
3278
3279 namehist="hangletracksVSd0D0LSCother_pt";
3280 namehist+=i;
3281 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Loose Cuts Other ptbin=";
3282 titlehist+=i;
3283 hangletracksVSd0D0LSCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
3284 hangletracksVSd0D0LSCotherpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
3285 hangletracksVSd0D0LSCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
3286 flistLsCutsOther->Add(hangletracksVSd0D0LSCotherpt);
3287
3288
3289 }
3290 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
3291 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3292
3293
3294
624c07ab 3295 //############# d0 D0 histos ###############à
ac4c229c 3296 TH1F *hd0D0LSCotherPM = new TH1F("hd0D0LSCotherPM","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3297 hd0D0LSCotherPM->SetXTitle("Impact parameter [#mum]");
3298 hd0D0LSCotherPM->SetYTitle("Entries");
3299
3300 TH1F *hd0D0VtxTrueLSCotherPM = new TH1F("hd0D0VtxTrueLSCotherPM","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3301 hd0D0VtxTrueLSCotherPM->SetXTitle("Impact parameter [#mum]");
3302 hd0D0VtxTrueLSCotherPM->SetYTitle("Entries");
3303
3304 TH1F *hMCd0D0LSCotherPM = new TH1F("hMCd0D0LSCotherPM","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3305 hMCd0D0LSCotherPM->SetXTitle("MC Impact parameter [#mum]");
3306 hMCd0D0LSCotherPM->SetYTitle("Entries");
3307
3308 TH1F *hd0D0LSCotherSB = new TH1F("hd0D0LSCotherSB","D^{0} impact par. plot , Loose Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3309 hd0D0LSCotherSB->SetXTitle("Impact parameter [#mum]");
3310 hd0D0LSCotherSB->SetYTitle("Entries");
3311
3312 TH1F *hd0D0VtxTrueLSCotherSB = new TH1F("hd0D0VtxTrueLSCotherSB","D^{0} impact par. w.r.t. True Vtx, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3313 hd0D0VtxTrueLSCotherSB->SetXTitle("Impact parameter [#mum]");
3314 hd0D0VtxTrueLSCotherSB->SetYTitle("Entries");
3315
3316 TH1F *hMCd0D0LSCotherSB = new TH1F("hMCd0D0LSCotherSB","D^{0} impact par. plot, Loose Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
3317 hMCd0D0LSCotherSB->SetXTitle("MC Impact parameter [#mum]");
3318 hMCd0D0LSCotherSB->SetYTitle("Entries");
3319
3320 flistLsCutsOther->Add(hd0D0LSCotherPM);
3321 flistLsCutsOther->Add(hd0D0VtxTrueLSCotherPM);
3322 flistLsCutsOther->Add(hMCd0D0LSCotherPM);
3323 flistLsCutsOther->Add(hd0D0LSCotherSB);
3324 flistLsCutsOther->Add(hd0D0VtxTrueLSCotherSB);
3325 flistLsCutsOther->Add(hMCd0D0LSCotherSB);
3326
e047b348 3327 TH1F *hd0D0ptLSCotherPM;
3328 TH1F *hMCd0D0ptLSCotherPM;
3329 TH1F *hd0D0VtxTrueptLSCotherPM;
3330 TH1F *hd0D0ptLSCotherSB;
3331 TH1F *hMCd0D0ptLSCotherSB;
3332 TH1F *hd0D0VtxTrueptLSCotherSB;
ac4c229c 3333 namehist="hd0D0ptLSCother_";
624c07ab 3334 titlehist="D^{0} impact par. plot, Loose Cuts, Other, ";
3335 for(Int_t i=0;i<fnbins;i++){
3336 strnamept=namehist;
3337 strnamept.Append("PkMss_pt");
3338 strnamept+=i;
3339
3340 strtitlept=titlehist;
3341 strtitlept.Append(" Mass Peak, ");
3342 strtitlept+=fptbins[i];
3343 strtitlept.Append("<= pt <");
3344 strtitlept+=fptbins[i+1];
3345 strtitlept.Append(" [GeV/c]");
3346
e047b348 3347 hd0D0ptLSCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3348 hd0D0ptLSCotherPM->SetXTitle("Impact parameter [#mum] ");
3349 hd0D0ptLSCotherPM->SetYTitle("Entries");
3350 flistLsCutsOther->Add(hd0D0ptLSCotherPM);
624c07ab 3351
3352 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3353 hMCd0D0ptLSCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3354 hMCd0D0ptLSCotherPM->SetXTitle("MC Impact parameter [#mum] ");
3355 hMCd0D0ptLSCotherPM->SetYTitle("Entries");
3356 flistLsCutsOther->Add(hMCd0D0ptLSCotherPM);
624c07ab 3357
3358
3359 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3360 hd0D0VtxTrueptLSCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3361 hd0D0VtxTrueptLSCotherPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3362 hd0D0VtxTrueptLSCotherPM->SetYTitle("Entries");
3363 flistLsCutsOther->Add(hd0D0VtxTrueptLSCotherPM);
624c07ab 3364
3365 strnamept=namehist;
3366 strnamept.Append("SBMss_pt");
3367 strnamept+=i;
3368
3369 strtitlept=titlehist;
3370 strtitlept.Append(" Side Bands, ");
3371 strtitlept+=fptbins[i];
3372 strtitlept.Append("<= pt <");
3373 strtitlept+=fptbins[i+1];
3374 strtitlept.Append(" [GeV/c]");
3375
e047b348 3376 hd0D0ptLSCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3377 hd0D0ptLSCotherSB->SetXTitle("Impact parameter [#mum] ");
3378 hd0D0ptLSCotherSB->SetYTitle("Entries");
3379 flistLsCutsOther->Add(hd0D0ptLSCotherSB);
624c07ab 3380
3381 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3382 hMCd0D0ptLSCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3383 hMCd0D0ptLSCotherSB->SetXTitle("MC Impact parameter [#mum] ");
3384 hMCd0D0ptLSCotherSB->SetYTitle("Entries");
3385 flistLsCutsOther->Add(hMCd0D0ptLSCotherSB);
624c07ab 3386
3387 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3388 hd0D0VtxTrueptLSCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3389 hd0D0VtxTrueptLSCotherSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3390 hd0D0VtxTrueptLSCotherSB->SetYTitle("Entries");
3391 flistLsCutsOther->Add(hd0D0VtxTrueptLSCotherSB);
624c07ab 3392 }
3393
e047b348 3394 Printf("END OF NOCUTS HISTOS CREATION \n");
624c07ab 3395
3396
3397 //################################################################################################
3398 // #
3399 // HISTOS FOR TIGHT CUTS #
3400 // #
3401 //################################################################################################
3402
3403 //############ TIGHT CUTS SIGNAL HISTOGRAMS ###############
3404 //
3405 // ####### global properties histo ############
3406
e047b348 3407 TH2F *hCPtaVSd0d0TGHCsign=new TH2F("hCPtaVSd0d0TGHCsign","hCPtaVSd0d0_TightCuts_Signal",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 3408 TH1F *hSecVtxZTGHCsign=new TH1F("hSecVtxZTGHCsign","hSecVtxZ_TightCuts_Signal",1000,-8.,8.);
3409 TH1F *hSecVtxXTGHCsign=new TH1F("hSecVtxXTGHCsign","hSecVtxX_TightCuts_Signal",1000,-3000.,3000.);
3410 TH1F *hSecVtxYTGHCsign=new TH1F("hSecVtxYTGHCsign","hSecVtxY_TightCuts_Signal",1000,-3000.,3000.);
3411 TH2F *hSecVtxXYTGHCsign=new TH2F("hSecVtxXYTGHCsign","hSecVtxXY_TightCuts_Signal",1000,-3000.,3000.,1000,-3000.,3000.);
3412 TH1F *hSecVtxPhiTGHCsign=new TH1F("hSecVtxPhiTGHCsign","hSecVtxPhi_TightCuts_Signal",180,-180.1,180.1);
e047b348 3413 TH1F *hd0singlTrackTGHCsign=new TH1F("hd0singlTrackTGHCsign","hd0singlTrackTightCuts_Signal",1000,-5000.,5000.);
3414 TH1F *hCPtaTGHCsign=new TH1F("hCPtaTGHCsign","hCPta_TightCuts_Signal",100,-1.,1.);
ac4c229c 3415 TH1F *hd0xd0TGHCsign=new TH1F("hd0xd0TGHCsign","hd0xd0_TightCuts_Signal",1000,-100000.,100000.);
3416 TH1F *hMassTrueTGHCsign=new TH1F("hMassTrueTGHCsign","D^{0} MC inv. Mass Tight Cuts Signal(All momenta)",600,1.600,2.200);
3417 TH1F *hMassTGHCsign=new TH1F("hMassTGHCsign","D^{0} inv. Mass Tight Cuts Signal (All momenta)",600,1.600,2.200);
3418 hMassTGHCsign->Sumw2();
3419 TH1F *hMassTrueTGHCsignPM=new TH1F("hMassTrueTGHCsignPM","D^{0} MC inv. Mass Tight Cuts Signal, Mass Peak. (All momenta)",600,1.600,2.200);
3420 TH1F *hMassTGHCsignPM=new TH1F("hMassTGHCsignPM","D^{0} inv. Mass Tight Cuts Signal (All momenta), MassPeak",600,1.600,2.200);
3421 hMassTGHCsignPM->Sumw2();
3422 TH1F *hMassTrueTGHCsignSB=new TH1F("hMassTrueTGHCsignSB","D^{0} MC inv. Mass in Side Bands Tight Cuts Signal(All momenta)",600,1.600,2.200);
3423 TH1F *hMassTGHCsignSB=new TH1F("hMassTGHCsignSB","D^{0} inv. Mass in Side Bands Tight Cuts Signal (All momenta)",600,1.600,2.200);
3424 hMassTGHCsignSB->Sumw2();
3425
3426 flistTghCutsSignal->Add(hCPtaVSd0d0TGHCsign);
3427 flistTghCutsSignal->Add(hSecVtxZTGHCsign);
3428 flistTghCutsSignal->Add(hSecVtxYTGHCsign);
3429 flistTghCutsSignal->Add(hSecVtxXTGHCsign);
3430 flistTghCutsSignal->Add(hSecVtxXYTGHCsign);
3431 flistTghCutsSignal->Add(hSecVtxPhiTGHCsign);
e047b348 3432 flistTghCutsSignal->Add(hd0singlTrackTGHCsign);
ac4c229c 3433 flistTghCutsSignal->Add(hCPtaTGHCsign);
3434 flistTghCutsSignal->Add(hd0xd0TGHCsign);
3435 flistTghCutsSignal->Add(hMassTrueTGHCsign);
3436 flistTghCutsSignal->Add(hMassTGHCsign);
3437 flistTghCutsSignal->Add(hMassTrueTGHCsignPM);
3438 flistTghCutsSignal->Add(hMassTGHCsignPM);
3439 flistTghCutsSignal->Add(hMassTrueTGHCsignSB);
3440 flistTghCutsSignal->Add(hMassTGHCsignSB);
624c07ab 3441
e047b348 3442
3443
3444
3445
3446
3447 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
3448 TH1F *hdcaTGHCsign=new TH1F("hdcaTGHCsign","hdca_TightCuts_Signal",100,0.,1000.);
3449 hdcaTGHCsign->SetXTitle("dca [#mum]");
3450 hdcaTGHCsign->SetYTitle("Entries");
3451 TH1F *hcosthetastarTGHCsign=new TH1F("hcosthetastarTGHCsign","hCosThetaStar_TightCuts_Signal",50,-1.,1.);
3452 hcosthetastarTGHCsign->SetXTitle("cos #theta^{*}");
3453 hcosthetastarTGHCsign->SetYTitle("Entries");
3454 TH1F *hptD0TGHCsign=new TH1F("hptD0TGHCsign","D^{0} transverse momentum distribution",34,ptbinsD0arr);
3455 hptD0TGHCsign->SetXTitle("p_{t} [GeV/c]");
3456 hptD0TGHCsign->SetYTitle("Entries");
3457 TH1F *hptD0VsMaxPtTGHCsign=new TH1F("hptD0VsMaxPtTGHCsign","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
3458 TH2F *hptD0PTallsqrtTGHCsign=new TH2F("hptD0PTallsqrtTGHCsign","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
3459 TH2F *hptD0PTallTGHCsign=new TH2F("hptD0PTallTGHCsign","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
3460 TH2F *hptD0vsptBTGHCsign=new TH2F("hptD0vsptBTGHCsign","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3461 TH2F *hpD0vspBTGHCsign=new TH2F("hpD0vspBTGHCsign","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3462 TH2F *hptD0vsptcquarkTGHCsign=new TH2F("hptD0vsptcquarkTGHCsign","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3463 TH2F *hpD0vspcquarkTGHCsign=new TH2F("hpD0vspcquarkTGHCsign","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3464 flistTghCutsSignal->Add(hdcaTGHCsign);
3465 flistTghCutsSignal->Add(hcosthetastarTGHCsign);
3466 flistTghCutsSignal->Add(hptD0TGHCsign);
3467 flistTghCutsSignal->Add(hptD0VsMaxPtTGHCsign);
3468 flistTghCutsSignal->Add(hptD0PTallsqrtTGHCsign);
3469 flistTghCutsSignal->Add(hptD0PTallTGHCsign);
3470 flistTghCutsSignal->Add(hptD0vsptBTGHCsign);
3471 flistTghCutsSignal->Add(hpD0vspBTGHCsign);
3472 flistTghCutsSignal->Add(hptD0vsptcquarkTGHCsign);
3473 flistTghCutsSignal->Add(hpD0vspcquarkTGHCsign);
3474
3475 TH1F *hd0zD0ptTGHCsign;
3476 TH1F *hInvMassTGHCsign;
3477 TH2F *hInvMassPtTGHCsign=new TH2F("hInvMassPtTGHCsign","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
3478 TH1F *hetaTGHCsign;
3479 TH1F *hCosPDPBTGHCsign;
3480 TH1F *hCosPcPDTGHCsign;
3481 flistTghCutsSignal->Add(hInvMassPtTGHCsign);
3482// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3483 TH2F *hd0D0VSd0xd0TGHCsignpt;
3484 TH2F *hangletracksVSd0xd0TGHCsignpt;
3485 TH2F *hangletracksVSd0D0TGHCsignpt;
3486 TH1F *hd0xd0TGHCsignpt;
3487
3488 TH2F *hTOFpidTGHCsign=new TH2F("hTOFpidTGHCsign","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
3489 flistTghCutsSignal->Add(hTOFpidTGHCsign);
3490
3491 for(Int_t i=0;i<fnbins;i++){
3492 Printf("INSIDE FIRST LOOP FOR TIGHT CUTS HISTO CREATION %d\n", fnbins);
3493 namehist="hd0zD0ptTGHCsign_pt";
3494 namehist+=i;
3495 titlehist="d0(z) Tight Cuts Signal ptbin=";
3496 titlehist+=i;
3497 hd0zD0ptTGHCsign=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
3498 hd0zD0ptTGHCsign->SetXTitle("d_{0}(z) [#mum]");
3499 hd0zD0ptTGHCsign->SetYTitle("Entries");
3500 flistTghCutsSignal->Add(hd0zD0ptTGHCsign);
3501
3502 namehist="hInvMassTGHCsign_pt";
3503 namehist+=i;
3504 titlehist="Invariant Mass Tight Cuts Signal ptbin=";
3505 titlehist+=i;
3506 hInvMassTGHCsign=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
3507 hInvMassTGHCsign->SetXTitle("Invariant Mass [GeV]");
3508 hInvMassTGHCsign->SetYTitle("Entries");
3509 flistTghCutsSignal->Add(hInvMassTGHCsign);
3510
3511 namehist="hetaTGHCsign_pt";
3512 namehist+=i;
3513 titlehist="eta Tight Cuts Signal ptbin=";
3514 titlehist+=i;
3515 hetaTGHCsign=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
3516 hetaTGHCsign->SetXTitle("Pseudorapidity");
3517 hetaTGHCsign->SetYTitle("Entries");
3518 flistTghCutsSignal->Add(hetaTGHCsign);
3519
3520 namehist="hCosPDPBTGHCsign_pt";
3521 namehist+=i;
3522 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
3523 titlehist+=i;
3524 hCosPDPBTGHCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3525 hCosPDPBTGHCsign->SetXTitle("Cosine between D0 momentum and B momentum");
3526 hCosPDPBTGHCsign->SetYTitle("Entries");
3527 flistTghCutsSignal->Add(hCosPDPBTGHCsign);
3528
3529 namehist="hCosPcPDTGHCsign_pt";
3530 namehist+=i;
3531 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
3532 titlehist+=i;
3533 hCosPcPDTGHCsign=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3534 hCosPcPDTGHCsign->SetXTitle("Cosine between c quark momentum and D0 momentum");
3535 hCosPcPDTGHCsign->SetYTitle("Entries");
3536 flistTghCutsSignal->Add(hCosPcPDTGHCsign);
3537
3538 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3539 namehist="hd0xd0TGHCsign_pt";
3540 namehist+=i;
3541 titlehist="d0xd0 Tight Cuts Signal ptbin=";
3542 titlehist+=i;
3543 hd0xd0TGHCsignpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
3544 hd0xd0TGHCsignpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
3545 hd0xd0TGHCsignpt->SetYTitle("Entries");
3546 flistTghCutsSignal->Add(hd0xd0TGHCsignpt);
3547
3548
3549 namehist="hd0D0VSd0xd0TGHCsign_pt";
3550 namehist+=i;
3551 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Signal ptbin=";
3552 titlehist+=i;
3553 hd0D0VSd0xd0TGHCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
3554 hd0D0VSd0xd0TGHCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3555 hd0D0VSd0xd0TGHCsignpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
3556 flistTghCutsSignal->Add(hd0D0VSd0xd0TGHCsignpt);
3557
3558
3559 namehist="hangletracksVSd0xd0TGHCsign_pt";
3560 namehist+=i;
3561 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Signal ptbin=";
3562 titlehist+=i;
3563 hangletracksVSd0xd0TGHCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
3564 hangletracksVSd0xd0TGHCsignpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3565 hangletracksVSd0xd0TGHCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
3566 flistTghCutsSignal->Add(hangletracksVSd0xd0TGHCsignpt);
3567
3568
3569 namehist="hangletracksVSd0D0TGHCsign_pt";
3570 namehist+=i;
3571 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Tight Cuts Signal ptbin=";
3572 titlehist+=i;
3573 hangletracksVSd0D0TGHCsignpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
3574 hangletracksVSd0D0TGHCsignpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
3575 hangletracksVSd0D0TGHCsignpt->SetYTitle(" angle between K and #p tracks [rad]");
3576 flistTghCutsSignal->Add(hangletracksVSd0D0TGHCsignpt);
3577
3578 }
3579 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
3580 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3581
3582
3583
3584
3585
3586
3587
3588
624c07ab 3589 // ####### d0 D0 histos ############
ac4c229c 3590 TH1F *hd0D0TGHCsignPM = new TH1F("hd0D0TGHCsignPM","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3591 hd0D0TGHCsignPM->SetXTitle("Impact parameter [#mum]");
3592 hd0D0TGHCsignPM->SetYTitle("Entries");
3593
3594 TH1F *hd0D0VtxTrueTGHCsignPM = new TH1F("hd0D0VtxTrueTGHCsignPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3595 hd0D0VtxTrueTGHCsignPM->SetXTitle("Impact parameter [#mum]");
3596 hd0D0VtxTrueTGHCsignPM->SetYTitle("Entries");
3597
3598 TH1F *hMCd0D0TGHCsignPM = new TH1F("hMCd0D0TGHCsignPM","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3599 hMCd0D0TGHCsignPM->SetXTitle("MC Impact parameter [#mum]");
3600 hMCd0D0TGHCsignPM->SetYTitle("Entries");
3601
3602 TH1F *hd0D0TGHCsignSB = new TH1F("hd0D0TGHCsignSB","D^{0} impact par. plot , Tight Cuts ,Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3603 hd0D0TGHCsignSB->SetXTitle("Impact parameter [#mum]");
3604 hd0D0TGHCsignSB->SetYTitle("Entries");
3605
3606 TH1F *hd0D0VtxTrueTGHCsignSB = new TH1F("hd0D0VtxTrueTGHCsignSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3607 hd0D0VtxTrueTGHCsignSB->SetXTitle("Impact parameter [#mum]");
3608 hd0D0VtxTrueTGHCsignSB->SetYTitle("Entries");
3609
3610 TH1F *hMCd0D0TGHCsignSB = new TH1F("hMCd0D0TGHCsignSB","D^{0} impact par. plot, Tight Cuts, Signal,Mass Peak (All momenta)",1000,-1000.,1000.);
3611 hMCd0D0TGHCsignSB->SetXTitle("MC Impact parameter [#mum]");
3612 hMCd0D0TGHCsignSB->SetYTitle("Entries");
3613
3614 flistTghCutsSignal->Add(hd0D0TGHCsignPM);
3615 flistTghCutsSignal->Add(hd0D0VtxTrueTGHCsignPM);
3616 flistTghCutsSignal->Add(hMCd0D0TGHCsignPM);
3617 flistTghCutsSignal->Add(hd0D0TGHCsignSB);
3618 flistTghCutsSignal->Add(hd0D0VtxTrueTGHCsignSB);
3619 flistTghCutsSignal->Add(hMCd0D0TGHCsignSB);
3620
e047b348 3621 TH1F *hd0D0ptTGHCsignPM;
3622 TH1F *hMCd0D0ptTGHCsignPM;
3623 TH1F *hd0D0VtxTrueptTGHCsignPM;
3624 TH1F *hd0D0ptTGHCsignSB;
3625 TH1F *hMCd0D0ptTGHCsignSB;
3626 TH1F *hd0D0VtxTrueptTGHCsignSB;
ac4c229c 3627 namehist="hd0D0ptTGHCsign_";
624c07ab 3628 titlehist="D^{0} impact par. plot, Tight Cuts, Signal, ";
3629 for(Int_t i=0;i<fnbins;i++){
3630 strnamept=namehist;
3631 strnamept.Append("PkMss_pt");
3632 strnamept+=i;
3633
3634 strtitlept=titlehist;
3635 strtitlept.Append(" Mass Peak, ");
3636 strtitlept+=fptbins[i];
3637 strtitlept.Append("<= pt <");
3638 strtitlept+=fptbins[i+1];
3639 strtitlept.Append(" [GeV/c]");
3640
e047b348 3641 hd0D0ptTGHCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3642 hd0D0ptTGHCsignPM->SetXTitle("Impact parameter [#mum] ");
3643 hd0D0ptTGHCsignPM->SetYTitle("Entries");
3644 flistTghCutsSignal->Add(hd0D0ptTGHCsignPM);
624c07ab 3645
3646 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3647 hMCd0D0ptTGHCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3648 hMCd0D0ptTGHCsignPM->SetXTitle("MC Impact parameter [#mum] ");
3649 hMCd0D0ptTGHCsignPM->SetYTitle("Entries");
3650 flistTghCutsSignal->Add(hMCd0D0ptTGHCsignPM);
624c07ab 3651
3652
3653 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3654 hd0D0VtxTrueptTGHCsignPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3655 hd0D0VtxTrueptTGHCsignPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3656 hd0D0VtxTrueptTGHCsignPM->SetYTitle("Entries");
3657 flistTghCutsSignal->Add(hd0D0VtxTrueptTGHCsignPM);
624c07ab 3658
3659 strnamept=namehist;
3660 strnamept.Append("SBMss_pt");
3661 strnamept+=i;
3662
3663 strtitlept=titlehist;
3664 strtitlept.Append(" Side Bands, ");
3665 strtitlept+=fptbins[i];
3666 strtitlept.Append("<= pt <");
3667 strtitlept+=fptbins[i+1];
3668 strtitlept.Append(" [GeV/c]");
3669
e047b348 3670 hd0D0ptTGHCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3671 hd0D0ptTGHCsignSB->SetXTitle("Impact parameter [#mum] ");
3672 hd0D0ptTGHCsignSB->SetYTitle("Entries");
3673 flistTghCutsSignal->Add(hd0D0ptTGHCsignSB);
624c07ab 3674
3675 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3676 hMCd0D0ptTGHCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3677 hMCd0D0ptTGHCsignSB->SetXTitle("MC Impact parameter [#mum] ");
3678 hMCd0D0ptTGHCsignSB->SetYTitle("Entries");
3679 flistTghCutsSignal->Add(hMCd0D0ptTGHCsignSB);
624c07ab 3680
3681 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3682 hd0D0VtxTrueptTGHCsignSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3683 hd0D0VtxTrueptTGHCsignSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3684 hd0D0VtxTrueptTGHCsignSB->SetYTitle("Entries");
3685 flistTghCutsSignal->Add(hd0D0VtxTrueptTGHCsignSB);
624c07ab 3686 }
3687
3688
3689 //############ TIGHT CUTS BACKGROUND HISTOGRAMS ###########
3690 //
3691 // ######## global properties histos #######
e047b348 3692 TH2F *hCPtaVSd0d0TGHCback=new TH2F("hCPtaVSd0d0TGHCback","hCPtaVSd0d0_TightCuts_Background",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 3693 TH1F *hSecVtxZTGHCback=new TH1F("hSecVtxZTGHCback","hSecVtxZ_TightCuts_Background",1000,-8.,8.);
3694 TH1F *hSecVtxXTGHCback=new TH1F("hSecVtxXTGHCback","hSecVtxX_TightCuts_Background",1000,-3000.,3000.);
3695 TH1F *hSecVtxYTGHCback=new TH1F("hSecVtxYTGHCback","hSecVtxY_TightCuts_Background",1000,-3000.,3000.);
3696 TH2F *hSecVtxXYTGHCback=new TH2F("hSecVtxXYTGHCback","hSecVtxXY_TightCuts_Background",1000,-3000.,3000.,1000,-3000.,3000.);
3697 TH1F *hSecVtxPhiTGHCback=new TH1F("hSecVtxPhiTGHCback","hSecVtxPhi_TightCuts_Background",180,-180.1,180.1);
e047b348 3698 TH1F *hd0singlTrackTGHCback=new TH1F("hd0singlTrackTGHCback","hd0singlTrackTightCuts_Back",1000,-5000.,5000.);
3699 TH1F *hCPtaTGHCback=new TH1F("hCPtaTGHCback","hCPta_TightCuts_Background",100,-1.,1.);
ac4c229c 3700 TH1F *hd0xd0TGHCback=new TH1F("hd0xd0TGHCback","hd0xd0_TightCuts_Background",1000,-100000.,100000.);
3701 TH1F *hMassTrueTGHCback=new TH1F("hMassTrueTGHCback","D^{0} MC inv. Mass Tight Cuts Background(All momenta)",600,1.600,2.200);
3702 TH1F *hMassTGHCback=new TH1F("hMassTGHCback","D^{0} inv. Mass Tight Cuts Background (All momenta)",600,1.600,2.200);
3703 hMassTGHCback->Sumw2();
3704 TH1F *hMassTrueTGHCbackPM=new TH1F("hMassTrueTGHCbackPM","D^{0} MC inv. Mass Tight Cuts Background, Mass Peak. (All momenta)",600,1.600,2.200);
3705 TH1F *hMassTGHCbackPM=new TH1F("hMassTGHCbackPM","D^{0} inv. Mass Tight Cuts Background (All momenta), MassPeak",600,1.600,2.200);
3706 hMassTGHCbackPM->Sumw2();
3707 TH1F *hMassTrueTGHCbackSB=new TH1F("hMassTrueTGHCbackSB","D^{0} MC inv. Mass in Side Bands Tight Cuts Backgrround(All momenta)",600,1.600,2.200);
3708 TH1F *hMassTGHCbackSB=new TH1F("hMassTGHCbackSB","D^{0} inv. Mass in Side Bands Tight Cuts Background (All momenta)",600,1.600,2.200);
3709 hMassTGHCbackSB->Sumw2();
3710
3711 flistTghCutsBack->Add(hCPtaVSd0d0TGHCback);
3712 flistTghCutsBack->Add(hSecVtxZTGHCback);
3713 flistTghCutsBack->Add(hSecVtxYTGHCback);
3714 flistTghCutsBack->Add(hSecVtxXTGHCback);
3715 flistTghCutsBack->Add(hSecVtxXYTGHCback);
3716 flistTghCutsBack->Add(hSecVtxPhiTGHCback);
e047b348 3717 flistTghCutsBack->Add(hd0singlTrackTGHCback);
ac4c229c 3718 flistTghCutsBack->Add(hCPtaTGHCback);
3719 flistTghCutsBack->Add(hd0xd0TGHCback);
3720 flistTghCutsBack->Add(hMassTrueTGHCback);
3721 flistTghCutsBack->Add(hMassTGHCback);
3722 flistTghCutsBack->Add(hMassTrueTGHCbackPM);
3723 flistTghCutsBack->Add(hMassTGHCbackPM);
3724 flistTghCutsBack->Add(hMassTrueTGHCbackSB);
3725 flistTghCutsBack->Add(hMassTGHCbackSB);
624c07ab 3726
3727
e047b348 3728
3729
3730
3731
3732
3733 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
3734 TH1F *hdcaTGHCback=new TH1F("hdcaTGHCback","hdca_TightCuts_Backgr",100,0.,1000.);
3735 hdcaTGHCback->SetXTitle("dca [#mum]");
3736 hdcaTGHCback->SetYTitle("Entries");
3737 TH1F *hcosthetastarTGHCback=new TH1F("hcosthetastarTGHCback","hCosThetaStar_TightCuts_Backgr",50,-1.,1.);
3738 hcosthetastarTGHCback->SetXTitle("cos #theta^{*}");
3739 hcosthetastarTGHCback->SetYTitle("Entries");
3740 TH1F *hptD0TGHCback=new TH1F("hptD0TGHCback","D^{0} transverse momentum distribution",34,ptbinsD0arr);
3741 hptD0TGHCback->SetXTitle("p_{t} [GeV/c]");
3742 hptD0TGHCback->SetYTitle("Entries");
3743 TH1F *hptD0VsMaxPtTGHCback=new TH1F("hptD0VsMaxPtTGHCback","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
3744 TH2F *hptD0PTallsqrtTGHCback=new TH2F("hptD0PTallsqrtTGHCback","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
3745 TH2F *hptD0PTallTGHCback=new TH2F("hptD0PTallTGHCback","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
3746 TH2F *hptD0vsptBTGHCback=new TH2F("hptD0vsptBTGHCback","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3747 TH2F *hpD0vspBTGHCback=new TH2F("hpD0vspBTGHCback","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3748 TH2F *hptD0vsptcquarkTGHCback=new TH2F("hptD0vsptcquarkTGHCback","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3749 TH2F *hpD0vspcquarkTGHCback=new TH2F("hpD0vspcquarkTGHCback","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
3750 flistTghCutsBack->Add(hdcaTGHCback);
3751 flistTghCutsBack->Add(hcosthetastarTGHCback);
3752 flistTghCutsBack->Add(hptD0TGHCback);
3753 flistTghCutsBack->Add(hptD0VsMaxPtTGHCback);
3754 flistTghCutsBack->Add(hptD0PTallsqrtTGHCback);
3755 flistTghCutsBack->Add(hptD0PTallTGHCback);
3756 flistTghCutsBack->Add(hptD0vsptBTGHCback);
3757 flistTghCutsBack->Add(hpD0vspBTGHCback);
3758 flistTghCutsBack->Add(hptD0vsptcquarkTGHCback);
3759 flistTghCutsBack->Add(hpD0vspcquarkTGHCback);
3760
3761 TH1F *hd0zD0ptTGHCback;
3762 TH1F *hInvMassTGHCback;
3763 TH2F *hInvMassPtTGHCback=new TH2F("hInvMassPtTGHCback","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
3764 TH1F *hetaTGHCback;
3765 TH1F *hCosPDPBTGHCback;
3766 TH1F *hCosPcPDTGHCback;
3767 flistTghCutsBack->Add(hInvMassPtTGHCback);
3768// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3769 TH2F *hd0D0VSd0xd0TGHCbackpt;
3770 TH2F *hangletracksVSd0xd0TGHCbackpt;
3771 TH2F *hangletracksVSd0D0TGHCbackpt;
3772 TH1F *hd0xd0TGHCbackpt;
3773
3774 TH2F *hTOFpidTGHCback=new TH2F("hTOFpidTGHCback","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
3775 flistTghCutsBack->Add(hTOFpidTGHCback);
3776
3777
3778 for(Int_t i=0;i<fnbins;i++){
3779 namehist="hd0zD0ptTGHCback_pt";
3780 namehist+=i;
3781 titlehist="d0(z) Tight Cuts Backgrm ptbin=";
3782 titlehist+=i;
3783 hd0zD0ptTGHCback=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
3784 hd0zD0ptTGHCback->SetXTitle("d_{0}(z) [#mum]");
3785 hd0zD0ptTGHCback->SetYTitle("Entries");
3786 flistTghCutsBack->Add(hd0zD0ptTGHCback);
3787
3788 namehist="hInvMassTGHCback_pt";
3789 namehist+=i;
3790 titlehist="Invariant Mass Tight Cuts Backgr ptbin=";
3791 titlehist+=i;
3792 hInvMassTGHCback=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
3793 hInvMassTGHCback->SetXTitle("Invariant Mass [GeV]");
3794 hInvMassTGHCback->SetYTitle("Entries");
3795 flistTghCutsBack->Add(hInvMassTGHCback);
3796
3797 namehist="hetaTGHCback_pt";
3798 namehist+=i;
3799 titlehist="eta Tight Cuts Backgr ptbin=";
3800 titlehist+=i;
3801 hetaTGHCback=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
3802 hetaTGHCback->SetXTitle("Pseudorapidity");
3803 hetaTGHCback->SetYTitle("Entries");
3804 flistTghCutsBack->Add(hetaTGHCback);
3805
3806 namehist="hCosPDPBTGHCback_pt";
3807 namehist+=i;
3808 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
3809 titlehist+=i;
3810 hCosPDPBTGHCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3811 hCosPDPBTGHCback->SetXTitle("Cosine between D0 momentum and B momentum");
3812 hCosPDPBTGHCback->SetYTitle("Entries");
3813 flistTghCutsBack->Add(hCosPDPBTGHCback);
3814
3815 namehist="hCosPcPDTGHCback_pt";
3816 namehist+=i;
3817 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
3818 titlehist+=i;
3819 hCosPcPDTGHCback=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
3820 hCosPcPDTGHCback->SetXTitle("Cosine between c quark momentum and D0 momentum");
3821 hCosPcPDTGHCback->SetYTitle("Entries");
3822 flistTghCutsBack->Add(hCosPcPDTGHCback);
3823
3824 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
3825 namehist="hd0xd0TGHCback_pt";
3826 namehist+=i;
3827 titlehist="d0xd0 Tight Cuts Back ptbin=";
3828 titlehist+=i;
3829 hd0xd0TGHCbackpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
3830 hd0xd0TGHCbackpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
3831 hd0xd0TGHCbackpt->SetYTitle("Entries");
3832 flistTghCutsBack->Add(hd0xd0TGHCbackpt);
3833
3834
3835 namehist="hd0D0VSd0xd0TGHCback_pt";
3836 namehist+=i;
3837 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Back ptbin=";
3838 titlehist+=i;
3839 hd0D0VSd0xd0TGHCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
3840 hd0D0VSd0xd0TGHCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3841 hd0D0VSd0xd0TGHCbackpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
3842 flistTghCutsBack->Add(hd0D0VSd0xd0TGHCbackpt);
3843
3844
3845 namehist="hangletracksVSd0xd0TGHCback_pt";
3846 namehist+=i;
3847 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Back ptbin=";
3848 titlehist+=i;
3849 hangletracksVSd0xd0TGHCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
3850 hangletracksVSd0xd0TGHCbackpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
3851 hangletracksVSd0xd0TGHCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
3852 flistTghCutsBack->Add(hangletracksVSd0xd0TGHCbackpt);
3853
3854
3855 namehist="hangletracksVSd0D0TGHCback_pt";
3856 namehist+=i;
3857 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Tight Cuts Back ptbin=";
3858 titlehist+=i;
3859 hangletracksVSd0D0TGHCbackpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
3860 hangletracksVSd0D0TGHCbackpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
3861 hangletracksVSd0D0TGHCbackpt->SetYTitle(" angle between K and #p tracks [rad]");
3862 flistTghCutsBack->Add(hangletracksVSd0D0TGHCbackpt);
3863
3864
3865 }
3866 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
3867 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3868
3869
3870
3871
624c07ab 3872 // ####### d0 D0 histos ############
3873
ac4c229c 3874 TH1F *hd0D0TGHCbackPM = new TH1F("hd0D0TGHCbackPM","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3875 hd0D0TGHCbackPM->SetXTitle("Impact parameter [#mum]");
3876 hd0D0TGHCbackPM->SetYTitle("Entries");
3877
3878 TH1F *hd0D0VtxTrueTGHCbackPM = new TH1F("hd0D0VtxTrueTGHCbackPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3879 hd0D0VtxTrueTGHCbackPM->SetXTitle("Impact parameter [#mum]");
3880 hd0D0VtxTrueTGHCbackPM->SetYTitle("Entries");
3881
3882 TH1F *hMCd0D0TGHCbackPM = new TH1F("hMCd0D0TGHCbackPM","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3883 hMCd0D0TGHCbackPM->SetXTitle("MC Impact parameter [#mum]");
3884 hMCd0D0TGHCbackPM->SetYTitle("Entries");
3885
3886 TH1F *hd0D0TGHCbackSB = new TH1F("hd0D0TGHCbackSB","D^{0} impact par. plot , Tight Cuts ,Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3887 hd0D0TGHCbackSB->SetXTitle("Impact parameter [#mum]");
3888 hd0D0TGHCbackSB->SetYTitle("Entries");
3889
3890 TH1F *hd0D0VtxTrueTGHCbackSB = new TH1F("hd0D0VtxTrueTGHCbackSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3891 hd0D0VtxTrueTGHCbackSB->SetXTitle("Impact parameter [#mum]");
3892 hd0D0VtxTrueTGHCbackSB->SetYTitle("Entries");
3893
3894 TH1F *hMCd0D0TGHCbackSB = new TH1F("hMCd0D0TGHCbackSB","D^{0} impact par. plot, Tight Cuts, Background,Mass Peak (All momenta)",1000,-1000.,1000.);
3895 hMCd0D0TGHCbackSB->SetXTitle("MC Impact parameter [#mum]");
3896 hMCd0D0TGHCbackSB->SetYTitle("Entries");
3897
3898 flistTghCutsBack->Add(hd0D0TGHCbackPM);
3899 flistTghCutsBack->Add(hd0D0VtxTrueTGHCbackPM);
3900 flistTghCutsBack->Add(hMCd0D0TGHCbackPM);
3901 flistTghCutsBack->Add(hd0D0TGHCbackSB);
3902 flistTghCutsBack->Add(hd0D0VtxTrueTGHCbackSB);
3903 flistTghCutsBack->Add(hMCd0D0TGHCbackSB);
3904
e047b348 3905 TH1F *hd0D0ptTGHCbackPM;
3906 TH1F *hMCd0D0ptTGHCbackPM;
3907 TH1F *hd0D0VtxTrueptTGHCbackPM;
3908 TH1F *hd0D0ptTGHCbackSB;
3909 TH1F *hMCd0D0ptTGHCbackSB;
3910 TH1F *hd0D0VtxTrueptTGHCbackSB;
ac4c229c 3911 namehist="hd0D0ptTGHCback_";
624c07ab 3912 titlehist="D^{0} impact par. plot, Tight Cuts, Background, ";
3913 for(Int_t i=0;i<fnbins;i++){
3914 strnamept=namehist;
3915 strnamept.Append("PkMss_pt");
3916 strnamept+=i;
3917
3918 strtitlept=titlehist;
3919 strtitlept.Append(" Mass Peak, ");
3920 strtitlept+=fptbins[i];
3921 strtitlept.Append("<= pt <");
3922 strtitlept+=fptbins[i+1];
3923 strtitlept.Append(" [GeV/c]");
3924
e047b348 3925 hd0D0ptTGHCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3926 hd0D0ptTGHCbackPM->SetXTitle("Impact parameter [#mum] ");
3927 hd0D0ptTGHCbackPM->SetYTitle("Entries");
3928 flistTghCutsBack->Add(hd0D0ptTGHCbackPM);
624c07ab 3929
3930 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3931 hMCd0D0ptTGHCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3932 hMCd0D0ptTGHCbackPM->SetXTitle("MC Impact parameter [#mum] ");
3933 hMCd0D0ptTGHCbackPM->SetYTitle("Entries");
3934 flistTghCutsBack->Add(hMCd0D0ptTGHCbackPM);
624c07ab 3935
3936
3937 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3938 hd0D0VtxTrueptTGHCbackPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3939 hd0D0VtxTrueptTGHCbackPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3940 hd0D0VtxTrueptTGHCbackPM->SetYTitle("Entries");
3941 flistTghCutsBack->Add(hd0D0VtxTrueptTGHCbackPM);
624c07ab 3942
3943 strnamept=namehist;
3944 strnamept.Append("SBMss_pt");
3945 strnamept+=i;
3946
3947 strtitlept=titlehist;
3948 strtitlept.Append(" Side Bands, ");
3949 strtitlept+=fptbins[i];
3950 strtitlept.Append("<= pt <");
3951 strtitlept+=fptbins[i+1];
3952 strtitlept.Append(" [GeV/c]");
3953
e047b348 3954 hd0D0ptTGHCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3955 hd0D0ptTGHCbackSB->SetXTitle("Impact parameter [#mum] ");
3956 hd0D0ptTGHCbackSB->SetYTitle("Entries");
3957 flistTghCutsBack->Add(hd0D0ptTGHCbackSB);
624c07ab 3958
3959 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 3960 hMCd0D0ptTGHCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3961 hMCd0D0ptTGHCbackSB->SetXTitle("MC Impact parameter [#mum] ");
3962 hMCd0D0ptTGHCbackSB->SetYTitle("Entries");
3963 flistTghCutsBack->Add(hMCd0D0ptTGHCbackSB);
624c07ab 3964
3965 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 3966 hd0D0VtxTrueptTGHCbackSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
3967 hd0D0VtxTrueptTGHCbackSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
3968 hd0D0VtxTrueptTGHCbackSB->SetYTitle("Entries");
3969 flistTghCutsBack->Add(hd0D0VtxTrueptTGHCbackSB);
624c07ab 3970 }
3971
3972
3973
3974 //############ TIGHT CUTS FROMB HISTOGRAMS ###########
3975 //
3976 //####### global properties histos
3977
e047b348 3978 TH2F *hCPtaVSd0d0TGHCfromB=new TH2F("hCPtaVSd0d0TGHCfromB","hCPtaVSd0d0_TightCuts_FromB",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 3979 TH1F *hSecVtxZTGHCfromB=new TH1F("hSecVtxZTGHCfromB","hSecVtxZ_TightCuts_FromB",1000,-8.,8.);
3980 TH1F *hSecVtxXTGHCfromB=new TH1F("hSecVtxXTGHCfromB","hSecVtxX_TightCuts_FromB",1000,-3000.,3000.);
3981 TH1F *hSecVtxYTGHCfromB=new TH1F("hSecVtxYTGHCfromB","hSecVtxY_TightCuts_FromB",1000,-3000.,3000.);
3982 TH2F *hSecVtxXYTGHCfromB=new TH2F("hSecVtxXYTGHCfromB","hSecVtxXY_TightCuts_FromB",1000,-3000.,3000.,1000,-3000.,3000.);
3983 TH1F *hSecVtxPhiTGHCfromB=new TH1F("hSecVtxPhiTGHCfromB","hSecVtxPhi_TightCuts_FromB",180,-180.1,180.1);
e047b348 3984 TH1F *hd0singlTrackTGHCfromB=new TH1F("hd0singlTrackTGHCfromB","hd0singlTrackTightCuts_FromB",1000,-5000.,5000.);
3985 TH1F *hCPtaTGHCfromB=new TH1F("hCPtaTGHCfromB","hCPta_TightCuts_FromB",100,-1.,1.);
ac4c229c 3986 TH1F *hd0xd0TGHCfromB=new TH1F("hd0xd0TGHCfromB","hd0xd0_TightCuts_FromB",1000,-100000.,100000.);
3987 TH1F *hMassTrueTGHCfromB=new TH1F("hMassTrueTGHCfromB","D^{0} MC inv. Mass Tight Cuts FromB(All momenta)",600,1.600,2.200);
3988 TH1F *hMassTGHCfromB=new TH1F("hMassTGHCfromB","D^{0} inv. Mass Tight Cuts FromB (All momenta)",600,1.600,2.200);
3989 hMassTGHCfromB->Sumw2();
3990 TH1F *hMassTrueTGHCfromBPM=new TH1F("hMassTrueTGHCfromBPM","D^{0} MC inv. Mass Tight Cuts FromB, Mass Peak. (All momenta)",600,1.600,2.200);
3991 TH1F *hMassTGHCfromBPM=new TH1F("hMassTGHCfromBPM","D^{0} inv. Mass Tight Cuts FromB (All momenta), MassPeak",600,1.600,2.200);
3992 hMassTGHCfromBPM->Sumw2();
3993 TH1F *hMassTrueTGHCfromBSB=new TH1F("hMassTrueTGHCfromBSB","D^{0} MC inv. Mass in Side Bands Tight Cuts FromB(All momenta)",600,1.600,2.200);
3994 TH1F *hMassTGHCfromBSB=new TH1F("hMassTGHCfromBSB","D^{0} inv. Mass in Side Bands Tight Cuts FromB (All momenta)",600,1.600,2.200);
3995 hMassTGHCfromBSB->Sumw2();
3996
3997 flistTghCutsFromB->Add(hCPtaVSd0d0TGHCfromB);
3998 flistTghCutsFromB->Add(hSecVtxZTGHCfromB);
3999 flistTghCutsFromB->Add(hSecVtxYTGHCfromB);
4000 flistTghCutsFromB->Add(hSecVtxXTGHCfromB);
4001 flistTghCutsFromB->Add(hSecVtxXYTGHCfromB);
4002 flistTghCutsFromB->Add(hSecVtxPhiTGHCfromB);
e047b348 4003 flistTghCutsFromB->Add(hd0singlTrackTGHCfromB);
ac4c229c 4004 flistTghCutsFromB->Add(hCPtaTGHCfromB);
4005 flistTghCutsFromB->Add(hd0xd0TGHCfromB);
4006 flistTghCutsFromB->Add(hMassTrueTGHCfromB);
4007 flistTghCutsFromB->Add(hMassTGHCfromB);
4008 flistTghCutsFromB->Add(hMassTrueTGHCfromBPM);
4009 flistTghCutsFromB->Add(hMassTGHCfromBPM);
4010 flistTghCutsFromB->Add(hMassTrueTGHCfromBSB);
4011 flistTghCutsFromB->Add(hMassTGHCfromBSB);
624c07ab 4012
ac4c229c 4013
ac4c229c 4014
e047b348 4015 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
4016 TH1F *hdcaTGHCfromB=new TH1F("hdcaTGHCfromB","hdca_TightCuts_FromB",100,0.,1000.);
4017 hdcaTGHCfromB->SetXTitle("dca [#mum]");
4018 hdcaTGHCfromB->SetYTitle("Entries");
4019 TH1F *hcosthetastarTGHCfromB=new TH1F("hcosthetastarTGHCfromB","hCosThetaStar_TightCuts_FromB",50,-1.,1.);
4020 hcosthetastarTGHCfromB->SetXTitle("cos #theta^{*}");
4021 hcosthetastarTGHCfromB->SetYTitle("Entries");
4022 TH1F *hptD0TGHCfromB=new TH1F("hptD0TGHCfromB","D^{0} transverse momentum distribution",34,ptbinsD0arr);
4023 hptD0TGHCfromB->SetXTitle("p_{t} [GeV/c]");
4024 hptD0TGHCfromB->SetYTitle("Entries");
4025 TH1F *hptD0VsMaxPtTGHCfromB=new TH1F("hptD0VsMaxPtTGHCfromB","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
4026 TH2F *hptD0PTallsqrtTGHCfromB=new TH2F("hptD0PTallsqrtTGHCfromB","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
4027 TH2F *hptD0PTallTGHCfromB=new TH2F("hptD0PTallTGHCfromB","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
4028 TH2F *hptD0vsptBTGHCfromB=new TH2F("hptD0vsptBTGHCfromB","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4029 TH2F *hpD0vspBTGHCfromB=new TH2F("hpD0vspBTGHCfromB","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4030 TH2F *hptD0vsptcquarkTGHCfromB=new TH2F("hptD0vsptcquarkTGHCfromB","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4031 TH2F *hpD0vspcquarkTGHCfromB=new TH2F("hpD0vspcquarkTGHCfromB","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4032 flistTghCutsFromB->Add(hdcaTGHCfromB);
4033 flistTghCutsFromB->Add(hcosthetastarTGHCfromB);
4034 flistTghCutsFromB->Add(hptD0TGHCfromB);
4035 flistTghCutsFromB->Add(hptD0VsMaxPtTGHCfromB);
4036 flistTghCutsFromB->Add(hptD0PTallsqrtTGHCfromB);
4037 flistTghCutsFromB->Add(hptD0PTallTGHCfromB);
4038 flistTghCutsFromB->Add(hptD0vsptBTGHCfromB);
4039 flistTghCutsFromB->Add(hpD0vspBTGHCfromB);
4040 flistTghCutsFromB->Add(hptD0vsptcquarkTGHCfromB);
4041 flistTghCutsFromB->Add(hpD0vspcquarkTGHCfromB);
4042
4043 TH1F *hd0zD0ptTGHCfromB;
4044 TH1F *hInvMassTGHCfromB;
4045 TH2F *hInvMassPtTGHCfromB=new TH2F("hInvMassPtTGHCfromB","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
4046 TH1F *hetaTGHCfromB;
4047 TH1F *hCosPDPBTGHCfromB;
4048 TH1F *hCosPcPDTGHCfromB;
4049 flistTghCutsFromB->Add(hInvMassPtTGHCfromB);
4050// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4051 TH2F *hd0D0VSd0xd0TGHCfromBpt;
4052 TH2F *hangletracksVSd0xd0TGHCfromBpt;
4053 TH2F *hangletracksVSd0D0TGHCfromBpt;
4054 TH1F *hd0xd0TGHCfromBpt;
4055
4056 TH2F *hTOFpidTGHCfromB=new TH2F("hTOFpidTGHCfromB","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
4057 flistTghCutsFromB->Add(hTOFpidTGHCfromB);
ac4c229c 4058
e047b348 4059
4060 for(Int_t i=0;i<fnbins;i++){
4061 namehist="hd0zD0ptTGHCfromB_pt";
4062 namehist+=i;
4063 titlehist="d0(z) Tight Cuts FromBm ptbin=";
4064 titlehist+=i;
4065 hd0zD0ptTGHCfromB=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
4066 hd0zD0ptTGHCfromB->SetXTitle("d_{0}(z) [#mum]");
4067 hd0zD0ptTGHCfromB->SetYTitle("Entries");
4068 flistTghCutsFromB->Add(hd0zD0ptTGHCfromB);
4069
4070 namehist="hInvMassTGHCfromB_pt";
4071 namehist+=i;
4072 titlehist="Invariant Mass Tight Cuts FromB ptbin=";
4073 titlehist+=i;
4074 hInvMassTGHCfromB=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
4075 hInvMassTGHCfromB->SetXTitle("Invariant Mass [GeV]");
4076 hInvMassTGHCfromB->SetYTitle("Entries");
4077 flistTghCutsFromB->Add(hInvMassTGHCfromB);
4078
4079 namehist="hetaTGHCfromB_pt";
4080 namehist+=i;
4081 titlehist="eta Tight Cuts FromB ptbin=";
4082 titlehist+=i;
4083 hetaTGHCfromB=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
4084 hetaTGHCfromB->SetXTitle("Pseudorapidity");
4085 hetaTGHCfromB->SetYTitle("Entries");
4086 flistTghCutsFromB->Add(hetaTGHCfromB);
4087
4088 namehist="hCosPDPBTGHCfromB_pt";
4089 namehist+=i;
4090 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
4091 titlehist+=i;
4092 hCosPDPBTGHCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4093 hCosPDPBTGHCfromB->SetXTitle("Cosine between D0 momentum and B momentum");
4094 hCosPDPBTGHCfromB->SetYTitle("Entries");
4095 flistTghCutsFromB->Add(hCosPDPBTGHCfromB);
4096
4097 namehist="hCosPcPDTGHCfromB_pt";
4098 namehist+=i;
4099 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
4100 titlehist+=i;
4101 hCosPcPDTGHCfromB=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4102 hCosPcPDTGHCfromB->SetXTitle("Cosine between c quark momentum and D0 momentum");
4103 hCosPcPDTGHCfromB->SetYTitle("Entries");
4104 flistTghCutsFromB->Add(hCosPcPDTGHCfromB);
4105
4106// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4107 namehist="hd0xd0TGHCfromB_pt";
4108 namehist+=i;
4109 titlehist="d0xd0 Tight Cuts FromB ptbin=";
4110 titlehist+=i;
4111 hd0xd0TGHCfromBpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
4112 hd0xd0TGHCfromBpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
4113 hd0xd0TGHCfromBpt->SetYTitle("Entries");
4114 flistTghCutsFromB->Add(hd0xd0TGHCfromBpt);
4115
4116
4117 namehist="hd0D0VSd0xd0TGHCfromB_pt";
4118 namehist+=i;
4119 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts FromB ptbin=";
4120 titlehist+=i;
4121 hd0D0VSd0xd0TGHCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
4122 hd0D0VSd0xd0TGHCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4123 hd0D0VSd0xd0TGHCfromBpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
4124 flistTghCutsFromB->Add(hd0D0VSd0xd0TGHCfromBpt);
4125
4126
4127 namehist="hangletracksVSd0xd0TGHCfromB_pt";
4128 namehist+=i;
4129 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts FromB ptbin=";
4130 titlehist+=i;
4131 hangletracksVSd0xd0TGHCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
4132 hangletracksVSd0xd0TGHCfromBpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4133 hangletracksVSd0xd0TGHCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
4134 flistTghCutsFromB->Add(hangletracksVSd0xd0TGHCfromBpt);
4135
4136
4137 namehist="hangletracksVSd0D0TGHCfromB_pt";
4138 namehist+=i;
4139 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Tight Cuts FromB ptbin=";
4140 titlehist+=i;
4141 hangletracksVSd0D0TGHCfromBpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
4142 hangletracksVSd0D0TGHCfromBpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
4143 hangletracksVSd0D0TGHCfromBpt->SetYTitle(" angle between K and #p tracks [rad]");
4144 flistTghCutsFromB->Add(hangletracksVSd0D0TGHCfromBpt);
4145
4146 }
4147 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
4148 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4149
4150
4151
4152
4153
4154 // ######### d0 D0 histos ##############
4155 TH1F *hd0D0TGHCfromBPM = new TH1F("hd0D0TGHCfromBPM","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
4156 hd0D0TGHCfromBPM->SetXTitle("Impact parameter [#mum]");
4157 hd0D0TGHCfromBPM->SetYTitle("Entries");
4158
4159 TH1F *hd0D0VtxTrueTGHCfromBPM = new TH1F("hd0D0VtxTrueTGHCfromBPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
4160 hd0D0VtxTrueTGHCfromBPM->SetXTitle("Impact parameter [#mum]");
4161 hd0D0VtxTrueTGHCfromBPM->SetYTitle("Entries");
4162
4163 TH1F *hMCd0D0TGHCfromBPM = new TH1F("hMCd0D0TGHCfromBPM","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
4164 hMCd0D0TGHCfromBPM->SetXTitle("MC Impact parameter [#mum]");
4165 hMCd0D0TGHCfromBPM->SetYTitle("Entries");
4166
4167 TH1F *hd0D0TGHCfromBSB = new TH1F("hd0D0TGHCfromBSB","D^{0} impact par. plot , Tight Cuts ,FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
ac4c229c 4168 hd0D0TGHCfromBSB->SetXTitle("Impact parameter [#mum]");
4169 hd0D0TGHCfromBSB->SetYTitle("Entries");
4170
4171 TH1F *hd0D0VtxTrueTGHCfromBSB = new TH1F("hd0D0VtxTrueTGHCfromBSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
4172 hd0D0VtxTrueTGHCfromBSB->SetXTitle("Impact parameter [#mum]");
4173 hd0D0VtxTrueTGHCfromBSB->SetYTitle("Entries");
4174
4175 TH1F *hMCd0D0TGHCfromBSB = new TH1F("hMCd0D0TGHCfromBSB","D^{0} impact par. plot, Tight Cuts, FromB,Mass Peak (All momenta)",1000,-1000.,1000.);
4176 hMCd0D0TGHCfromBSB->SetXTitle("MC Impact parameter [#mum]");
4177 hMCd0D0TGHCfromBSB->SetYTitle("Entries");
4178
4179 flistTghCutsFromB->Add(hd0D0TGHCfromBPM);
4180 flistTghCutsFromB->Add(hd0D0VtxTrueTGHCfromBPM);
4181 flistTghCutsFromB->Add(hMCd0D0TGHCfromBPM);
4182 flistTghCutsFromB->Add(hd0D0TGHCfromBSB);
4183 flistTghCutsFromB->Add(hd0D0VtxTrueTGHCfromBSB);
4184 flistTghCutsFromB->Add(hMCd0D0TGHCfromBSB);
4185
e047b348 4186 TH1F *hd0D0ptTGHCfromBPM;
4187 TH1F *hMCd0D0ptTGHCfromBPM;
4188 TH1F *hd0D0VtxTrueptTGHCfromBPM;
4189 TH1F *hd0D0ptTGHCfromBSB;
4190 TH1F *hMCd0D0ptTGHCfromBSB;
4191 TH1F *hd0D0VtxTrueptTGHCfromBSB;
ac4c229c 4192 namehist="hd0D0ptTGHCfromB_";
624c07ab 4193 titlehist="D^{0} impact par. plot, Tight Cuts, FromB, ";
4194 for(Int_t i=0;i<fnbins;i++){
4195 strnamept=namehist;
4196 strnamept.Append("PkMss_pt");
4197 strnamept+=i;
4198
4199 strtitlept=titlehist;
4200 strtitlept.Append(" Mass Peak, ");
4201 strtitlept+=fptbins[i];
4202 strtitlept.Append("<= pt <");
4203 strtitlept+=fptbins[i+1];
4204 strtitlept.Append(" [GeV/c]");
4205
e047b348 4206 hd0D0ptTGHCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4207 hd0D0ptTGHCfromBPM->SetXTitle("Impact parameter [#mum] ");
4208 hd0D0ptTGHCfromBPM->SetYTitle("Entries");
4209 flistTghCutsFromB->Add(hd0D0ptTGHCfromBPM);
624c07ab 4210
4211 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4212 hMCd0D0ptTGHCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4213 hMCd0D0ptTGHCfromBPM->SetXTitle("MC Impact parameter [#mum] ");
4214 hMCd0D0ptTGHCfromBPM->SetYTitle("Entries");
4215 flistTghCutsFromB->Add(hMCd0D0ptTGHCfromBPM);
624c07ab 4216
4217
4218 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4219 hd0D0VtxTrueptTGHCfromBPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4220 hd0D0VtxTrueptTGHCfromBPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4221 hd0D0VtxTrueptTGHCfromBPM->SetYTitle("Entries");
4222 flistTghCutsFromB->Add(hd0D0VtxTrueptTGHCfromBPM);
624c07ab 4223
4224 strnamept=namehist;
4225 strnamept.Append("SBMss_pt");
4226 strnamept+=i;
4227
4228 strtitlept=titlehist;
4229 strtitlept.Append(" Side Bands, ");
4230 strtitlept+=fptbins[i];
4231 strtitlept.Append("<= pt <");
4232 strtitlept+=fptbins[i+1];
4233 strtitlept.Append(" [GeV/c]");
4234
e047b348 4235 hd0D0ptTGHCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4236 hd0D0ptTGHCfromBSB->SetXTitle("Impact parameter [#mum] ");
4237 hd0D0ptTGHCfromBSB->SetYTitle("Entries");
4238 flistTghCutsFromB->Add(hd0D0ptTGHCfromBSB);
624c07ab 4239
4240 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4241 hMCd0D0ptTGHCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4242 hMCd0D0ptTGHCfromBSB->SetXTitle("MC Impact parameter [#mum] ");
4243 hMCd0D0ptTGHCfromBSB->SetYTitle("Entries");
4244 flistTghCutsFromB->Add(hMCd0D0ptTGHCfromBSB);
624c07ab 4245
4246 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4247 hd0D0VtxTrueptTGHCfromBSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4248 hd0D0VtxTrueptTGHCfromBSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4249 hd0D0VtxTrueptTGHCfromBSB->SetYTitle("Entries");
4250 flistTghCutsFromB->Add(hd0D0VtxTrueptTGHCfromBSB);
624c07ab 4251 }
4252
4253
4254
4255 //############ TIGHT CUTS FROM DSTAR HISTOGRAMS ###########
4256 //
4257 //############## global properties histos
e047b348 4258 TH2F *hCPtaVSd0d0TGHCfromDstar=new TH2F("hCPtaVSd0d0TGHCfromDstar","hCPtaVSd0d0_TightCuts_FromDStar",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 4259 TH1F *hSecVtxZTGHCfromDstar=new TH1F("hSecVtxZTGHCfromDstar","hSecVtxZ_TightCuts_FromDStar",1000,-8.,8.);
4260 TH1F *hSecVtxXTGHCfromDstar=new TH1F("hSecVtxXTGHCfromDstar","hSecVtxX_TightCuts_FromDStar",1000,-3000.,3000.);
4261 TH1F *hSecVtxYTGHCfromDstar=new TH1F("hSecVtxYTGHCfromDstar","hSecVtxY_TightCuts_FromDStar",1000,-3000.,3000.);
4262 TH2F *hSecVtxXYTGHCfromDstar=new TH2F("hSecVtxXYTGHCfromDstar","hSecVtxXY_TightCuts_FromDStar",1000,-3000.,3000.,1000,-3000.,3000.);
4263 TH1F *hSecVtxPhiTGHCfromDstar=new TH1F("hSecVtxPhiTGHCfromDstar","hSecVtxPhi_TightCuts_FromDStar",180,-180.1,180.1);
e047b348 4264 TH1F *hd0singlTrackTGHCfromDstar=new TH1F("hd0singlTrackTGHCfromDstar","hd0singlTrackTightCuts_FromDstar",1000,-5000.,5000.);
4265 TH1F *hCPtaTGHCfromDstar=new TH1F("hCPtaTGHCfromDstar","hCPta_TightCuts_FromDStar",100,-1.,1.);
ac4c229c 4266 TH1F *hd0xd0TGHCfromDstar=new TH1F("hd0xd0TGHCfromDstar","hd0xd0_TightCuts_FromDStar",1000,-100000.,100000.);
4267 TH1F *hMassTrueTGHCfromDstar=new TH1F("hMassTrueTGHCfromDstar","D^{0} MC inv. Mass Tight Cuts FromDStar(All momenta)",600,1.600,2.200);
4268 TH1F *hMassTGHCfromDstar=new TH1F("hMassTGHCfromDstar","D^{0} inv. Mass Tight Cuts FromDStar (All momenta)",600,1.600,2.200);
4269 hMassTGHCfromDstar->Sumw2();
4270 TH1F *hMassTrueTGHCfromDstarPM=new TH1F("hMassTrueTGHCfromDstarPM","D^{0} MC inv. Mass Tight Cuts FromDStar, Mass Peak. (All momenta)",600,1.600,2.200);
4271 TH1F *hMassTGHCfromDstarPM=new TH1F("hMassTGHCfromDstarPM","D^{0} inv. Mass Tight Cuts FromDStar (All momenta), MassPeak",600,1.600,2.200);
4272 hMassTGHCfromDstarPM->Sumw2();
4273 TH1F *hMassTrueTGHCfromDstarSB=new TH1F("hMassTrueTGHCfromDstarSB","D^{0} MC inv. Mass in Side Bands Tight Cuts FromDStar(All momenta)",600,1.600,2.200);
4274 TH1F *hMassTGHCfromDstarSB=new TH1F("hMassTGHCfromDstarSB","D^{0} inv. Mass in Side Bands Tight Cuts FromDStar (All momenta)",600,1.600,2.200);
4275 hMassTGHCfromDstarSB->Sumw2();
4276
4277 flistTghCutsFromDstar->Add(hCPtaVSd0d0TGHCfromDstar);
4278 flistTghCutsFromDstar->Add(hSecVtxZTGHCfromDstar);
4279 flistTghCutsFromDstar->Add(hSecVtxYTGHCfromDstar);
4280 flistTghCutsFromDstar->Add(hSecVtxXTGHCfromDstar);
4281 flistTghCutsFromDstar->Add(hSecVtxXYTGHCfromDstar);
4282 flistTghCutsFromDstar->Add(hSecVtxPhiTGHCfromDstar);
e047b348 4283 flistTghCutsFromDstar->Add(hd0singlTrackTGHCfromDstar);
ac4c229c 4284 flistTghCutsFromDstar->Add(hCPtaTGHCfromDstar);
4285 flistTghCutsFromDstar->Add(hd0xd0TGHCfromDstar);
4286 flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstar);
4287 flistTghCutsFromDstar->Add(hMassTGHCfromDstar);
4288 flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstarPM);
4289 flistTghCutsFromDstar->Add(hMassTGHCfromDstarPM);
4290 flistTghCutsFromDstar->Add(hMassTrueTGHCfromDstarSB);
4291 flistTghCutsFromDstar->Add(hMassTGHCfromDstarSB);
624c07ab 4292
e047b348 4293
4294
4295
4296
4297 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
4298 TH1F *hdcaTGHCfromDstar=new TH1F("hdcaTGHCfromDstar","hdca_TightCuts_FromDstar",100,0.,1000.);
4299 hdcaTGHCfromDstar->SetXTitle("dca [#mum]");
4300 hdcaTGHCfromDstar->SetYTitle("Entries");
4301 TH1F *hcosthetastarTGHCfromDstar=new TH1F("hcosthetastarTGHCfromDstar","hCosThetaStar_TightCuts_FromDstar",50,-1.,1.);
4302 hcosthetastarTGHCfromDstar->SetXTitle("cos #theta^{*}");
4303 hcosthetastarTGHCfromDstar->SetYTitle("Entries");
4304 TH1F *hptD0TGHCfromDstar=new TH1F("hptD0TGHCfromDstar","D^{0} transverse momentum distribution",34,ptbinsD0arr);
4305 hptD0TGHCfromDstar->SetXTitle("p_{t} [GeV/c]");
4306 hptD0TGHCfromDstar->SetYTitle("Entries");
4307 TH1F *hptD0VsMaxPtTGHCfromDstar=new TH1F("hptD0VsMaxPtTGHCfromDstar","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
4308 TH2F *hptD0PTallsqrtTGHCfromDstar=new TH2F("hptD0PTallsqrtTGHCfromDstar","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
4309 TH2F *hptD0PTallTGHCfromDstar=new TH2F("hptD0PTallTGHCfromDstar","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
4310 TH2F *hptD0vsptBTGHCfromDstar=new TH2F("hptD0vsptBTGHCfromDstar","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4311 TH2F *hpD0vspBTGHCfromDstar=new TH2F("hpD0vspBTGHCfromDstar","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4312 TH2F *hptD0vsptcquarkTGHCfromDstar=new TH2F("hptD0vsptcquarkTGHCfromDstar","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4313 TH2F *hpD0vspcquarkTGHCfromDstar=new TH2F("hpD0vspcquarkTGHCfromDstar","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4314 flistTghCutsFromDstar->Add(hdcaTGHCfromDstar);
4315 flistTghCutsFromDstar->Add(hcosthetastarTGHCfromDstar);
4316 flistTghCutsFromDstar->Add(hptD0TGHCfromDstar);
4317 flistTghCutsFromDstar->Add(hptD0VsMaxPtTGHCfromDstar);
4318 flistTghCutsFromDstar->Add(hptD0PTallsqrtTGHCfromDstar);
4319 flistTghCutsFromDstar->Add(hptD0PTallTGHCfromDstar);
4320 flistTghCutsFromDstar->Add(hptD0vsptBTGHCfromDstar);
4321 flistTghCutsFromDstar->Add(hpD0vspBTGHCfromDstar);
4322 flistTghCutsFromDstar->Add(hptD0vsptcquarkTGHCfromDstar);
4323 flistTghCutsFromDstar->Add(hpD0vspcquarkTGHCfromDstar);
4324
4325 TH1F *hd0zD0ptTGHCfromDstar;
4326 TH1F *hInvMassTGHCfromDstar;
4327 TH1F *hetaTGHCfromDstar;
4328 TH2F *hInvMassPtTGHCfromDstar=new TH2F("hInvMassPtTGHCfromDstar","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
4329 TH1F *hCosPDPBTGHCfromDstar;
4330 TH1F *hCosPcPDTGHCfromDstar;
4331 flistTghCutsFromDstar->Add(hInvMassPtTGHCfromDstar);
4332// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4333 TH2F *hd0D0VSd0xd0TGHCfromDstarpt;
4334 TH2F *hangletracksVSd0xd0TGHCfromDstarpt;
4335 TH2F *hangletracksVSd0D0TGHCfromDstarpt;
4336 TH1F *hd0xd0TGHCfromDstarpt;
4337
4338 TH2F *hTOFpidTGHCfromDstar=new TH2F("hTOFpidTGHCfromDstar","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
4339 flistTghCutsFromDstar->Add(hTOFpidTGHCfromDstar);
4340
4341 for(Int_t i=0;i<fnbins;i++){
4342 namehist="hd0zD0ptTGHCfromDstar_pt";
4343 namehist+=i;
4344 titlehist="d0(z) Tight Cuts FromDstarm ptbin=";
4345 titlehist+=i;
4346 hd0zD0ptTGHCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
4347 hd0zD0ptTGHCfromDstar->SetXTitle("d_{0}(z) [#mum]");
4348 hd0zD0ptTGHCfromDstar->SetYTitle("Entries");
4349 flistTghCutsFromDstar->Add(hd0zD0ptTGHCfromDstar);
4350
4351 namehist="hInvMassTGHCfromDstar_pt";
4352 namehist+=i;
4353 titlehist="Invariant Mass Tight Cuts FromDstar ptbin=";
4354 titlehist+=i;
4355 hInvMassTGHCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
4356 hInvMassTGHCfromDstar->SetXTitle("Invariant Mass [GeV]");
4357 hInvMassTGHCfromDstar->SetYTitle("Entries");
4358 flistTghCutsFromDstar->Add(hInvMassTGHCfromDstar);
4359
4360 namehist="hetaTGHCfromDstar_pt";
4361 namehist+=i;
4362 titlehist="eta Tight Cuts FromDstar ptbin=";
4363 titlehist+=i;
4364 hetaTGHCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
4365 hetaTGHCfromDstar->SetXTitle("Pseudorapidity");
4366 hetaTGHCfromDstar->SetYTitle("Entries");
4367 flistTghCutsFromDstar->Add(hetaTGHCfromDstar);
4368
4369 namehist="hCosPDPBTGHCfromDstar_pt";
4370 namehist+=i;
4371 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
4372 titlehist+=i;
4373 hCosPDPBTGHCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4374 hCosPDPBTGHCfromDstar->SetXTitle("Cosine between D0 momentum and B momentum");
4375 hCosPDPBTGHCfromDstar->SetYTitle("Entries");
4376 flistTghCutsFromDstar->Add(hCosPDPBTGHCfromDstar);
4377
4378 namehist="hCosPcPDTGHCfromDstar_pt";
4379 namehist+=i;
4380 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
4381 titlehist+=i;
4382 hCosPcPDTGHCfromDstar=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4383 hCosPcPDTGHCfromDstar->SetXTitle("Cosine between c quark momentum and D0 momentum");
4384 hCosPcPDTGHCfromDstar->SetYTitle("Entries");
4385 flistTghCutsFromDstar->Add(hCosPcPDTGHCfromDstar);
4386
4387 // %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4388 namehist="hd0xd0TGHCfromDstar_pt";
4389 namehist+=i;
4390 titlehist="d0xd0 Tight Cuts FromDstar ptbin=";
4391 titlehist+=i;
4392 hd0xd0TGHCfromDstarpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
4393 hd0xd0TGHCfromDstarpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
4394 hd0xd0TGHCfromDstarpt->SetYTitle("Entries");
4395 flistTghCutsFromDstar->Add(hd0xd0TGHCfromDstarpt);
4396
4397
4398 namehist="hd0D0VSd0xd0TGHCfromDstar_pt";
4399 namehist+=i;
4400 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts FromDstar ptbin=";
4401 titlehist+=i;
4402 hd0D0VSd0xd0TGHCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
4403 hd0D0VSd0xd0TGHCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4404 hd0D0VSd0xd0TGHCfromDstarpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
4405 flistTghCutsFromDstar->Add(hd0D0VSd0xd0TGHCfromDstarpt);
4406
4407
4408 namehist="hangletracksVSd0xd0TGHCfromDstar_pt";
4409 namehist+=i;
4410 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts FromDstar ptbin=";
4411 titlehist+=i;
4412 hangletracksVSd0xd0TGHCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
4413 hangletracksVSd0xd0TGHCfromDstarpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4414 hangletracksVSd0xd0TGHCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
4415 flistTghCutsFromDstar->Add(hangletracksVSd0xd0TGHCfromDstarpt);
4416
4417
4418 namehist="hangletracksVSd0D0TGHCfromDstar_pt";
4419 namehist+=i;
4420 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Tight Cuts FromDstar ptbin=";
4421 titlehist+=i;
4422 hangletracksVSd0D0TGHCfromDstarpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
4423 hangletracksVSd0D0TGHCfromDstarpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
4424 hangletracksVSd0D0TGHCfromDstarpt->SetYTitle(" angle between K and #p tracks [rad]");
4425 flistTghCutsFromDstar->Add(hangletracksVSd0D0TGHCfromDstarpt);
4426
4427
4428 }
4429 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
4430 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4431
4432
624c07ab 4433 //########## d0 D0 histos #############
ac4c229c 4434 TH1F *hd0D0TGHCfromDstPM = new TH1F("hd0D0TGHCfromDstarPM","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4435 hd0D0TGHCfromDstPM->SetXTitle("Impact parameter [#mum]");
4436 hd0D0TGHCfromDstPM->SetYTitle("Entries");
4437
4438 TH1F *hd0D0VtxTrueTGHCfromDstPM = new TH1F("hd0D0VtxTrueTGHCfromDstarPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4439 hd0D0VtxTrueTGHCfromDstPM->SetXTitle("Impact parameter [#mum]");
4440 hd0D0VtxTrueTGHCfromDstPM->SetYTitle("Entries");
4441
4442 TH1F *hMCd0D0TGHCfromDstPM = new TH1F("hMCd0D0TGHCfromDstarPM","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4443 hMCd0D0TGHCfromDstPM->SetXTitle("MC Impact parameter [#mum]");
4444 hMCd0D0TGHCfromDstPM->SetYTitle("Entries");
4445
4446 TH1F *hd0D0TGHCfromDstSB = new TH1F("hd0D0TGHCfromDstarSB","D^{0} impact par. plot , Tight Cuts ,FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4447 hd0D0TGHCfromDstSB->SetXTitle("Impact parameter [#mum]");
4448 hd0D0TGHCfromDstSB->SetYTitle("Entries");
4449
4450 TH1F *hd0D0VtxTrueTGHCfromDstSB = new TH1F("hd0D0VtxTrueTGHCfromDstarSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4451 hd0D0VtxTrueTGHCfromDstSB->SetXTitle("Impact parameter [#mum]");
4452 hd0D0VtxTrueTGHCfromDstSB->SetYTitle("Entries");
4453
4454 TH1F *hMCd0D0TGHCfromDstSB = new TH1F("hMCd0D0TGHCfromDstarSB","D^{0} impact par. plot, Tight Cuts, FromDStar,Mass Peak (All momenta)",1000,-1000.,1000.);
4455 hMCd0D0TGHCfromDstSB->SetXTitle("MC Impact parameter [#mum]");
4456 hMCd0D0TGHCfromDstSB->SetYTitle("Entries");
4457
4458 flistTghCutsFromDstar->Add(hd0D0TGHCfromDstPM);
4459 flistTghCutsFromDstar->Add(hd0D0VtxTrueTGHCfromDstPM);
4460 flistTghCutsFromDstar->Add(hMCd0D0TGHCfromDstPM);
4461 flistTghCutsFromDstar->Add(hd0D0TGHCfromDstSB);
4462 flistTghCutsFromDstar->Add(hd0D0VtxTrueTGHCfromDstSB);
4463 flistTghCutsFromDstar->Add(hMCd0D0TGHCfromDstSB);
4464
e047b348 4465 TH1F *hd0D0ptTGHCfromDstPM;
4466 TH1F *hMCd0D0ptTGHCfromDstPM;
4467 TH1F *hd0D0VtxTrueptTGHCfromDstPM;
4468 TH1F *hd0D0ptTGHCfromDstSB;
4469 TH1F *hMCd0D0ptTGHCfromDstSB;
4470 TH1F *hd0D0VtxTrueptTGHCfromDstSB;
ac4c229c 4471 namehist="hd0D0ptTGHCfromDstar_";
624c07ab 4472 titlehist="D^{0} impact par. plot, Tight Cuts, FromDStar, ";
4473 for(Int_t i=0;i<fnbins;i++){
4474 strnamept=namehist;
4475 strnamept.Append("PkMss_pt");
4476 strnamept+=i;
4477
4478 strtitlept=titlehist;
4479 strtitlept.Append(" Mass Peak, ");
4480 strtitlept+=fptbins[i];
4481 strtitlept.Append("<= pt <");
4482 strtitlept+=fptbins[i+1];
4483 strtitlept.Append(" [GeV/c]");
4484
e047b348 4485 hd0D0ptTGHCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4486 hd0D0ptTGHCfromDstPM->SetXTitle("Impact parameter [#mum] ");
4487 hd0D0ptTGHCfromDstPM->SetYTitle("Entries");
4488 flistTghCutsFromDstar->Add(hd0D0ptTGHCfromDstPM);
624c07ab 4489
4490 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4491 hMCd0D0ptTGHCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4492 hMCd0D0ptTGHCfromDstPM->SetXTitle("MC Impact parameter [#mum] ");
4493 hMCd0D0ptTGHCfromDstPM->SetYTitle("Entries");
4494 flistTghCutsFromDstar->Add(hMCd0D0ptTGHCfromDstPM);
624c07ab 4495
4496
4497 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4498 hd0D0VtxTrueptTGHCfromDstPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4499 hd0D0VtxTrueptTGHCfromDstPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4500 hd0D0VtxTrueptTGHCfromDstPM->SetYTitle("Entries");
4501 flistTghCutsFromDstar->Add(hd0D0VtxTrueptTGHCfromDstPM);
624c07ab 4502
4503 strnamept=namehist;
4504 strnamept.Append("SBMss_pt");
4505 strnamept+=i;
4506
4507 strtitlept=titlehist;
4508 strtitlept.Append(" Side Bands, ");
4509 strtitlept+=fptbins[i];
4510 strtitlept.Append("<= pt <");
4511 strtitlept+=fptbins[i+1];
4512 strtitlept.Append(" [GeV/c]");
4513
e047b348 4514 hd0D0ptTGHCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4515 hd0D0ptTGHCfromDstSB->SetXTitle("Impact parameter [#mum] ");
4516 hd0D0ptTGHCfromDstSB->SetYTitle("Entries");
4517 flistTghCutsFromDstar->Add(hd0D0ptTGHCfromDstSB);
624c07ab 4518
4519 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4520 hMCd0D0ptTGHCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4521 hMCd0D0ptTGHCfromDstSB->SetXTitle("MC Impact parameter [#mum] ");
4522 hMCd0D0ptTGHCfromDstSB->SetYTitle("Entries");
4523 flistTghCutsFromDstar->Add(hMCd0D0ptTGHCfromDstSB);
624c07ab 4524
4525 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4526 hd0D0VtxTrueptTGHCfromDstSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4527 hd0D0VtxTrueptTGHCfromDstSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4528 hd0D0VtxTrueptTGHCfromDstSB->SetYTitle("Entries");
4529 flistTghCutsFromDstar->Add(hd0D0VtxTrueptTGHCfromDstSB);
624c07ab 4530 }
4531
4532
4533 //############ TIGHT CUTS OTHER HISTOGRAMS ###########
4534 //
4535 //########### global properties histos ###########
4536
e047b348 4537 TH2F *hCPtaVSd0d0TGHCother=new TH2F("hCPtaVSd0d0TGHCother","hCPtaVSd0d0_TightCuts_other",1000,-100000.,100000.,100,-1.,1.);
ac4c229c 4538 TH1F *hSecVtxZTGHCother=new TH1F("hSecVtxZTGHCother","hSecVtxZ_TightCuts_other",1000,-8.,8.);
4539 TH1F *hSecVtxXTGHCother=new TH1F("hSecVtxXTGHCother","hSecVtxX_TightCuts_other",1000,-3000.,3000.);
4540 TH1F *hSecVtxYTGHCother=new TH1F("hSecVtxYTGHCother","hSecVtxY_TightCuts_other",1000,-3000.,3000.);
4541 TH2F *hSecVtxXYTGHCother=new TH2F("hSecVtxXYTGHCother","hSecVtxXY_TightCuts_other",1000,-3000.,3000.,1000,-3000.,3000.);
4542 TH1F *hSecVtxPhiTGHCother=new TH1F("hSecVtxPhiTGHCother","hSecVtxPhi_TightCuts_other",180,-180.1,180.1);
e047b348 4543 TH1F *hd0singlTrackTGHCother=new TH1F("hd0singlTrackTGHCother","hd0singlTrackTightCuts_Other",1000,-5000.,5000.);
4544 TH1F *hCPtaTGHCother=new TH1F("hCPtaTGHCother","hCPta_TightCuts_other",100,-1.,1.);
ac4c229c 4545 TH1F *hd0xd0TGHCother=new TH1F("hd0xd0TGHCother","hd0xd0_TightCuts_other",1000,-100000.,100000.);
4546 TH1F *hMassTrueTGHCother=new TH1F("hMassTrueTGHCother","D^{0} MC inv. Mass Tight Cuts other(All momenta)",600,1.600,2.200);
4547 TH1F *hMassTGHCother=new TH1F("hMassTGHCother","D^{0} inv. Mass Tight Cuts other (All momenta)",600,1.600,2.200);
4548 hMassTGHCother->Sumw2();
4549 TH1F *hMassTrueTGHCotherPM=new TH1F("hMassTrueTGHCotherPM","D^{0} MC inv. Mass Tight Cuts other, Mass Peak. (All momenta)",600,1.600,2.200);
4550 TH1F *hMassTGHCotherPM=new TH1F("hMassTGHCotherPM","D^{0} inv. Mass Tight Cuts other (All momenta), MassPeak",600,1.600,2.200);
4551 hMassTGHCotherPM->Sumw2();
4552 TH1F *hMassTrueTGHCotherSB=new TH1F("hMassTrueTGHCotherSB","D^{0} MC inv. Mass in Side Bands Tight Cuts other(All momenta)",600,1.600,2.200);
4553 TH1F *hMassTGHCotherSB=new TH1F("hMassTGHCotherSB","D^{0} inv. Mass in Side Bands Tight Cuts other (All momenta)",600,1.600,2.200);
4554 hMassTGHCotherSB->Sumw2();
4555
4556 flistTghCutsOther->Add(hCPtaVSd0d0TGHCother);
4557 flistTghCutsOther->Add(hSecVtxZTGHCother);
4558 flistTghCutsOther->Add(hSecVtxYTGHCother);
4559 flistTghCutsOther->Add(hSecVtxXTGHCother);
4560 flistTghCutsOther->Add(hSecVtxXYTGHCother);
4561 flistTghCutsOther->Add(hSecVtxPhiTGHCother);
e047b348 4562 flistTghCutsOther->Add(hd0singlTrackTGHCother);
ac4c229c 4563 flistTghCutsOther->Add(hCPtaTGHCother);
4564 flistTghCutsOther->Add(hd0xd0TGHCother);
4565 flistTghCutsOther->Add(hMassTrueTGHCother);
4566 flistTghCutsOther->Add(hMassTGHCother);
4567 flistTghCutsOther->Add(hMassTrueTGHCotherPM);
4568 flistTghCutsOther->Add(hMassTGHCotherPM);
4569 flistTghCutsOther->Add(hMassTrueTGHCotherSB);
4570 flistTghCutsOther->Add(hMassTGHCotherSB);
624c07ab 4571
e047b348 4572
4573
4574
4575 //%%% NEW HISTOS %%%%%%%%%%%%%%%%
4576 TH1F *hdcaTGHCother=new TH1F("hdcaTGHCother","hdca_TightCuts_Other",100,0.,1000.);
4577 hdcaTGHCother->SetXTitle("dca [#mum]");
4578 hdcaTGHCother->SetYTitle("Entries");
4579 TH1F *hcosthetastarTGHCother=new TH1F("hcosthetastarTGHCother","hCosThetaStar_TightCuts_Other",50,-1.,1.);
4580 hcosthetastarTGHCother->SetXTitle("cos #theta^{*}");
4581 hcosthetastarTGHCother->SetYTitle("Entries");
4582 TH1F *hptD0TGHCother=new TH1F("hptD0TGHCother","D^{0} transverse momentum distribution",34,ptbinsD0arr);
4583 hptD0TGHCother->SetXTitle("p_{t} [GeV/c]");
4584 hptD0TGHCother->SetYTitle("Entries");
4585 TH1F *hptD0VsMaxPtTGHCother=new TH1F("hptD0VsMaxPtTGHCother","Difference between D^{0} pt and highest (or second) pt",400,-50.,50.);
4586 TH2F *hptD0PTallsqrtTGHCother=new TH2F("hptD0PTallsqrtTGHCother","D^{0} pt Vs Sqrt(Sum pt square)",34,ptbinsD0arr,200,dumbinning);
4587 TH2F *hptD0PTallTGHCother=new TH2F("hptD0PTallTGHCother","D^{0} pt Vs Sum pt ",34,ptbinsD0arr,200,dumbinning);
4588 TH2F *hptD0vsptBTGHCother=new TH2F("hptD0vsptBTGHCother","D^{0} pt Vs B pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4589 TH2F *hpD0vspBTGHCother=new TH2F("hpD0vspBTGHCother","D^{0} tot momentum Vs B tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4590 TH2F *hptD0vsptcquarkTGHCother=new TH2F("hptD0vsptcquarkTGHCother","D^{0} pt Vs cquark pt distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4591 TH2F *hpD0vspcquarkTGHCother=new TH2F("hpD0vspcquarkTGHCother","D^{0} tot momentum Vs cquark tot momentum distribution",34,ptbinsD0arr,34,ptbinsD0arr);
4592 flistTghCutsOther->Add(hdcaTGHCother);
4593 flistTghCutsOther->Add(hcosthetastarTGHCother);
4594 flistTghCutsOther->Add(hptD0TGHCother);
4595 flistTghCutsOther->Add(hptD0VsMaxPtTGHCother);
4596 flistTghCutsOther->Add(hptD0PTallsqrtTGHCother);
4597 flistTghCutsOther->Add(hptD0PTallTGHCother);
4598 flistTghCutsOther->Add(hptD0vsptBTGHCother);
4599 flistTghCutsOther->Add(hpD0vspBTGHCother);
4600 flistTghCutsOther->Add(hptD0vsptcquarkTGHCother);
4601 flistTghCutsOther->Add(hpD0vspcquarkTGHCother);
4602
4603 TH1F *hd0zD0ptTGHCother;
4604 TH1F *hInvMassTGHCother;
4605 TH2F *hInvMassPtTGHCother=new TH2F("hInvMassPtTGHCother","Candidate p_{t} Vs invariant mass",330,1.700,2.030,200,0.,20.);
4606 TH1F *hetaTGHCother;
4607 TH1F *hCosPDPBTGHCother;
4608 TH1F *hCosPcPDTGHCother;
4609 flistTghCutsOther->Add(hInvMassPtTGHCother);
4610// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4611 TH2F *hd0D0VSd0xd0TGHCotherpt;
4612 TH2F *hangletracksVSd0xd0TGHCotherpt;
4613 TH2F *hangletracksVSd0D0TGHCotherpt;
4614 TH1F *hd0xd0TGHCotherpt;
4615
4616 TH2F *hTOFpidTGHCother=new TH2F("hTOFpidTGHCother","TOF time VS momentum",10,0.,4.,50,-50000.,50000.);
4617 flistTghCutsOther->Add(hTOFpidTGHCother);
4618
4619 for(Int_t i=0;i<fnbins;i++){
4620 namehist="hd0zD0ptTGHCother_pt";
4621 namehist+=i;
4622 titlehist="d0(z) Tight Cuts Otherm ptbin=";
4623 titlehist+=i;
4624 hd0zD0ptTGHCother=new TH1F(namehist.Data(),titlehist.Data(),1000,-3000,3000.);
4625 hd0zD0ptTGHCother->SetXTitle("d_{0}(z) [#mum]");
4626 hd0zD0ptTGHCother->SetYTitle("Entries");
4627 flistTghCutsOther->Add(hd0zD0ptTGHCother);
4628
4629 namehist="hInvMassTGHCother_pt";
4630 namehist+=i;
4631 titlehist="Invariant Mass Tight Cuts Other ptbin=";
4632 titlehist+=i;
4633 hInvMassTGHCother=new TH1F(namehist.Data(),titlehist.Data(),600,1.600,2.200);
4634 hInvMassTGHCother->SetXTitle("Invariant Mass [GeV]");
4635 hInvMassTGHCother->SetYTitle("Entries");
4636 flistTghCutsOther->Add(hInvMassTGHCother);
4637
4638 namehist="hetaTGHCother_pt";
4639 namehist+=i;
4640 titlehist="eta Tight Cuts Other ptbin=";
4641 titlehist+=i;
4642 hetaTGHCother=new TH1F(namehist.Data(),titlehist.Data(),100,-3.,3.);
4643 hetaTGHCother->SetXTitle("Pseudorapidity");
4644 hetaTGHCother->SetYTitle("Entries");
4645 flistTghCutsOther->Add(hetaTGHCother);
4646
4647 namehist="hCosPDPBTGHCother_pt";
4648 namehist+=i;
4649 titlehist="Cosine between D0 momentum and B momentum, ptbin=";
4650 titlehist+=i;
4651 hCosPDPBTGHCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4652 hCosPDPBTGHCother->SetXTitle("Cosine between D0 momentum and B momentum");
4653 hCosPDPBTGHCother->SetYTitle("Entries");
4654 flistTghCutsOther->Add(hCosPDPBTGHCother);
4655
4656 namehist="hCosPcPDTGHCother_pt";
4657 namehist+=i;
4658 titlehist="Cosine between cquark momentum and D0 momentum, ptbin=";
4659 titlehist+=i;
4660 hCosPcPDTGHCother=new TH1F(namehist.Data(),titlehist.Data(),50,-1.,1.);
4661 hCosPcPDTGHCother->SetXTitle("Cosine between c quark momentum and D0 momentum");
4662 hCosPcPDTGHCother->SetYTitle("Entries");
4663 flistTghCutsOther->Add(hCosPcPDTGHCother);
4664
4665// %%%%%%%%%%% HERE THE ADDITIONAL HISTS %%%%%%%%%%%%%%%%%
4666 namehist="hd0xd0TGHCother_pt";
4667 namehist+=i;
4668 titlehist="d0xd0 Tight Cuts Other ptbin=";
4669 titlehist+=i;
4670 hd0xd0TGHCotherpt=new TH1F(namehist.Data(),titlehist.Data(),1000,-50000.,10000.);
4671 hd0xd0TGHCotherpt->SetXTitle("d_{0}^{K}xd_{0}^{#pi} [#mum^2]");
4672 hd0xd0TGHCotherpt->SetYTitle("Entries");
4673 flistTghCutsOther->Add(hd0xd0TGHCotherpt);
4674
4675
4676 namehist="hd0D0VSd0xd0TGHCother_pt";
4677 namehist+=i;
4678 titlehist="d_{0}^{D^{0}} Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Other ptbin=";
4679 titlehist+=i;
4680 hd0D0VSd0xd0TGHCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,100,-300,300);
4681 hd0D0VSd0xd0TGHCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4682 hd0D0VSd0xd0TGHCotherpt->SetYTitle(" d_{0}^{D^{0}} [#mum]");
4683 flistTghCutsOther->Add(hd0D0VSd0xd0TGHCotherpt);
4684
4685
4686 namehist="hangletracksVSd0xd0TGHCother_pt";
4687 namehist+=i;
4688 titlehist="Angle between K and #pi tracks Vs d_{0}^{K}xd_{0}^{#pi} Tight Cuts Other ptbin=";
4689 titlehist+=i;
4690 hangletracksVSd0xd0TGHCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-50000.,30000.,40,-0.1,3.24);
4691 hangletracksVSd0xd0TGHCotherpt->SetXTitle(" d_{0}^{K}xd_{0}^{#pi} [#mum]");
4692 hangletracksVSd0xd0TGHCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
4693 flistTghCutsOther->Add(hangletracksVSd0xd0TGHCotherpt);
4694
4695
4696 namehist="hangletracksVSd0D0TGHCother_pt";
4697 namehist+=i;
4698 titlehist="Angle between K and #pi tracks Vs d_{0}^{D^{0}} Tight Cuts Other ptbin=";
4699 titlehist+=i;
4700 hangletracksVSd0D0TGHCotherpt=new TH2F(namehist.Data(),titlehist.Data(),200,-400.,400.,40,-0.12,3.24);
4701 hangletracksVSd0D0TGHCotherpt->SetXTitle(" d_{0}^{D^{0}} [#mum]");
4702 hangletracksVSd0D0TGHCotherpt->SetYTitle(" angle between K and #p tracks [rad]");
4703 flistTghCutsOther->Add(hangletracksVSd0D0TGHCotherpt);
4704
4705 }
4706 // %%%%%%%% END OF NEW HISTOS %%%%%%%%%%%%%
4707 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4708
4709
4710
4711
4712
624c07ab 4713 //############# d0 D0 histos ###############à
ac4c229c 4714 TH1F *hd0D0TGHCotherPM = new TH1F("hd0D0TGHCotherPM","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4715 hd0D0TGHCotherPM->SetXTitle("Impact parameter [#mum]");
4716 hd0D0TGHCotherPM->SetYTitle("Entries");
4717
4718 TH1F *hd0D0VtxTrueTGHCotherPM = new TH1F("hd0D0VtxTrueTGHCotherPM","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4719 hd0D0VtxTrueTGHCotherPM->SetXTitle("Impact parameter [#mum]");
4720 hd0D0VtxTrueTGHCotherPM->SetYTitle("Entries");
4721
4722 TH1F *hMCd0D0TGHCotherPM = new TH1F("hMCd0D0TGHCotherPM","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4723 hMCd0D0TGHCotherPM->SetXTitle("MC Impact parameter [#mum]");
4724 hMCd0D0TGHCotherPM->SetYTitle("Entries");
4725
4726 TH1F *hd0D0TGHCotherSB = new TH1F("hd0D0TGHCotherSB","D^{0} impact par. plot , Tight Cuts ,Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4727 hd0D0TGHCotherSB->SetXTitle("Impact parameter [#mum]");
4728 hd0D0TGHCotherSB->SetYTitle("Entries");
4729
4730 TH1F *hd0D0VtxTrueTGHCotherSB = new TH1F("hd0D0VtxTrueTGHCotherSB","D^{0} impact par. w.r.t. True Vtx, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4731 hd0D0VtxTrueTGHCotherSB->SetXTitle("Impact parameter [#mum]");
4732 hd0D0VtxTrueTGHCotherSB->SetYTitle("Entries");
4733
4734 TH1F *hMCd0D0TGHCotherSB = new TH1F("hMCd0D0TGHCotherSB","D^{0} impact par. plot, Tight Cuts, Other,Mass Peak (All momenta)",1000,-1000.,1000.);
4735 hMCd0D0TGHCotherSB->SetXTitle("MC Impact parameter [#mum]");
4736 hMCd0D0TGHCotherSB->SetYTitle("Entries");
4737
4738 flistTghCutsOther->Add(hd0D0TGHCotherPM);
4739 flistTghCutsOther->Add(hd0D0VtxTrueTGHCotherPM);
4740 flistTghCutsOther->Add(hMCd0D0TGHCotherPM);
4741 flistTghCutsOther->Add(hd0D0TGHCotherSB);
4742 flistTghCutsOther->Add(hd0D0VtxTrueTGHCotherSB);
4743 flistTghCutsOther->Add(hMCd0D0TGHCotherSB);
4744
e047b348 4745 TH1F *hd0D0ptTGHCotherPM;
4746 TH1F *hMCd0D0ptTGHCotherPM;
4747 TH1F *hd0D0VtxTrueptTGHCotherPM;
4748 TH1F *hd0D0ptTGHCotherSB;
4749 TH1F *hMCd0D0ptTGHCotherSB;
4750 TH1F *hd0D0VtxTrueptTGHCotherSB;
ac4c229c 4751 namehist="hd0D0ptTGHCother_";
624c07ab 4752 titlehist="D^{0} impact par. plot, Tight Cuts, Other, ";
4753 for(Int_t i=0;i<fnbins;i++){
4754 strnamept=namehist;
4755 strnamept.Append("PkMss_pt");
4756 strnamept+=i;
4757
4758 strtitlept=titlehist;
4759 strtitlept.Append(" Mass Peak, ");
4760 strtitlept+=fptbins[i];
4761 strtitlept.Append("<= pt <");
4762 strtitlept+=fptbins[i+1];
4763 strtitlept.Append(" [GeV/c]");
4764
e047b348 4765 hd0D0ptTGHCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4766 hd0D0ptTGHCotherPM->SetXTitle("Impact parameter [#mum] ");
4767 hd0D0ptTGHCotherPM->SetYTitle("Entries");
4768 flistTghCutsOther->Add(hd0D0ptTGHCotherPM);
624c07ab 4769
4770 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4771 hMCd0D0ptTGHCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4772 hMCd0D0ptTGHCotherPM->SetXTitle("MC Impact parameter [#mum] ");
4773 hMCd0D0ptTGHCotherPM->SetYTitle("Entries");
4774 flistTghCutsOther->Add(hMCd0D0ptTGHCotherPM);
624c07ab 4775
4776
4777 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4778 hd0D0VtxTrueptTGHCotherPM = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4779 hd0D0VtxTrueptTGHCotherPM->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4780 hd0D0VtxTrueptTGHCotherPM->SetYTitle("Entries");
4781 flistTghCutsOther->Add(hd0D0VtxTrueptTGHCotherPM);
624c07ab 4782
4783 strnamept=namehist;
4784 strnamept.Append("SBMss_pt");
4785 strnamept+=i;
4786
4787 strtitlept=titlehist;
4788 strtitlept.Append(" Side Bands, ");
4789 strtitlept+=fptbins[i];
4790 strtitlept.Append("<= pt <");
4791 strtitlept+=fptbins[i+1];
4792 strtitlept.Append(" [GeV/c]");
4793
e047b348 4794 hd0D0ptTGHCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4795 hd0D0ptTGHCotherSB->SetXTitle("Impact parameter [#mum] ");
4796 hd0D0ptTGHCotherSB->SetYTitle("Entries");
4797 flistTghCutsOther->Add(hd0D0ptTGHCotherSB);
624c07ab 4798
4799 strnamept.ReplaceAll("hd0D0","hMCd0D0");
e047b348 4800 hMCd0D0ptTGHCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4801 hMCd0D0ptTGHCotherSB->SetXTitle("MC Impact parameter [#mum] ");
4802 hMCd0D0ptTGHCotherSB->SetYTitle("Entries");
4803 flistTghCutsOther->Add(hMCd0D0ptTGHCotherSB);
624c07ab 4804
4805 strnamept.ReplaceAll("hMCd0D0","hd0D0VtxTrue");
e047b348 4806 hd0D0VtxTrueptTGHCotherSB = new TH1F(strnamept.Data(),strtitlept.Data(),1000,-1000.,1000.);
4807 hd0D0VtxTrueptTGHCotherSB->SetXTitle("Impact parameter w.r.t. True Vtx [#mum] ");
4808 hd0D0VtxTrueptTGHCotherSB->SetYTitle("Entries");
4809 flistTghCutsOther->Add(hd0D0VtxTrueptTGHCotherSB);
624c07ab 4810 }
e047b348 4811 Printf("AFTER DATA HISTOS CREATION \n");
624c07ab 4812}
4813
624c07ab 4814//________________________________________________________________________
4815void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
4816{
4817 // Execute analysis for current event:
4818 // heavy flavor candidates association to MC truth
4819
4820 AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
e047b348 4821 if (!aod) {
4822 Printf("ERROR: aod not available");
4823 return;
4824 }
4825 TClonesArray *arrayD0toKpi;
b557eb43 4826 if(!aod && AODEvent() && IsStandardAOD()) {
4827 // In case there is an AOD handler writing a standard AOD, use the AOD
4828 // event in memory rather than the input (ESD) event.
4829 aod = dynamic_cast<AliAODEvent*> (AODEvent());
4830 // in this case the braches in the deltaAOD (AliAOD.VertexingHF.root)
4831 // have to taken from the AOD event hold by the AliAODExtension
4832 AliAODHandler* aodHandler = (AliAODHandler*)
4833 ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
e047b348 4834
b557eb43 4835 if(aodHandler->GetExtensions()) {
4836 AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject("AliAOD.VertexingHF.root");
e047b348 4837 AliAODEvent* aodFromExt = ext->GetAOD();
4838 if(fLikeSign){
4839 // load 2Prong Like Sign
4840 arrayD0toKpi =(TClonesArray*)aodFromExt->GetList()->FindObject("LikeSign2Prong");
4841 if(!arrayD0toKpi) {
4842 Printf("AliAnalysisTaskSECharmFraction::UserExec: LikeSign branch not found!\n");
4843 return;
4844 }
4845 }
4846 else {
4847 // load D0->Kpi candidates
4848 arrayD0toKpi = (TClonesArray*)aodFromExt->GetList()->FindObject("D0toKpi");
4849 if(!arrayD0toKpi) {
4850 Printf("AliAnalysisTaskSECharmFraction::UserExec: D0toKpi branch not found!\n");
4851 return;
4852 }
4853 }
b557eb43 4854 }
4855 } else {
e047b348 4856 if(fLikeSign){
4857 // load 2Prong Like Sign
4858 arrayD0toKpi =(TClonesArray*)aod->GetList()->FindObject("LikeSign2Prong");
4859 if(!arrayD0toKpi) {
4860 Printf("AliAnalysisTaskSECharmFraction::UserExec: LikeSign branch not found!\n");
4861 return;
4862 }
4863 }
4864 else {
4865 // load D0->Kpi candidates
4866 arrayD0toKpi = (TClonesArray*)aod->GetList()->FindObject("D0toKpi");
4867 if(!arrayD0toKpi) {
4868 Printf("AliAnalysisTaskSECharmFraction::UserExec: D0toKpi branch not found!\n");
4869 return;
4870 }
4871 }
b557eb43 4872 }
8931c313 4873
e047b348 4874
624c07ab 4875 if(!arrayD0toKpi) {
e047b348 4876 printf("AliAnalysisTaskSECharmFraction::UserExec: input branch not found!\n");
624c07ab 4877 return;
4878 }
7c23877d 4879
e047b348 4880
4881 // fix for temporary bug in ESDfilter
7c23877d 4882 // the AODs with null vertex pointer didn't pass the PhysSel
4883 if(!aod->GetPrimaryVertex()) return;
4884
624c07ab 4885 // AOD primary vertex
4886 AliAODVertex *vtx1 = (AliAODVertex*)aod->GetPrimaryVertex();
e047b348 4887 TClonesArray *arrayMC=0x0;
4888 AliAODMCHeader *aodmcHeader=0x0;
624c07ab 4889 Double_t vtxTrue[3];
e047b348 4890
bf74e6db 4891 if(fReadMC){
4892 // load MC particles
4893 arrayMC =
4894 (TClonesArray*)aod->GetList()->FindObject(AliAODMCParticle::StdBranchName());
4895 if(!arrayMC) {
4896 Printf("AliAnalysisTaskSECharmFraction::UserExec: MC particles branch not found!\n");
4897 return;
4898 }
bf74e6db 4899 // load MC header
4900 aodmcHeader =
4901 (AliAODMCHeader*)aod->GetList()->FindObject(AliAODMCHeader::StdBranchName());
4902 if(!aodmcHeader) {
4903 Printf("AliAnalysisTaskSECharmFraction::UserExec: MC header branch not found!\n");
4904 return;
4905 }
bf74e6db 4906 // MC primary vertex
4907 aodmcHeader->GetVertex(vtxTrue);
e047b348 4908 // FILL HISTOS FOR D0 mesons, c quarks and D0 from B properties
4909 FillHistoMCproperties(arrayMC);
624c07ab 4910 }
4911 //histogram filled with 1 for every AOD
4912 fNentries->Fill(1);
4913 PostData(1,fNentries);
e047b348 4914
624c07ab 4915
4916 //Printf("There are %d tracks in this event", aod->GetNumberOfTracks());
4917 // Int_t nTotHF=0,nTotDstar=0,nTot3Prong=0;
4918 Int_t nTotD0toKpi=0;
e047b348 4919 Int_t okd0tight,okd0bartight,okd0loose,okd0barloose,okd0tightnopid,okd0bartightnopid;
624c07ab 4920 Bool_t isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar,isSideBand;
ac4c229c 4921 Bool_t isinacceptance;
624c07ab 4922 Int_t signallevel=-1;
e047b348 4923 Int_t ptbin,nVtx;
624c07ab 4924 // const Int_t nptbins=10;
4925 Double_t invMassD0,invMassD0bar,ptD0,massmumtrue;
4926
4927
e047b348 4928 AliAODRecoDecayHF *aodDMC=0x0;// to be used to create a fake true sec vertex
624c07ab 4929 // make trkIDtoEntry register (temporary)
4930 Int_t trkIDtoEntry[100000];
e047b348 4931 fptAll=0.;
4932 fptAllSq=0.;
4933 fptMax[0]=0.;
4934 fptMax[1]=0.;
4935 fptMax[2]=0.;
624c07ab 4936 for(Int_t it=0;it<aod->GetNumberOfTracks();it++) {
4937 AliAODTrack *track = aod->GetTrack(it);
e047b348 4938 fptAll+=track->Pt();
4939 fptAllSq+=track->Pt()*track->Pt();
4940 if(track->Pt()>fptMax[0]){
4941 fptMax[2]=fptMax[1];
4942 fptMax[1]=fptMax[0];
4943 fptMax[0]=track->Pt();
4944 }
4945 else if(track->Pt()>fptMax[1]){
4946 fptMax[2]=fptMax[1];
4947 fptMax[1]=track->Pt();
4948 }
4949 else if(track->Pt()>fptMax[2])fptMax[2]=track->Pt();
624c07ab 4950 if(track->GetID()<0) {
4951 //printf("Track ID <0, id= %d\n",track->GetID());
4952 return;
4953 }
4954 trkIDtoEntry[track->GetID()]=it;
4955 }
4956
e047b348 4957
624c07ab 4958 // loop over D0->Kpi candidates
4959 Int_t nD0toKpi = arrayD0toKpi->GetEntriesFast();
4960 nTotD0toKpi += nD0toKpi;
4961 // cout<<"Number of D0->Kpi: "<<nD0toKpi<<endl;
4962
4963 for (Int_t iD0toKpi = 0; iD0toKpi < nD0toKpi; iD0toKpi++) {
e047b348 4964 if(aodDMC!=0x0)delete aodDMC;
624c07ab 4965
4966 isPeakD0=kFALSE;
4967 isPeakD0bar=kFALSE;
4968 isSideBandD0=kFALSE;
4969 isSideBandD0bar=kFALSE;
4970 isSideBand=kFALSE;
c387e585 4971 isinacceptance=kFALSE;
ac4c229c 4972 okd0tight=0;
4973 okd0bartight=0;
e047b348 4974 okd0tightnopid=0;
4975 okd0bartightnopid=0;
ac4c229c 4976 okd0loose=0;
4977 okd0barloose=0;
624c07ab 4978
4979 signallevel=-1;
4980
4981
4982 AliAODRecoDecayHF2Prong *d = (AliAODRecoDecayHF2Prong*)arrayD0toKpi->UncheckedAt(iD0toKpi);
4983 Bool_t unsetvtx=kFALSE;
4984 if(!d->GetOwnPrimaryVtx()) {
4985 d->SetOwnPrimaryVtx(vtx1); // needed to compute all variables
4986 unsetvtx=kTRUE;
4987 }
624c07ab 4988
624c07ab 4989
e047b348 4990 //############# SIGNALLEVEL DESCRIPTION #####################
4991 // TO BE CONSIDERED WITH GREAT CARE, only =0 and =1 (and MC selection when possible) are reliable
4992 // For the other signallevel numbers the order in which cut are applied is relevant
4993 // signallevel =0,1: is selected as signal,is signal (MC)
4994 // from 2 to 20: MC information
4995 // from 21 to 29: "detector" selection (acceptance, pt, refits)
4996 // 21: acceptance, eta (N.B. before 24 May was signallevel=9)
4997 // 22: isinfiducialacceptance
4998 // 23: single track p
4999 // 25: ITS cluster selection
5000 // 26: TPC refit
5001 // 27: ITS refit
5002 // 28: no (TOF||TPC) pid information (no kTOFpid,kTOFout,kTIME,kTPCpid,...)
5003 //
5004 // from 30 to 39: PID selection
5005 // 31: no Kaon compatible tracks found between daughters
5006 // 32: no Kaon identified tracks found (strong sel. at low momenta)
5007 // 33: both mass hypotheses are rejected
5008 // from 40 to 45: standard cut selection
5009 // from 45 to 49: special cut signal kinematic selection
5010 // 46: pstar cut
5011 // from 50 to 60: special cut selection
5012 // 51: Nvtx contributors
5013 // 52: angle between tracks
5014 // 53: vtx not reconstructed when excludind daughters
5015 // 54: track not propagated to dca when the vtx is recalculated
5016 // 55: single track normalized impact par.
5017 // 56: normalized d0xd0
5018 // 57: d0xd0 cut with vtx on the fly
5019 // 58,59: cut normalized decay lenght and decay lenght
ac4c229c 5020 //####### DATA SELECTION ####################################
5021 //
5022 // ######## CHECK FOR ACCEPTANCE ##########
5023 ptD0=d->Pt();
e047b348 5024 ptbin=fCutsTight->PtBin(ptD0);
5025 Double_t relangle=d->ProngsRelAngle(0,1);
5026 // UPV: HERE TO CHANGE WITH:
5027 // isinacceptance = (TMath::Abs(d->EtaProng(0))<fAcceptanceCuts[0]&&TMath::Abs(d->EtaProng(1))<fAcceptanceCuts[0]); //eta acceptance
5028
624c07ab 5029 //######## INVARIANT MASS SELECTION ###############
5030 CheckInvMassD0(d,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar);
c387e585 5031 if((isSideBandD0||isSideBandD0bar)&&!(isPeakD0||isPeakD0bar))isSideBand=kTRUE;// TEMPORARY, NOT DONE IN THE METHOD CALLED ABOVE ONLY FOR FURTHER SIDE BAND STUDY
624c07ab 5032
5033 // INVESTIGATE SIGNAL TYPE : ACCESS TO MC INFORMATION
bf74e6db 5034 if(fReadMC){
5035 aodDMC=GetD0toKPiSignalType(d,arrayMC,signallevel,massmumtrue,vtxTrue);
5036 }
5037 else signallevel=0;
e047b348 5038 // ACCOUNT FOR ETA & ITS CLUSTER SELECTION
5039 isinacceptance=fCutsTight->AreDaughtersSelected(d);
5040 if(!isinacceptance)signallevel=21;
5041 if(!fCutsTight->IsInFiducialAcceptance(ptD0,d->Y(421))){
5042 isinacceptance=kFALSE;
5043 signallevel=22;
5044 }
5045
5046 //###################################################################################
5047 //
5048 // ################ SPECIAL ADDITIONAL CUTS FOR SIGNAL SEARCH #######################
5049 // UPV: ITS CLUSTER SELECTION ALREADY DONE , COUNT THEM THE SAME
5050 //
5051 Int_t nlayers=0,nSPD=0,nSSD=0;
5052 Bool_t spd1=kFALSE;
5053
5054 for(Int_t idg=0;idg<d->GetNDaughters();idg++){
5055
5056 AliAODTrack *dgTrack = (AliAODTrack*)d->GetDaughter(idg);
5057 if(TESTBIT(dgTrack->GetITSClusterMap(),5)){
5058 nlayers++;
5059 nSSD++;
5060 }
5061 if(TESTBIT(dgTrack->GetITSClusterMap(),4)){
5062 nlayers++;
5063 nSSD++;
5064 }
5065 if(TESTBIT(dgTrack->GetITSClusterMap(),3))nlayers++;
5066 if(TESTBIT(dgTrack->GetITSClusterMap(),2))nlayers++;
5067 if(TESTBIT(dgTrack->GetITSClusterMap(),1)){
5068 nlayers++;
5069 nSPD++;
5070 }
5071 if(TESTBIT(dgTrack->GetITSClusterMap(),0)){
5072 nlayers++;
5073 nSPD++;
5074 spd1=kTRUE;
5075 }
5076 }
5077 /*
5078 // ######## NOW SELECTION ##########
5079 if(dgTrack->Pt()<0.5){
5080 // ########## k-Both selection ##############
5081 if(nlayers<5)signallevel=25;
5082 if(nSPD<2)signallevel=25;
5083 }
5084 else if(dgTrack->Pt()<1.){
5085 // ########## 4 its clust (1 SSD,1 SPD) && k-Any selection ##############
5086 if(nlayers<4)signallevel=25;
5087 if(nSSD<1)signallevel=25;
5088 if(nSPD<1)signallevel=25;
5089 }
5090 else{
5091 // ########## 3 its clust (1 SPD, 1 SSD) && k-Any selection ##########
5092 if(nlayers<3)signallevel=25;
5093 if(nSSD<1)signallevel=25;
5094 if(nSPD<1)signallevel=25;
5095 }
5096 }
5097 */
5098
5099
5100
5101
5102
5103
5104 //########### END OF SPECIAL CUTS ######################
5105 //
5106 //###############################################################
5107
5108 // NOW APPLY CUTS
5109 // Check tighter cuts w/o PID:
5110 //
5111 Int_t ncont=vtx1->GetNContributors();
5112 if(vtx1->GetNContributors()<1)signallevel=51;
5113 Bool_t defaultNC=SpecialSelD0(d,nVtx);
5114 Bool_t iscutusingpid=fCutsTight->GetIsUsePID();
5115 fCutsTight->SetUsePID(kFALSE);
5116 Int_t isSelectedTightNoPid=fCutsTight->IsSelected(d,AliRDHFCuts::kAll,aod);
5117 switch(isSelectedTightNoPid){
5118 case 0:
5119 okd0tightnopid=kFALSE;
5120 okd0bartightnopid=kFALSE;
5121 break;
5122 case 1:
5123 okd0tightnopid=kTRUE;
5124 okd0bartightnopid=kFALSE;
5125 break;
5126 case 2:
5127 okd0tightnopid=kFALSE;
5128 okd0bartightnopid=kTRUE;
5129 break;
5130 case 3:
5131 okd0tightnopid=kTRUE;
5132 okd0bartightnopid=kTRUE;
5133 break;
5134 default:
5135 okd0tightnopid=kTRUE;
5136 okd0bartightnopid=kTRUE;
5137 break;
5138 }
5139
5140 if(!defaultNC){
5141 okd0tightnopid=kFALSE;
5142 okd0bartightnopid=kFALSE;
5143 }
5144 // signallevel=fCutsTight->GetSelectionStep();
c387e585 5145 fSignalType->Fill(signallevel);
5146
e047b348 5147
624c07ab 5148
e047b348 5149
5150 // ######### SPECIAL SELECTION PID ##############
5151 fCutsTight->SetUsePID(iscutusingpid);
5152 Int_t isSelectedPid=fCutsTight->IsSelected(d,AliRDHFCuts::kPID,aod);
5153 Int_t isSelectedTight=fCutsTight->CombineSelectionLevels(3,isSelectedTightNoPid,isSelectedPid);
5154 switch(isSelectedTight){
5155 case 0:
5156 okd0tight=kFALSE;
5157 okd0bartight=kFALSE;
5158 break;
5159 case 1:
5160 okd0tight=kTRUE;
5161 okd0bartight=kFALSE;
5162 break;
5163 case 2:
5164 okd0tight=kFALSE;
5165 okd0bartight=kTRUE;
5166 break;
5167 case 3:
5168 okd0tight=kTRUE;
5169 okd0bartight=kTRUE;
5170 break;
5171 default:
5172 okd0tight=kTRUE;
5173 okd0bartight=kTRUE;
5174 break;
5175 }
5176
5177
624c07ab 5178
e047b348 5179
5180
ac4c229c 5181 if(((isPeakD0&&okd0tight)||(isPeakD0bar&&okd0bartight))&&isinacceptance)fSignalTypeTghCuts->Fill(signallevel);
624c07ab 5182
5183 // CHECK LOOSER CUTS
e047b348 5184 //ptbin=SetStandardCuts(ptD0,flargeInvMassCut);
5185
5186 // d->SelectD0(fCutsLoose->GetD0toKpiCuts(),okd0loose,okd0barloose);
5187 Int_t isSelectedLoose=fCutsLoose->IsSelected(d,AliRDHFCuts::kAll,aod);
5188 switch(isSelectedLoose){
5189 case 0:
5190 okd0loose=kFALSE;
5191 okd0barloose=kFALSE;
5192 break;
5193 case 1:
5194 okd0loose=kTRUE;
5195 okd0barloose=kFALSE;
5196 break;
5197 case 2:
5198 okd0loose=kFALSE;
5199 okd0barloose=kTRUE;
5200 break;
5201 case 3:
5202 okd0loose=kTRUE;
5203 okd0barloose=kTRUE;
5204 break;
5205 default:
5206 okd0loose=kTRUE;
5207 okd0barloose=kTRUE;
5208 break;
5209 }
5210 if(!defaultNC){
5211 okd0loose=kFALSE;
5212 okd0barloose=kFALSE;
5213 }
5214
5215
5216
ac4c229c 5217 if(((isPeakD0&&okd0loose)||(isPeakD0bar&&okd0barloose))&&isinacceptance)fSignalTypeLsCuts->Fill(signallevel);
624c07ab 5218
5219
e047b348 5220
624c07ab 5221 //################### FILL HISTOS ########################
5222 //################################################################
5223 //
5224 //######## improvement: SPEED HERE CAN BE IMPROVED: CALCULATE ONCE AND FOR ALL
5225 // CANDIDATE VARIABLES
5226
e047b348 5227
5228
624c07ab 5229 //NO CUTS Case: force okD0 and okD0bar = kTRUE
e047b348 5230 // special cuts are applied also in the "NO Cuts" case
5231 //
5232 //
5233 // SPECIAL modification:
5234 // IMPORTANT!!!!!! ONLY FOR TEMPORARY CONVENIENCE
5235 // IF fusePID is kTRUE, NO CUTS BECOMES NO PID case with tight cuts (fill signal histos when 30<=signallevel<40 )!!!!!!!!!!
5236 if(!fusePID){
5237 okd0tightnopid=defaultNC;
5238 okd0bartightnopid=defaultNC;
5239 }
5240 // ############ MISALIGN HERE: TEMPORARY SOLUTION ##########
5241 //d->Misalign("full14");
5242 if(signallevel==1||signallevel==0)FillHistos(d,flistNoCutsSignal,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue); // else if(fusePID&&signallevel>=30&&signallevel<40)FillHistos(d,flistNoCutsSignal,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);// OLD LINE, COULD BE REMOVED
5243 else if(signallevel==2)FillHistos(d,flistNoCutsFromDstar,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5244 else if(signallevel==3||signallevel==4)FillHistos(d,flistNoCutsFromB,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5245 else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10||signallevel==9)FillHistos(d,flistNoCutsBack,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5246 else if(signallevel==5||signallevel==6)FillHistos(d,flistNoCutsOther,ptbin,okd0tightnopid,okd0bartightnopid,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5247
624c07ab 5248
e047b348 5249
624c07ab 5250 //LOOSE CUTS Case
bf74e6db 5251 if(signallevel==1||signallevel==0)FillHistos(d,flistLsCutsSignal,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
ac4c229c 5252 else if(signallevel==2)FillHistos(d,flistLsCutsFromDstar,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5253 else if(signallevel==3||signallevel==4)FillHistos(d,flistLsCutsFromB,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
c387e585 5254 else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistLsCutsBack,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
ac4c229c 5255 else if(signallevel==5||signallevel==6)FillHistos(d,flistLsCutsOther,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
624c07ab 5256
5257 //TIGHT CUTS Case
bf74e6db 5258 if(signallevel==1||signallevel==0)FillHistos(d,flistTghCutsSignal,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
ac4c229c 5259 else if(signallevel==2)FillHistos(d,flistTghCutsFromDstar,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5260 else if(signallevel==3||signallevel==4)FillHistos(d,flistTghCutsFromB,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
c387e585 5261 else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistTghCutsBack,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
ac4c229c 5262 else if(signallevel==5||signallevel==6)FillHistos(d,flistTghCutsOther,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
5263
624c07ab 5264
e047b348 5265
5266
5267 // ######## PRINTING INFO FOR D0-like candidate
5268
5269 if(nSPD==2&&ptD0>2.){
5270 if((okd0tight&&TMath::Abs(invMassD0-1.864)<0.01)||(okd0bartight&&TMath::Abs(invMassD0bar-1.864)<0.01)){
5271 printf("INFO FOR DRAWING: \n pt: %f \n Rapidity: %f \n Period Number: %d \n Run Number: %d \n BunchCrossNumb: %d \n OrbitNumber: %d \n",ptD0,d->Y(421),aod->GetPeriodNumber(),aod->GetRunNumber(),aod->GetBunchCrossNumber(),aod->GetOrbitNumber());
5272printf("PrimVtx NContributors: %d \n Prongs Rel Angle: %f \n \n",ncont,relangle);
5273 }
5274 }
5275 if(aodDMC!=0x0){
624c07ab 5276 delete aodDMC;
e047b348 5277 aodDMC=0x0;
624c07ab 5278 }
ac4c229c 5279
624c07ab 5280 if(unsetvtx) d->UnsetOwnPrimaryVtx();
ac4c229c 5281
624c07ab 5282 }
c387e585 5283
624c07ab 5284 // ####################### POST OUTPUT TLIST DATA #########################
5285 // ####### histo for #AOD entries already posted
5286
5287 PostData(2,fSignalType);
5288 PostData(3,fSignalTypeLsCuts);
5289 PostData(4,fSignalTypeTghCuts);
e047b348 5290 PostData(5,flistMCproperties);
5291 PostData(6,flistNoCutsSignal);
5292 PostData(7,flistNoCutsBack);
5293 PostData(8,flistNoCutsFromB);
5294 PostData(9,flistNoCutsFromDstar);
5295 PostData(10,flistNoCutsOther);
5296 PostData(11,flistLsCutsSignal);
5297 PostData(12,flistLsCutsBack);
5298 PostData(13,flistLsCutsFromB);
5299 PostData(14,flistLsCutsFromDstar);
5300 PostData(15,flistLsCutsOther);
5301 PostData(16,flistTghCutsSignal);
5302 PostData(17,flistTghCutsBack);
5303 PostData(18,flistTghCutsFromB);
5304 PostData(19,flistTghCutsFromDstar);
5305 PostData(20,flistTghCutsOther);
624c07ab 5306
5307 return;
5308}
e047b348 5309//_________________________________________
5310Int_t AliAnalysisTaskSECharmFraction::SetStandardCuts(Float_t *&ptbinlimits){// SET CUTS USED BEFORE UP TO JULY 2010; (THEY CHANGED LATER)
5311 // DOES NOT SET NPTBINS AND PT BIN LIMITS IN *this object:
5312 // it returns nptbins and set bin limits in ptbinlimits pointer
5313
5314 if(fCutsTight){
5315 delete fCutsTight;fCutsTight=NULL;
5316 }
5317 if(fCutsLoose){
5318 delete fCutsLoose;fCutsLoose=NULL;
5319 }
5320
5321 fCutsTight = new AliRDHFCutsD0toKpi();
5322 fCutsTight->SetName("D0toKpiCutsStandard");
5323 fCutsTight->SetTitle("Standard Cuts for D0 analysis");
5324
5325 fCutsLoose = new AliRDHFCutsD0toKpi();
5326 fCutsLoose->SetName("D0toKpiCutsLoose");
5327 fCutsLoose->SetTitle("Loose Cuts for D0 analysis");
5328
5329 // EVENT CUTS
5330 fCutsTight->SetMinVtxContr(4);
5331 fCutsLoose->SetMinVtxContr(4);
5332
5333 // TRACKS ON SINGLE TRACKS
5334 AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default");
5335 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
5336 esdTrackCuts->SetRequireTPCRefit(kTRUE);
5337 esdTrackCuts->SetRequireITSRefit(kTRUE);
5338 esdTrackCuts->SetMinNClustersITS(4);
5339 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
5340 esdTrackCuts->SetMinDCAToVertexXY(0.);
5341 esdTrackCuts->SetEtaRange(-0.8,0.8);
5342 esdTrackCuts->SetPtRange(0.3,1.e10);
5343
5344 fCutsTight->AddTrackCuts(esdTrackCuts);
5345
5346
5347 // const Double_t ptmin = 0.1;
5348 const Double_t ptmax = 9999.;
5349 const Int_t nptbins = 7;
5350 const Int_t nvars=9;
5351 Float_t *ptbins=new Float_t[nptbins+1];
5352 ptbins[0]=0.;
5353 ptbins[1]=1.;
5354 ptbins[2]=2.;
5355 ptbins[3]=3.;
5356 ptbins[4]=5.;
5357 ptbins[5]=8.;
5358 ptbins[6]=12.;
5359 ptbins[7]=ptmax;
5360
5361 fCutsTight->SetPtBins(nptbins+1,ptbins);
5362 fCutsLoose->SetPtBins(nptbins+1,ptbins);
5363
5364 /* Float_t cutsArrayD0toKpiStand_1[9]={0.200,300.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-35000.*1E-8,0.7}; // pt<1
5365 Float_t cutsArrayD0toKpiStand_2[9]={0.200,200.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-30000.*1E-8,0.8}; // 1<=pt<2
5366 Float_t cutsArrayD0toKpiStand_3[9]={0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-26000.*1E-8,0.94}; // 2<=pt<3
5367 Float_t cutsArrayD0toKpiStand_4[9]={0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-15000.*1E-8,0.88}; // 3<=pt<5
5368 Float_t cutsArrayD0toKpiStand_5[9]={0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9}; // 5<=pt<8
5369 Float_t cutsArrayD0toKpiStand_6[9]={0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9}; // 8<pt<12
5370 Float_t cutsArrayD0toKpiStand_7[9]={0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9}; // pt>12
5371 */
5372
5373
5374
5375 Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.200,300.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-40000.*1E-8,0.7},/* pt<1*/
5376 {0.200,200.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-32000.*1E-8,0.8},/* 1<pt<2 */
5377 {0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-26000.*1E-8,0.94},/* 2<pt<3 */
5378 {0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-15000.*1E-8,0.88},/* 3<pt<5 */
5379 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9},/* 5<pt<8 */
5380 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9},/* 8<pt<12 */
5381 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9}
5382 };/* pt>12 */
5383
5384 Float_t cutsMatrixD0toKpiLoose[nptbins][nvars]={{0.200,300.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-35000.*1E-8,0.75},/* pt<1*/
5385 {0.200,200.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-28000.*1E-8,0.75},/* 1<pt<2 */
5386 {0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-30000.*1E-8,0.9},/* 2<pt<3 */
5387 {0.200,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-12000.*1E-8,0.86},/* 3<pt<5 */
5388 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.9},/* 5<pt<8 */
5389 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-5000.*1E-8,0.88},/* 8<pt<12 */
5390 {0.200,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.*1E-8,0.85}
5391 };/* pt>12 */
5392
5393 /* for (Int_t ibin=0;ibin<=nptbins;ibin++){
5394 for (Int_t ivar = 0; ivar<nvars; ivar++){
5395 printf("cutsMatrixD0toKpi[%d][%d] = %f\n",ivar, ibin,cutsMatrixD0toKpiStand[ivar][ibin]);
5396 }
5397 }*/
5398 //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
5399 Float_t **cutsMatrixTransposeStand=new Float_t*[nvars];
5400 for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=new Float_t[nptbins];
5401 Float_t **cutsMatrixTransposeLoose=new Float_t*[nvars];
5402 for(Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeLoose[iv]=new Float_t[nptbins];
5403
5404 for (Int_t ibin=0;ibin<nptbins;ibin++){
5405 for (Int_t ivar = 0; ivar<nvars; ivar++){
5406 cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];
5407 cutsMatrixTransposeLoose[ivar][ibin]=cutsMatrixD0toKpiLoose[ibin][ivar];
5408 //printf("cutsMatrixD0toKpi[%d][%d] = %f\n",ibin, ivar,cutsMatrixD0toKpiStand[ibin][ivar]);
5409 }
5410 }
5411
5412
5413
5414
5415 fCutsTight->SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
5416 fCutsLoose->SetCuts(nvars,nptbins,cutsMatrixTransposeLoose);
5417 fCutsTight->SetUseSpecialCuts(kTRUE);
5418 fCutsLoose->SetUseSpecialCuts(kTRUE);
5419 fCutsTight->SetRemoveDaughtersFromPrim(kTRUE);
5420 fCutsLoose->SetRemoveDaughtersFromPrim(kTRUE);
5421 fCutsTight->SetUsePID(kTRUE);
5422 fCutsLoose->SetUsePID(kTRUE);
5423
5424 Printf("STANDARD CUTS OBJECT : \n");
5425 fCutsTight->PrintAll();
5426 Printf("SECOND CUTS OBJECT : \n");
5427 fCutsLoose->PrintAll();
5428
5429 ptbinlimits=ptbins;//new Float_t[nptbins+1]; //ptbins;
5430 /* new Float[nptbins];
5431 for(Int_t ib=0;ib<nptbins;ib++)ptbinlimits[ib]=ptbins[ib];*/
5432
5433 return nptbins;
5434
5435}
624c07ab 5436
5437//_________________________________________
5438Int_t AliAnalysisTaskSECharmFraction::SetStandardCuts(Double_t pt,Double_t invMassCut){
e047b348 5439 // UPV: this should set the cut object
5440
624c07ab 5441 //#############
5442 // TEMPORARY: to be change in :
5443 // for(j<nptbins)
5444 // if pt < standardptbin[j+1]
5445 // SetCuts, bin=j
5446 // break
5447 //
5448 // the way the cuts are set is for further development
5449 // (to be interfaced with AliAnalsysTaskSETuneCuts)
c387e585 5450 //
5451 // Cuts:
5452 // 0 = inv. mass half width [GeV]
5453 // 1 = dca [cm]
5454 // 2 = cosThetaStar
5455 // 3 = pTK [GeV/c]
5456 // 4 = pTPi [GeV/c]
5457 // 5 = d0K [cm] upper limit!
5458 // 6 = d0Pi [cm] upper limit!
5459 // 7 = d0d0 [cm^2]
e047b348 5460 // 8 = cosThetaPoint
5461 Int_t ptbin=-1;
5462
5463
c387e585 5464
e047b348 5465 /*//#######################################################################
5466 //###########################################################################
5467 // STANDARD SETS OF CUTS ("tight"~PPR like; commented loose are more stringent than "tight")
5468 // #########################################################################
624c07ab 5469 Int_t ptbin=-1;
e047b348 5470 if(pt>0. && pt<=1.) {
5471 ptbin=0;
5472 fCutsTight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0002,0.5);
5473 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
5474 fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.3,0.3,1.,1.,-0.0002,0.7);
5475 }
5476 if(pt>1. && pt<=2.) {
624c07ab 5477 ptbin=1;
e047b348 5478 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,-0.0002,0.6);
5479 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5480 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.3,0.3,1.,1.,-0.0001,0.7);
624c07ab 5481 //printf("I'm in the bin %d\n",ptbin);
5482 }
e047b348 5483 if(pt>2. && pt<=3.) {
624c07ab 5484 ptbin=2;
e047b348 5485 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,-0.0002,0.6);
5486 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5487 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.3,0.3,1.,1.,-0.0001,0.7);
5488 //printf("I'm in the bin %d\n",ptbin);
5489 }
5490 if(pt>3. && pt<=5.){
5491 ptbin=3;
5492 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.0001,0.8);
5493 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
5494 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.4,0.4,1.,1.,-0.0001,0.75);
624c07ab 5495 //printf("I'm in the bin %d\n",ptbin);
5496 }
5497 if(pt>5.){
e047b348 5498 ptbin=4;
5499 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00005,0.8);
5500 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
5501 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.5,0.5,1.,1.,-0.00005,0.75);
5502 }//if(pt>5)
5503 return ptbin;
5504 //############################################################################
5505 */
5506
5507
5508
5509 /* //#######################################################################
5510 //################# VARY CUTS for d0xd0 STUDY ##########################
5511
5512if(pt>0. && pt<=1.) {
5513 ptbin=0;
5514 fCutsTight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0002,0.5);
5515 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
5516 fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.3,0.3,1.,1.,-0.0002,0.7);
5517 }
5518 if(pt>1. && pt<=2.) {
5519 ptbin=1;
5520 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,0.2,0.6);
5521 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5522 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.3,0.3,1.,1.,-0.0001,0.1);
5523 //printf("I'm in the bin %d\n",ptbin);
5524 }
5525 if(pt>2. && pt<=3.) {
5526 ptbin=2;
5527 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,0.2,0.6);
5528 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5529 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.3,0.3,1.,1.,-0.0001,0.1);
5530 //printf("I'm in the bin %d\n",ptbin);
5531 }
5532 if(pt>3. && pt<=5.){
5533 ptbin=3;
5534 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,0.2,0.8);
5535 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
5536 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.3,0.4,0.4,1.,1.,-0.0001,0.1);
5537 //printf("I'm in the bin %d\n",ptbin);
5538 }
5539 if(pt>5.){
5540 ptbin=4;
5541 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,0.2,0.8);
5542 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
5543 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.5,0.5,1.,1.,-0.00005,0.1);
5544 }//if(pt>5)
5545 return ptbin;
5546 // #################################################################
5547 */
5548
5549 //##########################################################################
5550 //################## CUTS with d0xd0 cut released #########################
5551 //### and TGHC cuts d0K and d0Pi to 0.1 instead of 0.05
5552 //### USED FOR PHDthesis
5553 //##########################################################################
5554
5555 /* if(pt>0. && pt<=1.) {
5556 ptbin=0;
5557 fCutsTight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.1,0.1,-0.000,0.5);
5558 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
5559 fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.3,0.3,1.,1.,-0.000,0.7);
5560 }
5561 if(pt>1. && pt<=2.) {
5562 ptbin=1;
5563 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.1,0.1,-0.000,0.6);
5564 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5565 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.4,0.4,1.,1.,-0.0000,0.7);
5566 //printf("I'm in the bin %d\n",ptbin);
5567 }
5568 if(pt>2. && pt<=3.) {
5569 ptbin=2;
5570 fCutsTight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.1,0.1,-0.000,0.6);
5571 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5572 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.4,0.4,1.,1.,-0.000,0.7);
5573 //printf("I'm in the bin %d\n",ptbin);
5574 }
5575 if(pt>3. && pt<=5.){
5576 ptbin=3;
5577 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.000,0.8);
5578 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
5579 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.5,0.5,1.,1.,-0.000,0.75);
5580 //printf("I'm in the bin %d\n",ptbin);
5581 }
5582 if(pt>5.){
5583 ptbin=4;
5584 fCutsTight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.0000,0.8);
5585 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
5586 fCutsLoose->SetD0toKpiCuts(invMassCut,0.03,0.8,0.5,0.5,1.,1.,-0.0000,0.75);
5587 }//if(pt>5)
5588 return ptbin;
5589 */
5590
5591
5592
5593
5594 //########## LOOKING FOR SIGNAL #####################
5595 /*
5596 if(pt>0. && pt<=1.) {
5597 ptbin=0;
5598 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.03,0.8,0.3,0.3,0.1,0.1,-0.00035,0.7);
5599 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
5600 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.04,0.8,0.3,0.3,0.1,0.1,-0.00025,0.7);
5601 }
5602 if(pt>1. && pt<=2.) {
5603 ptbin=1;
5604 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.4,0.4,0.1,0.1,-0.00035,0.8);
5605 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5606 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.03,0.8,0.3,0.3,0.1,0.1,-0.0025,0.75);
5607 //printf("I'm in the bin %d\n",ptbin);
5608 }
5609 if(pt>2. && pt<=3.) {
5610 ptbin=2;
5611 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.00026,0.94);
5612 //fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
5613 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.0002,0.92);
5614 //printf("I'm in the bin %d\n",ptbin);
5615 }
5616 if(pt>3. && pt<=5.){
5617 ptbin=3;
5618 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.00015,0.88);
5619 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
5620 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.00015,0.9);
5621 //printf("I'm in the bin %d\n",ptbin);
5622 }
5623 if(pt>5.&& pt<=8.){
5624 ptbin=4;
5625 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.015,0.8,0.7,0.7,0.1,0.1,-0.0001,0.9);
5626 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
5627 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.02,0.8,0.7,0.7,0.1,0.1,-0.0000,0.88);
5628 }//if(pt>5)
5629 if(pt>8.&&pt<=12.){
5630 ptbin=5;
5631 fCutsTight->SetD0toKpiCuts(5*invMassCut,0.015,0.8,0.7,0.7,0.1,0.1,-0.0001,0.9);
5632 // fCutsLoose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
5633 fCutsLoose->SetD0toKpiCuts(5*invMassCut,0.015,0.8,0.7,0.7,0.1,0.1,-0.0005,0.88);
624c07ab 5634 }//if(pt>5)
e047b348 5635
624c07ab 5636 return ptbin;
e047b348 5637 */
5638 printf("AliAnalysisTaskSECharmFraction::Obsolete method! Parameters pt=%f,invmasscut=%f not used \n",pt,invMassCut);
5639 return ptbin;
5640
624c07ab 5641}
5642
5643//__________________________________________________________
5644void AliAnalysisTaskSECharmFraction::CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar){
5645 //Check wheter the candidate inv. mass is compatible with signal or sideband inv. mass selection
5646
5647 d->InvMassD0(invMassD0,invMassD0bar);
5648 //CHECK if ISPEAK
5649 if(TMath::Abs(invMassD0-fmD0PDG)<fsignalInvMassCut)isPeakD0=kTRUE;
5650 if(TMath::Abs(invMassD0bar-fmD0PDG)<fsignalInvMassCut)isPeakD0bar=kTRUE;
5651 //CHECK if ISSIDEBAND: no constraint is present between signal region definition and side band definition
5652 // ######## TO BE CHANGED the distinction between sidebandD0 and sidebandD0bar is meaningless
5653 // and it is present only for side band region study (see which inv mass has the D0(D0bar)
5654 // in case the D0bar(D0) is in the sideband) #######
5655 if(TMath::Abs(invMassD0-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){
5656 isSideBandD0=kTRUE;
5657 }
5658 if(TMath::Abs(invMassD0bar-fmD0PDG)>fsidebandInvMassCut&&TMath::Abs(invMassD0bar-fmD0PDG)<fsidebandInvMassCut+fsidebandInvMassWindow){
5659 isSideBandD0bar=kTRUE;
5660 }
5661
5662}
5663
5664
5665
5666//_______________________
ac4c229c 5667AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::GetD0toKPiSignalType(const AliAODRecoDecayHF2Prong *d,TClonesArray *arrayMC,Int_t &signaltype,Double_t &massMumTrue,Double_t *primaryVtx){
624c07ab 5668 //THIS METHOD CHECK THE TYPE OF SIGNAL/BACKGROUND THE CANDIDATE IS.
5669 // IF (!AND ONLY IF) THE TWO DAUGHTERS COME FROM A COMMONE MOTHER A FAKE TRUE SECONDARY VERTEX IS CONSTRUCTED (aodDMC)
5670 //
5671 // THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to
e047b348 5672 // 1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB
5673 // then background categories: -1: one or both daughters is a fake track
5674 // 5: both daughters come from a D meson != D0
5675 // 6: both daughters come from a D0->4prongs
5676 // 7: both daughetrs are primaries
5677 // 8: generic background (can include one of the previous if desired)
5678 // 9: daughters out of acceptance
5679 // 10: pathologic cases (not clear)
5680 // 11: end of the method without output
5681 // 12: different result than MatchToMC method
5682
5683 AliAODMCParticle *mum1=0x0;
5684 AliAODMCParticle *b1=0x0,*b2=0x0;
5685 AliAODMCParticle *grandmoth1=0x0;
624c07ab 5686 massMumTrue=-1;
5687
5688 Int_t pdgmum,dglabels[2],matchtoMC;
5689 Int_t pdgdaughters[2]={211,321};
5690 // get daughter AOD tracks
5691 AliAODTrack *trk0 = (AliAODTrack*)d->GetDaughter(0);
5692 AliAODTrack *trk1 = (AliAODTrack*)d->GetDaughter(1);
e047b348 5693 AliAODRecoDecayHF *aodDMC=0x0;
5694 if(trk0==0x0||trk1==0x0){
624c07ab 5695 AliDebug(2,"Delete tracks I AM \n");
5696
5697 signaltype=-1;
5698 return aodDMC;
5699
5700 }
5701 dglabels[0]=trk0->GetLabel();
5702 dglabels[1]=trk1->GetLabel();
e047b348 5703 if(dglabels[0]<0||dglabels[1]<0){
624c07ab 5704 AliDebug(2,"HERE I AM \n");
5705
5706 //fake tracks
5707
7eb5a89e 5708 signaltype=-1;
624c07ab 5709 return aodDMC;
5710
5711 }
5712 // printf("Before entering the MC checks \n");
5713
5714 b1=(AliAODMCParticle*)arrayMC->At(trk0->GetLabel());
5715 b2=(AliAODMCParticle*)arrayMC->At(trk1->GetLabel());
e047b348 5716 if(!b1||!b2){
5717 //Tracks with no mother ??? FAKE DECAY VERTEX
43e4f69a 5718 signaltype=10;
5719 return aodDMC;
5720 }
43e4f69a 5721 if(b1->GetMother()<0||b2->GetMother()<0){
e047b348 5722 //Tracks with no mother ??? FAKE DECAY VERTEX
624c07ab 5723 signaltype=10;
5724 return aodDMC;
5725 }
5726
5727 mum1=(AliAODMCParticle*)arrayMC->At(b1->GetMother());
5728 // mum2=(AliAODMCParticle*)arrayMC->At(b2->GetMother());//FOR FURTHER USE
5729
5730 if(b1->GetMother()!=b2->GetMother()){
5731 //Check the label of the mother is the same
5732 // NOT SAME MOTHER
5733
5734
5735 signaltype=8;
5736 return aodDMC;
5737 }
5738 massMumTrue=mum1->GetCalcMass();
5739
5740 matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters);
5741 aodDMC=ConstructFakeTrueSecVtx(b1,b2,mum1,primaryVtx);
5742
e047b348 5743 if(aodDMC==0x0){
624c07ab 5744 signaltype=10;
5745 return aodDMC;
5746 }
5747
5748 // if((mum1->GetPdgCode()!=mum2->GetPdgCode()))continue; //Check the mother is the same particle
5749 // printf("Particle codes: tr1: %d, tr2: %d, mum1: %d, mum 2: %d \n",b1->GetPdgCode(),b2->GetPdgCode(),mum1->GetPdgCode(),mum2->GetPdgCode());
5750 if(!((TMath::Abs(b1->GetPdgCode())==321&&TMath::Abs(b1->GetPdgCode())!=211)||(TMath::Abs(b1->GetPdgCode())==211&&TMath::Abs(b1->GetPdgCode()!=321)))){
5751 // Not a Kaon and a Pion
5752
5753 signaltype=8;
5754 return aodDMC;
5755 }
5756
5757 pdgmum=mum1->GetPdgCode();
5758 if(TMath::Abs(pdgmum)!=421){
5759 if(TMath::Abs(pdgmum)==411||TMath::Abs(pdgmum)==431||TMath::Abs(pdgmum)==443){
5760 // IT IS A SECONDARY VERTEX FROM CHARM BUT NOT A D0
5761
5762 signaltype=5;
5763 return aodDMC;
5764 }
5765 else {
5766 signaltype=8;
5767 return aodDMC;
5768 }
5769 }
5770
5771 if(mum1->GetDaughter(1)-mum1->GetDaughter(0)+1!=2){
5772 // from D0 but NOT A 2 PRONG DECAY
5773 signaltype=6;
5774 return aodDMC;
5775
5776 }
5777
43e4f69a 5778 if(mum1->GetMother()<0){
624c07ab 5779 // A particle coming from nothing
5780 signaltype=10;
5781 return aodDMC;
c387e585 5782
624c07ab 5783 }
7eb5a89e 5784 Bool_t isfromDstar=kFALSE;
5785 // matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters);
624c07ab 5786 grandmoth1=(AliAODMCParticle*)arrayMC->At(mum1->GetMother());
7eb5a89e 5787 if(TMath::Abs(grandmoth1->GetPdgCode())==413||TMath::Abs(grandmoth1->GetPdgCode())==423)isfromDstar=kTRUE;// D0 COMING FROM A D0*
5788
c387e585 5789 /*
5790 //CHECK FOR CABIBBO SUPPRESSED DECAY
5791 Int_t isCabibSup=0,pdgKaon;
5792
5793 pdgKaon=b1->GetPdgCode();
5794 if(TMath::Abs(pdgKaon)!=321)pdgKaon=b2->GetPdgCode();
5795 if(pdgmum>0&&pdgKaon>0)isCabibSup=1;
5796 if(pdgmum<0&&pdgKaon<0)isCabibSup=1;
5797 if(isCabibSup){
5798 signaltype=0;
5799 return aodDMC;
5800 }
5801 */
624c07ab 5802 // if(fcheckMCD0){//THIS CHECK IS NEEDED TO AVOID POSSIBLE FAILURE IN THE SECOND WHILE, FOR DEBUGGING
5803 while(TMath::Abs(grandmoth1->GetPdgCode())!=4&&TMath::Abs(grandmoth1->GetPdgCode())!=5){
43e4f69a 5804 if(grandmoth1->GetMother()<0){
624c07ab 5805 //### THE FOLLOWING IN CASE OF DEBUGGING ##########à
5806 /*printf("mother=-1, pdgcode: %d \n",grandmoth1->GetPdgCode());
5807 Int_t son=grandmoth1->GetDaughter(0);
5808 sonpart=(AliAODMCParticle*)arrayMC->At(son);
5809 while(TMath::Abs(sonpart->GetPdgCode())!=421){
5810 printf("mother=-1, pdgcode: %d \n",sonpart->GetPdgCode());
5811 son++;
5812 sonpart=(AliAODMCParticle*)arrayMC->At(son);
5813 }*/
5814
5815 signaltype=10;
5816 return aodDMC;
5817 }
5818 grandmoth1=(AliAODMCParticle*)arrayMC->At(grandmoth1->GetMother());
5819 }
5820
5821 if(TMath::Abs(grandmoth1->GetPdgCode())==4){
5822 if(matchtoMC!=-1){
7eb5a89e 5823
5824 if(isfromDstar)signaltype=2;
5825 else signaltype=1;
624c07ab 5826 return aodDMC;
5827 }
5828 else {
5829 signaltype=12;
5830 return aodDMC;
7eb5a89e 5831
624c07ab 5832 }
5833 }
5834 else if(TMath::Abs(grandmoth1->GetPdgCode())==5){
5835 if(matchtoMC!=-1){
7eb5a89e 5836 if(isfromDstar)signaltype=4;
5837 else signaltype=3;
624c07ab 5838 return aodDMC;
5839
5840 }
5841 else {
5842
5843 signaltype=12;
5844 return aodDMC;
5845 }
5846 }
5847 signaltype=11;// JUST FOR SAFETY: SHOULD NEVER REACH THIS POINT
5848 return aodDMC;
5849 // return 11;
5850}
5851
5852//___________________________________
ac4c229c 5853AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::ConstructFakeTrueSecVtx(const AliAODMCParticle *b1, const AliAODMCParticle *b2, const AliAODMCParticle *mum,Double_t *primaryVtxTrue){
624c07ab 5854 // CONSTRUCT A FAKE TRUE SECONDARY VERTEX (aodDMC)
5855 //!!!NOTE THAT ONLY ONE MOTHER IS CONSIDERED: THE METHOD REQUIRES THE DAUGHTERS COME FROM THE SAME MOTHER !!
e047b348 5856 if(b1==0x0||b2==0x0)return 0x0;
5857 if(mum==0x0)return 0x0;
624c07ab 5858 Double_t pD[3],xD[3],pXtrTrue[2],pYtrTrue[2],pZtrTrue[2],xtr1[3],xtr2[3];
5859 Int_t charge[2]={0,0};
5860 if(b1->Charge()==-1)charge[0]=1;
5861 else {
5862 if(b2->Charge()==-1){
5863 //printf("Same charges for prongs \n");
e047b348 5864 if(!fLikeSign)return 0x0;
624c07ab 5865 }
5866 charge[1]=1;
5867 }
5868
5869 pXtrTrue[charge[0]]=b1->Px();
5870 pYtrTrue[charge[0]]=b1->Py();
5871 pZtrTrue[charge[0]]=b1->Pz();
5872 if(!b1->XvYvZv(xtr1)){
e047b348 5873 return 0x0;
624c07ab 5874 }
5875
5876 pXtrTrue[charge[1]]=b2->Px();
5877 pYtrTrue[charge[1]]=b2->Py();
5878 pZtrTrue[charge[1]]=b2->Pz();
5879
5880 if(!mum->PxPyPz(pD)){
5881 //printf("!D from B:Get momentum failed \n");
e047b348 5882 return 0x0;
624c07ab 5883 }
5884 if(!mum->XvYvZv(xD)){
5885 //printf("!D from B:Get position failed \n");
e047b348 5886 return 0x0;
624c07ab 5887 }
5888 /* ############ THIS HAPPENS FROM TIME TO TIME: NUMERIC PROBLEM KNOWN #################
5889 if(pXtrTrue[0]+pXtrTrue[1]!=pD[0]){
5890 }*/
5891
5892
5893 if(!b2->XvYvZv(xtr2)){
e047b348 5894 return 0x0;
624c07ab 5895 }
5896 Double_t d0dummy[2]={0.,0.};//TEMPORARY : dummy d0 for AliAODRecoDeay constructor
5897 AliAODRecoDecayHF* aodDMC=new AliAODRecoDecayHF(primaryVtxTrue,xD,2,0,pXtrTrue,pYtrTrue,pZtrTrue,d0dummy);
5898
5899 /* ######## THE FOLLOWINF FOR DEBUGGING ############
5900 Printf("testing the Fake vertex: SecVtxX: %f, Px: %f, Py: %f, Pz:%f \n ",aodDMC->GetSecVtxX(),aodDMC->Px(),aodDMC->Py(),aodDMC->Pz());
5901 Printf("pD: x=%f, y=%f,z=%f\n",pD[0],pD[1],pD[2]);
5902 Printf("Daughters :px1:%f, px2:%f \n",pXtrTrue[0],pXtrTrue[1]);
5903 Printf("Daughters :py1:%f, py2:%f \n",pYtrTrue[0],pYtrTrue[1]);
5904 Printf("Daughters :pz1:%f, pz2:%f \n",pZtrTrue[0],pZtrTrue[1]);
5905 Printf("Mother pdg: %d",mum->GetPdgCode());
5906 Printf("Impact Par Prod: %f\n",aodDMC->ImpParXY());
5907 */
5908
5909 return aodDMC;
5910}
5911
5912//________________________________________________________
ac4c229c 5913Bool_t AliAnalysisTaskSECharmFraction::FillHistos(AliAODRecoDecayHF2Prong *d,TList *&list,Int_t ptbin,Int_t okD0,Int_t okD0bar,Double_t invMassD0,Double_t invMassD0bar,Bool_t isPeakD0,Bool_t isPeakD0bar,Bool_t isSideBand,Double_t massmumtrue,AliAODRecoDecayHF *aodDMC,Double_t *vtxTrue){//FILL THE HISTOGRAMS: TAKE THE HISTOS FROM THE list NAME
5914
624c07ab 5915
5916 if((!okD0)&&(!okD0bar))return kTRUE;
e047b348 5917 if(ptbin==-1)return kTRUE;
5918 // flistNoCutsSignal->Add(hptD0NCsign);
5919 // flistNoCutsSignal->Add(hptD0VsMaxPtNCsign);
5920 // flistNoCutsSignal->Add(hptD0PTallsqrtNCsign);
5921 // flistNoCutsSignal->Add(hptD0PTallNCsign);
5922
5923 // %%%%%% TO BE DONE
5924 // flistNoCutsSignal->Add(hptD0vsptBNCsign);
5925 // flistNoCutsSignal->Add(hpD0vspBNCsign);
5926 //flistNoCutsSignal->Add(hptD0vsptcquarkNCsign);
5927 //flistNoCutsSignal->Add(hpD0vspcquarkNCsign);
5928 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%
5929 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
624c07ab 5930
e047b348 5931 // DONE
5932 //hd0zD0ptLSCsign_pt
5933 //hInvMassLSCsign_pt
5934 //hetaLSCsign_pt
5935 //
5936 // %%% TO BE DONE %%
5937 //hCosPDPBLSCsign_pt
5938 //hCosPcPDLSCsign_pt
5939
5940
5941
5942
5943
624c07ab 5944 // ######### Get Standard label for hist in tlist ###############
5945 TString namehist=list->GetName(),str;
5946 namehist.ReplaceAll("list","");
5947
5948 // ######### Global properties histos #################
ac4c229c 5949 // ####### take care: only for candidates which pass the cuts !! not for side band ########
5950 if((isPeakD0&&okD0)||(isPeakD0bar&&okD0bar)){
5951 str="hCPtaVSd0d0";
5952 str.Append(namehist.Data());
5953 ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0(),d->CosPointingAngle());
5954
5955 str="hSecVtxZ";
5956 str.Append(namehist.Data());
5957 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxZ());
5958
5959 str="hSecVtxX";
5960 str.Append(namehist.Data());
5961 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.);
5962
5963 str="hSecVtxY";
5964 str.Append(namehist.Data());
5965 ((TH1F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxY()*10000.);
5966
5967 str="hSecVtxXY";
5968 str.Append(namehist.Data());
5969 ((TH2F*)list->FindObject(str.Data()))->Fill(d->GetSecVtxX()*10000.,d->GetSecVtxY()*10000.);
5970
5971 str="hSecVtxPhi";
5972 str.Append(namehist.Data());
5973 ((TH1F*)list->FindObject(str.Data()))->Fill(TMath::ATan2(d->GetSecVtxY()*10000.,d->GetSecVtxX()*10000.)*TMath::RadToDeg());
5974
e047b348 5975
5976 str="hd0singlTrack";
5977 str.Append(namehist.Data());
5978 ((TH1F*)list->FindObject(str.Data()))->Fill(d->Getd0Prong(0)*10000.);
5979 ((TH1F*)list->FindObject(str.Data()))->Fill(d->Getd0Prong(1)*10000.);
5980
ac4c229c 5981 str="hCPta";
5982 str.Append(namehist.Data());
5983 ((TH1F*)list->FindObject(str.Data()))->Fill(d->CosPointingAngle());
5984
5985 str="hd0xd0";
5986 str.Append(namehist.Data());
5987 ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0());
e047b348 5988
5989 //%%%%%%%% NEW HISTO %%%%%%%%%%
5990 str="hdca";
5991 str.Append(namehist.Data());
5992 ((TH1F*)list->FindObject(str.Data()))->Fill(1e4*d->GetDCA());
5993
5994 str="hcosthetastar";
5995 str.Append(namehist.Data());
5996 if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(d->CosThetaStarD0());
5997 if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(d->CosThetaStarD0bar());
5998
5999 str="hptD0";
6000 str.Append(namehist.Data());
6001 ((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt());
6002
6003 str="hptD0VsMaxPt";
6004 str.Append(namehist.Data());
6005 Int_t pr=0;
6006 if(d->PtProng(1)>d->PtProng(0))pr=1;
6007 if(d->PtProng(pr)<fptMax[0]) ((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt()-fptMax[0]);
6008 else if(d->PtProng(TMath::Abs(pr-1))<fptMax[1])((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt()-fptMax[1]);
6009 else ((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt()-fptMax[2]);
6010
6011
6012 str="hptD0PTallsqrt";
6013 str.Append(namehist.Data());
6014 Double_t sumsqrpt=fptAllSq-d->PtProng(1)*d->PtProng(1)-d->PtProng(0)*d->PtProng(0);
6015 if(sumsqrpt>0.)((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt(),TMath::Sqrt(sumsqrpt));
6016
6017 str="hptD0PTall";
6018 str.Append(namehist.Data());
6019 ((TH1F*)list->FindObject(str.Data()))->Fill(d->Pt(),fptAll-d->PtProng(1)-d->PtProng(0));
6020
6021
6022 str="hd0zD0pt";
6023 str.Append(namehist.Data());
6024 str.Append("_pt");
6025 str+=ptbin;
6026 if(d->GetPrimaryVtx()!=0x0)((TH1F*)list->FindObject(str.Data()))->Fill(1e4*(d->Zv()-d->GetPrimaryVtx()->GetZ()));
6027
6028 str="heta";
6029 str.Append(namehist.Data());
6030 str.Append("_pt");
6031 str+=ptbin;
6032 ((TH1F*)list->FindObject(str.Data()))->Fill(d->Eta());
6033
6034 // OTHER NEW ADDITIONAL HISTOS
6035
6036 str="hd0xd0";
6037 str.Append(namehist.Data());
6038 str.Append("_pt");
6039 str+=ptbin;
6040 //printf("Hist name: %s \n",str.Data());
6041 ((TH1F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0());
6042
6043
6044 str="hd0D0VSd0xd0";
6045 str.Append(namehist.Data());
6046 str.Append("_pt");
6047 str+=ptbin;
6048 //printf("Hist name: %s \n",str.Data());
6049 ((TH2F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0(),d->ImpParXY()*10000.);
6050
6051
6052 str="hangletracksVSd0xd0";
6053 str.Append(namehist.Data());
6054 str.Append("_pt");
6055 str+=ptbin;
6056 //printf("Hist name: %s \n",str.Data());
6057 ((TH2F*)list->FindObject(str.Data()))->Fill(1e8*d->Prodd0d0(),d->ProngsRelAngle(0,1));
6058
6059 str="hangletracksVSd0D0";
6060 str.Append(namehist.Data());
6061 str.Append("_pt");
6062 str+=ptbin;
6063 // printf("Hist name: %s \n",str.Data());
6064 ((TH2F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.,d->ProngsRelAngle(0,1));
6065 // ####################################################
6066 }
ac4c229c 6067
6068 // ######### Invariant mass histos #################
6069 str="hMass";
624c07ab 6070 str.Append(namehist.Data());
ac4c229c 6071 ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6072 ((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
624c07ab 6073
6074
ac4c229c 6075 if(isPeakD0||isPeakD0bar){
6076 str="hMass";
6077 str.Append(namehist.Data());
6078 str.Append("PM");
6079 if(isPeakD0&&okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6080 if(isPeakD0bar&&okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
6081 }
e047b348 6082 // The Following is a NEW HISTO
6083 str="hInvMass";
6084 str.Append(namehist.Data());
6085 str.Append("_pt");
6086 str+=ptbin;
6087 if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6088 if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
6089
6090
6091 str="hInvMassPt";
6092 str.Append(namehist.Data());
6093 if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0,d->Pt());
6094 if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar,d->Pt());
6095
6096 /* if(isPeakD0||isPeakD0bar){
6097 str="hMass";
6098 str.Append(namehist.Data());
6099 str.Append("PM");
6100 if(isPeakD0&&okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6101 if(isPeakD0bar&&okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
6102 // The Following is a NEW HISTO
6103 str="hInvMass";
6104 str.Append(namehist.Data());
6105 str.Append("_pt");
6106 str+=ptbin;
6107 if(isPeakD0&&okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6108 if(isPeakD0bar&&okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
6109 }*/
ac4c229c 6110 if(isSideBand){
6111 str="hMass";
6112 str.Append(namehist.Data());
6113 str.Append("SB");
6114 if(okD0)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0);
6115 if(okD0bar)((TH1F*)list->FindObject(str.Data()))->Fill(invMassD0bar);
6116 }
bf74e6db 6117 if(fReadMC){
6118 if(massmumtrue>0.){
ac4c229c 6119 str="hMassTrue";
6120 str.Append(namehist.Data());
ac4c229c 6121 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
bf74e6db 6122
6123 if(isPeakD0||isPeakD0bar){
6124 str="hMassTrue";
6125 str.Append(namehist.Data());
6126 str.Append("PM");
6127 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
6128 }
6129 if(isSideBand){
6130 str="hMassTrue";
6131 str.Append(namehist.Data());
6132 str.Append("SB");
6133 ((TH1F*)list->FindObject(str.Data()))->Fill(massmumtrue);
6134 }
ac4c229c 6135 }
6136 }
ac4c229c 6137 // ################ D0 Impact Parameter Histos #####################
6138 if((isPeakD0&&okD0)||(isPeakD0bar&&okD0bar)){
6139 str="hd0D0";
6140 str.Append(namehist.Data());
6141 str.Append("PM");
6142 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
6143
6144 str="hd0D0pt";
6145 str.Append(namehist.Data());
6146 str.Append("_PkMss_pt");
6147 str+=ptbin;
6148 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
624c07ab 6149
ac4c229c 6150
e047b348 6151 if(fReadMC&&vtxTrue){
ac4c229c 6152 str="hd0D0VtxTrue";
6153 str.Append(namehist.Data());
6154 str.Append("PM");
6155 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
6156
6157 str="hd0D0VtxTruept";
6158 str.Append(namehist.Data());
6159 str.Append("_PkMss_pt");
6160 str+=ptbin;
6161 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
6162 }
6163
e047b348 6164 if(fReadMC&&aodDMC!=0x0){
ac4c229c 6165 aodDMC->Print("");
6166 aodDMC->ImpParXY();
6167 aodDMC->Print("");
6168 str="hMCd0D0";
6169 str.Append(namehist.Data());
6170 str.Append("PM");
6171 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
6172
6173 str="hMCd0D0pt";
6174 str.Append(namehist.Data());
6175 str.Append("_PkMss_pt");
6176 str+=ptbin;
6177 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
6178 }
6179
6180 }
6181 else if(isSideBand){
6182 str="hd0D0";
6183 str.Append(namehist.Data());
6184 str.Append("SB");
6185 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
6186
6187 str="hd0D0pt";
6188 str.Append(namehist.Data());
6189 str.Append("_SBMss_pt");
6190 str+=ptbin;
6191 ((TH1F*)list->FindObject(str.Data()))->Fill(d->ImpParXY()*10000.);
6192
6193
bf74e6db 6194 if(fReadMC&&vtxTrue){
ac4c229c 6195 str="hd0D0VtxTrue";
6196 str.Append(namehist.Data());
6197 str.Append("SB");
6198 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
6199
6200 str="hd0D0VtxTruept";
6201 str.Append(namehist.Data());
6202 str.Append("_SBMss_pt");
6203 str+=ptbin;
6204 ((TH1F*)list->FindObject(str.Data()))->Fill(d->AliAODRecoDecay::ImpParXY(vtxTrue)*10000.);
6205
6206 }
6207
e047b348 6208 if(fReadMC&&aodDMC!=0x0){
ac4c229c 6209 str="hMCd0D0";
6210 str.Append(namehist.Data());
6211 str.Append("SB");
6212 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
6213
6214 str="hMCd0D0pt";
6215 str.Append(namehist.Data());
6216 str.Append("_SBMss_pt");
6217 str+=ptbin;
6218 ((TH1F*)list->FindObject(str.Data()))->Fill(aodDMC->ImpParXY()*10000.);
6219 }
6220
6221 }
624c07ab 6222
6223 return kTRUE;
6224}
6225
ac4c229c 6226
e047b348 6227 void AliAnalysisTaskSECharmFraction::FillHistoMCproperties(TClonesArray *arrayMC){
6228 //#############################################################
6229 // HERE LOOK AT global properties of D0 mesons, c quarks and B
6230 //
6231 //#############################################################
6232 Double_t pxyzMum[3],pxyzDaught[3],cosOpenAngle=-1.1,ptmum,ptdaught;
6233 Int_t ncdaught=0,cquarksMC=0,nD0all=0,nD0FromB=0,nBdaught=0,nD0bquark=0,nD0bMeson=0,nD0bBaryon=0;
6234 for (Int_t iPart=0; iPart<arrayMC->GetEntriesFast(); iPart++) {
6235 AliAODMCParticle* mcPart = dynamic_cast<AliAODMCParticle*>(arrayMC->At(iPart));
6236 if (!mcPart) {
6237 AliWarning("Particle not found in tree, skipping");
6238 continue;
6239 }
6240 if (TMath::Abs(mcPart->GetPdgCode()) == 4){
6241 cquarksMC++;
6242 mcPart->PxPyPz(pxyzMum);
6243 ptmum=mcPart->Pt();
6244
6245 ((TH1F*)flistMCproperties->FindObject("hMCcquarkAllPt"))->Fill(ptmum);
6246 ((TH1F*)flistMCproperties->FindObject("hMCcquarkAllEta"))->Fill(mcPart->Eta());
6247 ((TH1F*)flistMCproperties->FindObject("hMCcquarkAllEnergy"))->Fill(mcPart->E());
6248 //NOW LOOK FOR A D0 among cquark daughters
6249 ncdaught=mcPart->GetDaughter(1)-mcPart->GetDaughter(0)+1;
6250 ((TH1F*)flistMCproperties->FindObject("hMCcquarkNdaught"))->Fill(ncdaught);
6251 if(ncdaught>1){
6252 for(Int_t iDaught=mcPart->GetDaughter(0);iDaught<mcPart->GetDaughter(1);iDaught++){
6253 AliAODMCParticle* mcPartD0 = dynamic_cast<AliAODMCParticle*>(arrayMC->At(iDaught));
6254 if(TMath::Abs(mcPartD0->GetPdgCode()) == 421){
6255 // a D0 coming from a c quark
6256 mcPartD0->PxPyPz(pxyzDaught);
6257 ptdaught=mcPartD0->Pt();
6258 ((TH1F*)flistMCproperties->FindObject("hMCD0fromcPt"))->Fill(ptdaught);
6259 ((TH1F*)flistMCproperties->FindObject("hMCD0fromcEta"))->Fill(mcPartD0->Eta());
6260 ((TH1F*)flistMCproperties->FindObject("hMCD0fromcEnergy"))->Fill(mcPartD0->E());
6261 // ##############################################################################################
6262 // Compare D0 momentum and c quarks:
6263 // NB: here ALL D0 are considered, also those not decaying in KPi !!!
6264 // ##############################################################################################
6265 ((TH2F*)flistMCproperties->FindObject("hMCD0VscquarkPt"))->Fill(mcPart->Pt(),mcPartD0->Pt());
6266 ((TH2F*)flistMCproperties->FindObject("hMCD0VscquarkEnergy"))->Fill(mcPart->E(),mcPartD0->E());
6267 ((TH1F*)flistMCproperties->FindObject("hMCD0deltacquarkEnergy"))->Fill(mcPartD0->E()/mcPart->E());
6268 ((TH1F*)flistMCproperties->FindObject("hMCD0EnergyVsAvcquarkDaughtEn"))->Fill((mcPartD0->E()-(mcPart->E()/ncdaught))/mcPart->E());
6269 //calculate open angle
6270 if((pxyzMum[0]!=0.||pxyzMum[1]!=0.||pxyzMum[2]!=0.)&&(pxyzDaught[0]!=0.||pxyzDaught[1]!=0.||pxyzDaught[2]!=0.))cosOpenAngle=(pxyzDaught[0]*pxyzMum[0]+pxyzDaught[1]*pxyzMum[1]+pxyzDaught[2]*pxyzMum[2])/(TMath::Sqrt(pxyzDaught[0]*pxyzDaught[0]+pxyzDaught[1]*pxyzDaught[1]+pxyzDaught[2]*pxyzDaught[2])*TMath::Sqrt(pxyzDaught[0]*pxyzDaught[0]+pxyzDaught[1]*pxyzDaught[1]+pxyzDaught[2]*pxyzDaught[2]));
6271 ((TH1F*)flistMCproperties->FindObject("hMCD0cquarkAngle"))->Fill(cosOpenAngle);
6272 ((TH2F*)flistMCproperties->FindObject("hMCD0cquarkAngleEnergy"))->Fill(mcPart->E(),cosOpenAngle);
6273 }
6274 }
6275 }
6276 }
6277
6278 // NOW LOOK FOR D0 not coming from cquarks
6279 if (TMath::Abs(mcPart->GetPdgCode()) == 421){
6280 nD0all++;
6281 if(mcPart->GetMother()<0)continue;
6282 AliAODMCParticle* mcD0Parent = dynamic_cast<AliAODMCParticle*>(arrayMC->At(mcPart->GetMother()));
6283 Bool_t notfound=kFALSE,bMeson=kFALSE,bBaryon=kFALSE;
6284 //CheckOrigin
6285 while(TMath::Abs(mcD0Parent->GetPdgCode())!=4&&TMath::Abs(mcD0Parent->GetPdgCode())!=5){
6286 if(500<TMath::Abs(mcD0Parent->GetPdgCode())%10000&&TMath::Abs(mcD0Parent->GetPdgCode())<600){
6287 bMeson=kTRUE;
6288 break;
6289 }
6290 else if (5000<TMath::Abs(mcD0Parent->GetPdgCode())&&TMath::Abs(mcD0Parent->GetPdgCode())<6000){
6291 bBaryon=kTRUE;
6292 break;
6293 }
6294 if(mcD0Parent->GetMother()<0){
6295 notfound=kTRUE;
6296 break;
6297 }
6298 mcD0Parent=dynamic_cast<AliAODMCParticle*>(arrayMC->At(mcD0Parent->GetMother()));
6299 }
6300 if(notfound)continue;
6301 if(TMath::Abs(mcD0Parent->GetPdgCode())==4)continue;//D0 from c quarks already counted
6302 ((TH1F*)flistMCproperties->FindObject("hMCfromBpdgB"))->Fill(TMath::Abs(mcD0Parent->GetPdgCode()));
6303 if(bBaryon)nD0bBaryon++;
6304 else if(bMeson)nD0bMeson++;
6305 else nD0bquark++;
6306 nD0FromB++;
6307 mcD0Parent->PxPyPz(pxyzMum);
6308 ptmum=mcD0Parent->Pt();
6309 ((TH1F*)flistMCproperties->FindObject("hMCBhadrPt"))->Fill(ptmum);
6310 ((TH1F*)flistMCproperties->FindObject("hMCBhadrEta"))->Fill(mcD0Parent->Eta());
6311 ((TH1F*)flistMCproperties->FindObject("hMCBhadrEnergy"))->Fill(mcD0Parent->E());
6312
6313 nBdaught=mcD0Parent->GetDaughter(1)-mcD0Parent->GetDaughter(0)+1;
6314 ((TH1F*)flistMCproperties->FindObject("hMCBhadrNdaught"))->Fill(nBdaught);
6315
6316
6317 // Now take properties of this D0 coming from a B
6318 mcPart->PxPyPz(pxyzDaught);
6319 ptdaught=mcPart->Pt();
6320 ((TH1F*)flistMCproperties->FindObject("hMCD0fromBPt"))->Fill(ptdaught);
6321 ((TH1F*)flistMCproperties->FindObject("hMCD0fromBEta"))->Fill(mcPart->Eta());
6322 ((TH1F*)flistMCproperties->FindObject("hMCD0fromBEnergy"))->Fill(mcPart->E());
6323 // ##############################################################################################
6324 // Compare D0 momentum and b hadron:
6325 // NB: here ALL D0 are considered, also those not decaying in KPi !!!
6326 // ##############################################################################################
6327 ((TH2F*)flistMCproperties->FindObject("hMCD0VsBhadrPt"))->Fill(mcD0Parent->Pt(),mcPart->Pt());
6328 ((TH2F*)flistMCproperties->FindObject("hMCD0VsBhadrEnergy"))->Fill(mcD0Parent->E(),mcPart->E());
6329 ((TH1F*)flistMCproperties->FindObject("hMCD0deltaBhadrEnergy"))->Fill(mcPart->E()/mcD0Parent->E());
6330 ((TH1F*)flistMCproperties->FindObject("hMCD0EnergyVsAvBDaughtEn"))->Fill((mcPart->E()-(mcD0Parent->E()/nBdaught))/mcD0Parent->E());
6331 //calculate open angle
6332 if((pxyzMum[0]!=0.||pxyzMum[1]!=0.||pxyzMum[2]!=0.)&&(pxyzDaught[0]!=0.||pxyzDaught[1]!=0.||pxyzDaught[2]!=0.))cosOpenAngle=(pxyzDaught[0]*pxyzMum[0]+pxyzDaught[1]*pxyzMum[1]+pxyzDaught[2]*pxyzMum[2])/(TMath::Sqrt(pxyzDaught[0]*pxyzDaught[0]+pxyzDaught[1]*pxyzDaught[1]+pxyzDaught[2]*pxyzDaught[2])*TMath::Sqrt(pxyzDaught[0]*pxyzDaught[0]+pxyzDaught[1]*pxyzDaught[1]+pxyzDaught[2]*pxyzDaught[2]));
6333 ((TH1F*)flistMCproperties->FindObject("hMCD0BhadrAngle"))->Fill(cosOpenAngle);
6334 ((TH2F*)flistMCproperties->FindObject("hMCD0BhadrAngleEnergy"))->Fill(mcPart->E(),cosOpenAngle);
6335 }
6336 }
6337 ((TH1F*)flistMCproperties->FindObject("hMCPartFound"))->Fill(1,cquarksMC);
6338 ((TH1F*)flistMCproperties->FindObject("hMCPartFound"))->Fill(2,nD0all);
6339 ((TH1F*)flistMCproperties->FindObject("hMCPartFound"))->Fill(3,nD0FromB);
6340 ((TH1F*)flistMCproperties->FindObject("hMCPartFound"))->Fill(4,nD0bMeson);
6341 ((TH1F*)flistMCproperties->FindObject("hMCPartFound"))->Fill(5,nD0bBaryon);
6342
6343 }
6344
6345
6346void AliAnalysisTaskSECharmFraction::SetPtBins(Int_t nbins,const Float_t *ptbins){
6347 if((fptbins)!=0x0)delete fptbins;
6348 fnbins=nbins;fptbins=new Float_t[fnbins];
6349 memcpy(fptbins,ptbins,fnbins*sizeof(Float_t));
ac4c229c 6350 return;
6351}
6352
6353void AliAnalysisTaskSECharmFraction::SetStandardMassSelection(){
6354 //SET THE DEFAULT VALUES FOR INVARIANT MASS SELECTION
e047b348 6355
6356 /*HERE DEFAULT
6357 SetSignalInvMassCut();
6358 SetLargeInvMassCut();
6359 SetSideBandInvMassCut();
6360 SetSideBandInvMassWindow();
6361 */
6362
6363 // HERE FOR SEARCH FOR SIGNAL
ac4c229c 6364 SetSignalInvMassCut();
6365 SetLargeInvMassCut();
6366 SetSideBandInvMassCut();
6367 SetSideBandInvMassWindow();
6368 return;
e047b348 6369}
6370
6371Bool_t AliAnalysisTaskSECharmFraction::SpecialSelD0(AliAODRecoDecayHF2Prong *d,Int_t &nusedforVtx){
6372
6373 AliAODTrack *trk0 = (AliAODTrack*)d->GetDaughter(0);
6374 AliAODTrack *trk1 = (AliAODTrack*)d->GetDaughter(1);
6375 nusedforVtx=0;
6376 if(trk0->GetUsedForPrimVtxFit())nusedforVtx++;
6377 if(trk1->GetUsedForPrimVtxFit())nusedforVtx++;
6378 if(nusedforVtx>fNtrMaxforVtx)return kFALSE;
6379
6380 if(TMath::Abs(d->Getd0Prong(1)) < -99999. ||
6381 TMath::Abs(d->Getd0Prong(0)) < -99999.) return kFALSE;
6382
6383 return kTRUE;
6384}
6385
6386
6387
6388AliAODVertex* AliAnalysisTaskSECharmFraction::GetPrimaryVtxSkipped(AliAODEvent *aodev,AliAODRecoDecayHF2Prong *d){
6389 //Calculate the primary vertex w/o the daughter tracks of the candidate
6390
6391 AliESDVertex *vertexESD=0x0;
6392 AliAODVertex *vertexAOD=0x0;
6393 AliVertexerTracks *vertexer = new AliVertexerTracks(aodev->GetMagneticField());
6394
6395 Int_t skipped[2];
6396 Int_t nTrksToSkip=2;
6397 AliAODTrack *dgTrack = (AliAODTrack*)d->GetDaughter(0);
6398 skipped[0]=dgTrack->GetID();
6399 dgTrack = (AliAODTrack*)d->GetDaughter(1);
6400 skipped[1]=dgTrack->GetID();
6401
6402
6403 //
6404 vertexer->SetSkipTracks(nTrksToSkip,skipped);
6405 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(aodev);
6406 vertexer->SetMinClusters(4);
6407 if(!vertexESD) return vertexAOD;
6408 if(vertexESD->GetNContributors()<=0) {
6409 AliDebug(2,"vertexing failed");
6410 delete vertexESD; vertexESD=NULL;
6411 return vertexAOD;
ac4c229c 6412 }
e047b348 6413
6414 delete vertexer; vertexer=NULL;
6415
6416
6417 // convert to AliAODVertex
6418 Double_t pos[3],cov[6],chi2perNDF;
6419 vertexESD->GetXYZ(pos); // position
6420 vertexESD->GetCovMatrix(cov); //covariance matrix
6421 chi2perNDF = vertexESD->GetChi2toNDF();
6422 delete vertexESD; vertexESD=NULL;
6423
6424 vertexAOD = new AliAODVertex(pos,cov,chi2perNDF);
6425 return vertexAOD;
6426
6427}
ac4c229c 6428
6429
624c07ab 6430void AliAnalysisTaskSECharmFraction::Terminate(const Option_t*){
6431 //TERMINATE METHOD: NOTHING TO DO
6432
6433
6434}