ALIROOT-5600 - skip non-participating detector modules
authortbreitne <timo.gunther.breitner@cern.ch>
Wed, 10 Sep 2014 12:17:10 +0000 (14:17 +0200)
committertbreitne <timo.gunther.breitner@cern.ch>
Fri, 12 Sep 2014 14:14:53 +0000 (16:14 +0200)
23 files changed:
HLT/BASE/AliHLTModuleAgent.cxx
HLT/BASE/AliHLTModuleAgent.h
HLT/BASE/AliHLTSystem.cxx
HLT/BASE/AliHLTSystem.h
HLT/EMCAL/AliHLTEMCALAgent.cxx
HLT/EMCAL/AliHLTEMCALAgent.h
HLT/ITS/AliHLTITSAgent.cxx
HLT/ITS/AliHLTITSAgent.h
HLT/MUON/OfflineInterface/AliHLTMUONAgent.cxx
HLT/MUON/OfflineInterface/AliHLTMUONAgent.h
HLT/PHOS/AliHLTPHOSAgent.cxx
HLT/PHOS/AliHLTPHOSAgent.h
HLT/RCU/AliHLTRCUAgent.cxx
HLT/RCU/AliHLTRCUAgent.h
HLT/TPCLib/AliHLTTPCAgent.cxx
HLT/TPCLib/AliHLTTPCAgent.h
HLT/TRD/AliHLTTRDAgent.cxx
HLT/TRD/AliHLTTRDAgent.h
HLT/VZERO/AliHLTVZEROAgent.cxx
HLT/VZERO/AliHLTVZEROAgent.h
HLT/ZDC/AliHLTZDCAgent.cxx
HLT/ZDC/AliHLTZDCAgent.h
HLT/rec/AliHLTReconstructor.cxx

index f1be54b..d0b7df1 100644 (file)
@@ -99,6 +99,12 @@ void AliHLTModuleAgent::PrintStatus(const char* agent)
   }
 }
 
+UInt_t AliHLTModuleAgent::GetDetectorMask() const
+{
+  /* all detectors */
+  return (UInt_t)(-1);
+}
+
 int AliHLTModuleAgent::CreateConfigurations(AliHLTConfigurationHandler* /*handler*/,
                                            AliRawReader* /*rawReader*/,
                                            AliRunLoader* /*runloader*/) const
index 5735934..5748cd6 100644 (file)
@@ -67,6 +67,9 @@ class AliHLTModulePreprocessor;
  *
  * @section alihltmoduleagent_interface Agent interface
  * The child can implement the following functions:
+ * - @ref GetDetectorMask                                                   <br>
+ *       DetectorMask for which reconstruction is run.
+ *
  * - @ref CreateConfigurations                                              <br>
  *       Create HLT configuration forming an HLT analysis chain.            <br>
  *       Reconstruction of raw data or simulated data from digits needs
