//-*- Mode: C++ -*-
// $Id: makeTriggerConfigurationObject.C $
/**
* @file makeTriggerConfigurationObject.C
* @brief Creation of HLT component configuration objects in OCDB
*
* <pre>
* Usage: aliroot -b -q makeTriggerConfigurationObject.C'("triggerName", "cdbUri", runMin, runMax)'
* </pre>
*
* Create an CDB entry for a certain trigger.
*
* According to <Trigger-Identifier>, <Minor Version> and <Major Versions>,
* CDB objects are created and saved in the CDB. This objects can be any TObject
* and have to implemented according to the trigger needs.
*
* Note : <br>
* In the path in the CDB '-' is replaced by '_._'
*
* Parameters: <br>
* - triggerName Trigger Name following the standard
* H-<Trigger-Identifier>-VXXXX.YYY
- VXXXX being the major version number, specifying the settings
- YYY being the minor version number, specifying the alogrithm version
* - cdbUri (opt) the CDB URI, default $ALICE_ROOT
* - runMin (opt) default 0
* - runMax (opt) default 999999999
*
* Implemented Trigger : <br>
* - Barrel_pT_Single -> AliHLTESDTrackCuts object
*
* Usage Example : <br>
* aliroot -b -l -q makeTriggerConfigurationObject.C'("H-Barrel_pT_Single-V0001.001")'
*
* @author Jochen Thaeder <jochen@thaeder.de>
* @ingroup alihlt_trigger
*/
// #################################################################################
void makeTriggerConfigurationObject(const Char_t* triggerName, const Char_t* cdbUri=NULL,
Int_t runMin=0, Int_t runMax=AliCDBRunRange::Infinity() ) {
gSystem->Load("libANALYSIS.so");
gSystem->Load("libANALYSISalice.so");
gSystem->Load("libHLTbase.so");
gSystem->Load("libAliHLTUtil.so");
// --------------------------------------
// -- Parse Trigger Name
// --------------------------------------
TString name(triggerName);
if ( !name.BeginsWith("H-") ) {
cerr << "Error : " << name.Data() << " is not a valid trigger name!" << endl;
return;
}
TObjArray* entries = name.Tokenize("-");
if (entries->GetEntriesFast() != 3 ) {
cerr << "Error : " << name.Data() << " is not a valid trigger name!" << endl;
return;
}
TString id = (static_cast<TObjString*>(entries->UncheckedAt(1)))->GetString();
TObjArray* version = (static_cast<TObjString*>(entries->UncheckedAt(2)))->GetString().Tokenize(".");
if (version->GetEntriesFast() != 2 ) {
cerr << "Error : " << name.Data() << " is not a valid trigger name!" << endl;
return;
}
// -- Major version ID = Settings
TString major = (static_cast<TObjString*>(version->UncheckedAt(0)))->GetString();
// -- Minor version ID = Algorithm
TString minor = (static_cast<TObjString*>(version->UncheckedAt(1)))->GetString();
// -------------------------------------------------------------------------------------
printf ("Trigger Setup for : %s \n", triggerName);
// --------------------------------------
// -- Create Configuration Object
// --------------------------------------
TObject* configObj = NULL;
if ( !id.CompareTo("Barrel_pT_Single") ) { // ----------------------------------------
AliHLTESDTrackCuts* esdTrackCuts = NULL;
TString description;
if ( !minor.CompareTo("001") ) {
printf (" - Trigger Setup for 2010 pp data.\n");
esdTrackCuts = AliHLTESDTrackCuts::GetStandardTrackCuts2010pp();
description += esdTrackCuts->GetTitle();
// -- pt cut 1 GeV - minClusters 80
if ( !major.CompareTo("V0001") ) {
esdTrackCuts->SetPtRange(1.);
esdTrackCuts->SetMinNClustersTPC(80);
description += " && p_t > 1 GeV/c && clustersTPC > 80";
}
// -- pt cut 2 GeV - minClusters 80
else if ( !major.CompareTo("V0002") ) {
esdTrackCuts->SetPtRange(2.);
esdTrackCuts->SetMinNClustersTPC(80);
description += " && p_t > 2 GeV/c && clustersTPC > 80";
}
// -- pt cut 3 GeV - minClusters 100
else if ( !major.CompareTo("V0003") ) {
esdTrackCuts->SetPtRange(3.);
esdTrackCuts->SetMinNClustersTPC(100);
description += " && p_t > 3 GeV/c && clustersTPC > 100";
}
else {
cerr << "Error : Major version " << major.Data() << " is not implemented!" << endl;
return;
}
}
else {
cerr << "Error : Minor version " << minor.Data() << " is not implemented!" << endl;
return;
}
if ( !esdTrackCuts ) {
cerr << "Error : No AliHLTESDTrackCuts object created" << endl;
return;
}
esdTrackCuts->SetTitle(description);
configObj = static_cast<TObject*>(esdTrackCuts);
}
else { // ------------------------------------------------------------------------------
cerr << "Error : Trigger name " << id.Data() << " is not implemented!" << endl;
return;
}
// -------------------------------------------------------------------------------------
printf(" - TrackCuts : %s\n", esdTrackCuts->GetTitle());
// --------------------------------------
// -- Setup CDB
// --------------------------------------
AliCDBManager* man = AliCDBManager::Instance();
if (!man) {
cerr << "Error : Can not get AliCDBManager" << endl;
return;
}
TString storage;
if ( !man->IsDefaultStorageSet() ) {
if ( cdbUri ) {
storage = cdbUri;
if ( storage.Contains("://") == 0 ) {
storage = "local://";
storage += cdbUri;
}
}
else {
storage = "local://$ALICE_ROOT/OCDB";
}
man->SetDefaultStorage(storage);
}
else {
storage = man->GetDefaultStorage()->GetURI();
}
TString path("HLT/ConfigHLT/");
path += name.ReplaceAll("-",1,"_._",3);
// --------------------------------------
// -- Fill Object
// --------------------------------------
if ( !configObj ) {
cerr << "Error : No configuration object created" << endl;
return;
}
AliCDBPath cdbPath(path);
AliCDBId cdbId(cdbPath, runMin, runMax);
AliCDBMetaData cdbMetaData;
man->Put(configObj, cdbId, &cdbMetaData);
printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
configObj->ClassName(),
path.Data(),
runMin, runMax, storage.Data());
// --------------------------------------
// -- Clean up
// --------------------------------------
if (version)
delete version;
version = NULL;
if (entries)
delete entries;
entries = NULL;
if (esdTrackCuts)
delete esdTrackCuts;
esdTrackCuts = NULL;
}
// #################################################################################
void makeTriggerConfigurationObject() {
cout << "===============================================================" << endl;
cout << "usage: aliroot -b -q -l makeComponentConfigurationObject.C'(\"triggerName\", \"cdbUri\", rangeMin, rangeMax)'" << endl << endl;
cout << " triggerName Trigger Name following the standard" << endl;
cout << " H-<Trigger-Identifier>-VXXXX.YYY" << endl;
cout << " - VXXXX being the major version number, specifying the settings" << endl;
cout << " - YYY being the minor version number, specifying the alogrithm version" << endl;
cout << " cdbUri (opt) the OCDB URI, default $ALICE_ROOT/OCDB " << endl;
cout << " rangeMin (opt) default 0" << endl;
cout << " rangeMax (opt) default 999999999" << endl << endl;
cout << "example: aliroot -b -l -q makeTriggerConfigurationObject.C'(\"H-Barrel_pT_Single-V0001.001\")'" << endl;
cout << "===============================================================" << endl;
}
makeTriggerConfigurationObject.C:1 makeTriggerConfigurationObject.C:2 makeTriggerConfigurationObject.C:3 makeTriggerConfigurationObject.C:4 makeTriggerConfigurationObject.C:5 makeTriggerConfigurationObject.C:6 makeTriggerConfigurationObject.C:7 makeTriggerConfigurationObject.C:8 makeTriggerConfigurationObject.C:9 makeTriggerConfigurationObject.C:10 makeTriggerConfigurationObject.C:11 makeTriggerConfigurationObject.C:12 makeTriggerConfigurationObject.C:13 makeTriggerConfigurationObject.C:14 makeTriggerConfigurationObject.C:15 makeTriggerConfigurationObject.C:16 makeTriggerConfigurationObject.C:17 makeTriggerConfigurationObject.C:18 makeTriggerConfigurationObject.C:19 makeTriggerConfigurationObject.C:20 makeTriggerConfigurationObject.C:21 makeTriggerConfigurationObject.C:22 makeTriggerConfigurationObject.C:23 makeTriggerConfigurationObject.C:24 makeTriggerConfigurationObject.C:25 makeTriggerConfigurationObject.C:26 makeTriggerConfigurationObject.C:27 makeTriggerConfigurationObject.C:28 makeTriggerConfigurationObject.C:29 makeTriggerConfigurationObject.C:30 makeTriggerConfigurationObject.C:31 makeTriggerConfigurationObject.C:32 makeTriggerConfigurationObject.C:33 makeTriggerConfigurationObject.C:34 makeTriggerConfigurationObject.C:35 makeTriggerConfigurationObject.C:36 makeTriggerConfigurationObject.C:37 makeTriggerConfigurationObject.C:38 makeTriggerConfigurationObject.C:39 makeTriggerConfigurationObject.C:40 makeTriggerConfigurationObject.C:41 makeTriggerConfigurationObject.C:42 makeTriggerConfigurationObject.C:43 makeTriggerConfigurationObject.C:44 makeTriggerConfigurationObject.C:45 makeTriggerConfigurationObject.C:46 makeTriggerConfigurationObject.C:47 makeTriggerConfigurationObject.C:48 makeTriggerConfigurationObject.C:49 makeTriggerConfigurationObject.C:50 makeTriggerConfigurationObject.C:51 makeTriggerConfigurationObject.C:52 makeTriggerConfigurationObject.C:53 makeTriggerConfigurationObject.C:54 makeTriggerConfigurationObject.C:55 makeTriggerConfigurationObject.C:56 makeTriggerConfigurationObject.C:57 makeTriggerConfigurationObject.C:58 makeTriggerConfigurationObject.C:59 makeTriggerConfigurationObject.C:60 makeTriggerConfigurationObject.C:61 makeTriggerConfigurationObject.C:62 makeTriggerConfigurationObject.C:63 makeTriggerConfigurationObject.C:64 makeTriggerConfigurationObject.C:65 makeTriggerConfigurationObject.C:66 makeTriggerConfigurationObject.C:67 makeTriggerConfigurationObject.C:68 makeTriggerConfigurationObject.C:69 makeTriggerConfigurationObject.C:70 makeTriggerConfigurationObject.C:71 makeTriggerConfigurationObject.C:72 makeTriggerConfigurationObject.C:73 makeTriggerConfigurationObject.C:74 makeTriggerConfigurationObject.C:75 makeTriggerConfigurationObject.C:76 makeTriggerConfigurationObject.C:77 makeTriggerConfigurationObject.C:78 makeTriggerConfigurationObject.C:79 makeTriggerConfigurationObject.C:80 makeTriggerConfigurationObject.C:81 makeTriggerConfigurationObject.C:82 makeTriggerConfigurationObject.C:83 makeTriggerConfigurationObject.C:84 makeTriggerConfigurationObject.C:85 makeTriggerConfigurationObject.C:86 makeTriggerConfigurationObject.C:87 makeTriggerConfigurationObject.C:88 makeTriggerConfigurationObject.C:89 makeTriggerConfigurationObject.C:90 makeTriggerConfigurationObject.C:91 makeTriggerConfigurationObject.C:92 makeTriggerConfigurationObject.C:93 makeTriggerConfigurationObject.C:94 makeTriggerConfigurationObject.C:95 makeTriggerConfigurationObject.C:96 makeTriggerConfigurationObject.C:97 makeTriggerConfigurationObject.C:98 makeTriggerConfigurationObject.C:99 makeTriggerConfigurationObject.C:100 makeTriggerConfigurationObject.C:101 makeTriggerConfigurationObject.C:102 makeTriggerConfigurationObject.C:103 makeTriggerConfigurationObject.C:104 makeTriggerConfigurationObject.C:105 makeTriggerConfigurationObject.C:106 makeTriggerConfigurationObject.C:107 makeTriggerConfigurationObject.C:108 makeTriggerConfigurationObject.C:109 makeTriggerConfigurationObject.C:110 makeTriggerConfigurationObject.C:111 makeTriggerConfigurationObject.C:112 makeTriggerConfigurationObject.C:113 makeTriggerConfigurationObject.C:114 makeTriggerConfigurationObject.C:115 makeTriggerConfigurationObject.C:116 makeTriggerConfigurationObject.C:117 makeTriggerConfigurationObject.C:118 makeTriggerConfigurationObject.C:119 makeTriggerConfigurationObject.C:120 makeTriggerConfigurationObject.C:121 makeTriggerConfigurationObject.C:122 makeTriggerConfigurationObject.C:123 makeTriggerConfigurationObject.C:124 makeTriggerConfigurationObject.C:125 makeTriggerConfigurationObject.C:126 makeTriggerConfigurationObject.C:127 makeTriggerConfigurationObject.C:128 makeTriggerConfigurationObject.C:129 makeTriggerConfigurationObject.C:130 makeTriggerConfigurationObject.C:131 makeTriggerConfigurationObject.C:132 makeTriggerConfigurationObject.C:133 makeTriggerConfigurationObject.C:134 makeTriggerConfigurationObject.C:135 makeTriggerConfigurationObject.C:136 makeTriggerConfigurationObject.C:137 makeTriggerConfigurationObject.C:138 makeTriggerConfigurationObject.C:139 makeTriggerConfigurationObject.C:140 makeTriggerConfigurationObject.C:141 makeTriggerConfigurationObject.C:142 makeTriggerConfigurationObject.C:143 makeTriggerConfigurationObject.C:144 makeTriggerConfigurationObject.C:145 makeTriggerConfigurationObject.C:146 makeTriggerConfigurationObject.C:147 makeTriggerConfigurationObject.C:148 makeTriggerConfigurationObject.C:149 makeTriggerConfigurationObject.C:150 makeTriggerConfigurationObject.C:151 makeTriggerConfigurationObject.C:152 makeTriggerConfigurationObject.C:153 makeTriggerConfigurationObject.C:154 makeTriggerConfigurationObject.C:155 makeTriggerConfigurationObject.C:156 makeTriggerConfigurationObject.C:157 makeTriggerConfigurationObject.C:158 makeTriggerConfigurationObject.C:159 makeTriggerConfigurationObject.C:160 makeTriggerConfigurationObject.C:161 makeTriggerConfigurationObject.C:162 makeTriggerConfigurationObject.C:163 makeTriggerConfigurationObject.C:164 makeTriggerConfigurationObject.C:165 makeTriggerConfigurationObject.C:166 makeTriggerConfigurationObject.C:167 makeTriggerConfigurationObject.C:168 makeTriggerConfigurationObject.C:169 makeTriggerConfigurationObject.C:170 makeTriggerConfigurationObject.C:171 makeTriggerConfigurationObject.C:172 makeTriggerConfigurationObject.C:173 makeTriggerConfigurationObject.C:174 makeTriggerConfigurationObject.C:175 makeTriggerConfigurationObject.C:176 makeTriggerConfigurationObject.C:177 makeTriggerConfigurationObject.C:178 makeTriggerConfigurationObject.C:179 makeTriggerConfigurationObject.C:180 makeTriggerConfigurationObject.C:181 makeTriggerConfigurationObject.C:182 makeTriggerConfigurationObject.C:183 makeTriggerConfigurationObject.C:184 makeTriggerConfigurationObject.C:185 makeTriggerConfigurationObject.C:186 makeTriggerConfigurationObject.C:187 makeTriggerConfigurationObject.C:188 makeTriggerConfigurationObject.C:189 makeTriggerConfigurationObject.C:190 makeTriggerConfigurationObject.C:191 makeTriggerConfigurationObject.C:192 makeTriggerConfigurationObject.C:193 makeTriggerConfigurationObject.C:194 makeTriggerConfigurationObject.C:195 makeTriggerConfigurationObject.C:196 makeTriggerConfigurationObject.C:197 makeTriggerConfigurationObject.C:198 makeTriggerConfigurationObject.C:199 makeTriggerConfigurationObject.C:200 makeTriggerConfigurationObject.C:201 makeTriggerConfigurationObject.C:202 makeTriggerConfigurationObject.C:203 makeTriggerConfigurationObject.C:204 makeTriggerConfigurationObject.C:205 makeTriggerConfigurationObject.C:206 makeTriggerConfigurationObject.C:207 makeTriggerConfigurationObject.C:208 makeTriggerConfigurationObject.C:209 makeTriggerConfigurationObject.C:210 makeTriggerConfigurationObject.C:211 makeTriggerConfigurationObject.C:212 makeTriggerConfigurationObject.C:213 makeTriggerConfigurationObject.C:214 makeTriggerConfigurationObject.C:215 makeTriggerConfigurationObject.C:216 makeTriggerConfigurationObject.C:217 makeTriggerConfigurationObject.C:218 makeTriggerConfigurationObject.C:219 makeTriggerConfigurationObject.C:220 makeTriggerConfigurationObject.C:221 makeTriggerConfigurationObject.C:222 makeTriggerConfigurationObject.C:223 makeTriggerConfigurationObject.C:224