]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Little changes (Andrea)
authordainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 23 Oct 2009 13:16:25 +0000 (13:16 +0000)
committerdainese <dainese@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 23 Oct 2009 13:16:25 +0000 (13:16 +0000)
PWG3/vertexingHF/AddTaskCharmFraction.C
PWG3/vertexingHF/AliAnalysisTaskSECharmFraction.cxx
PWG3/vertexingHF/AliAnalysisTaskSECharmFraction.h

index f106e0a64e7b946ee98ccbd4c5794e3a219d3d6e..0b3ff08ddb9a702b949d681139acc66451452461 100644 (file)
@@ -90,138 +90,138 @@ AliAnalysisTaskSECharmFraction* AddTaskCharmFraction(const char* fileout="d0D0.r
   // Now container for TLists 
   last=5;
   //##########  NO CUTS TLISTS CONTAINER ##############à
-  containername="coutput_nc_sign";
+  containername="clistNCsign";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_nc_sign = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistNCsign = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_nc_sign);
+  mgr->ConnectOutput(hfTask,last,clistNCsign);
   last++;
 
 
-  containername="coutput_nc_back";
+  containername="clistNCback";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_nc_back = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistNCback = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_nc_back);
+  mgr->ConnectOutput(hfTask,last,clistNCback);
   last++;
 
-  containername="coutput_nc_fromB";
+  containername="clistNCfromB";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_nc_fromB = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistNCfromB = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_nc_fromB);
+  mgr->ConnectOutput(hfTask,last,clistNCfromB);
   last++;
 
 
-  containername="coutput_nc_fromDstar";
+  containername="clistNCfromDstar";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_nc_fromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistNCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_nc_fromDstar);
+  mgr->ConnectOutput(hfTask,last,clistNCfromDstar);
   last++;
 
 
-  containername="coutput_nc_other";
+  containername="clistNCother";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_nc_other = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistNCother = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_nc_other);
+  mgr->ConnectOutput(hfTask,last,clistNCother);
   last++;
 
 
   //######### LOOSE CUTS TLISTS CONTAINER #############
-  containername="coutput_ls_sign";
+  containername="clistLSCsign";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_ls_sign = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistLSCsign = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_ls_sign);
+  mgr->ConnectOutput(hfTask,last,clistLSCsign);
   last++;
 
 
-  containername="coutput_ls_back";
+  containername="clistLSCback";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_ls_back = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistLSCback = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_ls_back);
+  mgr->ConnectOutput(hfTask,last,clistLSCback);
   last++;
 
-  containername="coutput_ls_fromB";
+  containername="clistLSCfromB";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_ls_fromB = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistLSCfromB = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_ls_fromB);
+  mgr->ConnectOutput(hfTask,last,clistLSCfromB);
   last++;
 
 
-  containername="coutput_ls_fromDstar";
+  containername="clistLSCfromDstar";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_ls_fromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistLSCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_ls_fromDstar);
+  mgr->ConnectOutput(hfTask,last,clistLSCfromDstar);
   last++;
 
 
-  containername="coutput_ls_other";
+  containername="clistLSCother";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_ls_other = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistLSCother = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_ls_other);
+  mgr->ConnectOutput(hfTask,last,clistLSCother);
   last++;
 
 
 
   //######### TIGHT CUTS TLISTS CONTAINER #############
-    containername="coutput_tgh_sign";
+    containername="clistTGHCsign";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_tgh_sign = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistTGHCsign = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_tgh_sign);
+  mgr->ConnectOutput(hfTask,last,clistTGHCsign);
   last++;
 
 
-  containername="coutput_tgh_back";
+  containername="clistTGHCback";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_tgh_back = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistTGHCback = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_tgh_back);
+  mgr->ConnectOutput(hfTask,last,clistTGHCback);
   last++;
 
-  containername="coutput_tgh_fromB";
+  containername="clistTGHCfromB";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_tgh_fromB = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistTGHCfromB = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_tgh_fromB);
+  mgr->ConnectOutput(hfTask,last,clistTGHCfromB);
   last++;
 
 
