]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPedestalSubprocessor.cxx
ConsistencyCheck() rewritten.
[u/mrichter/AliRoot.git] / MUON / AliMUONPedestalSubprocessor.cxx
index b4b1845c04d9bfb6f7f8e4c9904f34c40c14d5f7..ccc7a545268f02c459ffcbd5e7bdcef9037b8e2c 100644 (file)
 
 // $Id$
 
-#include <sstream>
-
-#include <Riostream.h>
-#include <TList.h>
-#include <TObjString.h>
-#include <TSystem.h>
+#include "AliMUONPedestalSubprocessor.h"
 
 #include "AliCDBMetaData.h"
 #include "AliLog.h"
 #include "AliMUON2DMap.h"
+#include "AliMUON2DStoreValidator.h"
 #include "AliMUONCalibParamNF.h"
-#include "AliMUONObjectPair.h"
-#include "AliMUONPedestalSubprocessor.h"
 #include "AliMUONPreprocessor.h"
-#include "AliMUONVDataIterator.h"
+#include "AliMUONTrackerIO.h"
+#include "AliMpConstants.h"
 #include "AliMpDDLStore.h"
-#include "AliMUON2DStoreValidator.h"
 #include "TObjString.h"
+#include <Riostream.h>
+#include <TList.h>
+#include <TObjString.h>
+#include <TSystem.h>
+#include <sstream>
 
-///
+//-----------------------------------------------------------------------------
 /// \class AliMUONPedestalSubprocessor
 ///
 /// Implementation of AliMUONVSubprocessor class to deal with MUON TRK pedestals.
@@ -45,7 +44,7 @@
 ///---------------------------------------------------------------------------\n
 ///
 /// \author L. Aphecetche
-///
+//-----------------------------------------------------------------------------
 
 /// \cond CLASSIMP
 ClassImp(AliMUONPedestalSubprocessor)
@@ -92,11 +91,7 @@ AliMUONPedestalSubprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endT
   {
     TString fileName(Master()->GetFile(kSystem,kId,o->GetName()));
     Int_t ok = ReadFile(fileName.Data());
-    if (!ok)
-    {
-      Master()->Log(Form("Could not read file %s",fileName.Data()));
-    }
-    else
+    if (ok>0)
     {
       n += ok;
     }
@@ -153,7 +148,9 @@ AliMUONPedestalSubprocessor::Process(TMap* /*dcsAliasMap*/)
   AliCDBMetaData metaData;
        metaData.SetBeamPeriod(0);
        metaData.SetResponsible("MUON TRK");
-       metaData.SetComment("Computed by AliMUONPedestalSubprocessor $Id$");
+  TString comment("Computed by AliMUONPedestalSubprocessor $Id$");
+  comment.ReplaceAll("$","");
+       metaData.SetComment(comment.Data());
   
   Bool_t validToInfinity = kTRUE;
        Bool_t result = Master()->Store("Calib", "Pedestals", fPedestals, &metaData, 0, validToInfinity);
@@ -178,40 +175,15 @@ AliMUONPedestalSubprocessor::ReadFile(const char* filename)
   
   Master()->Log(Form("Reading %s",sFilename.Data()));
   
-  std::ifstream in(sFilename.Data());
-  if (!in.good()) 
-  {
-    return 0;
-  }
-  char line[80];
-  Int_t busPatchID, manuID, manuChannel;
-  Float_t pedMean, pedSigma;
-  static const Int_t kNchannels(64);
-  static Bool_t replace(kFALSE);
-  Int_t n(0);
+  Int_t n = AliMUONTrackerIO::ReadPedestals(sFilename.Data(),*fPedestals);
   
-  while ( in.getline(line,80) )
+  switch (n)
   {
-    if ( line[0] == '/' && line[1] == '/' ) continue;
-    std::istringstream sin(line);
-    sin >> busPatchID >> manuID >> manuChannel >> pedMean >> pedSigma;
-    Int_t detElemID = AliMpDDLStore::Instance()->GetDEfromBus(busPatchID);
-    AliDebug(3,Form("BUSPATCH %3d DETELEMID %4d MANU %3d CH %3d MEAN %7.2f SIGMA %7.2f",
-             busPatchID,detElemID,manuID,manuChannel,pedMean,pedSigma));
-    
-    AliMUONVCalibParam* ped = 
-      static_cast<AliMUONVCalibParam*>(fPedestals->Get(detElemID,manuID));
-    
-    if (!ped) 
-    {
-      ped = new AliMUONCalibParamNF(2,kNchannels,AliMUONVCalibParam::InvalidFloatValue());  
-      fPedestals->Set(detElemID,manuID,ped,replace);
-    }
-    ped->SetValueAsFloat(manuChannel,0,pedMean);
-    ped->SetValueAsFloat(manuChannel,1,pedSigma);
-    ++n;
+    case -1:
+      Master()->Log(Form("Could not open %s",sFilename.Data()));
+      break;
   }
-  in.close();
+  
   return n;
 }
 
@@ -221,13 +193,5 @@ void
 AliMUONPedestalSubprocessor::Print(Option_t* opt) const
 {
   /// ouput to screen
-  AliMUONVDataIterator* it = fPedestals->Iterator();
-  AliMUONObjectPair* p;
-
-  while ( ( p = static_cast<AliMUONObjectPair*>(it->Next() ) ) )
-  {
-    AliMUONVCalibParam* value = static_cast<AliMUONVCalibParam*>(p->Value());
-    value->Print(opt);
-    if (it->IsOwner()) delete p;
-  }
+  if (fPedestals) fPedestals->Print("",opt);
 }