]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Fixes + ameliorations
authorzconesa <zconesa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Oct 2012 17:16:39 +0000 (17:16 +0000)
committerzconesa <zconesa@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 8 Oct 2012 17:16:39 +0000 (17:16 +0000)
PWGHF/vertexingHF/macros/ReadDvsMultiplicity.C

index 457c58c1c8810395f871471cb6af8638191a0f10..16cbefb030090b700fafb82749c1670d9e3e6a6d 100644 (file)
@@ -26,6 +26,7 @@
 #include "AliRDHFCutsDplustoKpipi.h"\r
 #include "AliRDHFCutsD0toKpi.h"\r
 #include "AliHFMassFitter.h"\r
+#include "AliNormalizationCounter.h"\r
 #endif\r
 \r
 /* $Id$ */ \r
@@ -41,11 +42,13 @@ enum {kCorr=0, kUnCorr, kNoPid};
 const Int_t nPtBins=5;\r
 Double_t ptlims[nPtBins+1]={2.,4.,6.,8.,12.,24.};\r
 Int_t rebin[nPtBins]={4,4,6,6,8};\r
-Double_t sigmapt[nPtBins]={ 0.012, 0.016, 0.016, 0.018, 0.20 };\r
+Double_t sigmapt[nPtBins]={ 0.010, 0.012, 0.016, 0.018, 0.20 };\r
 Bool_t fixPeakSigma = kFALSE;\r
 //\r
 const Int_t nMultbins=6;\r
 Double_t multlims[nMultbins+1]={1.,9.,14.,20.,31.,49.,100.};\r
+// const Int_t nMultbins=1;\r
+// Double_t multlims[nMultbins+1]={0.,500.};\r
 //\r
 Int_t firstUsedBin[nPtBins]={-1,-1,-1,-1,-1}; // -1 uses all bins, >=1 to set the lower bin to be accepted from original histo\r
 //\r
