#include "AliMUONPreprocessor.h"
-#include "AliMUONPedestalSubprocessor.h"
-#include "AliMUONHVSubprocessor.h"
+#include "AliCDBEntry.h"
+#include "AliLog.h"
#include "AliMUONGMSSubprocessor.h"
-
-#include "AliMpSegmentation.h"
+#include "AliMUONHVSubprocessor.h"
+#include "AliMUONPedestalSubprocessor.h"
+#include "AliMpCDB.h"
#include "AliMpDDLStore.h"
-
-#include "AliLog.h"
+#include "AliMpDataMap.h"
+#include "AliMpDataStreams.h"
+#include "AliMpSegmentation.h"
#include "AliShuttleInterface.h"
#include "Riostream.h"
#include "TObjArray.h"
//_____________________________________________________________________________
AliMUONPreprocessor::AliMUONPreprocessor(const char* detName, AliShuttleInterface* shuttle)
: AliPreprocessor(detName, shuttle),
+ fIsValid(kFALSE),
+ fIsApplicable(kTRUE),
fSubprocessors(new TObjArray()),
- fProcessDCS(kFALSE),
- fIsValid(kFALSE)
+ fProcessDCS(kFALSE)
{
/// ctor
}
fSubprocessors->Clear();
fProcessDCS = kFALSE;
fIsValid = kFALSE;
+ fIsApplicable = kTRUE;
}
//_____________________________________________________________________________
/// Load mapping and initialize subtasks
// Delete previous mapping
- delete AliMpSegmentation::Instance(false);
- delete AliMpDDLStore::Instance(false);
-
- // Load mapping from CDB for this run
+ AliMpCDB::UnloadAll();
- fIsValid = kTRUE;
+ if ( ! IsApplicable() ) {
+ Log(Form("WARNING-RunType=%s is not one I should handle.",GetRunType()));
+ return;
+ }
- AliCDBEntry* e = GetFromOCDB("Calib", "Mapping");
- if (!e)
+ // Load mapping from CDB for this run
+ AliCDBEntry* cdbEntry = GetFromOCDB("Calib", "MappingData");
+ if (!cdbEntry)
{
- Log("Could not get Mapping from OCDB !");
+ Log("Could not get MappingData from OCDB !");
fIsValid = kFALSE;
}
-
- e = GetFromOCDB("Calib", "DDLStore");
- if (!e)
+ else
{
- Log("Could not get DDLStore from OCDB");
- fIsValid = kFALSE;
+ AliMpDataMap* dataMap = dynamic_cast<AliMpDataMap*>(cdbEntry->GetObject());
+ if (!dataMap)
+ {
+ Log("DataMap is not of the expected type. That is bad...");
+ fIsValid = kFALSE;
+ }
+ else
+ {
+ AliMpDataStreams dataStreams(dataMap);
+ AliMpDDLStore::ReadData(dataStreams);
+ }
}
-
+
if (IsValid())
{
// loop over subtasks and initialize them
Subprocessor(i)->Initialize(run,startTime,endTime);
}
}
+ Log(Form("Initialize was %s",( IsValid() ? "fine" : "NOT OK")));
}
//_____________________________________________________________________________
return 99;
}
+ if (!IsApplicable())
+ {
+ Log("Nothing to do for me");
+ return 0;
+ }
+
UInt_t rv(0);
for ( Int_t i = 0; i <= fSubprocessors->GetLast(); ++i )