@@ -160,6 +163,11 @@ class AliHLTModuleAgent : public TObject, public AliHLTLogging {
   int ActivateComponentHandler(AliHLTComponentHandler* pHandler);
 
   /**
+   * Return detector mask for which reconstruction is run in this module.
+   */
+  virtual UInt_t GetDetectorMask() const;
+
+  /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
    * to be registered to the current AliRoot setup by checking the
index 6c9f844..222605a 100644 (file)
@@ -91,6 +91,7 @@ AliHLTSystem::AliHLTSystem(AliHLTComponentLogSeverity loglevel, const char* name
   fName(name)
   , fECSParams()
   , fUseHLTOUTComponentTypeGlobal(true)
+  , fDetMask(0)
 {
   // see header file for class documentation
   // or
@@ -1388,8 +1389,12 @@ int AliHLTSystem::LoadConfigurations(AliRawReader* rawReader, AliRunLoader* runl
   if (agents.GetEntries()) {
     TIter next(&agents);
     while ((pAgent = dynamic_cast<AliHLTModuleAgent*>(next()))) {
-      HLTDebug("load configurations for agent %s (%p)", pAgent->GetName(), pAgent);
-      pAgent->CreateConfigurations(fpConfigurationHandler, rawReader, runloader);
+      if(fDetMask && !(fDetMask & pAgent->GetDetectorMask())) {
+       HLTInfo("Skipping %s due to active detector mask.", pAgent->GetName());
+      } else {
+       HLTDebug("load configurations for agent %s (%p)", pAgent->GetName(), pAgent);
+       pAgent->CreateConfigurations(fpConfigurationHandler, rawReader, runloader);
+      }
     }
   }
 
index c5069e0..b11a6d6 100644 (file)
@@ -459,6 +459,12 @@ class AliHLTSystem : public AliHLTLogging {
   AliHLTfctVoid FindDynamicSymbol(const char* library, const char* symbol);
 
   /**
+   * Set participating detectors
+   * @param detMask     detector mask
+   */
+  void SetDetectorMask(UInt_t detMask) {fDetMask=detMask;}
+
+  /**
    * Prepare the HLT system for running.
    * - module agents are requested to register configurations
    * - task lists are built from the reconstruction chains of the modules
@@ -666,6 +672,9 @@ class AliHLTSystem : public AliHLTLogging {
   /// indicate the argument 'hltout-type'
   bool fUseHLTOUTComponentTypeGlobal;                              //!transient
 
+  /// detector mask
+  UInt_t fDetMask;                                                 //!transient
+
   ClassDef(AliHLTSystem, 0);
 };
 
index fc9adf2..9bf183e 100644 (file)
@@ -28,6 +28,7 @@
 #include "AliHLTOUTHandlerChain.h"
 #include "AliHLTErrorGuard.h"
 #include "AliRunLoader.h"
+#include "AliDAQ.h"
 #include "AliCDBManager.h"
 #include "AliCDBEntry.h"
 
@@ -77,6 +78,11 @@ AliHLTEMCALAgent::~AliHLTEMCALAgent()
     // see header file for class documentation
 }
 
+UInt_t AliHLTEMCALAgent::GetDetectorMask() const
+{
+  return AliDAQ::kEMCAL;
+}
+
 int AliHLTEMCALAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                            AliRawReader* /*rawReader*/,
                                            AliRunLoader* /*runloader*/) const
index 6b0fba8..e993c70 100644 (file)
@@ -33,6 +33,8 @@ class AliHLTEMCALAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTEMCALAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
index edf67d3..25c06ce 100644 (file)
@@ -26,6 +26,7 @@
 #include "AliHLTITSAgent.h"
 #include "AliHLTOUT.h"
 #include "AliHLTDAQ.h"
+#include "AliDAQ.h"
 
 // header files of library components
 #include "AliHLTITSCompressRawDataSDDComponent.h"
@@ -63,6 +64,11 @@ AliHLTITSAgent::~AliHLTITSAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTITSAgent::GetDetectorMask() const
+{
+  return AliDAQ::kITS;
+}
+
 int AliHLTITSAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                         AliRawReader* rawReader,
                                         AliRunLoader* runloader) const
index 634f10d..cab2ad6 100644 (file)
@@ -42,6 +42,8 @@ class AliHLTITSAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTITSAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Inherited from AliHLTModuleAgent
    * Register all configurations belonging to this module with the
index e4ecbf1..381514f 100644 (file)
@@ -45,6 +45,7 @@
 #include "AliRunLoader.h"
 #include "AliRun.h"
 #include "AliMUON.h"
+#include "AliDAQ.h"
 #include "TSystem.h"
 #include "TObjArray.h"
 #include "TString.h"
@@ -104,6 +105,11 @@ AliHLTMUONAgent::~AliHLTMUONAgent()
        ///
 }
 
+UInt_t AliHLTMUONAgent::GetDetectorMask() const
+{
+  return AliDAQ::kMUON;
+}
+
 const char* AliHLTMUONAgent::GetReconstructionChains(AliRawReader* rawReader,
                                                     AliRunLoader* runloader
        ) const
index 8d49e86..9e529b9 100644 (file)
@@ -29,7 +29,9 @@ public:
        virtual ~AliHLTMUONAgent();
 
        // The following methods are all inherited from AliHLTModuleAgent:
-       
+
+       UInt_t GetDetectorMask() const;
+
        /**
         * Register all processing configurations belonging to the dimuon HLT
         * library with the AliHLTConfigurationHandler.
index 414ec16..14f8aa6 100644 (file)
@@ -26,6 +26,7 @@
 #include "AliHLTOUT.h"
 #include "AliHLTOUTHandlerChain.h"
 #include "AliRunLoader.h"
+#include "AliDAQ.h"
 #include "AliCDBManager.h"
 #include "AliCDBEntry.h"
 
@@ -75,6 +76,11 @@ AliHLTPHOSAgent::~AliHLTPHOSAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTPHOSAgent::GetDetectorMask() const
+{
+  return AliDAQ::kPHOS;
+}
+
 int AliHLTPHOSAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                          AliRawReader* /*rawReader*/,
                                         AliRunLoader* /*runloader*/) const
index a796c08..2007752 100644 (file)
@@ -32,6 +32,8 @@ class AliHLTPHOSAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTPHOSAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
index 3de57f1..e6e54cb 100644 (file)
@@ -25,6 +25,7 @@
 #include <cassert>
 #include "AliHLTRCUAgent.h"
 #include "AliHLTDAQ.h"
+#include "AliDAQ.h"
 
 // header files of library components
 #include "AliHLTAltroChannelSelectorComponent.h"
@@ -51,6 +52,11 @@ AliHLTRCUAgent::~AliHLTRCUAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTRCUAgent::GetDetectorMask() const
+{
+  return AliDAQ::kTPC;
+}
+
 int AliHLTRCUAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                         AliRawReader* rawReader,
                                         AliRunLoader* /*runloader*/) const
