]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFDataGrid.cxx
A better (?)
[u/mrichter/AliRoot.git] / CORRFW / AliCFDataGrid.cxx
index 6ae8abe3745046d2d72017021dd24d4c3915e4de..30a9f5122d156f070c009f2f7bd541b9fe50d86c 100644 (file)
@@ -44,19 +44,8 @@ AliCFDataGrid::AliCFDataGrid() :
 }
 
 //____________________________________________________________________
-AliCFDataGrid::AliCFDataGrid(const Char_t* name,const Char_t* title) : 
-  AliCFGridSparse(name,title),
-  fSelData(-1),
-  fContainer(0x0)
-{
-  //
-  // default constructor
-  //
-}
-
-//____________________________________________________________________
-AliCFDataGrid::AliCFDataGrid(const Char_t* name, const Char_t* title, const Int_t nVarIn, const Int_t * nBinIn, const Double_t *binLimitsIn) :  
-  AliCFGridSparse(name,title,nVarIn,nBinIn,binLimitsIn),
+AliCFDataGrid::AliCFDataGrid(const Char_t* name, const Char_t* title, const Int_t nVarIn, const Int_t * nBinIn) :
+  AliCFGridSparse(name,title,nVarIn,nBinIn),
   fSelData(-1),
   fContainer(0x0)
 {
@@ -65,22 +54,27 @@ AliCFDataGrid::AliCFDataGrid(const Char_t* name, const Char_t* title, const Int_
   //
   SumW2();// errors saved
 }
+
 //____________________________________________________________________
-AliCFDataGrid::AliCFDataGrid(const Char_t* name, const Char_t* title, const AliCFContainer &c) :  
+AliCFDataGrid::AliCFDataGrid(const Char_t* name, const Char_t* title, const AliCFContainer &c, Int_t step) :  
   AliCFGridSparse(name,title),
-  fSelData(-1),
-  fContainer(0x0)
+  fSelData(step),
+  fContainer(&c)
 {
   //
   // main constructor
+  // assign directly the selection step
   //
 
-  //assign the container;
-  fContainer=&c;
-  fNVar = c.GetNVar();
+  //simply clones the container's data at specified step
+  fData = (THnSparse*) fContainer->GetGrid(fSelData)->GetGrid()->Clone();
+  SumW2();
+  AliInfo(Form("retrieving measured data from Container %s at selection step %i.",fContainer->GetName(),fSelData));
 }
+
 //____________________________________________________________________
-AliCFDataGrid::AliCFDataGrid(const AliCFDataGrid& data) :   AliCFGridSparse(),
+AliCFDataGrid::AliCFDataGrid(const AliCFDataGrid& data) : 
+  AliCFGridSparse(data),
   fSelData(-1),
   fContainer(0x0)
 {
@@ -97,30 +91,17 @@ AliCFDataGrid::~AliCFDataGrid()
   // destructor
   //
 }
+
 //____________________________________________________________________
 AliCFDataGrid &AliCFDataGrid::operator=(const AliCFDataGrid &c)
 {
   //
   // assigment operator
   //
-  if (this != &c)
-    ((AliCFDataGrid &) c).Copy(*this);
+  if (this != &c) c.Copy(*this);
   return *this;
 } 
-//____________________________________________________________________
 
-void AliCFDataGrid::SetMeasured(Int_t istep)
-{
-  //
-  // Deposit observed data over the grid
-  //
-  
-  fSelData = istep ;
-  //simply clones the container's data at specified step
-  fData = (THnSparse*) ((AliCFGridSparse*)fContainer->GetGrid(istep))->GetGrid()->Clone();
-  SumW2();
-  AliInfo(Form("retrieving measured data from Container %s at selection step %i.",fContainer->GetName(),fSelData));
-} 
 //____________________________________________________________________
 void AliCFDataGrid::ApplyEffCorrection(const AliCFEffGrid &c)
 {
@@ -128,7 +109,7 @@ void AliCFDataGrid::ApplyEffCorrection(const AliCFEffGrid &c)
   //
   // Apply the efficiency correction
   //
-  if(c.GetNVar()!=fNVar){
+  if (c.GetNVar()!=GetNVar()) {
     AliInfo("Different number of variables, cannot apply correction");
     return;
   }
@@ -142,21 +123,20 @@ void AliCFDataGrid::ApplyBGCorrection(const AliCFDataGrid &c)
   //
   // Apply correction for background
   //
-  if(c.GetNVar()!=fNVar){
+  if (c.GetNVar()!=GetNVar()) {
     AliInfo("Different number of variables, cannot apply correction");
     return;
   }
-  Add(&c);
+  Add(&c,-1);
   AliInfo(Form("background %s subtracted from data %s.",c.GetName(),GetName()));
 }
+
 //____________________________________________________________________
 void AliCFDataGrid::Copy(TObject& c) const
 {
   // copy function
-
   Copy(c);
   AliCFDataGrid& target = (AliCFDataGrid &) c;
   target.fContainer=fContainer;
   target.fSelData=fSelData;
-
 }