]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/menu/HM-TEST-V0001.C
.so cleanup: removed from gSystem->Load()
[u/mrichter/AliRoot.git] / HLT / trigger / menu / HM-TEST-V0001.C
1 // $Id: $
2 /**
3  * \ingroup trigger_menus
4  * \file HM_TEST_V0001.C
5  * \brief Macro for generating the test trigger menu for p+p triggering.
6  *
7  * This macro generates the HM-TEST-V0001 global trigger configuration.
8  *
9  * You can run this macro with defaults using the following shell command:
10  * \code
11  *   > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_TEST_V0001.C
12  * \endcode
13  *
14  * This is a test setup of the trigger menu for p+p containing the following triggers:
15  *  
16  *
17  * \author Artur Szostak <artursz@iafrica.com>
18  */
19
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"
28 #include "TString.h"
29 #include "TSystem.h"
30 #include "Riostream.h"
31 using std::cerr;
32 using std::endl;
33 #endif
34
35 /**
36  * Generates a default CDB entry for the trigger menu in the given CDB storage
37  * (local by default).
38  * \param cdbPath  The path to the default CDB storage.
39  */
40 void HM_TEST_V0001(
41                       const char* cdbPath = "local://$ALICE_ROOT/OCDB",
42                       Int_t version = 0,
43                       Int_t firstRun = 0,
44                       Int_t lastRun = AliCDBRunRange::Infinity()
45                      )
46 {
47   gSystem->Load("libANALYSIS");
48   gSystem->Load("libANALYSISalice");
49   gSystem->Load("libAliHLTUtil");
50   gSystem->Load("libAliHLTMUON");
51   gSystem->Load("libAliHLTTRD");
52   gSystem->Load("libAliHLTTrigger");
53   
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;
58     return;
59   }
60
61   AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
62   if (storage == NULL) {
63     cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
64     return;
65   }
66
67   ///////////////////////////////////////////////////////////////////////////////////////////
68   // Create the trigger menu:
69   
70   AliHLTGlobalTriggerConfig config("HM-TEST-V0001");
71   
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 \")");
81
82   config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", 
83                    "domainTObject    | "
84                    "domainESD        | "
85                    "domainHistogram  | "
86                    "domainSPDCluster | "
87                    "domainSDDCluster | "
88                    "domainSSDCluster | "
89                    "domainTPCCluster"
90                    );
91
92   // DDLs for all detectors
93   config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")");
94   
95   // DDLs for HLT only
96   config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")");
97   
98   // DDLs for the fast muon cluster detectors.
99   config.AddSymbol("domainFastDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MCH,DAQRDOUT:MTR,DAQRDOUT:SPD,DAQRDOUT:V00,DAQRDOUT:ZDC\")");
100   
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.
106   
107   // At least one track in barrel with pT > 1 GeV/c, downscale by half.
108   config.AddItem(
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"
114                  );
115
116   // At least one track in barrel with pT > 3 GeV/c, no downscale.
117   config.AddItem(
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"
122                  );
123
124   // At least one track in barrel with pT > 5 GeV/c, no downscale.
125   config.AddItem(
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"
130                  );
131
132   // Track multiplicity > 30 or 40, no downscale.
133   config.AddItem(
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"
138                  );
139
140   // At least one track in muon spectrometer, pT > 1 GeV/c, no downscale.
141   config.AddItem(
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"
146                  );
147
148   // At least one track in muon spectrometer, pT > 2 GeV/c, no downscale.
149   config.AddItem(
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"
154                  );
155
156   // Unlike sign track pair in muon spectrometer, at least one track pT > 1 GeV/c, no downscale.
157   config.AddItem(
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"
162                  );
163
164   // Unlike sign track pair in muon spectrometer, at least one track pT > 2 GeV/c, no downscale.
165   config.AddItem(
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"
170                  );
171
172   // Unlike sign track pair in muon spectrometer, invariant mass > 2.5 GeV/c, no downscale.
173   config.AddItem(
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"
178                  );
179
180   // Unlike sign track pair in muon spectrometer, invariant mass > 7 GeV/c, no downscale.
181   config.AddItem(
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"
186                  );
187
188
189   // Trigger on cluster energy in EMCAL.
190   config.AddItem(
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"
195                  );
196
197   // Trigger on cluster energy in PHOS.
198   config.AddItem(
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"
203                  );
204
205   // Trigger based on invariant mass cut for D0.
206   config.AddItem(
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"
211                  );
212
213   // Trigger using kT algorithm.
214   config.AddItem(
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"
219                  );
220
221   // Trigger using anti-kT algorithm.
222   config.AddItem(
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"
227                  );
228
229   // Trigger using fixed seed cone algorithm.
230   config.AddItem(
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"
235                  );
236
237   // Trigger if kT and anti-kT triggered.
238   config.AddItem(
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"
243                  );
244
245   // Scaled down min bias trigger.
246   config.AddItem(
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"
252                  );
253
254   // Readout only 50% of HLT ESDs for min bias.
255   config.AddItem(
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
262                  );
263
264   // Reject completely the other 50% min bias.
265   config.AddItem(
266                  10, // priority group.
267                  "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
268                  "domainHLTDDL",  // Only HLT DDL to deliver at least the decision.
269                  0,  // no scaledown
270                  "Rejected min-bias",
271                  false  // default global trigger decision result
272                  );
273
274   config.AddItem(
275                  1, // priority group.
276                  "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA",
277                  "domainHLTOUT | domainALLDDL",
278                  "H-SoftwareTrigger-V0001.001-ALL-ALL"
279                  );
280
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);
292   
293   TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
294   menu->Print();
295   
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);
303 }