]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG0/AliCorrection.cxx
improved handling of tpc only tracks
[u/mrichter/AliRoot.git] / PWG0 / AliCorrection.cxx
index 3b8d455b9e359702a2e0210c319bfff936d9005d..98db4211188f9d516b32da56343182724a1b9678 100644 (file)
@@ -369,9 +369,15 @@ void AliCorrection::Scale(Double_t factor)
 }
 
 //____________________________________________________________________
-void AliCorrection::PrintInfo(Float_t ptCut)
+void AliCorrection::PrintStats(Float_t zRange, Float_t etaRange, Float_t ptCut)
 {
-  // prints some stats
+  // prints statistics and effective correction factors
+
+  Printf("AliCorrection::PrintInfo: Values in |eta| < %.2f, |vtx-z| < %.2f and pt > %.2f:", etaRange, zRange, ptCut);
+
+  // prevent to be on bin border
+  zRange -= 0.1;
+  etaRange -= 0.1;
 
   TH3* measured = GetTrackCorrection()->GetMeasuredHistogram();
   TH3* generated = GetTrackCorrection()->GetGeneratedHistogram();
@@ -379,24 +385,18 @@ void AliCorrection::PrintInfo(Float_t ptCut)
   TH2* measuredEvents = GetEventCorrection()->GetMeasuredHistogram();
   TH2* generatedEvents = GetEventCorrection()->GetGeneratedHistogram();
 
-  Printf("AliCorrection::PrintInfo: Whole phasespace:");
-
-  Printf("tracks measured: %.1f tracks generated: %.1f, events measured: %.1f, events generated %.1f", measured->Integral(), generated->Integral(), measuredEvents->Integral(), generatedEvents->Integral());
+  Float_t tracksM = measured->Integral(measured->GetXaxis()->FindBin(-zRange), measured->GetXaxis()->FindBin(zRange), measured->GetYaxis()->FindBin(-etaRange), measured->GetYaxis()->FindBin(etaRange), measured->GetZaxis()->FindBin(ptCut), measured->GetZaxis()->GetNbins());
+  Float_t tracksG = generated->Integral(generated->GetXaxis()->FindBin(-zRange), generated->GetXaxis()->FindBin(zRange), generated->GetYaxis()->FindBin(-etaRange), generated->GetYaxis()->FindBin(etaRange), generated->GetZaxis()->FindBin(ptCut), generated->GetZaxis()->GetNbins());
 
-  Printf("AliCorrection::PrintInfo: Values in |eta| < 0.8, |vtx-z| < 10 and pt > %.2f:", ptCut);
-
-  Float_t tracksM = measured->Integral(measured->GetXaxis()->FindBin(-9.9), measured->GetXaxis()->FindBin(9.9), measured->GetYaxis()->FindBin(-0.79), measured->GetYaxis()->FindBin(0.79), measured->GetZaxis()->FindBin(ptCut), measured->GetZaxis()->GetNbins());
-  Float_t tracksG = generated->Integral(generated->GetXaxis()->FindBin(-9.9), generated->GetXaxis()->FindBin(9.9), generated->GetYaxis()->FindBin(-0.79), generated->GetYaxis()->FindBin(0.79), generated->GetZaxis()->FindBin(ptCut), generated->GetZaxis()->GetNbins());
-
-  Float_t eventsM = measuredEvents->Integral(measuredEvents->GetXaxis()->FindBin(-9.9), measuredEvents->GetXaxis()->FindBin(9.9), 1, measuredEvents->GetNbinsY());
-  Float_t eventsG = generatedEvents->Integral(generatedEvents->GetXaxis()->FindBin(-9.9), generatedEvents->GetXaxis()->FindBin(9.9), 1, generatedEvents->GetNbinsY());
+  Float_t eventsM = measuredEvents->Integral(measuredEvents->GetXaxis()->FindBin(-zRange), measuredEvents->GetXaxis()->FindBin(zRange), 1, measuredEvents->GetNbinsY());
+  Float_t eventsG = generatedEvents->Integral(generatedEvents->GetXaxis()->FindBin(-zRange), generatedEvents->GetXaxis()->FindBin(zRange), 1, generatedEvents->GetNbinsY());
 
   Printf("tracks measured: %.1f tracks generated: %.1f, events measured: %.1f, events generated %.1f", tracksM, tracksG, eventsM, eventsG);
 
   if (tracksM > 0)
     Printf("Effective average correction factor for TRACKS: %.3f", tracksG / tracksM);
   if (eventsM > 0)
-  Printf("Effective average correction factor for EVENTS: %.3f", eventsG / eventsM);
+    Printf("Effective average correction factor for EVENTS: %.3f", eventsG / eventsM);
 
   if (eventsM > 0 && eventsG > 0)
   {
@@ -407,3 +407,22 @@ void AliCorrection::PrintInfo(Float_t ptCut)
     Printf("%.2f tracks/event measured, %.2f tracks/event after correction --> effective average correction factor is %.3f (pt cut %.2f GeV/c)", tracksM, tracksG, tracksG / tracksM, ptCut);
   }
 }
+
+//____________________________________________________________________
+void AliCorrection::PrintInfo(Float_t ptCut)
+{
+  // prints some stats
+
+  TH3* measured = GetTrackCorrection()->GetMeasuredHistogram();
+  TH3* generated = GetTrackCorrection()->GetGeneratedHistogram();
+
+  TH2* measuredEvents = GetEventCorrection()->GetMeasuredHistogram();
+  TH2* generatedEvents = GetEventCorrection()->GetGeneratedHistogram();
+
+  Printf("AliCorrection::PrintInfo: Whole phasespace:");
+
+  Printf("tracks measured: %.1f tracks generated: %.1f, events measured: %.1f, events generated %.1f", measured->Integral(), generated->Integral(), measuredEvents->Integral(), generatedEvents->Integral());
+
+  PrintStats(10, 1.0, ptCut);
+  PrintStats(10, 1.5, ptCut);
+}