index 64a116a..e0980e4 100644 (file)
@@ -30,6 +30,8 @@ class AliHLTRCUAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTRCUAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
index 22f1192..001f7aa 100644 (file)
@@ -31,6 +31,7 @@
 #include "AliCDBEntry.h"
 #include "AliTPCParam.h"
 #include "AliTPCRecoParam.h"
+#include "AliDAQ.h"
 #include "TObject.h"
 
 /** global instance for agent registration */
@@ -87,6 +88,11 @@ AliHLTTPCAgent::~AliHLTTPCAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTTPCAgent::GetDetectorMask() const
+{
+  return AliDAQ::kTPC;
+}
+
 int AliHLTTPCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                         AliRawReader* rawReader,
                                         AliRunLoader* runloader) const
index cd7b8e5..0bc8d90 100644 (file)
@@ -47,6 +47,8 @@ class AliHLTTPCAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTTPCAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
index 30456c7..73adaa3 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "AliHLTTRDAgent.h"
 #include "AliHLTTRDDefinitions.h"
+#include "AliDAQ.h"
 
 // #include "AliHLTOUT.h"
 // #include "AliHLTOUTHandlerChain.h"
@@ -66,6 +67,11 @@ AliHLTTRDAgent::~AliHLTTRDAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTTRDAgent::GetDetectorMask() const
+{
+  return AliDAQ::kTRD;
+}
+
 int AliHLTTRDAgent::CreateConfigurations(AliHLTConfigurationHandler* /*handler*/,
                                         AliRawReader* /*rawReader*/,
                                         AliRunLoader* /*runloader*/) const
index d031c5f..0fff451 100644 (file)
@@ -34,6 +34,8 @@ class AliHLTTRDAgent : public AliHLTModuleAgent {
   /** destructor */
   virtual ~AliHLTTRDAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to this module with the
    * AliHLTConfigurationHandler. The agent can adapt the configurations
index ae13c6a..0780091 100644 (file)
@@ -24,6 +24,7 @@
 #include <cassert>
 
 #include "TSystem.h"
+#include "AliDAQ.h"
 
 #include "AliHLTVZEROAgent.h"
 
@@ -70,6 +71,11 @@ AliHLTVZEROAgent::~AliHLTVZEROAgent() {
  * ---------------------------------------------------------------------------------
  */
 
+UInt_t AliHLTVZEROAgent::GetDetectorMask() const
+{
+  return AliDAQ::kVZERO;
+}
+
 // #################################################################################
 Int_t AliHLTVZEROAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                             AliRawReader* rawReader, AliRunLoader* runloader) const {
index 52c19ad..7ccf2ba 100644 (file)
@@ -101,6 +101,8 @@ class AliHLTVZEROAgent : public AliHLTModuleAgent {
    * ---------------------------------------------------------------------------------
    */
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to the VZERO library with the
    * AliHLTConfigurationHandler. 
index bfdfa9f..de5207c 100644 (file)
@@ -25,7 +25,7 @@
 #include <cassert>
 
 #include "TSystem.h"
-
+#include "AliDAQ.h"
 #include "AliHLTZDCAgent.h"
 
 #include "AliHLTErrorGuard.h"
@@ -58,6 +58,11 @@ AliHLTZDCAgent::~AliHLTZDCAgent()
   // see header file for class documentation
 }
 
+UInt_t AliHLTZDCAgent::GetDetectorMask() const
+{
+  return AliDAQ::kZDC;
+}
+
 int AliHLTZDCAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
                                         AliRawReader* rawReader,
                                         AliRunLoader* runloader) const
index c8a5ac4..34a5724 100644 (file)
@@ -88,6 +88,8 @@ class AliHLTZDCAgent : public AliHLTModuleAgent {
 /** destructor */
   virtual ~AliHLTZDCAgent();
 
+  UInt_t GetDetectorMask() const;
+
   /**
    * Register all configurations belonging to the ZDC library with the
    * AliHLTConfigurationHandler. 
index e5594d9..7fdab9b 100644 (file)
@@ -49,6 +49,7 @@
 #include "AliTriggerCluster.h"
 #include "AliDAQ.h"
 #include "AliRunLoader.h"
+#include "AliRunInfo.h"
 
 class AliCDBEntry;
 
@@ -185,6 +186,7 @@ void AliHLTReconstructor::Init()
   }
 
   if (!pSystem->CheckStatus(AliHLTSystem::kReady)) {
+    pSystem->SetDetectorMask(GetRunInfo()->GetDetectorMask());
     if (pSystem->ScanOptions(option.Data())<0) {
       AliError("error setting options for HLT system");
       return;