]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/trigger/AliHLTTriggerAgent.cxx
bugfix: mc labels for padrow-sorted cluster data block; preparing the track index...
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerAgent.cxx
index 55863b139d7cc65e18bfee709102799d229374c6..d3015119b20a62fca539555c25e51ccb32340d08 100644 (file)
 #include "TTree.h"
 
 // header files of library components
-#include "AliHLTEventSummaryProducerComponent.h"
-#include "AliHLTRunSummaryProducerComponent.h"
 #include "AliHLTTriggerBarrelMultiplicity.h"
 #include "AliHLTD0Trigger.h"
 #include "AliHLTTriggerITSMultiplicity.h"
 #include "AliHLTTriggerBarrelGeomMultiplicity.h"
-#include "AliHLTTriggerBarrelCosmic.h"
 #include "AliHLTGlobalTriggerComponent.h"
 #include "AliHLTTriggerPhosClusterEnergy.h"
+#include "AliHLTTriggerEmcalClusterEnergy.h"
 #include "AliHLTTriggerPhosMip.h"
 #include "AliHLTTriggerTrdClusterMultiplicity.h"
 #include "AliHLTTriggerGammaConversion.h"
 #include "AliHLTMuonSpectroTriggerComponent.h"
+#include "AliHLTUpcTriggerComponent.h"
+#include "AliHLTTriggerCosmics.h"
+#include "AliHLTTriggerCounterComponent.h"
+#include "AliHLTTriggerEmcalElectron.h"
+//#include "AliHLTTriggerFastJet.h"
+#include "AliHLTFastJetMonitorComponent.h"
+#include "AliHLTEmcalElectronMonitorComponent.h"
 
 /** global instance for agent registration */
 AliHLTTriggerAgent gAliHLTTriggerAgent;
@@ -82,18 +87,25 @@ int AliHLTTriggerAgent::RegisterComponents(AliHLTComponentHandler* pHandler) con
   pHandler->AddComponent(new AliHLTTriggerITSMultiplicity);
   pHandler->AddComponent(new AliHLTD0Trigger);
   pHandler->AddComponent(new AliHLTTriggerBarrelGeomMultiplicity);
-  pHandler->AddComponent(new AliHLTTriggerBarrelCosmic);
   pHandler->AddComponent(new AliHLTTriggerPhosClusterEnergy); 
+  pHandler->AddComponent(new AliHLTTriggerEmcalClusterEnergy); 
   pHandler->AddComponent(new AliHLTTriggerPhosMip); 
   pHandler->AddComponent(new AliHLTTriggerTrdClusterMultiplicity);
   pHandler->AddComponent(new AliHLTTriggerGammaConversion);
   pHandler->AddComponent(new AliHLTMuonSpectroTriggerComponent);
