3 * @ingroup trigger_manus
4 * @file HM_PHYSICS_V0001.C
5 * @brief Macro for generating the trigger menu CDB entry for the HLT global trigger.
7 * This macro generates the HM-PHYSICS-V0001 global trigger configuration
8 * and the trigger component configurations.
9 * It is an experts macro so make sure you know what you are doing.
11 * You can run this macro with defaults using the following shell command:
13 * > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_PHYSICS_V0001.C
16 * Initial configuration:
17 * 1. Trigger items based on TPC tracks
18 * ------------------------------------
19 * a) H-TRACK_MULTIPLICITY-V0002.001-CENTRAL-ALL min 10 tracks
20 * Trigger name: BarrelMultiplicityTrigger
21 * b) H-TRACK_MULTIPLICITY-V0002.002-CENTRAL-ALL min 100 tracks
22 * Trigger name: BarrelHighMultiplicity
23 * c) H-TRACK_MULTIPLICITY-V0002.003-CENTRAL-ALL min 1 tracks pt > 0.5 GeV
24 * Trigger name: BarrelPt_v01
25 * d) H-TRACK_MULTIPLICITY-V0002.004-CENTRAL-ALL min 1 tracks pt > 1 GeV
26 * Trigger name: BarrelPt_v02
27 * e) H-TRACK_MULTIPLICITY-V0002.005-CENTRAL-ALL min 1 tracks pt > 5 GeV
28 * Trigger name: BarrelPt_v03
31 * -----------------------------
35 * 2009-12-04 adding explicite trigger domain entries for blocks to be
36 * included in 'domainHLTOUT' in order to avoid wildcards in
37 * the definition of domain entries
38 * @author Matthias.Richter@ift.uib.no
41 #if !defined(__CINT__) || defined(__MAKECINT__)
42 #include "AliCDBManager.h"
43 #include "AliCDBStorage.h"
44 #include "AliCDBEntry.h"
45 #include "AliHLTTriggerMenu.h"
46 #include "AliHLTGlobalTriggerConfig.h"
47 #include "TObjString.h"
50 #include "Riostream.h"
56 * Generates a default CDB entry for the trigger menu in the given CDB storage
58 * \param cdbPath The path to the default CDB storage.
60 void HM_PHYSICS_V0001(
61 const char* cdbPath = "local://$ALICE_ROOT/OCDB",
64 Int_t lastRun = AliCDBRunRange::Infinity()
66 gSystem->Load("libAliHLTTrigger.so");
68 // Setup the CDB default storage and run number.
69 AliCDBManager* cdbManager = AliCDBManager::Instance();
70 if (cdbManager == NULL) {
71 cerr << "ERROR: Global CDB manager object does not exist." << endl;
75 AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
76 if (storage == NULL) {
77 cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
81 // /////////////////////////////////////////////////////////////////////////////////////////
82 // Create the trigger menu.
83 AliHLTGlobalTriggerConfig config("HM-COSMICS-V0001");
85 //config.AddSymbol("triggerClasses", "AliHLTUInt64_t", "this->GetTriggerClasses()", "0x0", "AliHLTEventSummary");
86 //config.AddItem("triggerClasses != 0x0", "domainAll", "CTP triggered");
88 config.AddSymbol("domainAll", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:***\")");
90 // /////////////////////////////////////////////////////////////////////////////////////////
91 // the domain definitions for the global HLT output and the HLT DDLs
92 //config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:HLT \")");
93 config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\\0\")");
95 // some explicite domain entries
96 config.AddSymbol("domainTObject" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")");
97 config.AddSymbol("domainESD" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")");
98 config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")");
100 config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")");
101 config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")");
102 config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")");
103 config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")");
105 // an explicite HLTOUT selection which avoids wildcards
106 config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "",
110 "domainSPDCluster | "
111 "domainSDDCluster | "
112 "domainSSDCluster | "
116 // /////////////////////////////////////////////////////////////////////////////////////////
117 // -- DETECTOR READOUT DOMAINS
118 config.AddSymbol("domainSPDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SPD\\0\")");
119 config.AddSymbol("domainSDDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SDD\\0\")");
120 config.AddSymbol("domainSSDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SSD\\0\")");
121 config.AddSymbol("domainTPCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TPC\\0\")");
122 config.AddSymbol("domainTRDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TRD\\0\")");
123 config.AddSymbol("domainTOFDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TOF\\0\")");
124 config.AddSymbol("domainHMPDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HMP\\0\")");
125 config.AddSymbol("domainPHSDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:PHS\\0\")");
126 config.AddSymbol("domainCPVDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:CPV\\0\")");
127 config.AddSymbol("domainPMDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:PMD\\0\")");
128 config.AddSymbol("domainMCHDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MCH\\0\")");
129 config.AddSymbol("domainMTRDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MTR\\0\")");
130 config.AddSymbol("domainFMDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:FMD\\0\")");
131 config.AddSymbol("domainT00DDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:T00\\0\")");
132 config.AddSymbol("domainV00DDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:V00\\0\")");
133 config.AddSymbol("domainZDCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:ZDC\\0\")");
134 config.AddSymbol("domainACODDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:ACO\\0\")");
135 config.AddSymbol("domainCTPDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TRI\\0\")");
136 config.AddSymbol("domainEMCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:EMC\\0\")");
138 // /////////////////////////////////////////////////////////////////////////////////////////
139 // -- DETECTOR READOUT DOMAINS - SPECIAL
140 config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\\0\")");
142 // /////////////////////////////////////////////////////////////////////////////////////////
143 // NOTE: always make sure that the global HLT output and the HLT DDLs are included
144 // in the readout, i.e. add domainHLTOUT|domainHLTDDL to the trigger domain
146 // -- BarrelMultiplicity
148 "BarrelMultiplicityTrigger",
149 "domainHLTOUT|domainALLDDL",
150 "H-TRACK_MULTIPLICITY-V0002.001-CENTRAL-ALL"
154 "BarrelHighMultiplicity",
155 "domainHLTOUT|domainALLDDL",
156 "H-TRACK_MULTIPLICITY-V0002.002-CENTRAL-ALL"
161 "domainHLTOUT|domainALLDDL",
162 "H-TRACK_MULTIPLICITY-V0002.003-CENTRAL-ALL"
167 "domainHLTOUT|domainALLDDL",
168 "H-TRACK_MULTIPLICITY-V0002.004-CENTRAL-ALL"
173 "domainHLTOUT|domainALLDDL",
174 "H-TRACK_MULTIPLICITY-V0002.005-CENTRAL-ALL"
177 // -- Min bias trigger
180 "domainALLDDL|domainHLTOUT",
181 10, "H-MINBIAS_SCALE_DOWN-V0002.001-CENTRAL-ALL"
185 // /////////////////////////////////////////////////////////////////////////////////////////
186 // default domain in case there is no global trigger
187 // readout the output of the reconstruction
188 // this refers to the domain domainHLTOUT|domainHLTDDL
189 config.SetDefaultTriggerDescription("No HLT global trigger");
191 // HLT payload also stored for not triggered events
192 config.DefaultTriggerDomain().Add("*******", "HLT ");
193 AliHLTReadoutList readoutlist;
194 readoutlist.Enable(AliHLTReadoutList::kHLT);
195 config.DefaultTriggerDomain().Add(readoutlist);
198 TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
201 // /////////////////////////////////////////////////////////////////////////////////////////
202 // Write the trigger menu object to the CDB.
203 AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
204 AliCDBMetaData* metaData = new AliCDBMetaData();
205 metaData->SetResponsible("ALICE HLT Matthias.Richter@cern.ch");
206 metaData->SetComment("HM-PHYSICS-V0001");
207 storage->Put(menu, id, metaData);
210 // /////////////////////////////////////////////////////////////////////////////////////////
211 // /////////////////////////////////////////////////////////////////////////////////////////
212 // /////////////////////////////////////////////////////////////////////////////////////////
214 // component configurations
215 gROOT->LoadMacro("$ALICE_ROOT/HLT/exa/makeComponentConfigurationObject.C");
217 // /////////////////////////////////////////////////////////////////////////////////////////
218 // configuration of BarrelMultiplicityTrigger instances
219 makeComponentConfigurationObject("HLT/ConfigHLT/BarrelMultiplicityTrigger", "-mintracks 10");
220 makeComponentConfigurationObject("HLT/ConfigHLT/BarrelHighMultiplicity", "-mintracks 100");
221 makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v01", "-mintracks 1 -minpt 0.5");
222 makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v02", "-mintracks 1 -minpt 1.0");
223 makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v03", "-mintracks 1 -minpt 5.0");