@@ -63,7 +66,7 @@ Int_t nevents[nsamples]={1.18860695e+08 /*LHC10dnewTPCpid*/,9.0374946e+07 /*LHC1
 \r
 // Functions\r
 Bool_t LoadDplusHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, const char *CutsType, Int_t Option);\r
-Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, \r
+Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, AliNormalizationCounter *counter,\r
                         const char *CutsType, Int_t Option);\r
 Bool_t CheckNtrVsZvtx(TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, Int_t nFiles);\r
 TH1F* RebinHisto(TH1F* hOrig, Int_t reb, Int_t firstUse=-1);\r
@@ -100,12 +103,14 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
   for(Int_t i=0; i<4; i++) hNtrZvtx[i]=0x0;\r
   TH2F** hNtrZvtxCorr=new TH2F*[4];\r
   for(Int_t i=0; i<4; i++) hNtrZvtxCorr[i]=0x0;\r
+  AliNormalizationCounter *counter=0x0;\r
+  TH1F * hNormalization = new TH1F("hNormalization","Events in the norm counter",nMultbins,multlims);\r
 \r
   Float_t massD;\r
   Bool_t retCode;\r
   if(analysisType==kD0toKpi) {\r
     massD=1.86484003067016602e+00;//(Float_t)(TDatabasePDG::Instance()->GetParticle(421)->Mass());\r
-    retCode=LoadD0toKpiHistos(listFiles,hPtMassMult,hNtrZvtx,hNtrZvtxCorr,CutsType,Option);\r
+    retCode=LoadD0toKpiHistos(listFiles,hPtMassMult,hNtrZvtx,hNtrZvtxCorr,counter,CutsType,Option);\r
   }\r
   else if(analysisType==kDplusKpipi) {\r
     massD=1.86961996555328369e+00;//(Float_t)(TDatabasePDG::Instance()->GetParticle(411)->Mass());\r
@@ -218,6 +223,11 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
     //    printf(" Studying multiplicity bin %d\n",j);\r
     Int_t multbinlow = hmultaxis->FindBin(multlims[j]);\r
     Int_t multbinhigh = hmultaxis->FindBin(multlims[j+1])-1;\r
+    Float_t val = multbinlow + (multbinhigh-multbinlow)/2.;\r
+    Int_t hnbin = hNormalization->FindBin(val);\r
+    Float_t nevents = 0.;\r
+    if(counter) { nevents = counter->GetNEventsForNorm(multbinlow,multbinhigh); cout << endl<<endl<<" Nevents ("<<multbinlow<<","<<multbinhigh<<") ="<<nevents<<endl<<endl<<endl;}\r
+    hNormalization->SetBinContent(hnbin,nevents);\r
     //\r
     // Loop on pt bins\r
     //\r
@@ -256,7 +266,9 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
       }\r
       //      printf(" getting the fit parameters\n");\r
       Double_t mass=fitter[massBin]->GetMean();\r
+      Double_t massUnc=fitter[massBin]->GetMeanUncertainty();\r
       Double_t sigma=fitter[massBin]->GetSigma();\r
+      Double_t sigmaUnc=fitter[massBin]->GetSigmaUncertainty();\r
       if(j==0) arrchisquare0[iBin]=fitter[massBin]->GetReducedChiSquare();\r
       else if(j==1) arrchisquare1[iBin]=fitter[massBin]->GetReducedChiSquare();\r
       else if(j==2) arrchisquare2[iBin]=fitter[massBin]->GetReducedChiSquare();\r
@@ -274,8 +286,8 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
       fitter[massBin]->Signal(3,s,errs);\r
       fitter[massBin]->Background(3,b,errb);\r
       fitter[massBin]->Significance(3,sig,errsig);\r
-      Double_t ry=fitter[iBin]->GetRawYield();\r
-      Double_t ery=fitter[iBin]->GetRawYieldError();\r
+      Double_t ry=fitter[massBin]->GetRawYield();\r
+      Double_t ery=fitter[massBin]->GetRawYieldError();\r
       myCanvas[massBin] = new TCanvas(Form("myCanvas_%d_%d",j,iBin),Form("Invariant mass mult bin %d, pt bin %d",j,iBin));\r
       fitter[massBin]->DrawHere(gPad);\r
     \r
@@ -309,9 +321,9 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
       hSignificance[j]->SetBinContent(iBin+1,sig);\r
       hSignificance[j]->SetBinError(iBin+1,errsig);\r
       hMass[j]->SetBinContent(iBin+1,mass);\r
-      hMass[j]->SetBinError(iBin+1,0.0001);\r
+      hMass[j]->SetBinError(iBin+1,massUnc);\r
       hSigma[j]->SetBinContent(iBin+1,sigma);\r
-      hSigma[j]->SetBinError(iBin+1,0.0001);\r
+      hSigma[j]->SetBinError(iBin+1,sigmaUnc);\r
 \r
       massBin++;\r
       delete hRebinned;\r
@@ -483,14 +495,15 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
     if(analysisType==kDplusKpipi) partname="Dminus";\r
   }\r
 \r
-  TString outfilename = Form("RawYield_MultInt_%s_%s",partname.Data(),CutsType);\r
+  TString outfilename = Form("RawYield_Mult_%s_%s",partname.Data(),CutsType);\r
   if(fixPeakSigma) outfilename += "_SigmaFixed";\r
   if(typeb==0) outfilename += "_Expo.root";\r
   else if(typeb==1) outfilename += "_Linear.root";\r
   else if(typeb==2) outfilename += "_Pol2.root";\r
 \r
-  TFile* outf=new TFile(outfilename,"update");\r
+  TFile* outf=new TFile(outfilename,"recreate");\r
   outf->cd(); \r
+  hNormalization->Write();\r
   for(Int_t j=0; j<massBin; j++) hmass[j]->Write();\r
   for(Int_t j=0; j<nMultbins; j++){\r
     hMass[j]->Write();\r
@@ -516,7 +529,7 @@ void ReadDvsMultiplicity(Int_t analysisType=kD0toKpi,
 }\r
 \r
 //_____________________________________________________________________________________________\r
-Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, const char *CutsType, Int_t Option)\r
+Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZvtx, TH2F** hNtrZvtxCorr, AliNormalizationCounter *counter, const char *CutsType, Int_t Option)\r
 {\r
   Int_t nFiles=listFiles->GetEntries();\r
   TList **hlist=new TList*[nFiles];\r
@@ -556,6 +569,10 @@ Bool_t LoadD0toKpiHistos(TObjArray* listFiles, TH3F** hPtMassMult, TH2F** hNtrZv
     listnorm += CutsType;\r
     printf("List norm name %s\n",listnorm.Data());\r
     hlistNorm[nReadFiles]=(TList*)dir->Get(listnorm);\r
+    //    AliNormalizationCounter *tmpcounter = (AliNormalizationCounter*)hlistNorm[nReadFiles]->FindObject("NormCounterCorrMult");\r
+    //    counter->Add(tmpcounter);\r
+    //    delete tmpcounter;\r
+    //    counter = tmpcounter;\r
 \r
     TString cutsobjname="coutputCutsD0";\r
     if(optPartAntiPart==kParticleOnly) cutsobjname+="D0";\r
@@ -723,7 +740,7 @@ Int_t nFiles=listFiles->GetEntries();
   outf->Close();\r
   return kTRUE;\r
   \r
-     }\r
+}\r
 \r
 //_____________________________________________________________________________________________\r
 TH1F* RebinHisto(TH1F* hOrig, Int_t reb, Int_t firstUse){\r