]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPreprocessor.cxx
Removing quick code hack and unnecessary methods. Now have a much cleaner implementat...
[u/mrichter/AliRoot.git] / MUON / AliMUONPreprocessor.cxx
index 8bc207a2a55e7ee6fb68fea9bb3bf9131225413a..5c91fd08a93393bf97224bd3b3073c0569ea2fb7 100644 (file)
 #include "AliMUONHVSubprocessor.h"
 #include "AliMUONGMSSubprocessor.h"
 
+#include "AliMpSegmentation.h"
+#include "AliMpDDLStore.h"
+
 #include "AliLog.h"
 #include "AliShuttleInterface.h"
 #include "Riostream.h"
 #include "TObjArray.h"
 
+//-----------------------------------------------------------------------------
 /// \class AliMUONPreprocessor
 ///
 /// Shuttle preprocessor for MUON subsystems (TRK and TRG)
 /// (of type AliMUONVSubprocessor).
 ///
 /// \author Laurent Aphecetche
+//-----------------------------------------------------------------------------
 
 /// \cond CLASSIMP
 ClassImp(AliMUONPreprocessor)
 /// \endcond
 
-const TString  AliMUONPreprocessor::fgkTrackerDetName = "MCH";
-const TString  AliMUONPreprocessor::fgkTriggerDetName = "MTR";
-
 //_____________________________________________________________________________
-AliMUONPreprocessor::AliMUONPreprocessor(const TString& detName, 
-                                         AliShuttleInterface* shuttle) 
-: AliPreprocessor(detName.Data(),shuttle), 
-//  fSubprocessors(new TObjArray[kLast])
-  fSubprocessors(new TObjArray())
+AliMUONPreprocessor::AliMUONPreprocessor(const char* detName, AliShuttleInterface* shuttle)
+: AliPreprocessor(detName, shuttle),
+  fSubprocessors(new TObjArray()),
+  fProcessDCS(kFALSE)
 {
-  /// ctor. Builds the list of subtasks
-  /// Tests detector wrt to tracker or trigger to 
-  /// instantiate the correct list of subtasks, which should be : 
-  /// Tracker : 
-  /// - pedestals
-  /// - gains
-  /// - deadchannels
-  /// - gms
-  ///
-  /// Trigger : 
-  /// - masks
-  /// - lut
-  
-  if ( detName == fgkTrackerDetName ) 
-  { 
-    TString runType = shuttle->GetRunParameter("RunType");
-    if ( runType == "PEDESTAL_RUN" ) // FIXME : check the name 
-    {
-      fSubprocessors->Add(new AliMUONPedestalSubprocessor(this)); // to be called only for pedestal runs
-      Log("INFO-Will run Pedestal subprocessor");
-    }
-    else if ( runType == "ELECTRONICS_CALIBRATION_RUN" ) // FIXME : check the name 
-    {  
-      Log("WARNING-Subprocessor for gains not yet implemented");
-      //fSubprocessors->Add(new AliMUONGainSubprocessor(this)); // to be called only for gain runs
-    }
-    else if ( runType == "GMS" ) // FIXME : check the name 
-    {
-      fSubprocessors->Add(new AliMUONGMSSubprocessor(this));
-      Log("INFO-Will run GMS subprocessor");
-    }
-    else if ( runType == "PHYSICS" ) // FIXME : check the name
-    {
-      fSubprocessors->Add(new AliMUONHVSubprocessor(this)); // to be called only for physics runs
-      Log("INFO-Will run HV subprocessor");
-    }
-    else
-    {
-      Log(Form("ERROR-Unknown RunType=%",runType.Data()));
-    }
-  }
-  else if ( detName == fgkTriggerDetName ) 
-  {
-    Log("WARNING-Trigger subprocessors not yet implemented.");
-  }  
-  else 
-  { 
-    // Wrong detector name
-    Log("ERROR-Wrong detector name.");
-  }  
+  /// ctor
 }
 
 //_____________________________________________________________________________
@@ -108,11 +60,39 @@ AliMUONPreprocessor::~AliMUONPreprocessor()
   delete fSubprocessors;
 }
 
+//_____________________________________________________________________________
+void
+AliMUONPreprocessor::ClearSubprocessors()
+{
+  /// Empty our subprocessor list
+  fSubprocessors->Clear();
+  fProcessDCS = kFALSE;
+}
+
+//_____________________________________________________________________________
+void
+AliMUONPreprocessor::Add(AliMUONVSubprocessor* sub, Bool_t processDCS)
+{
+  /// Add a subprocessor to our list of workers
+  fSubprocessors->Add(sub);
+  if ( processDCS == kTRUE ) fProcessDCS = processDCS;
+}
+
 //_____________________________________________________________________________
 void
 AliMUONPreprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTime)
 {
-  /// loop over subtasks and initialize them
+/// Load mapping and initialize subtasks  
+
+  // Delete previous mapping
+  delete AliMpSegmentation::Instance(false);
+  delete AliMpDDLStore::Instance(false);
+  
+  // Load mapping from CDB for this run
+  GetFromOCDB("Calib", "Mapping");
+  GetFromOCDB("Calib", "DDLStore");
+
+  // loop over subtasks and initialize them
   for ( Int_t i = 0; i <= fSubprocessors->GetLast(); ++i )
   {
     Subprocessor(i)->Initialize(run,startTime,endTime);