-  containername="coutput_tgh_fromDstar";
+  containername="clistTGHCfromDstar";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_tgh_fromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistTGHCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_tgh_fromDstar);
+  mgr->ConnectOutput(hfTask,last,clistTGHCfromDstar);
   last++;
 
 
-  containername="coutput_tgh_other";
+  containername="clistTGHCother";
   containername.Append(str.Data());
-  AliAnalysisDataContainer *coutput_tgh_other = mgr->CreateContainer(containername.Data(),TList::Class(),
+  AliAnalysisDataContainer *clistTGHCother = mgr->CreateContainer(containername.Data(),TList::Class(),
                                                           AliAnalysisManager::kOutputContainer, 
                                                           fileout);
-  mgr->ConnectOutput(hfTask,last,coutput_tgh_other);
+  mgr->ConnectOutput(hfTask,last,clistTGHCother);
   
 
 
index 57eeff35f449cf196913b6a6e9ccbe6e9dfa6465..56e2d340ac0a0b9cf90fd04898dd33fc98ae1ee5 100644 (file)
@@ -58,7 +58,7 @@ ClassImp(AliAnalysisTaskSECharmFraction)
       fmD0PDG(),
       fnbins(),
       fptbins(0),
-      fAcceptanceCuts(0),
+      fAcceptanceCuts(),
       fsignalInvMassCut(),
       flargeInvMassCut(),
       fsidebandInvMassCut(),
@@ -95,7 +95,7 @@ ClassImp(AliAnalysisTaskSECharmFraction)
       fmD0PDG(),
       fnbins(),
       fptbins(0),
-      fAcceptanceCuts(0),
+      fAcceptanceCuts(),
       fsignalInvMassCut(),
       flargeInvMassCut(),
       fsidebandInvMassCut(),
@@ -136,7 +136,7 @@ ClassImp(AliAnalysisTaskSECharmFraction)
   fptbins[2]=3.;
   fptbins[3]=5.;
   fptbins[4]=1000.;
-  fAcceptanceCuts=new Double_t[3];
+  //fAcceptanceCuts=new Double_t[3];
   SetAcceptanceCut();
   SetStandardMassSelection();
   DefineOutput(1, TH1F::Class());
@@ -158,7 +158,7 @@ AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name,
     fmD0PDG(),
     fnbins(),
     fptbins(0),
-    fAcceptanceCuts(0),
+    fAcceptanceCuts(),
     fsignalInvMassCut(),
     flargeInvMassCut(),
     fsidebandInvMassCut(),
@@ -189,7 +189,7 @@ AliAnalysisTaskSECharmFraction::AliAnalysisTaskSECharmFraction(const char *name,
   
   SetNPtBins(nptbins,ptbins);
   SetStandardMassSelection();
-  fAcceptanceCuts=new Double_t[3];
+  //  fAcceptanceCuts=new Double_t[3];
   SetAcceptanceCut();
   // Define input and output slots here
  
@@ -222,10 +222,10 @@ AliAnalysisTaskSECharmFraction::~AliAnalysisTaskSECharmFraction()
     delete fptbins;
     fptbins =0;
   }
-  if(fAcceptanceCuts){
+  /*  if(fAcceptanceCuts){
     delete fAcceptanceCuts;
     fAcceptanceCuts=0;
-  }
+    }*/
   if (fNentries) {
     delete fNentries;
     fNentries = 0;
@@ -343,7 +343,28 @@ void AliAnalysisTaskSECharmFraction::UserCreateOutputObjects()
 {
   // Create histograms
   // Called once
-
+  
+  // ################ NAMING SCHEME ###################################
+  //            LISTS NAMING SCHEME
+  // "list" + cut selection string + MC selection string
+  //      cut strings:  "NC" =nocuts, "LSC"= loose cuts, "TGHC"= tight cuts
+  //      MC sel. strings: "sign"= D0 from c quark
+  //                       "fromDstar" = D0 from Dstar from c quark
+  //                       "fromB"= D0from B decay (->from b quark) + D0from Dstar from B
+  //                       "back"= backgroun, generic except the cas "other"
+  //                       "other"= background case for candidates made of a pion and a kaon coming from the same D0 (in 4 prong) or from D+
+  //
+  //           HISTS NAMING SCHEME 
+  // 
+  //  "h" + specific name + cut selection string + MC selection string + (InvMass region string) + (pt string)
+  //
+  //        cut selection strings    = those for lists
+  //        MC selection strings     = those for lists
+  //        inv mass region strings  : "PM" or "SB" for global properties and pt integrated histos
+  //                                   "_PkMss" or "_SBMss" for impact par. pt dependent histos
+  //                   pt string     : "_pt" + integer number of ptbin
+  //
+  //###################################################################
 
   TString namehist;
   TString titlehist;
@@ -2597,6 +2618,7 @@ void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
     isSideBandD0=kFALSE;
     isSideBandD0bar=kFALSE;
     isSideBand=kFALSE;
+    isinacceptance=kFALSE;
     okd0tight=0;
     okd0bartight=0;
     okd0loose=0;
@@ -2617,16 +2639,17 @@ void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
     //
     // ######## CHECK FOR ACCEPTANCE ##########
     ptD0=d->Pt();
-    isinacceptance = (TMath::Abs(d->EtaProng(0))<fAcceptanceCuts[0]&&TMath::Abs(d->EtaProng(1))<fAcceptanceCuts[0]);
+    isinacceptance = (TMath::Abs(d->EtaProng(0))<fAcceptanceCuts[0]&&TMath::Abs(d->EtaProng(1))<fAcceptanceCuts[0]); //eta acceptance
     
     //######## INVARIANT MASS SELECTION ###############
     CheckInvMassD0(d,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBandD0,isSideBandD0bar);
-    if(isSideBandD0&&isSideBandD0bar)isSideBand=kTRUE;// TEMPORARY, NOT DONE IN THE METHOD CALLED ABOVE ONLY FOR FURTHER SIDE BAND STUDY
+    if((isSideBandD0||isSideBandD0bar)&&!(isPeakD0||isPeakD0bar))isSideBand=kTRUE;// TEMPORARY, NOT DONE IN THE METHOD CALLED ABOVE ONLY FOR FURTHER SIDE BAND STUDY
   
     // INVESTIGATE SIGNAL TYPE : ACCESS TO MC INFORMATION
     aodDMC=GetD0toKPiSignalType(d,arrayMC,signallevel,massmumtrue,vtxTrue);
-    fSignalType->Fill(signallevel);
     if(!isinacceptance)signallevel=9;
+    fSignalType->Fill(signallevel);
+  
     // END OF BACKGROUND TYPE SELECTION
 
     // NOW APPLY CUTS
@@ -2660,14 +2683,14 @@ void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
     if(signallevel==1)FillHistos(d,flistLsCutsSignal,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==2)FillHistos(d,flistLsCutsFromDstar,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==3||signallevel==4)FillHistos(d,flistLsCutsFromB,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
-    else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10||signallevel==9)FillHistos(d,flistLsCutsBack,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
+    else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistLsCutsBack,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==5||signallevel==6)FillHistos(d,flistLsCutsOther,ptbin,okd0loose,okd0barloose,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
 
     //TIGHT CUTS Case
     if(signallevel==1)FillHistos(d,flistTghCutsSignal,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==2)FillHistos(d,flistTghCutsFromDstar,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==3||signallevel==4)FillHistos(d,flistTghCutsFromB,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
-    else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10||signallevel==9)FillHistos(d,flistTghCutsBack,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
+    else if(signallevel==-1||signallevel==7||signallevel==8||signallevel==10)FillHistos(d,flistTghCutsBack,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     else if(signallevel==5||signallevel==6)FillHistos(d,flistTghCutsOther,ptbin,okd0tight,okd0bartight,invMassD0,invMassD0bar,isPeakD0,isPeakD0bar,isSideBand,massmumtrue,aodDMC,vtxTrue);
     
     
@@ -2679,7 +2702,7 @@ void AliAnalysisTaskSECharmFraction::UserExec(Option_t */*option*/)
     if(unsetvtx) d->UnsetOwnPrimaryVtx();
     
   }
-
+  
   // ####################### POST OUTPUT TLIST DATA #########################
   // ####### histo for #AOD entries already posted
   
@@ -2716,29 +2739,41 @@ Int_t AliAnalysisTaskSECharmFraction::SetStandardCuts(Double_t pt,Double_t invMa
   //                            
   // the way the cuts are set is for further development
   //   (to be interfaced with AliAnalsysTaskSETuneCuts)
+  //
+  // Cuts: 
+  // 0 = inv. mass half width [GeV]
+  // 1 = dca [cm]
+  // 2 = cosThetaStar
+  // 3 = pTK [GeV/c]
+  // 4 = pTPi [GeV/c]
+  // 5 = d0K [cm]   upper limit!
+  // 6 = d0Pi [cm]  upper limit!
+  // 7 = d0d0 [cm^2]
+  // 8 = cosThetaPoint
+
   Int_t ptbin=-1;
   if (pt>0. && pt<=1.) {
     ptbin=0;
-    fVHFtight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0003,0.7);
+    fVHFtight->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.0002,0.5);
     fVHFloose->SetD0toKpiCuts(invMassCut,0.04,0.8,0.5,0.5,0.05,0.05,-0.00025,0.7);
   }
   
   if(pt>1. && pt<=3.) {
     ptbin=1;  
-    fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.0003,0.9);
+    fVHFtight->SetD0toKpiCuts(invMassCut,0.03,0.8,0.6,0.6,0.05,0.05,-0.0002,0.6);
     fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,1,1,-0.00025,0.8);
     //printf("I'm in the bin %d\n",ptbin);
   }
   
   if(pt>3. && pt<=5.){
     ptbin=2;  
-    fVHFtight->SetD0toKpiCuts(invMassCut,0.015,0.8,0.7,0.7,0.05,0.05,-0.0002,0.9);
+    fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.0001,0.8);
     fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.8);
     //printf("I'm in the bin %d\n",ptbin);
   }
   if(pt>5.){
     ptbin=3;
-    fVHFtight->SetD0toKpiCuts(invMassCut,0.015,0.8,0.7,0.7,0.05,0.05,-0.0002,0.95);
+    fVHFtight->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00005,0.8);
     fVHFloose->SetD0toKpiCuts(invMassCut,0.02,0.8,0.7,0.7,0.05,0.05,-0.00015,0.9);
   }//if(pt>5)
   return ptbin;
