/*
$Log$
+Revision 1.17 2007/08/28 16:03:30 acolla
+Restored to v1.14:
+
+
+Function Bool_t GetHLTStatus() added to preprocessor interface. It will return
+the status of HLT read from the run logbook.
+
+Revision 1.16 2007/08/22 09:20:50 hristov
+Updated QA classes (Yves)
+
+Revision 1.14 2007/05/30 06:35:21 jgrosseo
+Adding functionality to the Shuttle/TestShuttle:
+o) Function to retrieve list of sources from a given system (GetFileSources with id=0)
+o) Function to retrieve list of IDs for a given source (GetFileIDs)
+These functions are needed for dealing with the tag files that are saved for the GRP preprocessor
+Example code has been added to the TestProcessor in TestShuttle
+
Revision 1.13 2007/04/12 08:26:33 jgrosseo
updated commment
#include "AliPreprocessor.h"
#include <TString.h>
-#include <TList.h>
#include <TMap.h>
+#include <TObjString.h>
#include "AliLog.h"
#include "AliCDBMetaData.h"
fRun(-1),
fStartTime(0),
fEndTime(0),
- fShuttle(shuttle)
+ fShuttle(shuttle),
+ fRunTypes()
{
SetTitle(Form("AliPreprocessor for %s subdetector.", detector));
}
fShuttle->RegisterPreprocessor(this);
+
+ fRunTypes.SetOwner(kTRUE);
}
//______________________________________________________________________________________________
if(!offlineDetName) return 0;
return fShuttle->StoreReferenceFile(GetName(), localFile, gridFileName);
}
+
+//______________________________________________________________________________________________
+Bool_t AliPreprocessor::StoreRunMetadataFile(const char* localFile, const char* gridFileName)
+{
+ //
+ // Stores Run metadata file to the Grid, in the run folder
+ //
+ // Only GRP can call this function.
+
+ TString detName(GetName());
+ if (detName != "GRP")
+ {
+ Log("StoreRunMetadataFile - Only GRP can call this function.");
+ return kFALSE;
+ }
+ return fShuttle->StoreRunMetadataFile(localFile, gridFileName);
+}
//______________________________________________________________________________________________
const char* AliPreprocessor::GetFile(Int_t system, const char* id, const char* source)
}
//______________________________________________________________________________________________
-void AliPreprocessor::Log(const char* message)
+void AliPreprocessor::Log(const char* message, UInt_t level)
{
// Adds a log message to the Shuttle log of this preprocessor
//
// The call is delegated to AliShuttleInterface
- fShuttle->Log(GetName(), message);
+ fShuttle->Log(GetName(), message, level);
}
//______________________________________________________________________________________________
return fShuttle->GetRunType();
}
+
+//______________________________________________________________________________________________
+Bool_t AliPreprocessor::GetHLTStatus()
+{
+ // Return HLT status (ON or OFF)
+ // Converts the HLT status from the status string read in the run logbook (not just a bool)
+ // The call is delegated to AliShuttleInterface
+
+ return fShuttle->GetHLTStatus();
+
+}
+
+//______________________________________________________________________________________________
+const char* AliPreprocessor::GetTriggerConfiguration()
+{
+ // Returns the trigger configuration which is read from a table in the DAQ logbook
+ // The call is delegated to AliShuttleInterface
+ // Only GRP can call this function.
+
+ TString detName(GetName());
+ if (detName != "GRP")
+ {
+ Log("GetTriggerConfiguration - Only GRP can call this function.");
+ return 0;
+ }
+
+ return fShuttle->GetTriggerConfiguration();
+}
+//______________________________________________________________________________________________
+const char* AliPreprocessor::GetCTPTimeParams()
+{
+ // Returns the CTP timing parameters read from a table in the DAQ logbook
+ // The call is delegated to AliShuttleInterface
+ // Only GRP can call this function.
+
+ TString detName(GetName());
+ if (detName != "GRP")
+ {
+ Log("GetCTPTimeParams - Only GRP can call this function.");
+ return 0;
+ }
+
+ return fShuttle->GetCTPTimeParams();
+}
+//______________________________________________________________________________________________
+const char* AliPreprocessor::GetTriggerDetectorMask()
+{
+ // Returns the trigger detector mask which is read from a table in the DAQ logbook
+ // The call is delegated to AliShuttleInterface
+ // Only TRI can call this function.
+
+ TString detName(GetName());
+ if (detName != "TRI")
+ {
+ Log("GetTriggerDetectorMask - Only TRI can call this function.");
+ return 0;
+ }
+
+ return fShuttle->GetTriggerDetectorMask();
+}
+
+//______________________________________________________________________________________________
+void AliPreprocessor::AddRunType(const char* runType)
+{
+ // adds the given run type to the list of run types that are processed
+ // this function should be called in the constructor of the derived preprocessor
+
+ if (!runType)
+ return;
+
+ fRunTypes.Add(new TObjString(runType));
+}
+
+//______________________________________________________________________________________________
+Bool_t AliPreprocessor::AliPreprocessor::ProcessRunType()
+{
+ // searches for the current run type in the list of run types that are processed by this
+ // preprocessor. The list is populated by AddRunType
+
+ const char* runType = GetRunType();
+
+ Log(Form("Checking if run type %s is in the list of run types to be processed by this preprocessor...", runType));
+
+ if (fRunTypes.GetEntries() == 0)
+ Log("WARNING! There are no run types defined. This preprocessor will never run.");
+
+ if (fRunTypes.FindObject(runType))
+ {
+ Log("Run type found. Processing this run.");
+ return kTRUE;
+ }
+
+ Log("Run type not found. Skipping this run.");
+ return kFALSE;
+}
+//______________________________________________________________________________________________
+UInt_t AliPreprocessor::GetStartTimeDCSQuery()
+{
+ // Return Start Time for the DCS query
+ //
+ // The call is delegated to AliShuttleInterface
+
+ return fShuttle->GetStartTimeDCSQuery();
+}
+//______________________________________________________________________________________________
+UInt_t AliPreprocessor::GetEndTimeDCSQuery()
+{
+ // Return End Time for the DCS query
+ //
+ // The call is delegated to AliShuttleInterface
+
+ return fShuttle->GetEndTimeDCSQuery();
+}
+
+//______________________________________________________________________________________________
+const char* AliPreprocessor::GetForeignFile(const char* detector, Int_t system, const char* id, const char* source)
+{
+ // This function retrieves a file produced from the given detector (different from the
+ // current one) from the given system (kDAQ, kDCS, kHLT)
+ // with the given file id
+ // and from the given source in the system.
+ // The function returnes the path to the local file.
+ //
+ // The call is delegated to AliShuttleInterface
+ // The function can be called only from the GRP preprocessor
+
+ TString detName(GetName());
+ if (detName != "GRP")
+ {
+ Log("GetForeignFile - Only GRP can call this function.");
+ return 0;
+ }
+ return fShuttle->GetFile(system, detector, id, source);
+}
+
+//______________________________________________________________________________________________
+TList* AliPreprocessor::GetForeignFileSources(const char* detector, Int_t system, const char* id)
+{
+ // Returns the list of sources in a given system that produced the file
+ // with the given id for the foreign detector specified
+ //
+ // The call is delegated to AliShuttleInterface
+ // The function can be called only from the GRP preprocessor
+
+ TString detName(GetName());
+ if (detName != "GRP")
+ {
+ Log("GetForeignFileSources - Only GRP can call this function.");
+ return 0;
+ }
+ return fShuttle->GetFileSources(system, detector, id);
+}
+