]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Adding new trigger menus for p+p.
authoraszostak <aszostak@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Oct 2010 19:45:19 +0000 (19:45 +0000)
committeraszostak <aszostak@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Oct 2010 19:45:19 +0000 (19:45 +0000)
HLT/trigger/menu/HM-PHYSICS-V0002.C [new file with mode: 0644]
HLT/trigger/menu/HM-TEST-V0001.C [new file with mode: 0644]

diff --git a/HLT/trigger/menu/HM-PHYSICS-V0002.C b/HLT/trigger/menu/HM-PHYSICS-V0002.C
new file mode 100644 (file)
index 0000000..0c16be2
--- /dev/null
@@ -0,0 +1,184 @@
+// $Id: $
+/**
+ * \ingroup trigger_menus
+ * \file HM_PHYSICS_V0002.C
+ * \brief Macro for generating the trigger menu for min-bias p+p triggering.
+ *
+ * This macro generates the HM-PHYSICS-V0002 global trigger configuration.
+ *
+ * You can run this macro with defaults using the following shell command:
+ * \code
+ *   > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_PHYSICS_V0002.C
+ * \endcode
+ *
+ * Configuration:
+ *  Only triggering on min-bias CTP triggers, pass through all other triggers.
+ *  Scale down the trigger rate and store HLT ESD for rejected events.
+ *  Triggering on high pT tracks as defined by CDB entries:
+ *   H_._Barrel_pT_Single_._V0001.001
+ *   H_._Barrel_pT_Single_._V0002.001
+ *   H_._Barrel_pT_Single_._V0003.001
+ *
+ * \note The above mentioned CDB entries must already exist. They are not created
+ *    by this macro.
+ *
+ * \author Artur Szostak <artursz@iafrica.com>
+ */
+
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "AliCDBManager.h"
+#include "AliCDBStorage.h"
+#include "AliCDBEntry.h"
+#include "AliHLTTriggerMenu.h"
+#include "AliHLTGlobalTriggerConfig.h"
+#include "TObjString.h"
+#include "TString.h"
+#include "TSystem.h"
+#include "Riostream.h"
+using std::cerr;
+using std::endl;
+#endif
+
+/**
+ * Generates a default CDB entry for the trigger menu in the given CDB storage
+ * (local by default).
+ * \param cdbPath  The path to the default CDB storage.
+ */
+void HM_PHYSICS_V0002(
+                     const char* cdbPath = "local://$ALICE_ROOT/OCDB",
+                     Int_t version = 0,
+                     Int_t firstRun = 0,
+                     Int_t lastRun = AliCDBRunRange::Infinity()
+                    )
+{
+  gSystem->Load("libANALYSIS.so");
+  gSystem->Load("libANALYSISalice.so");
+  gSystem->Load("libAliHLTUtil.so");
+  gSystem->Load("libAliHLTMUON.so");
+  gSystem->Load("libAliHLTTRD.so");
+  gSystem->Load("libAliHLTTrigger.so");
+  
+  // Setup the CDB default storage and run number.
+  AliCDBManager* cdbManager = AliCDBManager::Instance();
+  if (cdbManager == NULL) {
+    cerr << "ERROR: Global CDB manager object does not exist." << endl;
+    return;
+  }
+
+  AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
+  if (storage == NULL) {
+    cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
+    return;
+  }
+
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Create the trigger menu:
+  
+  AliHLTGlobalTriggerConfig config("HM-PHYSICS-V0002");
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Predefine some explicit domain definitions used in the trigger menu.
+  config.AddSymbol("domainTObject"   , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")");
+  config.AddSymbol("domainESD"       , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")");
+  config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")");
+  config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")");
+  config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")");
+  config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")");
+  config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")");
+
+  config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", 
+                  "domainTObject    | "
+                  "domainESD        | "
+                  "domainHistogram  | "
+                  "domainSPDCluster | "
+                  "domainSDDCluster | "
+                  "domainSSDCluster | "
+                  "domainTPCCluster"
+                  );
+
+  config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")");
+  config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")");
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Setup the trigger items in 5 priority groups.
+  // Group 5 is for the HLT triggers.
+  // Group 4 is for scaling down min-bias CTP interaction triggers.
+  // Group 2 and 3 are used to readout only HLT ESDs for rejected min bias events.
+  // The last group (1) handles special software triggers.
+  
+  config.AddItem(
+                5, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0001.001",
+                "domainHLTOUT | domainALLDDL", 
+                5,  // scaledown factor 1/5
+                "H-Barrel_pT_Single-V0001.001-ALL-ALL"
+                );
+
+  config.AddItem(
+                5, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0002.001",
+                "domainHLTOUT | domainALLDDL",
+                2,  // scaledown factor 1/2
+                "H-Barrel_pT_Single-V0002.001-ALL-ALL"
+                );
+
+  config.AddItem(
+                5, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0003.001",
+                "domainHLTOUT | domainALLDDL", 
+                "H-Barrel_pT_Single-V0003.001-ALL-ALL"
+                );
+
+  config.AddItem(
+                4, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainHLTOUT | domainALLDDL",
+                7,  // scaledown factor 1/7
+                "H-MINBIAS_SCALE_DOWN-V0003.001-CENTRAL-ALL"
+                );
+
+  // Readout only 50% of HLT ESDs for min bias.
+  config.AddItem(
+                3, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainESD | domainHLTDDL",
+                2,  // scaledown factor 1/2
+                "Rejected min-bias with HLT ESD readout"
+                );
+
+  // Reject completely the other 50% min bias.
+  config.AddItem(
+                2, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainHLTDDL",  // Only HLT DDL to deliver at least the decision.
+                "Rejected min-bias"
+                );
+
+  config.AddItem(
+                1, // priority group.
+                "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA",
+                "domainHLTOUT | domainALLDDL",
+                "H-SoftwareTrigger-V0001.001-ALL-ALL"
+                );
+
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Setup defaults in case there is no global trigger.
+  // For non-triggered events store everything from HLT and readout all detectors.
+  config.SetDefaultTriggerDescription("No HLT global trigger");
+  AliHLTTriggerDomain defaultDomain("*******:***");
+  AliHLTReadoutList readoutlist;
+  readoutlist.Enable(AliHLTReadoutList::kALLDET);
+  defaultDomain.Add(readoutlist);
+  config.SetDefaultTriggerDomain(defaultDomain);
+  
+  TObject* menu = AliHLTGlobalTriggerConfig::Menu();
+  menu->Print();
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Write the trigger menu object to the CDB.
+  AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
+  AliCDBMetaData* metaData = new AliCDBMetaData();
+  metaData->SetResponsible("ALICE HLT Artur.Szostak@cern.ch");
+  metaData->SetComment("HM-PHYSICS-V0002");
+  storage->Put(menu, id, metaData);
+}
diff --git a/HLT/trigger/menu/HM-TEST-V0001.C b/HLT/trigger/menu/HM-TEST-V0001.C
new file mode 100644 (file)
index 0000000..392b8ba
--- /dev/null
@@ -0,0 +1,298 @@
+// $Id: $
+/**
+ * \ingroup trigger_menus
+ * \file HM_TEST_V0001.C
+ * \brief Macro for generating the test trigger menu for p+p triggering.
+ *
+ * This macro generates the HM-TEST-V0001 global trigger configuration.
+ *
+ * You can run this macro with defaults using the following shell command:
+ * \code
+ *   > aliroot -b -q $ALICE_ROOT/HLT/trigger/HM_TEST_V0001.C
+ * \endcode
+ *
+ * This is a test setup of the trigger menu for p+p containing the following triggers:
+ *  
+ *
+ * \author Artur Szostak <artursz@iafrica.com>
+ */
+
+#if !defined(__CINT__) || defined(__MAKECINT__)
+#include "AliCDBManager.h"
+#include "AliCDBStorage.h"
+#include "AliCDBEntry.h"
+#include "AliHLTTriggerMenu.h"
+#include "AliHLTGlobalTriggerConfig.h"
+#include "TObjString.h"
+#include "TString.h"
+#include "TSystem.h"
+#include "Riostream.h"
+using std::cerr;
+using std::endl;
+#endif
+
+/**
+ * Generates a default CDB entry for the trigger menu in the given CDB storage
+ * (local by default).
+ * \param cdbPath  The path to the default CDB storage.
+ */
+void HM_TEST_V0001(
+                     const char* cdbPath = "local://$ALICE_ROOT/OCDB",
+                     Int_t version = 0,
+                     Int_t firstRun = 0,
+                     Int_t lastRun = AliCDBRunRange::Infinity()
+                    )
+{
+  gSystem->Load("libANALYSIS.so");
+  gSystem->Load("libANALYSISalice.so");
+  gSystem->Load("libAliHLTUtil.so");
+  gSystem->Load("libAliHLTMUON.so");
+  gSystem->Load("libAliHLTTRD.so");
+  gSystem->Load("libAliHLTTrigger.so");
+  
+  // Setup the CDB default storage and run number.
+  AliCDBManager* cdbManager = AliCDBManager::Instance();
+  if (cdbManager == NULL) {
+    cerr << "ERROR: Global CDB manager object does not exist." << endl;
+    return;
+  }
+
+  AliCDBStorage* storage = cdbManager->GetStorage(cdbPath);
+  if (storage == NULL) {
+    cerr << "ERROR: Could not get storage for: " << cdbPath << endl;
+    return;
+  }
+
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Create the trigger menu:
+  
+  AliHLTGlobalTriggerConfig config("HM-TEST-V0001");
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Predefine some explicit domain definitions used in the trigger menu.
+  config.AddSymbol("domainTObject"   , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTTOBJ:HLT \")");
+  config.AddSymbol("domainESD"       , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ALIESDV0:HLT \")");
+  config.AddSymbol("domainHistogram" , "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"ROOTHIST:HLT \")");
+  config.AddSymbol("domainSPDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISPD\")");
+  config.AddSymbol("domainSDDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISDD\")");
+  config.AddSymbol("domainSSDCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:ISSD\")");
+  config.AddSymbol("domainTPCCluster", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"CLUSTERS:TPC \")");
+
+  config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", 
+                  "domainTObject    | "
+                  "domainESD        | "
+                  "domainHistogram  | "
+                  "domainSPDCluster | "
+                  "domainSDDCluster | "
+                  "domainSSDCluster | "
+                  "domainTPCCluster"
+                  );
+
+  // DDLs for all detectors
+  config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\")");
+  
+  // DDLs for HLT only
+  config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\")");
+  
+  // DDLs for the fast muon cluster detectors.
+  config.AddSymbol("domainFastDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:MCH,DAQRDOUT:MTR,DAQRDOUT:SPD,DAQRDOUT:V00,DAQRDOUT:ZDC\")");
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Setup the trigger items in several priority groups.
+  // First group (20) is for all the HLT triggers. The next 3 groups (12 - 10) are for
+  // scaling down min-bias CTP interaction triggers but reading out only 50% of the HLT ESDs.
+  // The last group (1) handles special software triggers.
+  
+  // At least one track in barrel with pT > 1 GeV/c, downscale by half.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0001.001",
+                "domainHLTOUT | domainALLDDL",
+                2,  // scaledown factor 1/2
+                "H-Barrel_pT_Single-V0001.001-ALL-ALL"
+                );
+
+  // At least one track in barrel with pT > 3 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0002.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-Barrel_pT_Single-V0002.001-ALL-ALL"
+                );
+
+  // At least one track in barrel with pT > 5 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_pT_Single-V0003.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-Barrel_pT_Single-V0003.001-ALL-ALL"
+                );
+
+  // Track multiplicity > 30 or 40, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-Barrel_Multiplicity-V0001.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-Barrel_Multiplicity-V0001.001-ALL-ALL"
+                );
+
+  // At least one track in muon spectrometer, pT > 1 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_Single-V0001.001",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_pT_Single-V0001.001-MUON-ALL"
+                );
+
+  // At least one track in muon spectrometer, pT > 2 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_Single-V0001.002",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_pT_Single-V0001.002-MUON-ALL"
+                );
+
+  // Unlike sign track pair in muon spectrometer, at least one track pT > 1 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_UnlikePair-V0001.001",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_pT_UnlikePair-V0001.001-MUON-ALL"
+                );
+
+  // Unlike sign track pair in muon spectrometer, at least one track pT > 2 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_pT_UnlikePair-V0001.002",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_pT_UnlikePair-V0001.002-MUON-ALL"
+                );
+
+  // Unlike sign track pair in muon spectrometer, invariant mass > 2.5 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_Mass_UnlikePair-V0001.001",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_Mass_UnlikePair-V0001.001-MUON-ALL"
+                );
+
+  // Unlike sign track pair in muon spectrometer, invariant mass > 7 GeV/c, no downscale.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-MUON_Mass_UnlikePair-V0001.002",
+                "domainHLTOUT | domainFastDDL",
+                "H-MUON_Mass_UnlikePair-V0001.002-MUON-ALL"
+                );
+
+
+  // Trigger on cluster energy in EMCAL.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-ClusterEnergy-V0001.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-ClusterEnergy-V0001.001-ALL-ALL"
+                );
+
+  // Trigger on cluster energy in PHOS.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-ClusterEnergy-V0001.002",
+                "domainHLTOUT | domainALLDDL",
+                "H-ClusterEnergy-V0001.002-ALL-ALL"
+                );
+
+  // Trigger based on invariant mass cut for D0.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-D0_Mass-V0001.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-D0_Mass-V0001.001-ALL-ALL"
+                );
+
+  // Trigger using kT algorithm.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0001.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-JET_ET-V0001.001-ALL-ALL"
+                );
+
+  // Trigger using anti-kT algorithm.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0002.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-JET_ET-V0002.001-ALL-ALL"
+                );
+
+  // Trigger using fixed seed cone algorithm.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0003.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-JET_ET-V0003.001-ALL-ALL"
+                );
+
+  // Trigger if kT and anti-kT triggered.
+  config.AddItem(
+                20, // priority group.
+                "(CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD) && H-JET_ET-V0004.001",
+                "domainHLTOUT | domainALLDDL",
+                "H-JET_ET-V0004.001-ALL-ALL"
+                );
+
+  // Scaled down min bias trigger.
+  config.AddItem(
+                12, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainHLTOUT | domainALLDDL",
+                2,  // scaledown factor 1/2
+                "H-MinBias_Scale_Down-V0001.001-ALL-ALL"
+                );
+
+  // Readout only 50% of HLT ESDs for min bias.
+  config.AddItem(
+                11, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainESD | domainHLTDDL",
+                2,  // scaledown factor 1/2
+                "Rejected min-bias with HLT ESD readout"
+                );
+
+  // Reject completely the other 50% min bias.
+  config.AddItem(
+                10, // priority group.
+                "CINT1WU-B-NOPF-ALL || CINT1-B-NOPF-ALLNOTRD",
+                "domainHLTDDL",  // Only HLT DDL to deliver at least the decision.
+                "Rejected min-bias"
+                );
+
+  config.AddItem(
+                1, // priority group.
+                "SOFTWARE || CALIBRATION || START_OF_DATA || END_OF_DATA",
+                "domainHLTOUT | domainALLDDL",
+                "H-SoftwareTrigger-V0001.001-ALL-ALL"
+                );
+
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Setup defaults in case there is no global trigger.
+  // For non-triggered events always readout all detectors. This is the catch all for rare
+  // and background CTP triggers.
+  config.SetDefaultTriggerDescription("No HLT global trigger");
+  AliHLTTriggerDomain defaultDomain("*******:***");
+  AliHLTReadoutList readoutlist;
+  readoutlist.Enable(AliHLTReadoutList::kALLDET);
+  defaultDomain.Add(readoutlist);
+  config.SetDefaultTriggerDomain(defaultDomain);
+  
+  TObject* menu = AliHLTGlobalTriggerConfig::Menu();
+  menu->Print();
+  
+  ///////////////////////////////////////////////////////////////////////////////////////////
+  // Write the trigger menu object to the CDB.
+  AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
+  AliCDBMetaData* metaData = new AliCDBMetaData();
+  metaData->SetResponsible("ALICE HLT Artur.Szostak@cern.ch");
+  metaData->SetComment("HM-TEST-V0001");
+  storage->Put(menu, id, metaData);
+}