3 * \ingroup trigger_menus
4 * \file HM_PHYSICS_V0002.C
5 * \brief Macro for generating the trigger menu for min-bias p+p triggering.
7 * This macro generates the HM-PHYSICS-V0002 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_PHYSICS_V0002.C
15 * Only triggering on min-bias CTP triggers, pass through all other triggers.
16 * Scale down the trigger rate and store HLT ESD for rejected events.
17 * Triggering on high pT tracks as defined by CDB entries:
18 * H_._Barrel_pT_Single_._V0001.001
19 * H_._Barrel_pT_Single_._V0002.001
20 * H_._Barrel_pT_Single_._V0003.001
22 * \note The above mentioned CDB entries must already exist. They are not created
25 * \author Artur Szostak <artursz@iafrica.com>
28 #if !defined(__CINT__) || defined(__MAKECINT__)
29 #include "AliCDBManager.h"
30 #include "AliCDBStorage.h"
31 #include "AliCDBEntry.h"
32 #include "AliHLTTriggerMenu.h"
33 #include "AliHLTReadoutList.h"
34 #include "AliHLTGlobalTriggerConfig.h"
35 #include "TObjString.h"
38 #include "Riostream.h"
44 * Generates a default CDB entry for the trigger menu in the given CDB storage
46 * \param cdbPath The path to the default CDB storage.
48 void HM_PHYSICS_V0002(
49 const char* cdbPath = "local://$ALICE_ROOT/OCDB",
52 Int_t lastRun = AliCDBRunRange::Infinity()
55 gSystem->Load("libANALYSIS.so");
56 gSystem->Load("libANALYSISalice.so");
57 gSystem->Load("libAliHLTUtil.so");
58 gSystem->Load("libAliHLTMUON.so");
59 gSystem->Load("libAliHLTTRD.so");
60 gSystem->Load("libAliHLTTrigger.so");
62 // Setup the CDB default storage and run number.
63 AliCDBManager* cdbManager = AliCDBManager::Instance();
64 if (cdbManager == NULL) {
65 cerr << "ERROR: Global CDB manager object does not exist." << endl;
69 AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
70 if (storage == NULL) {
71 cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
75 ///////////////////////////////////////////////////////////////////////////////////////////
76 // Create the trigger menu:
78 AliHLTGlobalTriggerConfig config("HM-PHYSICS-V0002");
80 ///////////////////////////////////////////////////////////////////////////////////////////
81 // Predefine some explicit domain definitions used in the trigger menu.
82 config.AddSymbol("domainTObject" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")");
83 config.AddSymbol("domainESD" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")");
84 config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")");
85 config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")");
86 config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")");
87 config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")");
88 config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")");
90 config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "",
100 config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")");
101 config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")");
103 ///////////////////////////////////////////////////////////////////////////////////////////
104 // Setup the trigger items in 5 priority groups.
105 // Group 5 is for the HLT triggers.
106 // Group 4 is for scaling down min-bias CTP interaction triggers.
107 // Group 2 and 3 are used to readout only HLT ESDs for rejected min bias events.
108 // The last group (1) handles special software triggers.
111 5, // priority group.
112 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0001.001",
113 "domainHLTOUT | domainALLDDL",
114 5, // scaledown factor 1/5
115 "H-Barrel_pT_Single-V0001.001-ALL-ALL"
119 5, // priority group.
120 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0002.001",
121 "domainHLTOUT | domainALLDDL",
122 2, // scaledown factor 1/2
123 "H-Barrel_pT_Single-V0002.001-ALL-ALL"
127 5, // priority group.
128 "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0003.001",
129 "domainHLTOUT | domainALLDDL",
130 "H-Barrel_pT_Single-V0003.001-ALL-ALL"
134 4, // priority group.
135 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
136 "domainHLTOUT | domainALLDDL",
137 "H-MINBIAS_SCALE_DOWN-V0003.001-CENTRAL-ALL",
138 15. // scaledown factor 0.15
141 // Readout only 50% of HLT ESDs for min bias.
143 3, // priority group.
144 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
145 "domainESD | domainHLTDDL",
146 2, // scaledown factor 1/2
147 "Rejected min-bias with HLT ESD readout",
148 false // default global trigger decision result
151 // Reject completely the other 50% min bias.
153 2, // priority group.
154 "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
155 "domainHLTDDL", // Only HLT DDL to deliver at least the decision.
156 0, // No prescalar (no scaledown)
158 false // default global trigger decision result
162 1, // priority group.
163 "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA",
164 "SOFTWARE | CALIBRATION | START_OF_DATA | END_OF_DATA | domainHLTDDL",
165 "H-SoftwareTrigger-V0001.001-ALL-ALL"
168 ///////////////////////////////////////////////////////////////////////////////////////////
169 // Setup defaults in case there is no global trigger.
170 // For non-triggered events store everything from HLT and readout all detectors.
171 config.SetDefaultTriggerDescription("No HLT global trigger");
172 AliHLTTriggerDomain defaultDomain("*******:***");
173 AliHLTReadoutList readoutlist;
174 readoutlist.Enable(AliHLTReadoutList::kALLDET);
175 defaultDomain.Add(readoutlist);
176 config.SetDefaultTriggerDomain(defaultDomain);
177 config.SetDefaultResult(true);
179 TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
182 ///////////////////////////////////////////////////////////////////////////////////////////
183 // Write the trigger menu object to the CDB.
184 AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
185 AliCDBMetaData* metaData = new AliCDBMetaData();
186 metaData->SetResponsible("ALICE HLT Artur.Szostak@cern.ch");
187 metaData->SetComment("HM-PHYSICS-V0002");
188 storage->Put(menu, id, metaData);