Bug fix to DensityCalculator and PoissonCalculator - the correct dimensions for the...
authorhansena <hansena@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jan 2012 15:23:35 +0000 (15:23 +0000)
committerhansena <hansena@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 23 Jan 2012 15:23:35 +0000 (15:23 +0000)
PWG2/FORWARD/analysis2/AliFMDDensityCalculator.cxx
PWG2/FORWARD/analysis2/AliPoissonCalculator.cxx
PWG2/FORWARD/analysis2/AliPoissonCalculator.h

index 91bffce..70685ed 100644 (file)
@@ -318,7 +318,7 @@ AliFMDDensityCalculator::Calculate(const AliESDFMD&        fmd,
        return false;
       }
       // rh->fPoisson.SetObject(d,r,vtxbin,cent);
-      rh->fPoisson.Reset(h);
+      rh->fPoisson.Reset(nt, ns);
       // rh->ResetPoissonHistos(h, fEtaLumping, fPhiLumping);
       
       for (UShort_t s=0; s<ns; s++) { 
index be9f30a..ff02c93 100644 (file)
@@ -11,8 +11,8 @@
 // A class to calculate the multiplicity in @f$(x,y)@f$ bins
 // using Poisson statistics. 
 //
-// The input is assumed to be binned in @f$(x,y)@f$ as described by
-// the 2D histogram passwd to the Reset member function.
+// The input is assumed to be binned in @f$(x,y)@f$ with the number of channels
+// input to the Reset member function.
 //
 // The data is grouped in to regions as defined by the parameters
 // fXLumping and fYLumping.  The total number of cells and number of
@@ -86,7 +86,7 @@ AliPoissonCalculator::AliPoissonCalculator(const AliPoissonCalculator& o)
     fCorr(0)
 {
   Init();
-  Reset(o.fBasic);
+//  Reset();
 }
 
 //____________________________________________________________________
@@ -117,7 +117,7 @@ AliPoissonCalculator::operator=(const AliPoissonCalculator& o)
   fYLumping = o.fYLumping;
   CleanUp();
   Init();
-  Reset(o.fBasic);
+ // Reset();
   return *this;
 }
 
@@ -206,29 +206,29 @@ AliPoissonCalculator::SetLumping(UShort_t nx, UShort_t ny)
 
 //____________________________________________________________________
 void
-AliPoissonCalculator::Reset(const TH2D* base)
+AliPoissonCalculator::Reset(UShort_t xChannels, UShort_t yChannels)
 {
   // 
   // Reset histogram 
   // 
   
-  if (!base) return;
   if (fBasic && fTotal && fEmpty) {
     fBasic->Reset();
     fTotal->Reset();
     fEmpty->Reset();
     return;
   }
-  Int_t    nXF   = base->GetNbinsX();
+  Int_t    nXF   = xChannels;
   Int_t    nX    = nXF / fXLumping;
-  Double_t xMin  = base->GetXaxis()->GetXmin();
-  Double_t xMax  = base->GetXaxis()->GetXmax();
-  Int_t    nYF   = base->GetNbinsY();
+  Double_t xMin  = -0.5;
+  Double_t xMax  = nXF - 0.5;
+  Int_t    nYF   = yChannels;
   Int_t    nY    = nYF / fYLumping;
-  Double_t yMin  = base->GetYaxis()->GetXmin();
-  Double_t yMax  = base->GetYaxis()->GetXmax();
-  
-  fBasic = static_cast<TH2D*>(base->Clone("basic"));
+  Double_t yMin  = -0.5;
+  Double_t yMax  = nYF - 0.5;
+
+  fBasic = new TH2D("basic", "basic number of hits",
+                   nX, xMin, xMax, nY, yMin, yMax);
   fBasic->SetTitle("Basic number of hits");
   fBasic->SetDirectory(0);
   fBasic->Sumw2();
index 7ac375d..a3bc73a 100644 (file)
@@ -13,7 +13,7 @@ class TBrowser;
  * described by the 2D histogram passwd to the Reset member function.  
  *
  * The data is grouped in to regions as defined by the parameters
- * fEtaLumping and fPhiLumping.  The total number of cells and number
+ * fXLumping and fYLumping.  The total number of cells and number
  * of empty cells is then calculate in each region.  The mean
  * multiplicity over the region is then determined as 
  *
@@ -103,9 +103,10 @@ public:
   /** 
    * Reset the cache histogram 
    * 
-   * @param base Basic histogram 
+   * @param xChannels number of channels in x 
+   * @param yChannels number of channels in y 
    */
-  void Reset(const TH2D* base);
+  void Reset(UShort_t xChannels, UShort_t yChannels);
   /** 
    * Fill in an observation 
    *