]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliPreprocessor.cxx
Trigger input names added to ESD (Plamen)
[u/mrichter/AliRoot.git] / STEER / AliPreprocessor.cxx
index 92616346c80b8bf0df82ecf84a65a45d1554c4d9..0fd756bb6f20bb7bd0edeec016f18b543c9a584e 100644 (file)
 
 /*
 $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
 
@@ -113,8 +130,8 @@ some docs added
 #include "AliPreprocessor.h"
 
 #include <TString.h>
-#include <TList.h>
 #include <TMap.h>
+#include <TObjString.h>
 
 #include "AliLog.h"
 #include "AliCDBMetaData.h"
@@ -132,7 +149,8 @@ AliPreprocessor::AliPreprocessor(const char* detector, AliShuttleInterface* shut
   fRun(-1),
   fStartTime(0),
   fEndTime(0),
-  fShuttle(shuttle)
+  fShuttle(shuttle),
+  fRunTypes()
 {
        SetTitle(Form("AliPreprocessor for %s subdetector.", detector));
 
@@ -143,6 +161,8 @@ AliPreprocessor::AliPreprocessor(const char* detector, AliShuttleInterface* shut
   }
 
   fShuttle->RegisterPreprocessor(this);
+  
+  fRunTypes.SetOwner(kTRUE);
 }
 
 //______________________________________________________________________________________________
@@ -231,6 +251,23 @@ Bool_t AliPreprocessor::StoreReferenceFile(const char* localFile, const char* gr
        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)
@@ -266,13 +303,13 @@ TList* AliPreprocessor::GetFileIDs(Int_t system, 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);
 }
 
 //______________________________________________________________________________________________
@@ -308,3 +345,156 @@ const char* AliPreprocessor::GetRunType()
 
   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);
+}
+