X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HLT%2Ftrigger%2FAliHLTTriggerAgent.cxx;h=d3015119b20a62fca539555c25e51ccb32340d08;hb=0fa106012b1dd0ff3f00e5158c2c81a9de64d61e;hp=55863b139d7cc65e18bfee709102799d229374c6;hpb=8a8ea98b2cceb9028d863c3de956e56d738d4915;p=u%2Fmrichter%2FAliRoot.git diff --git a/HLT/trigger/AliHLTTriggerAgent.cxx b/HLT/trigger/AliHLTTriggerAgent.cxx index 55863b139d7..d3015119b20 100644 --- a/HLT/trigger/AliHLTTriggerAgent.cxx +++ b/HLT/trigger/AliHLTTriggerAgent.cxx @@ -36,19 +36,24 @@ #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; nGetEntriesFast(); 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"); }