ROOT logo
/**************************************************************************
 * 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.                  *
 **************************************************************************/

// $Id: $

/**
 * \ingroup macros
 * \file CreateDefaultCDBEntries.C
 * \brief Macro for generating default CDB entries for dHLT.
 *
 * This macro is used to generate some default CDB entries for the dHLT.
 * It is an experts macro so make sure you know what you are doing.
 *
 * The simplest way to run this macro with defaults is to copy "rootlogon.C" from
 * $ALICE_ROOT/HLT/MUON/macros into your current working directory, then from
 * the shell command prompt run the following command:
 * \code
 *   > aliroot -b -q -l $ALICE_ROOT/HLT/MUON/macros/CreateDefaultCDBEntries.C
 * \endcode
 *
 * \author Artur Szostak <artursz@iafrica.com>
 */

#if !defined(__CINT__) || defined(__MAKECINT__)
#include "AliCDBManager.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliHLTMUONConstants.h"
#include "TMap.h"
#include "TObjString.h"
#include "TString.h"
#include <iostream>
using std::cerr;
using std::endl;
#endif

/**
 * Generates default CDB entries in the given CDB storage (local by default)
 * \param cdbPath  The path to the local storage.
 * \param version  The version of the CDB entry.
 * \param firstRun = The first run number for which the CDB entry is valid.
 * \param lastRun = The last run number for which the CDB entry is valid.
 * \param zmiddle  The middle of the dipole field (cm) used by AliHLTMUONTriggerReconstructorComponent and AliHLTMUONMansoTrackerFSMComponent.
 * \param bfieldintegral  The dipole magnetic field integral (T.m) used by AliHLTMUONTriggerReconstructorComponent and AliHLTMUONMansoTrackerFSMComponent.
 * \param dccut  DC cut applied to channels by AliHLTMUONHitReconstructorComponent.
 * \param roiParamAchamber7  Region of interest parameter A for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamBchamber7  Region of interest parameter B for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamAchamber8  Region of interest parameter A for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamBchamber8  Region of interest parameter B for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamAchamber9  Region of interest parameter A for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamBchamber9  Region of interest parameter B for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamAchamber10 Region of interest parameter A for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param roiParamBchamber10 Region of interest parameter B for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param lowptcut    The low pT cut applied to tracks (GeV/c) used by the AliHLTMUONDecisionComponent.
 * \param highptcut   The hight pT cut applied to tracks (GeV/c) used by the AliHLTMUONDecisionComponent.
 * \param lowmasscut  The low invariant mass cut applied to track pairs (GeV/c^2) used by the AliHLTMUONDecisionComponent.
 * \param highmasscut The hight invariant mass cut applied to track pairs (GeV/c^2) used by the AliHLTMUONDecisionComponent.
 * \param chamber7postion  Nominal position for chamber 7 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param chamber8postion  Nominal position for chamber 8 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param chamber9postion  Nominal position for chamber 9 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param chamber10postion Nominal position for chamber 10 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param chamber11postion Nominal position for chamber 11 used by AliHLTMUONMansoTrackerFSMComponent.
 * \param chamber13postion Nominal position for chamber 13 used by AliHLTMUONMansoTrackerFSMComponent.
 */