-  return 0;
+  pHandler->AddComponent(new AliHLTUpcTriggerComponent);
+  pHandler->AddComponent(new AliHLTTriggerCosmics);
+  pHandler->AddComponent(new AliHLTTriggerCounterComponent);
+  pHandler->AddComponent(new AliHLTTriggerEmcalElectron);
+  //pHandler->AddComponent(new AliHLTTriggerFastJet);
+  pHandler->AddComponent(new AliHLTFastJetMonitorComponent);
+  pHandler->AddComponent(new AliHLTEmcalElectronMonitorComponent);
+ return 0;
 }
 
 int AliHLTTriggerAgent::CreateConfigurations(AliHLTConfigurationHandler* pHandler,
-                                           AliRawReader* /*rawReader*/,
-                                           AliRunLoader* /*runloader*/) const
+                                           AliRawReader* rawReader,
+                                           AliRunLoader* runloader) const
 {
   // see header file for class documentation
   if (!pHandler) return -EINVAL;
@@ -106,7 +118,7 @@ int AliHLTTriggerAgent::CreateConfigurations(AliHLTConfigurationHandler* pHandle
   // a central barrel charged particle multiplicity trigger
   configurationId="TRIGGER-Barrel-Multiplicity";
 
-  // define the inputsfor the BarrelMultiplicityTrigger
+  // define the inputs for the BarrelMultiplicityTrigger
   triggerInputs="GLOBAL-esd-converter";
 
   // check for the availibility
@@ -123,11 +135,37 @@ int AliHLTTriggerAgent::CreateConfigurations(AliHLTConfigurationHandler* pHandle
     delete pTokens;
   }
 
+  TString arg;
   if (triggerInputs.Length()>0) {
+    // define multiple instances of the BarrelMultiplicityTrigger with different settings
     HLTInfo("Configuring inputs for %s: %s", configurationId.Data(), triggerInputs.Data());
     pHandler->CreateConfiguration(configurationId.Data(), "BarrelMultiplicityTrigger", triggerInputs.Data(), "");
     if (triggerOutputs.Length()>0) triggerOutputs+=" ";
     triggerOutputs+=configurationId;
+
+    configurationId="TRIGGER-Barrel-HighMultiplicity";
+    arg="-triggername BarrelHighMultiplicity";
+    pHandler->CreateConfiguration(configurationId.Data(), "BarrelMultiplicityTrigger", triggerInputs.Data(), arg.Data());
+    if (triggerOutputs.Length()>0) triggerOutputs+=" ";
+    triggerOutputs+=configurationId;
+
+    configurationId="TRIGGER-Barrel-Pt_v01";
+    arg="-triggername BarrelPt_v01";
+    pHandler->CreateConfiguration(configurationId.Data(), "BarrelMultiplicityTrigger", triggerInputs.Data(), arg.Data());
+    if (triggerOutputs.Length()>0) triggerOutputs+=" ";
+    triggerOutputs+=configurationId;
+
+    configurationId="TRIGGER-Barrel-Pt_v02";
+    arg="-triggername BarrelPt_v02";
+    pHandler->CreateConfiguration(configurationId.Data(), "BarrelMultiplicityTrigger", triggerInputs.Data(), arg.Data());
+    if (triggerOutputs.Length()>0) triggerOutputs+=" ";
+    triggerOutputs+=configurationId;
+
+    configurationId="TRIGGER-Barrel-Pt_v03";
+    arg="-triggername BarrelPt_v03";
+    pHandler->CreateConfiguration(configurationId.Data(), "BarrelMultiplicityTrigger", triggerInputs.Data(), arg.Data());
+    if (triggerOutputs.Length()>0) triggerOutputs+=" ";
+    triggerOutputs+=configurationId;
   } else {
     HLTWarning("No inputs for %s found, skipping component", configurationId.Data());
   }
@@ -156,6 +194,47 @@ int AliHLTTriggerAgent::CreateConfigurations(AliHLTConfigurationHandler* pHandle
     HLTWarning("No inputs for %s found, skipping component.", configurationId.Data());
   }
 
+  /////////////////////////////////////////////////////////////////////////////////////
+  // D0 trigger
+  configurationId = "TRIGGER-D0";
+  if(runloader && !rawReader){
+    // simulation without simulated raw data
+    // use ESD as input
+    triggerInputs="GLOBAL-esd-converter ";
+  }
+  else{
+    // simulation with simulated raw data, or raw data reconstruction
+    // use input from ITS tracker and vertexer directly
+    triggerInputs="ITS-tracker GLOBAL-vertexer";
+  }
+
+  // check for the availibility of inputs
+  pTokens=triggerInputs.Tokenize(" ");
+  triggerInputs="";
+  if (pTokens) {
+    for (int n=0; n<pTokens->GetEntriesFast(); n++) {
+      TString module=((TObjString*)pTokens->At(n))->GetString();
+      if (pHandler->FindConfiguration(module.Data())) {
+       triggerInputs+=module;
+       triggerInputs+=" ";
+      }
+    }
+    delete pTokens;
+  }
+
+  TString argD0 = "";
+  if (triggerInputs.Length()>0) {
+    HLTInfo("Configuring inputs for %s: %s", configurationId.Data(), triggerInputs.Data());
+    pHandler->CreateConfiguration(configurationId.Data(), "D0Trigger", triggerInputs.Data(), argD0.Data());
+    // FIXME: due to a rare segfault for reconstruction of PbPb data the
+    // component is temporarily excluded
+    // https://savannah.cern.ch/bugs/?72590
+    //if (triggerOutputs.Length()>0) triggerOutputs+=" ";
+    //triggerOutputs+=configurationId;
+  } else {
+    HLTWarning("No inputs for %s found, skipping component", configurationId.Data());
+  }
+
   /////////////////////////////////////////////////////////////////////////////////////
   //
   // the global trigger component
@@ -185,7 +264,7 @@ const char* AliHLTTriggerAgent::GetRequiredComponentLibraries() const
 {
   // see header file for class documentation
 
-  return "libAliHLTUtil.so libAliHLTRCU.so libAliHLTTPC.so libAliHLTITS.so libAliHLTGlobal.so libAliHLTMUON.so";
+  return "";
 }
 
 int AliHLTTriggerAgent::GetHandlerDescription(AliHLTComponentDataType dt,
@@ -406,6 +485,8 @@ int AliHLTTriggerAgent::AliHLTTriggerDecisionHandler::ProcessData(AliHLTOUT* pDa
              fSize=pMsg->CompLength();
              fpData->Set(fSize, pMsg->CompBuffer());
            }
+           delete pMsg;
+           pMsg=NULL;
          } else {
            HLTError("streaming of objects failed");
          }