]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONCalibrationData.cxx
Adding handling of neighbours
[u/mrichter/AliRoot.git] / MUON / AliMUONCalibrationData.cxx
index 5107cd96ae3b4a2893ec195a4054cf6ee9180e05..0be3ad8d01bc4112e6394aca55b958de5b3cf9a7 100644 (file)
@@ -60,7 +60,8 @@ fRegionalTriggerBoardMasks(0x0),
 fGlobalTriggerBoardMasks(0x0),
 fTriggerLut(0x0),
 fTriggerEfficiency(0x0),
-fCapacitances(0x0)
+fCapacitances(0x0),
+fNeighbours(0x0)
 {
 /// Default ctor.
 
@@ -81,6 +82,7 @@ fCapacitances(0x0)
     OnDemandTriggerLut();
     OnDemandTriggerEfficiency();
     OnDemandCapacitances();
+    OnDemandNeighbours();
   }
 }
 
@@ -159,6 +161,14 @@ AliMUONCalibrationData::Capacitances() const
   return OnDemandCapacitances();
 }
 
+//_____________________________________________________________________________
+AliMUONV2DStore*
+AliMUONCalibrationData::Neighbours() const
+{
+  /// Create (if needed) and return the internal store for neighbours.
+  return OnDemandNeighbours();
+}
+
 //_____________________________________________________________________________
 AliMUONV2DStore*
 AliMUONCalibrationData::Gains() const
@@ -167,6 +177,31 @@ AliMUONCalibrationData::Gains() const
   return OnDemandGains();
 }
 
+//_____________________________________________________________________________
+AliMUONV2DStore*
+AliMUONCalibrationData::OnDemandNeighbours() const
+{
+  /// Create (if needed) and return the internal store for neighbours.
+  
+  if (!fNeighbours)
+  {
+    AliCDBEntry* entry = GetEntry("MUON/Calib/Neighbours");
+    if (entry)
+    {
+      fNeighbours = dynamic_cast<AliMUONV2DStore*>(entry->GetObject());
+      if (!fNeighbours)
+      {
+        AliError("Neighbours not of the expected type !!!");
+      }
+    }
+    else
+    {
+      AliError("Could not get neighbours !");
+    }
+  }
+  return fNeighbours;
+}
+
 //_____________________________________________________________________________
 AliMUONV1DStore*
 AliMUONCalibrationData::OnDemandCapacitances() const
@@ -217,6 +252,7 @@ AliMUONCalibrationData::OnDemandGains() const
   return fGains;
 }
 
+
 //_____________________________________________________________________________
 AliMUONVCalibParam* 
 AliMUONCalibrationData::GlobalTriggerBoardMasks() const
@@ -505,6 +541,8 @@ AliMUONCalibrationData::Reset()
   fTriggerEfficiency = 0x0;
   delete fCapacitances;
   fCapacitances = 0x0;
+  delete fNeighbours;
+  fNeighbours = 0x0;
 }