void CreateDefaultCDBEntries(
		const char* cdbPath = "local://$ALICE_ROOT/OCDB",
		Int_t version = 0,
		Int_t firstRun = 0,
		Int_t lastRun = AliCDBRunRange::Infinity(),
		float zmiddle = -975.,
		float bfieldintegral = -3.,
		int dccut = 50,
		float roiParamAchamber7 = 0.020,
		float roiParamBchamber7 = 2.2,
		float roiParamAchamber8 = 0.023,
		float roiParamBchamber8 = 2.3,
		float roiParamAchamber9 = 0.049,
		float roiParamBchamber9 = 4.8,
		float roiParamAchamber10 = 0.045,
		float roiParamBchamber10 = 4.2,
		float lowptcut = 0.779,
		float highptcut = 1.755,
		float lowmasscut = 1.5,
		float highmasscut = 6.,
		float chamber7postion = -1276.5,
		float chamber8postion = -1307.5,
		float chamber9postion = -1406.6,
		float chamber10postion = -1437.6,
		float chamber11postion = -1603.5,
		float chamber13postion = -1703.5
	)
{
	// 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;
	}
	
	const char* path = NULL;
	AliCDBMetaData* metaData = NULL;
	TMap* params = NULL;
	AliCDBId id;
	
	// Create and store the configuration parameters for the trigger reconstructor.
	params = new TMap;
	params->SetOwner(kTRUE);
	char valstr[1024];
	sprintf(valstr, "%8.8f", zmiddle);
	params->Add(new TObjString("zmiddle"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", bfieldintegral);
	params->Add(new TObjString("bfieldintegral"), new TObjString(valstr));
	
	path = AliHLTMUONConstants::TriggerReconstructorCDBPath();
	id = AliCDBId(path, firstRun, lastRun, version);
	metaData = new AliCDBMetaData();
	metaData->SetResponsible("dimuon HLT");
	metaData->SetComment("Trigger reconstructor configuration parameters for dimuon HLT.");
	storage->Put(params, id, metaData);
	
	// Create and store the configuration parameters for the hit reconstructor.
	params = new TMap;
	params->SetOwner(kTRUE);
	sprintf(valstr, "%d", dccut);
	params->Add(new TObjString("dccut"), new TObjString(valstr));
	
	path = AliHLTMUONConstants::HitReconstructorCDBPath();
	id = AliCDBId(path, firstRun, lastRun, version);
	metaData = new AliCDBMetaData();
	metaData->SetResponsible("dimuon HLT");
	metaData->SetComment("Hit reconstructor DC cut parameter for dimuon HLT.");
	storage->Put(params, id, metaData);
	
	// Create and store the configuration parameters for the Manso tracker.
	params = new TMap;
	params->SetOwner(kTRUE);
	sprintf(valstr, "%8.8f", zmiddle);
	params->Add(new TObjString("zmiddle"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", bfieldintegral);
	params->Add(new TObjString("bfieldintegral"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamAchamber7);
	params->Add(new TObjString("roi_paramA_chamber7"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamBchamber7);
	params->Add(new TObjString("roi_paramB_chamber7"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamAchamber8);
	params->Add(new TObjString("roi_paramA_chamber8"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamBchamber8);
	params->Add(new TObjString("roi_paramB_chamber8"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamAchamber9);
	params->Add(new TObjString("roi_paramA_chamber9"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamBchamber9);
	params->Add(new TObjString("roi_paramB_chamber9"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamAchamber10);
	params->Add(new TObjString("roi_paramA_chamber10"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", roiParamBchamber10);
	params->Add(new TObjString("roi_paramB_chamber10"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber7postion);
	params->Add(new TObjString("chamber7postion"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber8postion);
	params->Add(new TObjString("chamber8postion"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber9postion);
	params->Add(new TObjString("chamber9postion"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber10postion);
	params->Add(new TObjString("chamber10postion"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber11postion);
	params->Add(new TObjString("chamber11postion"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", chamber13postion);
	params->Add(new TObjString("chamber13postion"), new TObjString(valstr));
	
	path = AliHLTMUONConstants::MansoTrackerFSMCDBPath();
	id = AliCDBId(path, firstRun, lastRun, version);
	metaData = new AliCDBMetaData();
	metaData->SetResponsible("dimuon HLT");
	metaData->SetComment("Manso tracker FSM component configuration parameters for dimuon HLT.");
	storage->Put(params, id, metaData);
	
	// Create and store the configuration parameters for the trigger decision cuts.
	params = new TMap;
	params->SetOwner(kTRUE);
	sprintf(valstr, "%8.8f", lowptcut);
	params->Add(new TObjString("lowptcut"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", highptcut);
	params->Add(new TObjString("highptcut"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", lowmasscut);
	params->Add(new TObjString("lowmasscut"), new TObjString(valstr));
	sprintf(valstr, "%8.8f", highmasscut);
	params->Add(new TObjString("highmasscut"), new TObjString(valstr));
	
	path = AliHLTMUONConstants::DecisionComponentCDBPath();
	id = AliCDBId(path, firstRun, lastRun, version);
	metaData = new AliCDBMetaData();
	metaData->SetResponsible("dimuon HLT");
	metaData->SetComment("Trigger decision cuts for dimuon HLT.");
	storage->Put(params, id, metaData);
}
 CreateDefaultCDBEntries.C:1
 CreateDefaultCDBEntries.C:2
 CreateDefaultCDBEntries.C:3
 CreateDefaultCDBEntries.C:4
 CreateDefaultCDBEntries.C:5
 CreateDefaultCDBEntries.C:6
 CreateDefaultCDBEntries.C:7
 CreateDefaultCDBEntries.C:8
 CreateDefaultCDBEntries.C:9
 CreateDefaultCDBEntries.C:10
 CreateDefaultCDBEntries.C:11
 CreateDefaultCDBEntries.C:12
 CreateDefaultCDBEntries.C:13
 CreateDefaultCDBEntries.C:14
 CreateDefaultCDBEntries.C:15
 CreateDefaultCDBEntries.C:16
 CreateDefaultCDBEntries.C:17
 CreateDefaultCDBEntries.C:18
 CreateDefaultCDBEntries.C:19
 CreateDefaultCDBEntries.C:20
 CreateDefaultCDBEntries.C:21
 CreateDefaultCDBEntries.C:22
 CreateDefaultCDBEntries.C:23
 CreateDefaultCDBEntries.C:24
 CreateDefaultCDBEntries.C:25
 CreateDefaultCDBEntries.C:26
 CreateDefaultCDBEntries.C:27
 CreateDefaultCDBEntries.C:28
 CreateDefaultCDBEntries.C:29
 CreateDefaultCDBEntries.C:30
 CreateDefaultCDBEntries.C:31
 CreateDefaultCDBEntries.C:32
 CreateDefaultCDBEntries.C:33
 CreateDefaultCDBEntries.C:34
 CreateDefaultCDBEntries.C:35
 CreateDefaultCDBEntries.C:36
 CreateDefaultCDBEntries.C:37
 CreateDefaultCDBEntries.C:38
 CreateDefaultCDBEntries.C:39
 CreateDefaultCDBEntries.C:40
 CreateDefaultCDBEntries.C:41
 CreateDefaultCDBEntries.C:42
 CreateDefaultCDBEntries.C:43
 CreateDefaultCDBEntries.C:44
 CreateDefaultCDBEntries.C:45
 CreateDefaultCDBEntries.C:46
 CreateDefaultCDBEntries.C:47
 CreateDefaultCDBEntries.C:48
 CreateDefaultCDBEntries.C:49
 CreateDefaultCDBEntries.C:50
 CreateDefaultCDBEntries.C:51
 CreateDefaultCDBEntries.C:52
 CreateDefaultCDBEntries.C:53
 CreateDefaultCDBEntries.C:54
 CreateDefaultCDBEntries.C:55
 CreateDefaultCDBEntries.C:56
 CreateDefaultCDBEntries.C:57
 CreateDefaultCDBEntries.C:58
 CreateDefaultCDBEntries.C:59
 CreateDefaultCDBEntries.C:60
 CreateDefaultCDBEntries.C:61
 CreateDefaultCDBEntries.C:62
 CreateDefaultCDBEntries.C:63
 CreateDefaultCDBEntries.C:64
 CreateDefaultCDBEntries.C:65
 CreateDefaultCDBEntries.C:66
 CreateDefaultCDBEntries.C:67
 CreateDefaultCDBEntries.C:68
 CreateDefaultCDBEntries.C:69
 CreateDefaultCDBEntries.C:70
 CreateDefaultCDBEntries.C:71
 CreateDefaultCDBEntries.C:72
 CreateDefaultCDBEntries.C:73
 CreateDefaultCDBEntries.C:74
 CreateDefaultCDBEntries.C:75
 CreateDefaultCDBEntries.C:76
 CreateDefaultCDBEntries.C:77
 CreateDefaultCDBEntries.C:78
 CreateDefaultCDBEntries.C:79
 CreateDefaultCDBEntries.C:80
 CreateDefaultCDBEntries.C:81
 CreateDefaultCDBEntries.C:82
 CreateDefaultCDBEntries.C:83
 CreateDefaultCDBEntries.C:84
 CreateDefaultCDBEntries.C:85
 CreateDefaultCDBEntries.C:86
 CreateDefaultCDBEntries.C:87
 CreateDefaultCDBEntries.C:88
 CreateDefaultCDBEntries.C:89
 CreateDefaultCDBEntries.C:90
 CreateDefaultCDBEntries.C:91
 CreateDefaultCDBEntries.C:92
 CreateDefaultCDBEntries.C:93
 CreateDefaultCDBEntries.C:94
 CreateDefaultCDBEntries.C:95
 CreateDefaultCDBEntries.C:96
 CreateDefaultCDBEntries.C:97
 CreateDefaultCDBEntries.C:98
 CreateDefaultCDBEntries.C:99
 CreateDefaultCDBEntries.C:100
 CreateDefaultCDBEntries.C:101
 CreateDefaultCDBEntries.C:102
 CreateDefaultCDBEntries.C:103
 CreateDefaultCDBEntries.C:104
 CreateDefaultCDBEntries.C:105
 CreateDefaultCDBEntries.C:106
 CreateDefaultCDBEntries.C:107
 CreateDefaultCDBEntries.C:108
 CreateDefaultCDBEntries.C:109
 CreateDefaultCDBEntries.C:110
 CreateDefaultCDBEntries.C:111
 CreateDefaultCDBEntries.C:112
 CreateDefaultCDBEntries.C:113
 CreateDefaultCDBEntries.C:114
 CreateDefaultCDBEntries.C:115
 CreateDefaultCDBEntries.C:116
 CreateDefaultCDBEntries.C:117
 CreateDefaultCDBEntries.C:118
 CreateDefaultCDBEntries.C:119
 CreateDefaultCDBEntries.C:120
 CreateDefaultCDBEntries.C:121
 CreateDefaultCDBEntries.C:122
 CreateDefaultCDBEntries.C:123
 CreateDefaultCDBEntries.C:124
 CreateDefaultCDBEntries.C:125
 CreateDefaultCDBEntries.C:126
 CreateDefaultCDBEntries.C:127
 CreateDefaultCDBEntries.C:128
 CreateDefaultCDBEntries.C:129
 CreateDefaultCDBEntries.C:130
 CreateDefaultCDBEntries.C:131
 CreateDefaultCDBEntries.C:132
 CreateDefaultCDBEntries.C:133
 CreateDefaultCDBEntries.C:134
 CreateDefaultCDBEntries.C:135
 CreateDefaultCDBEntries.C:136
 CreateDefaultCDBEntries.C:137
 CreateDefaultCDBEntries.C:138
 CreateDefaultCDBEntries.C:139
 CreateDefaultCDBEntries.C:140
 CreateDefaultCDBEntries.C:141
 CreateDefaultCDBEntries.C:142
 CreateDefaultCDBEntries.C:143
 CreateDefaultCDBEntries.C:144
 CreateDefaultCDBEntries.C:145
 CreateDefaultCDBEntries.C:146
 CreateDefaultCDBEntries.C:147
 CreateDefaultCDBEntries.C:148
 CreateDefaultCDBEntries.C:149
 CreateDefaultCDBEntries.C:150
 CreateDefaultCDBEntries.C:151
 CreateDefaultCDBEntries.C:152
 CreateDefaultCDBEntries.C:153
 CreateDefaultCDBEntries.C:154
 CreateDefaultCDBEntries.C:155
 CreateDefaultCDBEntries.C:156
 CreateDefaultCDBEntries.C:157
 CreateDefaultCDBEntries.C:158
 CreateDefaultCDBEntries.C:159
 CreateDefaultCDBEntries.C:160
 CreateDefaultCDBEntries.C:161
 CreateDefaultCDBEntries.C:162
 CreateDefaultCDBEntries.C:163
 CreateDefaultCDBEntries.C:164
 CreateDefaultCDBEntries.C:165
 CreateDefaultCDBEntries.C:166
 CreateDefaultCDBEntries.C:167
 CreateDefaultCDBEntries.C:168
 CreateDefaultCDBEntries.C:169
 CreateDefaultCDBEntries.C:170
 CreateDefaultCDBEntries.C:171
 CreateDefaultCDBEntries.C:172
 CreateDefaultCDBEntries.C:173
 CreateDefaultCDBEntries.C:174
 CreateDefaultCDBEntries.C:175
 CreateDefaultCDBEntries.C:176
 CreateDefaultCDBEntries.C:177
 CreateDefaultCDBEntries.C:178
 CreateDefaultCDBEntries.C:179
 CreateDefaultCDBEntries.C:180
 CreateDefaultCDBEntries.C:181
 CreateDefaultCDBEntries.C:182
 CreateDefaultCDBEntries.C:183
 CreateDefaultCDBEntries.C:184
 CreateDefaultCDBEntries.C:185
 CreateDefaultCDBEntries.C:186
 CreateDefaultCDBEntries.C:187
 CreateDefaultCDBEntries.C:188
 CreateDefaultCDBEntries.C:189
 CreateDefaultCDBEntries.C:190
 CreateDefaultCDBEntries.C:191
 CreateDefaultCDBEntries.C:192
 CreateDefaultCDBEntries.C:193
 CreateDefaultCDBEntries.C:194
 CreateDefaultCDBEntries.C:195
 CreateDefaultCDBEntries.C:196
 CreateDefaultCDBEntries.C:197
 CreateDefaultCDBEntries.C:198
 CreateDefaultCDBEntries.C:199
 CreateDefaultCDBEntries.C:200
 CreateDefaultCDBEntries.C:201
 CreateDefaultCDBEntries.C:202
 CreateDefaultCDBEntries.C:203
 CreateDefaultCDBEntries.C:204
 CreateDefaultCDBEntries.C:205
 CreateDefaultCDBEntries.C:206
 CreateDefaultCDBEntries.C:207
 CreateDefaultCDBEntries.C:208
 CreateDefaultCDBEntries.C:209
 CreateDefaultCDBEntries.C:210
 CreateDefaultCDBEntries.C:211
 CreateDefaultCDBEntries.C:212
 CreateDefaultCDBEntries.C:213
 CreateDefaultCDBEntries.C:214
 CreateDefaultCDBEntries.C:215
 CreateDefaultCDBEntries.C:216
 CreateDefaultCDBEntries.C:217