]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/menu/HM-PHYSICS-V0002.C
Minor fix for software triggers.
[u/mrichter/AliRoot.git] / HLT / trigger / menu / HM-PHYSICS-V0002.C
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"
33 #include "AliHLTReadoutList.h"
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 {
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");
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",
137                  "H-MINBIAS_SCALE_DOWN-V0003.001-CENTRAL-ALL",
138                  15.  // scaledown factor 0.15
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
147                  "Rejected min-bias with HLT ESD readout",
148                  false  // default global trigger decision result
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.
156                  0,  // No prescalar (no scaledown)
157                  "Rejected min-bias",
158                  false  // default global trigger decision result
159                  );
160
161   config.AddItem(
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"
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);
177   config.SetDefaultResult(true);
178   
179   TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
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 }