]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliPreprocessor.cxx
Use new naming conventions from QuadSet.
[u/mrichter/AliRoot.git] / STEER / AliPreprocessor.cxx
index e265f59b52bffd4aa07324daee9684294d9db13b..af3631c7514621d9884346d435b72e3a988b0843 100644 (file)
 
 /*
 $Log$
+Revision 1.6  2006/10/02 12:57:48  jgrosseo
+Small interface change of function StoreReferenceData in Shuttle
+
+Revision 1.5  2006/09/04 17:42:34  hristov
+Changes required by Effective C++
+
+Revision 1.4  2006/08/08 14:20:49  jgrosseo
+Update to shuttle classes (Alberto)
+
+- Possibility to set the full object's path in the Preprocessor's and
+Shuttle's  Store functions
+- Possibility to extend the object's run validity in the same classes
+("startValidity" and "validityInfinite" parameters)
+- Implementation of the StoreReferenceData function to store reference
+data in a dedicated CDB storage.
+
+Revision 1.3  2006/07/11 12:42:43  jgrosseo
+adding parameters for extended validity range of data produced by preprocessor
+
 Revision 1.2  2006/06/06 16:36:49  jgrosseo
 minor changes in AliShuttleInterface and AliPreprocessor
 
@@ -77,8 +96,12 @@ some docs added
 
 ClassImp(AliPreprocessor)
 
+//______________________________________________________________________________________________
 AliPreprocessor::AliPreprocessor(const char* detector, AliShuttleInterface* shuttle) :
   TNamed(detector, ""),
+  fRun(-1),
+  fStartTime(0),
+  fEndTime(0),
   fShuttle(shuttle)
 {
        SetTitle(Form("AliPreprocessor for %s subdetector.", detector));
@@ -92,10 +115,12 @@ AliPreprocessor::AliPreprocessor(const char* detector, AliShuttleInterface* shut
   fShuttle->RegisterPreprocessor(this);
 }
 
+//______________________________________________________________________________________________
 AliPreprocessor::~AliPreprocessor()
 {
 }
 
+//______________________________________________________________________________________________
 void AliPreprocessor::Initialize(Int_t run, UInt_t startTime,  UInt_t endTime)
 {
   // Sets the information of the run which is currently processed
@@ -107,22 +132,60 @@ void AliPreprocessor::Initialize(Int_t run, UInt_t startTime,     UInt_t endTime)
   fEndTime = endTime;
 }
 
-UInt_t AliPreprocessor::Store(TObject* object, AliCDBMetaData* metaData, Int_t validityStart, Bool_t validityInfinite)
+//______________________________________________________________________________________________
+UInt_t AliPreprocessor::Store(const char* pathLevel2, const char* pathLevel3, TObject* object,
+               AliCDBMetaData* metaData, Int_t validityStart, Bool_t validityInfinite)
+{
+  // Stores a CDB object in the storage for offline reconstruction. Objects that are not needed for
+  // offline reconstruction, but should be stored anyway (e.g. for debugging) should NOT be stored
+  // using this function. Use StoreReferenceData instead!
+  //
+  // This function should be called at the end of the preprocessor cycle
+  //
+  // The parameters are
+  //   1, 2) the 2nd and 3rd level of the object's path. The first level is the detector name which is provided
+  //         by the Preprocessor and converted to the Offline name. Thus the object's path is "DET/level2/level3"
+  //   3) the object to be stored
+  //   4) the metaData to be associated with the object
+  //   5) the validity start run number w.r.t. the current run,
+  //      if the data is valid only for this run leave the default 0
+  //   6) specifies if the calibration data is valid for infinity (this means until updated),
+  //      typical for calibration runs, the default is kFALSE
+  //
+  // The call is delegated to AliShuttleInterface
+
+  const char* offlineDetName = AliShuttleInterface::GetOfflineDetName(GetName());
+  if(!offlineDetName) return 0;
+
+  return fShuttle->Store(AliCDBPath(offlineDetName, pathLevel2, pathLevel3), object,
+               metaData, validityStart, validityInfinite);
+}
+
+//______________________________________________________________________________________________
+UInt_t AliPreprocessor::StoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
+               AliCDBMetaData* metaData)
 {
-  // Stores the CDB object
+  // Stores a CDB object in the storage for reference data. This objects will not be available during
+  // offline reconstrunction. Use this function for reference data only!
+  //
   // This function should be called at the end of the preprocessor cycle
   //
   // The parameters are
-  //   1) the object to be stored
-  //   2) the metaData to be associated with the object
-  //   3) the validity start run number w.r.t. the current run, if the data is valid only for this run leave the default 0
-  //   4) specifies if the calibration data is valid for infinity (this means until updated), typical for calibration runs, the default is kFALSE
+  //   1, 2) the 2nd and 3rd level of the object's path. The first level is the detector name which is provided
+  //         by the Preprocessor and converted to the Offline name. Thus the object's path is "DET/level2/level3"
+  //   3) the object to be stored
+  //   4) the metaData to be associated with the object
   //
   // The call is delegated to AliShuttleInterface
 
-  return fShuttle->Store(GetName(), object, metaData, validityStart, validityInfinite);
+  const char* offlineDetName = AliShuttleInterface::GetOfflineDetName(GetName());
+  if(!offlineDetName) return 0;
+
+  return fShuttle->StoreReferenceData(AliCDBPath(offlineDetName, pathLevel2, pathLevel3), object,
+               metaData);
 }
 
+//______________________________________________________________________________________________
 const char* AliPreprocessor::GetFile(Int_t system, const char* id, const char* source)
 {
   // This function retrieves a file from the given system (kDAQ, kDCS, kHLT) with the given file id
@@ -134,6 +197,7 @@ const char* AliPreprocessor::GetFile(Int_t system, const char* id, const char* s
   return fShuttle->GetFile(system, GetName(), id, source);
 }
 
+//______________________________________________________________________________________________
 TList* AliPreprocessor::GetFileSources(Int_t system, const char* id)
 {
   // Returns a list of sources in a given system that saved a file with the given id
@@ -143,6 +207,7 @@ TList* AliPreprocessor::GetFileSources(Int_t system, const char* id)
   return fShuttle->GetFileSources(system, GetName(), id);
 }
 
+//______________________________________________________________________________________________
 void AliPreprocessor::Log(const char* message)
 {
   // Adds a log message to the Shuttle log of this preprocessor
@@ -151,3 +216,13 @@ void AliPreprocessor::Log(const char* message)
 
   fShuttle->Log(GetName(), message);
 }
+
+//______________________________________________________________________________________________
+const char* AliPreprocessor::GetRunParameter(const char* param)
+{
+  // Return run parameter read from run logbook
+  //
+  // The call is delegated to AliShuttleInterface
+
+  return fShuttle->GetRunParameter(param);
+}