//$Id$
/**************************************************************************
* This file is property of and copyright by the ALICE HLT Project *
* All rights reserved. *
* *
* Primary Authors: *
* Artur Szostak <artursz@iafrica.com> *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
/**
* \ingroup macros
* \file CreateTriggerMenuCDBEntry.C
* \brief Macro for generating the trigger menu CDB entry for the HLT global trigger.
*
* This macro is used to generate a default CDB entry for the HLT global trigger.
* The trigger menu is used by the HLT global trigger as a configuration object.
* It is an experts macro so make sure you know what you are doing.
*
* You can run this macro with defaults using the following shell command:
* \code
* > aliroot -b -q $ALICE_ROOT/HLT/trigger/CreateTriggerMenuCDBEntry.C
* \endcode
*
* \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 CreateTriggerMenuCDBEntry(
const char* cdbPath = "local://$ALICE_ROOT/OCDB",
Int_t version = 0,
Int_t firstRun = 0,
Int_t lastRun = AliCDBRunRange::Infinity()
)
{
gSystem->Load("libAliHLTUtil.so");
gSystem->Load("libAliHLTTRD.so");
gSystem->Load("libAliHLTMUON.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("Default Global Trigger Config");
config.AddSymbol("domainAll", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:***\")");
///////////////////////////////////////////////////////////////////////////////////////////
// the domain definitions for the global HLT output and the HLT DDLs
config.AddSymbol("domainHLTOUT", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"*******:HLT \")");
config.AddSymbol("domainHLTDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:HLT\\0\")");
config.AddSymbol("domainALLDDL", "AliHLTTriggerDomain", "", "AliHLTTriggerDomain(\"DAQRDOUT:***\\0\")");
///////////////////////////////////////////////////////////////////////////////////////////
// NOTE: always make sure that the global HLT output and the HLT DDLs are included
// in the readout, i.e. add domainHLTOUT|domainHLTDDL to the trigger domain
config.AddItem("BarrelMultiplicityTrigger", "BarrelMultiplicityTrigger|domainHLTOUT|domainALLDDL", "charged barrel track multiplicity triggered");
config.AddItem("MuonSpectroTrigger", "MuonSpectroTrigger|domainHLTOUT|domainALLDDL", "Muon spectrometer triggered");
///////////////////////////////////////////////////////////////////////////////////////////
// default domain in case there is no global trigger
// readout the output of the reconstruction
// this refers to the domain domainHLTOUT|domainHLTDDL
config.SetDefaultTriggerDescription("No HLT global trigger");
config.DefaultTriggerDomain().Add("*******", "HLT ");
AliHLTReadoutList readoutlist;
readoutlist.Enable(AliHLTReadoutList::kHLT);
config.DefaultTriggerDomain().Add(readoutlist);
TObject* menu = AliHLTGlobalTriggerConfig::Menu()->Clone();
menu->Print();
///////////////////////////////////////////////////////////////////////////////////////////
// Write the trigger menu object to the CDB.
AliCDBId id("HLT/ConfigHLT/HLTGlobalTrigger", firstRun, lastRun, version);
AliCDBMetaData* metaData = new AliCDBMetaData();
metaData->SetResponsible("HLT");
metaData->SetComment("Default trigger menu for HLT global trigger.");
storage->Put(menu, id, metaData);
}
CreateTriggerMenuCDBEntry.C:1 CreateTriggerMenuCDBEntry.C:2 CreateTriggerMenuCDBEntry.C:3 CreateTriggerMenuCDBEntry.C:4 CreateTriggerMenuCDBEntry.C:5 CreateTriggerMenuCDBEntry.C:6 CreateTriggerMenuCDBEntry.C:7 CreateTriggerMenuCDBEntry.C:8 CreateTriggerMenuCDBEntry.C:9 CreateTriggerMenuCDBEntry.C:10 CreateTriggerMenuCDBEntry.C:11 CreateTriggerMenuCDBEntry.C:12 CreateTriggerMenuCDBEntry.C:13 CreateTriggerMenuCDBEntry.C:14 CreateTriggerMenuCDBEntry.C:15 CreateTriggerMenuCDBEntry.C:16 CreateTriggerMenuCDBEntry.C:17 CreateTriggerMenuCDBEntry.C:18 CreateTriggerMenuCDBEntry.C:19 CreateTriggerMenuCDBEntry.C:20 CreateTriggerMenuCDBEntry.C:21 CreateTriggerMenuCDBEntry.C:22 CreateTriggerMenuCDBEntry.C:23 CreateTriggerMenuCDBEntry.C:24 CreateTriggerMenuCDBEntry.C:25 CreateTriggerMenuCDBEntry.C:26 CreateTriggerMenuCDBEntry.C:27 CreateTriggerMenuCDBEntry.C:28 CreateTriggerMenuCDBEntry.C:29 CreateTriggerMenuCDBEntry.C:30 CreateTriggerMenuCDBEntry.C:31 CreateTriggerMenuCDBEntry.C:32 CreateTriggerMenuCDBEntry.C:33 CreateTriggerMenuCDBEntry.C:34 CreateTriggerMenuCDBEntry.C:35 CreateTriggerMenuCDBEntry.C:36 CreateTriggerMenuCDBEntry.C:37 CreateTriggerMenuCDBEntry.C:38 CreateTriggerMenuCDBEntry.C:39 CreateTriggerMenuCDBEntry.C:40 CreateTriggerMenuCDBEntry.C:41 CreateTriggerMenuCDBEntry.C:42 CreateTriggerMenuCDBEntry.C:43 CreateTriggerMenuCDBEntry.C:44 CreateTriggerMenuCDBEntry.C:45 CreateTriggerMenuCDBEntry.C:46 CreateTriggerMenuCDBEntry.C:47 CreateTriggerMenuCDBEntry.C:48 CreateTriggerMenuCDBEntry.C:49 CreateTriggerMenuCDBEntry.C:50 CreateTriggerMenuCDBEntry.C:51 CreateTriggerMenuCDBEntry.C:52 CreateTriggerMenuCDBEntry.C:53 CreateTriggerMenuCDBEntry.C:54 CreateTriggerMenuCDBEntry.C:55 CreateTriggerMenuCDBEntry.C:56 CreateTriggerMenuCDBEntry.C:57 CreateTriggerMenuCDBEntry.C:58 CreateTriggerMenuCDBEntry.C:59 CreateTriggerMenuCDBEntry.C:60 CreateTriggerMenuCDBEntry.C:61 CreateTriggerMenuCDBEntry.C:62 CreateTriggerMenuCDBEntry.C:63 CreateTriggerMenuCDBEntry.C:64 CreateTriggerMenuCDBEntry.C:65 CreateTriggerMenuCDBEntry.C:66 CreateTriggerMenuCDBEntry.C:67 CreateTriggerMenuCDBEntry.C:68 CreateTriggerMenuCDBEntry.C:69 CreateTriggerMenuCDBEntry.C:70 CreateTriggerMenuCDBEntry.C:71 CreateTriggerMenuCDBEntry.C:72 CreateTriggerMenuCDBEntry.C:73 CreateTriggerMenuCDBEntry.C:74 CreateTriggerMenuCDBEntry.C:75 CreateTriggerMenuCDBEntry.C:76 CreateTriggerMenuCDBEntry.C:77 CreateTriggerMenuCDBEntry.C:78 CreateTriggerMenuCDBEntry.C:79 CreateTriggerMenuCDBEntry.C:80 CreateTriggerMenuCDBEntry.C:81 CreateTriggerMenuCDBEntry.C:82 CreateTriggerMenuCDBEntry.C:83 CreateTriggerMenuCDBEntry.C:84 CreateTriggerMenuCDBEntry.C:85 CreateTriggerMenuCDBEntry.C:86 CreateTriggerMenuCDBEntry.C:87 CreateTriggerMenuCDBEntry.C:88 CreateTriggerMenuCDBEntry.C:89 CreateTriggerMenuCDBEntry.C:90 CreateTriggerMenuCDBEntry.C:91 CreateTriggerMenuCDBEntry.C:92 CreateTriggerMenuCDBEntry.C:93 CreateTriggerMenuCDBEntry.C:94 CreateTriggerMenuCDBEntry.C:95 CreateTriggerMenuCDBEntry.C:96 CreateTriggerMenuCDBEntry.C:97 CreateTriggerMenuCDBEntry.C:98 CreateTriggerMenuCDBEntry.C:99 CreateTriggerMenuCDBEntry.C:100 CreateTriggerMenuCDBEntry.C:101 CreateTriggerMenuCDBEntry.C:102 CreateTriggerMenuCDBEntry.C:103 CreateTriggerMenuCDBEntry.C:104 CreateTriggerMenuCDBEntry.C:105 CreateTriggerMenuCDBEntry.C:106 CreateTriggerMenuCDBEntry.C:107 CreateTriggerMenuCDBEntry.C:108 CreateTriggerMenuCDBEntry.C:109 CreateTriggerMenuCDBEntry.C:110 CreateTriggerMenuCDBEntry.C:111 CreateTriggerMenuCDBEntry.C:112 CreateTriggerMenuCDBEntry.C:113 CreateTriggerMenuCDBEntry.C:114 CreateTriggerMenuCDBEntry.C:115 CreateTriggerMenuCDBEntry.C:116 CreateTriggerMenuCDBEntry.C:117 CreateTriggerMenuCDBEntry.C:118 CreateTriggerMenuCDBEntry.C:119