@@ -2775,7 +2810,7 @@ AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::GetD0toKPiSignalType(const Al
   // THE FOLLOWING SCHEME IS ADOPTED: signaltype is set to
                         //  1:signal (D0 prompt); 2: signal D0 from Dstar; 3: D0 fromB 4: D0 from Dstar fromB
                         // then background categories: -1: one or both daughters is a fake track
-                        //                             5: one or both daughters come from a D meson != D0
+                        //                             5: both daughters come from a D meson != D0
                         //                             6: both daughters come from a D0->4prongs  
                         //                             7: both daughetrs are primaries
                         //                             8: generic background (can include one of the previous if desired)
@@ -2881,13 +2916,26 @@ AliAODRecoDecayHF* AliAnalysisTaskSECharmFraction::GetD0toKPiSignalType(const Al
     // A particle coming from nothing
     signaltype=10;
     return aodDMC;
+    
   }
   Bool_t isfromDstar=kFALSE;
   //  matchtoMC=d->MatchToMC(421,arrayMC,2,pdgdaughters);
   grandmoth1=(AliAODMCParticle*)arrayMC->At(mum1->GetMother());
   if(TMath::Abs(grandmoth1->GetPdgCode())==413||TMath::Abs(grandmoth1->GetPdgCode())==423)isfromDstar=kTRUE;// D0 COMING FROM A D0*
   
+  /*
+  //CHECK FOR CABIBBO SUPPRESSED DECAY
+  Int_t isCabibSup=0,pdgKaon;
+  pdgKaon=b1->GetPdgCode();
+  if(TMath::Abs(pdgKaon)!=321)pdgKaon=b2->GetPdgCode();
+  if(pdgmum>0&&pdgKaon>0)isCabibSup=1;
+  if(pdgmum<0&&pdgKaon<0)isCabibSup=1;
+  if(isCabibSup){
+    signaltype=0;
+    return aodDMC;
+  }
+  */
   //     if(fcheckMCD0){//THIS CHECK IS NEEDED TO AVOID POSSIBLE FAILURE IN THE SECOND WHILE, FOR DEBUGGING
   while(TMath::Abs(grandmoth1->GetPdgCode())!=4&&TMath::Abs(grandmoth1->GetPdgCode())!=5){
     if(grandmoth1->GetMother()==-1){
index 36f5a597237d88e8f4e8cbfc37cad9ce69c19cfa..27d05077e7937fe85515f13a517f0a44a2935122 100644 (file)
@@ -38,15 +38,15 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   virtual void Terminate(Option_t *option);  
 
   void SetNPtBins(Int_t nbins,const Double_t *ptbins);
-  void SetSignalInvMassCut(Double_t signalInvMassCut=0.027){fsignalInvMassCut=signalInvMassCut;}
-  void SetLargeInvMassCut(Double_t largeInvMassCut=2.){flargeInvMassCut=largeInvMassCut;}
-  void SetSideBandInvMassCut(Double_t sidebandInvMassCut=0.054){// default value ~ 2x3 times inv mass resol.: a factor 2 is applied w.r.t. 3sigma, should be safe enough to exclude most of the reflections 
+  void SetSignalInvMassCut(const Double_t signalInvMassCut=0.027){fsignalInvMassCut=signalInvMassCut;}
+  void SetLargeInvMassCut(const Double_t largeInvMassCut=2.){flargeInvMassCut=largeInvMassCut;}
+  void SetSideBandInvMassCut(const Double_t sidebandInvMassCut=0.054){// default value ~ 2x3 times inv mass resol.: a factor 2 is applied w.r.t. 3sigma, should be safe enough to exclude most of the reflections 
     fsidebandInvMassCut=sidebandInvMassCut;  
   }
-  void SetSideBandInvMassWindow(Double_t sidebandInvMassWindow=0.066){//~ 6 times inv. mass resol.
+  void SetSideBandInvMassWindow(const Double_t sidebandInvMassWindow=0.108){//~ 6 times inv. mass resol.
     fsidebandInvMassWindow=sidebandInvMassWindow;
   }  
-  void SetAcceptanceCut(Double_t eta=0.9,Double_t nITSpoints=5.,Double_t nSPDpoints=2.){fAcceptanceCuts[0]=eta;fAcceptanceCuts[1]=nITSpoints;fAcceptanceCuts[0]=nSPDpoints;}
+  void SetAcceptanceCut(const Double_t eta=0.9,const Double_t nITSpoints=5.,const Double_t nSPDpoints=2.){fAcceptanceCuts[0]=eta;fAcceptanceCuts[1]=nITSpoints;fAcceptanceCuts[2]=nSPDpoints;}
   void SetStandardMassSelection();
   Int_t SetStandardCuts(Double_t pt,Double_t invMassCut);
   void CheckInvMassD0(AliAODRecoDecayHF2Prong *d,Double_t &invMassD0,Double_t &invMassD0bar,Bool_t &isPeakD0,Bool_t &isPeakD0bar,Bool_t &isSideBandD0,Bool_t &isSideBandD0bar);
@@ -79,7 +79,7 @@ class AliAnalysisTaskSECharmFraction : public AliAnalysisTaskSE {
   Double_t    fmD0PDG;                      //  MC D0 mass
   Int_t        fnbins;                      // Number of pt bins
   Double_t *fptbins;                        //[fnbins] ptbins 
-  Double_t *fAcceptanceCuts;                //[3] array with acceptance cuts
+  Double_t fAcceptanceCuts[3];                // array with acceptance cuts
   Double_t fsignalInvMassCut;               // invariant mass cut to define signal region
   Double_t flargeInvMassCut;                // invariant mass cut to accept all inv mass window
   Double_t fsidebandInvMassCut;             // invariant mass cut to define side band region lower limit