]>
Commit | Line | Data |
---|---|---|
e2e34979 | 1 | // $Id$ |
2 | /** | |
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. | |
6 | * | |
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. | |
10 | * | |
11 | * You can run this macro with defaults using the following shell command: | |
12 | * @code | |
13 | * > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_PHYSICS_V0001.C | |
14 | * @endcode | |
15 | * | |
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 | |
29 | * | |
30 | * 2. Min bias trigger | |
31 | * ----------------------------- | |
32 | * every 100th event | |
33 | * | |
c1753823 | 34 | * ChangeLog: |
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 | |
e2e34979 | 38 | * @author Matthias.Richter@ift.uib.no |
39 | */ | |
40 | ||
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" | |
48 | #include "TString.h" | |
49 | #include "TSystem.h" | |
50 | #include "Riostream.h" | |
51 | using std::cerr; | |
52 | using std::endl; | |
53 | #endif | |
54 | ||
55 | /** | |
56 | * Generates a default CDB entry for the trigger menu in the given CDB storage | |
57 | * (local by default). | |
58 | * \param cdbPath The path to the default CDB storage. | |
59 | */ | |
60 | void HM_PHYSICS_V0001( | |
61 | const char* cdbPath = "local://$ALICE_ROOT/OCDB", | |
62 | Int_t version = 0, | |
63 | Int_t firstRun = 0, | |
64 | Int_t lastRun = AliCDBRunRange::Infinity() | |
65 | ) { | |
66 | gSystem->Load("libAliHLTTrigger.so"); | |
67 | ||
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; | |
72 | return; | |
73 | } | |
74 | ||
75 | AliCDBStorage* storage = cdbManager->GetStorage(cdbPath); | |
76 | if (storage == NULL) { | |
77 | cerr << "ERROR: Could not get storage for: " << cdbPath << endl; | |
78 | return; | |
79 | } | |
80 | ||
81 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
82 | // Create the trigger menu. | |
83 | AliHLTGlobalTriggerConfig config("HM-COSMICS-V0001"); | |
84 | ||
e2e34979 | 85 | config.AddSymbol("domainAll", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:***\")"); |
86 | ||
87 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
88 | // the domain definitions for the global HLT output and the HLT DDLs | |
c1753823 | 89 | //config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:HLT \")"); |
90 | config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\\0\")"); | |
91 | ||
92 | // some explicite domain entries | |
93 | config.AddSymbol("domainTObject" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")"); | |
94 | config.AddSymbol("domainESD" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")"); | |
95 | config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")"); | |
96 | ||
97 | config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")"); | |
98 | config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")"); | |
99 | config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")"); | |
100 | config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")"); | |
101 | ||
102 | // an explicite HLTOUT selection which avoids wildcards | |
103 | config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", | |
104 | "domainTObject | " | |
105 | "domainESD | " | |
106 | "domainHistogram | " | |
107 | "domainSPDCluster | " | |
108 | "domainSDDCluster | " | |
109 | "domainSSDCluster | " | |
110 | "domainTPCCluster" | |
111 | ); | |
e2e34979 | 112 | |
113 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
114 | // -- DETECTOR READOUT DOMAINS | |
115 | config.AddSymbol("domainSPDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SPD\\0\")"); | |
116 | config.AddSymbol("domainSDDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SDD\\0\")"); | |
117 | config.AddSymbol("domainSSDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:SSD\\0\")"); | |
118 | config.AddSymbol("domainTPCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TPC\\0\")"); | |
119 | config.AddSymbol("domainTRDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TRD\\0\")"); | |
120 | config.AddSymbol("domainTOFDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TOF\\0\")"); | |
121 | config.AddSymbol("domainHMPDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HMP\\0\")"); | |
122 | config.AddSymbol("domainPHSDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:PHS\\0\")"); | |
123 | config.AddSymbol("domainCPVDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:CPV\\0\")"); | |
124 | config.AddSymbol("domainPMDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:PMD\\0\")"); | |
125 | config.AddSymbol("domainMCHDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MCH\\0\")"); | |
126 | config.AddSymbol("domainMTRDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MTR\\0\")"); | |
127 | config.AddSymbol("domainFMDDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:FMD\\0\")"); | |
128 | config.AddSymbol("domainT00DDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:T00\\0\")"); | |
129 | config.AddSymbol("domainV00DDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:V00\\0\")"); | |
130 | config.AddSymbol("domainZDCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:ZDC\\0\")"); | |
131 | config.AddSymbol("domainACODDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:ACO\\0\")"); | |
132 | config.AddSymbol("domainCTPDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:TRI\\0\")"); | |
133 | config.AddSymbol("domainEMCDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:EMC\\0\")"); | |
134 | ||
135 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
136 | // -- DETECTOR READOUT DOMAINS - SPECIAL | |
e2e34979 | 137 | config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\\0\")"); |
138 | ||
139 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
140 | // NOTE: always make sure that the global HLT output and the HLT DDLs are included | |
141 | // in the readout, i.e. add domainHLTOUT|domainHLTDDL to the trigger domain | |
142 | ||
143 | // -- BarrelMultiplicity | |
144 | config.AddItem( | |
145 | "BarrelMultiplicityTrigger", | |
146 | "domainHLTOUT|domainALLDDL", | |
147 | "H-TRACK_MULTIPLICITY-V0002.001-CENTRAL-ALL" | |
148 | ); | |
149 | ||
150 | config.AddItem( | |
151 | "BarrelHighMultiplicity", | |
152 | "domainHLTOUT|domainALLDDL", | |
153 | "H-TRACK_MULTIPLICITY-V0002.002-CENTRAL-ALL" | |
154 | ); | |
155 | ||
156 | config.AddItem( | |
157 | "BarrelPt_v01", | |
158 | "domainHLTOUT|domainALLDDL", | |
159 | "H-TRACK_MULTIPLICITY-V0002.003-CENTRAL-ALL" | |
160 | ); | |
161 | ||
162 | config.AddItem( | |
163 | "BarrelPt_v01", | |
164 | "domainHLTOUT|domainALLDDL", | |
165 | "H-TRACK_MULTIPLICITY-V0002.004-CENTRAL-ALL" | |
166 | ); | |
167 | ||
168 | config.AddItem( | |
169 | "BarrelPt_v01", | |
170 | "domainHLTOUT|domainALLDDL", | |
171 | "H-TRACK_MULTIPLICITY-V0002.005-CENTRAL-ALL" | |
172 | ); | |
173 | ||
174 | // -- Min bias trigger | |
175 | config.AddItem( | |
176 | "true", | |
177 | "domainALLDDL|domainHLTOUT", | |
178 | 10, "H-MINBIAS_SCALE_DOWN-V0002.001-CENTRAL-ALL" | |
179 | ); | |
180 | ||
181 | ||
182 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
183 | // default domain in case there is no global trigger | |
184 | // readout the output of the reconstruction | |
185 | // this refers to the domain domainHLTOUT|domainHLTDDL | |
186 | config.SetDefaultTriggerDescription("No HLT global trigger"); | |
187 | ||
188 | // HLT payload also stored for not triggered events | |
189 | config.DefaultTriggerDomain().Add("*******", "HLT "); | |
190 | AliHLTReadoutList readoutlist; | |
191 | readoutlist.Enable(AliHLTReadoutList::kHLT); | |
192 | config.DefaultTriggerDomain().Add(readoutlist); | |
193 | ||
194 | ||
195 | TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone(); | |
196 | menu->Print(); | |
197 | ||
198 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
199 | // Write the trigger menu object to the CDB. | |
200 | AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version); | |
201 | AliCDBMetaData* metaData = new AliCDBMetaData(); | |
202 | metaData->SetResponsible("ALICE HLT Matthias.Richter@cern.ch"); | |
203 | metaData->SetComment("HM-PHYSICS-V0001"); | |
204 | storage->Put(menu, id, metaData); | |
205 | ||
206 | ||
207 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
208 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
209 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
210 | // | |
211 | // component configurations | |
212 | gROOT->LoadMacro("$ALICE_ROOT/HLT/exa/makeComponentConfigurationObject.C"); | |
213 | ||
214 | // ///////////////////////////////////////////////////////////////////////////////////////// | |
215 | // configuration of BarrelMultiplicityTrigger instances | |
e123ba32 | 216 | makeComponentConfigurationObject("HLT/ConfigHLT/BarrelMultiplicityTrigger", "-mintracks 10", cdbPath, firstRun, lastRun); |
217 | makeComponentConfigurationObject("HLT/ConfigHLT/BarrelHighMultiplicity", "-mintracks 100" , cdbPath, firstRun, lastRun); | |
218 | makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v01", "-mintracks 1 -minpt 0.5" , cdbPath, firstRun, lastRun); | |
219 | makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v02", "-mintracks 1 -minpt 1.0" , cdbPath, firstRun, lastRun); | |
220 | makeComponentConfigurationObject("HLT/ConfigHLT/BarrelPt_v03", "-mintracks 1 -minpt 5.0" , cdbPath, firstRun, lastRun); | |
e2e34979 | 221 | } |