3 * \ingroup trigger_menus
4 * \file HM_TEST_V0001.C
5 * \brief Macro for generating the test trigger menu for p+p triggering.
7 * This macro generates the HM-TEST-V0001 global trigger configuration.
9 * You can run this macro with defaults using the following shell command:
11 * > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_TEST_V0001.C
14 * This is a test setup of the trigger menu for p+p containing the following triggers:
17 * \author Artur Szostak <artursz@iafrica.com>
20 #if !defined(__CINT__) || defined(__MAKECINT__)
21 #include "AliCDBManager.h"
22 #include "AliCDBStorage.h"
23 #include "AliCDBEntry.h"
24 #include "AliHLTTriggerMenu.h"
25 #include "AliHLTReadoutList.h"
26 #include "AliHLTGlobalTriggerConfig.h"
27 #include "TObjString.h"
30 #include "Riostream.h"
36 * Generates a default CDB entry for the trigger menu in the given CDB storage
38 * \param cdbPath The path to the default CDB storage.
41 const char* cdbPath = "local://$ALICE_ROOT/OCDB",
44 Int_t lastRun = AliCDBRunRange::Infinity()
47 gSystem->Load("libANALYSIS");
48 gSystem->Load("libANALYSISalice");
49 gSystem->Load("libAliHLTUtil");
50 gSystem->Load("libAliHLTMUON");
51 gSystem->Load("libAliHLTTRD");
52 gSystem->Load("libAliHLTTrigger");
54 // Setup the CDB default storage and run number.
55 AliCDBManager* cdbManager = AliCDBManager::Instance();
56 if (cdbManager == NULL) {
57 cerr << "ERROR: Global CDB manager object does not exist." << endl;
61 AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
62 if (storage == NULL) {
63 cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
67 ///////////////////////////////////////////////////////////////////////////////////////////
68 // Create the trigger menu:
70 AliHLTGlobalTriggerConfig config("HM-TEST-V0001");
72 ///////////////////////////////////////////////////////////////////////////////////////////
73 // Predefine some explicit domain definitions used in the trigger menu.
74 config.AddSymbol("domainTObject" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")");
75 config.AddSymbol("domainESD" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")");
76 config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")");
77 config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")");
78 config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")");
79 config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")");
80 config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")");
82 config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "",
92 // DDLs for all detectors
93 config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")");
96 config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")");
98 // DDLs for the fast muon cluster detectors.
99 config.AddSymbol("domainFastDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MCH,DAQRDOUT:MTR,DAQRDOUT:SPD,DAQRDOUT:V00,DAQRDOUT:ZDC\")");
101 ///////////////////////////////////////////////////////////////////////////////////////////
102 // Setup the trigger items in several priority groups.
103 // First group (20) is for all the HLT triggers. The next 3 groups (12 - 10) are for
104 // scaling down min-bias CTP interaction triggers but reading out only 50% of the HLT ESDs.
105 // The last group (1) handles special software triggers.
107 // At least one track in barrel with pT > 1 GeV/c, downscale by half.
109 20, // priority group.
110 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0001.001",
111 "domainHLTOUT | domainALLDDL",
112 2, // scaledown factor 1/2
113 "H-Barrel_pT_Single-V0001.001-ALL-ALL"
116 // At least one track in barrel with pT > 3 GeV/c, no downscale.
118 20, // priority group.
119 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0002.001",
120 "domainHLTOUT | domainALLDDL",
121 "H-Barrel_pT_Single-V0002.001-ALL-ALL"
124 // At least one track in barrel with pT > 5 GeV/c, no downscale.
126 20, // priority group.
127 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0003.001",
128 "domainHLTOUT | domainALLDDL",
129 "H-Barrel_pT_Single-V0003.001-ALL-ALL"
132 // Track multiplicity > 30 or 40, no downscale.
134 20, // priority group.
135 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_Multiplicity-V0001.001",
136 "domainHLTOUT | domainALLDDL",
137 "H-Barrel_Multiplicity-V0001.001-ALL-ALL"
140 // At least one track in muon spectrometer, pT > 1 GeV/c, no downscale.
142 20, // priority group.
143 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_Single-V0001.001",
144 "domainHLTOUT | domainFastDDL",
145 "H-MUON_pT_Single-V0001.001-MUON-ALL"
148 // At least one track in muon spectrometer, pT > 2 GeV/c, no downscale.
150 20, // priority group.
151 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_Single-V0001.002",
152 "domainHLTOUT | domainFastDDL",
153 "H-MUON_pT_Single-V0001.002-MUON-ALL"
156 // Unlike sign track pair in muon spectrometer, at least one track pT > 1 GeV/c, no downscale.
158 20, // priority group.
159 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_UnlikePair-V0001.001",
160 "domainHLTOUT | domainFastDDL",
161 "H-MUON_pT_UnlikePair-V0001.001-MUON-ALL"
164 // Unlike sign track pair in muon spectrometer, at least one track pT > 2 GeV/c, no downscale.
166 20, // priority group.
167 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_UnlikePair-V0001.002",
168 "domainHLTOUT | domainFastDDL",
169 "H-MUON_pT_UnlikePair-V0001.002-MUON-ALL"
172 // Unlike sign track pair in muon spectrometer, invariant mass > 2.5 GeV/c, no downscale.
174 20, // priority group.
175 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_Mass_UnlikePair-V0001.001",
176 "domainHLTOUT | domainFastDDL",
177 "H-MUON_Mass_UnlikePair-V0001.001-MUON-ALL"
180 // Unlike sign track pair in muon spectrometer, invariant mass > 7 GeV/c, no downscale.
182 20, // priority group.
183 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_Mass_UnlikePair-V0001.002",
184 "domainHLTOUT | domainFastDDL",
185 "H-MUON_Mass_UnlikePair-V0001.002-MUON-ALL"
189 // Trigger on cluster energy in EMCAL.
191 20, // priority group.
192 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-ClusterEnergy-V0001.001",
193 "domainHLTOUT | domainALLDDL",
194 "H-ClusterEnergy-V0001.001-ALL-ALL"
197 // Trigger on cluster energy in PHOS.
199 20, // priority group.
200 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-ClusterEnergy-V0001.002",
201 "domainHLTOUT | domainALLDDL",
202 "H-ClusterEnergy-V0001.002-ALL-ALL"
205 // Trigger based on invariant mass cut for D0.
207 20, // priority group.
208 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-D0_Mass-V0001.001",
209 "domainHLTOUT | domainALLDDL",
210 "H-D0_Mass-V0001.001-ALL-ALL"
213 // Trigger using kT algorithm.
215 20, // priority group.
216 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0001.001",
217 "domainHLTOUT | domainALLDDL",
218 "H-JET_ET-V0001.001-ALL-ALL"
221 // Trigger using anti-kT algorithm.
223 20, // priority group.
224 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0002.001",
225 "domainHLTOUT | domainALLDDL",
226 "H-JET_ET-V0002.001-ALL-ALL"
229 // Trigger using fixed seed cone algorithm.
231 20, // priority group.
232 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0003.001",
233 "domainHLTOUT | domainALLDDL",
234 "H-JET_ET-V0003.001-ALL-ALL"
237 // Trigger if kT and anti-kT triggered.
239 20, // priority group.
240 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0004.001",
241 "domainHLTOUT | domainALLDDL",
242 "H-JET_ET-V0004.001-ALL-ALL"
245 // Scaled down min bias trigger.
247 12, // priority group.
248 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
249 "domainHLTOUT | domainALLDDL",
250 2, // scaledown factor 1/2
251 "H-MinBias_Scale_Down-V0001.001-ALL-ALL"
254 // Readout only 50% of HLT ESDs for min bias.
256 11, // priority group.
257 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
258 "domainESD | domainHLTDDL",
259 2, // scaledown factor 1/2
260 "Rejected min-bias with HLT ESD readout",
261 false // default global trigger decision result
264 // Reject completely the other 50% min bias.
266 10, // priority group.
267 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
268 "domainHLTDDL", // Only HLT DDL to deliver at least the decision.
271 false // default global trigger decision result
275 1, // priority group.
276 "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA",
277 "domainHLTOUT | domainALLDDL",
278 "H-SoftwareTrigger-V0001.001-ALL-ALL"
281 ///////////////////////////////////////////////////////////////////////////////////////////
282 // Setup defaults in case there is no global trigger.
283 // For non-triggered events always readout all detectors. This is the catch all for rare
284 // and background CTP triggers.
285 config.SetDefaultTriggerDescription("No HLT global trigger");
286 AliHLTTriggerDomain defaultDomain("*******:***");
287 AliHLTReadoutList readoutlist;
288 readoutlist.Enable(AliHLTReadoutList::kALLDET);
289 defaultDomain.Add(readoutlist);
290 config.SetDefaultTriggerDomain(defaultDomain);
291 config.SetDefaultResult(true);
293 TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
296 ///////////////////////////////////////////////////////////////////////////////////////////
297 // Write the trigger menu object to the CDB.
298 AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
299 AliCDBMetaData* metaData = new AliCDBMetaData();
300 metaData->SetResponsible("ALICE HLT Artur.Szostak@cern.ch");
301 metaData->SetComment("HM-TEST-V0001");
302 storage->Put(menu, id, metaData);