]>
Commit | Line | Data |
---|---|---|
6f2d247a | 1 | // $Id: $ |
2 | /** | |
3 | * \ingroup trigger_menus | |
4 | * \file HM_PHYSICS_V0002.C | |
5 | * \brief Macro for generating the trigger menu for min-bias p+p triggering. | |
6 | * | |
7 | * This macro generates the HM-PHYSICS-V0002 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_PHYSICS_V0002.C | |
12 | * \endcode | |
13 | * | |
14 | * Configuration: | |
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 | |
21 | * | |
22 | * \note The above mentioned CDB entries must already exist. They are not created | |
23 | * by this macro. | |
24 | * | |
25 | * \author Artur Szostak <artursz@iafrica.com> | |
26 | */ | |
27 | ||
28 | #if !defined(__CINT__) || defined(__MAKECINT__) | |
29 | #include "AliCDBManager.h" | |
30 | #include "AliCDBStorage.h" | |
31 | #include "AliCDBEntry.h" | |
32 | #include "AliHLTTriggerMenu.h" | |
6627f278 | 33 | #include "AliHLTReadoutList.h" |
6f2d247a | 34 | #include "AliHLTGlobalTriggerConfig.h" |
35 | #include "TObjString.h" | |
36 | #include "TString.h" | |
37 | #include "TSystem.h" | |
38 | #include "Riostream.h" | |
39 | using std::cerr; | |
40 | using std::endl; | |
41 | #endif | |
42 | ||
43 | /** | |
44 | * Generates a default CDB entry for the trigger menu in the given CDB storage | |
45 | * (local by default). | |
46 | * \param cdbPath The path to the default CDB storage. | |
47 | */ | |
48 | void HM_PHYSICS_V0002( | |
49 | const char* cdbPath = "local://$ALICE_ROOT/OCDB", | |
50 | Int_t version = 0, | |
51 | Int_t firstRun = 0, | |
52 | Int_t lastRun = AliCDBRunRange::Infinity() | |
53 | ) | |
54 | { | |
4070f709 | 55 | gSystem->Load("libANALYSIS"); |
56 | gSystem->Load("libANALYSISalice"); | |
57 | gSystem->Load("libAliHLTUtil"); | |
58 | gSystem->Load("libAliHLTMUON"); | |
59 | gSystem->Load("libAliHLTTRD"); | |
60 | gSystem->Load("libAliHLTTrigger"); | |
6f2d247a | 61 | |
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; | |
66 | return; | |
67 | } | |
68 | ||
69 | AliCDBStorage* storage = cdbManager->GetStorage(cdbPath); | |
70 | if (storage == NULL) { | |
71 | cerr << "ERROR: Could not get storage for: " << cdbPath << endl; | |
72 | return; | |
73 | } | |
74 | ||
75 | /////////////////////////////////////////////////////////////////////////////////////////// | |
76 | // Create the trigger menu: | |
77 | ||
78 | AliHLTGlobalTriggerConfig config("HM-PHYSICS-V0002"); | |
79 | ||
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 \")"); | |
89 | ||
90 | config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", | |
91 | "domainTObject | " | |
92 | "domainESD | " | |
93 | "domainHistogram | " | |
94 | "domainSPDCluster | " | |
95 | "domainSDDCluster | " | |
96 | "domainSSDCluster | " | |
97 | "domainTPCCluster" | |
98 | ); | |
99 | ||
100 | config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")"); | |
101 | config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")"); | |
102 | ||
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. | |
109 | ||
110 | config.AddItem( | |
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" | |
116 | ); | |
117 | ||
118 | config.AddItem( | |
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" | |
124 | ); | |
125 | ||
126 | config.AddItem( | |
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" | |
131 | ); | |
132 | ||
133 | config.AddItem( | |
134 | 4, // priority group. | |
135 | "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD", | |
136 | "domainHLTOUT | domainALLDDL", | |
6627f278 | 137 | "H-MINBIAS_SCALE_DOWN-V0003.001-CENTRAL-ALL", |
138 | 15. // scaledown factor 0.15 | |
6f2d247a | 139 | ); |
140 | ||
141 | // Readout only 50% of HLT ESDs for min bias. | |
142 | config.AddItem( | |
143 | 3, // priority group. | |
144 | "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD", | |
145 | "domainESD | domainHLTDDL", | |
146 | 2, // scaledown factor 1/2 | |
6627f278 | 147 | "Rejected min-bias with HLT ESD readout", |
148 | false // default global trigger decision result | |
6f2d247a | 149 | ); |
150 | ||
151 | // Reject completely the other 50% min bias. | |
152 | config.AddItem( | |
153 | 2, // priority group. | |
154 | "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD", | |
155 | "domainHLTDDL", // Only HLT DDL to deliver at least the decision. | |
6627f278 | 156 | 0, // No prescalar (no scaledown) |
157 | "Rejected min-bias", | |
158 | false // default global trigger decision result | |
6f2d247a | 159 | ); |
160 | ||
161 | config.AddItem( | |
162 | 1, // priority group. | |
163 | "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA", | |
ae231838 | 164 | "SOFTWARE | CALIBRATION | START_OF_DATA | END_OF_DATA | domainHLTDDL", |
6f2d247a | 165 | "H-SoftwareTrigger-V0001.001-ALL-ALL" |
166 | ); | |
167 | ||
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); | |
6627f278 | 177 | config.SetDefaultResult(true); |
6f2d247a | 178 | |
6627f278 | 179 | TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone(); |
6f2d247a | 180 | menu->Print(); |
181 | ||
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); | |
189 | } |