ROOT logo
//-*- Mode: C++ -*-
// $Id: makeConfigurationObjectMultiplicityCorrelations.C$
/**
 * @file makeConfigurationObjectMultiplicityCorrelations.C
 * @brief Creation of HLT component configuration objects in OCDB
 *
 * <pre>
 * Usage: aliroot -b -q makeConfigurationObjectMultiplicityCorrelations.C'("param", "uri", runMin, runMax)'
 * </pre>
 *
 * Create an OCDB entry with a TObjString containing param for
 * MultiplicityCorrelations
 *
 * Parameters: <br>
 * - param (opt)    string to be stored in the TObjSting, default empty
 * - uri   (opt)    the OCDB URI, default $ALICE_ROOT   
 * - runMin (opt)   default 0
 * - runMax (opt)   default 999999999
 * - centralityFile (opt) set new centralityFile
 * 
 * Current Param : 
 *  - ""  <pre> aliroot -b -q makeConfigurationObjectMultiplicityCorrelations.C </pre>
 *
 * @author Jochen Thaeder <jochen@thaeder.de>
 * @ingroup alihlt_global
 */
void makeConfigurationObjectMultiplicityCorrelations(const Char_t* param="-addTrigger CPBI1 -addTrigger CPBI2", const Char_t* cdbUri=NULL,
						     Int_t runMin=0, Int_t runMax=AliCDBRunRange::Infinity(),
						     Char_t *centralityFile="centrality.root") {

  // --------------------------------------
  // -- Setup CDB
  // --------------------------------------

  AliCDBManager* man = AliCDBManager::Instance();
  if (!man) {
    cerr << "Error : Can not get AliCDBManager" << end;
    exit;
  }

  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();
  }

  if (param) {
    TString path0("HLT/ConfigGlobal/MultiplicityCorrelations");
    // --------------------------------------
    // -- Create Config Object 0
    // --------------------------------------
    
    // here is the actual content of the configuration object
    TObjString configParam=param;
    
    TObject *configObj = static_cast<TObject*>(&configParam);
    // --------------------------------------
    // -- Fill Object 0
    // --------------------------------------
    
    if ( !configObj ) {
      cerr << "Error : No configuration object created" << endl;
      return;
    }
    
    AliCDBPath cdbPath0(path0);
    AliCDBId   cdbId0(cdbPath0, runMin, runMax);
    AliCDBMetaData cdbMetaData0;
    man->Put(configObj, cdbId0, &cdbMetaData0);
    
    printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
	   configObj->ClassName(), 
	   path0.Data(),
	   runMin, runMax, storage.Data());
  }

  if (centralityFile) {
    TString path1("HLT/ConfigGlobal/MultiplicityCorrelationsCentrality");
    // --------------------------------------
    // -- Create Config Object 1
    // --------------------------------------
   
    // here is the actual content of the configuration object
    TFile *file = TFile::Open(centralityFile);
    TH1F *centrality = static_cast<TH1F*>(file->Get("fHOutMultV0M_percentile")); 
    
    TObject *configObjCentrality = static_cast<TObject*>(centrality);
    // --------------------------------------
    // -- Fill Object
    // --------------------------------------
    
    if ( !configObjCentrality ) {
      cerr << "Error : No centrality configuration object created" << endl;
      return;
    }
    
    AliCDBPath cdbPath1(path1);
    AliCDBId   cdbId1(cdbPath1, runMin, runMax);
    AliCDBMetaData cdbMetaData1;
    man->Put(configObjCentrality, cdbId1, &cdbMetaData1);

    printf("Adding %s type OCDB object to %s [%d,%d] in %s \n",
	   configObjCentrality->ClassName(), 
	   path1.Data(),
	   runMin, runMax, storage.Data());
  }
}

 makeConfigurationObjectMultiplicityCorrelations.C:1
 makeConfigurationObjectMultiplicityCorrelations.C:2
 makeConfigurationObjectMultiplicityCorrelations.C:3
 makeConfigurationObjectMultiplicityCorrelations.C:4
 makeConfigurationObjectMultiplicityCorrelations.C:5
 makeConfigurationObjectMultiplicityCorrelations.C:6
 makeConfigurationObjectMultiplicityCorrelations.C:7
 makeConfigurationObjectMultiplicityCorrelations.C:8
 makeConfigurationObjectMultiplicityCorrelations.C:9
 makeConfigurationObjectMultiplicityCorrelations.C:10
 makeConfigurationObjectMultiplicityCorrelations.C:11
 makeConfigurationObjectMultiplicityCorrelations.C:12
 makeConfigurationObjectMultiplicityCorrelations.C:13
 makeConfigurationObjectMultiplicityCorrelations.C:14
 makeConfigurationObjectMultiplicityCorrelations.C:15
 makeConfigurationObjectMultiplicityCorrelations.C:16
 makeConfigurationObjectMultiplicityCorrelations.C:17
 makeConfigurationObjectMultiplicityCorrelations.C:18
 makeConfigurationObjectMultiplicityCorrelations.C:19
 makeConfigurationObjectMultiplicityCorrelations.C:20
 makeConfigurationObjectMultiplicityCorrelations.C:21
 makeConfigurationObjectMultiplicityCorrelations.C:22
 makeConfigurationObjectMultiplicityCorrelations.C:23
 makeConfigurationObjectMultiplicityCorrelations.C:24
 makeConfigurationObjectMultiplicityCorrelations.C:25
 makeConfigurationObjectMultiplicityCorrelations.C:26
 makeConfigurationObjectMultiplicityCorrelations.C:27
 makeConfigurationObjectMultiplicityCorrelations.C:28
 makeConfigurationObjectMultiplicityCorrelations.C:29
 makeConfigurationObjectMultiplicityCorrelations.C:30
 makeConfigurationObjectMultiplicityCorrelations.C:31
 makeConfigurationObjectMultiplicityCorrelations.C:32
 makeConfigurationObjectMultiplicityCorrelations.C:33
 makeConfigurationObjectMultiplicityCorrelations.C:34
 makeConfigurationObjectMultiplicityCorrelations.C:35
 makeConfigurationObjectMultiplicityCorrelations.C:36
 makeConfigurationObjectMultiplicityCorrelations.C:37
 makeConfigurationObjectMultiplicityCorrelations.C:38
 makeConfigurationObjectMultiplicityCorrelations.C:39
 makeConfigurationObjectMultiplicityCorrelations.C:40
 makeConfigurationObjectMultiplicityCorrelations.C:41
 makeConfigurationObjectMultiplicityCorrelations.C:42
 makeConfigurationObjectMultiplicityCorrelations.C:43
 makeConfigurationObjectMultiplicityCorrelations.C:44
 makeConfigurationObjectMultiplicityCorrelations.C:45
 makeConfigurationObjectMultiplicityCorrelations.C:46
 makeConfigurationObjectMultiplicityCorrelations.C:47
 makeConfigurationObjectMultiplicityCorrelations.C:48
 makeConfigurationObjectMultiplicityCorrelations.C:49
 makeConfigurationObjectMultiplicityCorrelations.C:50
 makeConfigurationObjectMultiplicityCorrelations.C:51
 makeConfigurationObjectMultiplicityCorrelations.C:52
 makeConfigurationObjectMultiplicityCorrelations.C:53
 makeConfigurationObjectMultiplicityCorrelations.C:54
 makeConfigurationObjectMultiplicityCorrelations.C:55
 makeConfigurationObjectMultiplicityCorrelations.C:56
 makeConfigurationObjectMultiplicityCorrelations.C:57
 makeConfigurationObjectMultiplicityCorrelations.C:58
 makeConfigurationObjectMultiplicityCorrelations.C:59
 makeConfigurationObjectMultiplicityCorrelations.C:60
 makeConfigurationObjectMultiplicityCorrelations.C:61
 makeConfigurationObjectMultiplicityCorrelations.C:62
 makeConfigurationObjectMultiplicityCorrelations.C:63
 makeConfigurationObjectMultiplicityCorrelations.C:64
 makeConfigurationObjectMultiplicityCorrelations.C:65
 makeConfigurationObjectMultiplicityCorrelations.C:66
 makeConfigurationObjectMultiplicityCorrelations.C:67
 makeConfigurationObjectMultiplicityCorrelations.C:68
 makeConfigurationObjectMultiplicityCorrelations.C:69
 makeConfigurationObjectMultiplicityCorrelations.C:70
 makeConfigurationObjectMultiplicityCorrelations.C:71
 makeConfigurationObjectMultiplicityCorrelations.C:72
 makeConfigurationObjectMultiplicityCorrelations.C:73
 makeConfigurationObjectMultiplicityCorrelations.C:74
 makeConfigurationObjectMultiplicityCorrelations.C:75
 makeConfigurationObjectMultiplicityCorrelations.C:76
 makeConfigurationObjectMultiplicityCorrelations.C:77
 makeConfigurationObjectMultiplicityCorrelations.C:78
 makeConfigurationObjectMultiplicityCorrelations.C:79
 makeConfigurationObjectMultiplicityCorrelations.C:80
 makeConfigurationObjectMultiplicityCorrelations.C:81
 makeConfigurationObjectMultiplicityCorrelations.C:82
 makeConfigurationObjectMultiplicityCorrelations.C:83
 makeConfigurationObjectMultiplicityCorrelations.C:84
 makeConfigurationObjectMultiplicityCorrelations.C:85
 makeConfigurationObjectMultiplicityCorrelations.C:86
 makeConfigurationObjectMultiplicityCorrelations.C:87
 makeConfigurationObjectMultiplicityCorrelations.C:88
 makeConfigurationObjectMultiplicityCorrelations.C:89
 makeConfigurationObjectMultiplicityCorrelations.C:90
 makeConfigurationObjectMultiplicityCorrelations.C:91
 makeConfigurationObjectMultiplicityCorrelations.C:92
 makeConfigurationObjectMultiplicityCorrelations.C:93
 makeConfigurationObjectMultiplicityCorrelations.C:94
 makeConfigurationObjectMultiplicityCorrelations.C:95
 makeConfigurationObjectMultiplicityCorrelations.C:96
 makeConfigurationObjectMultiplicityCorrelations.C:97
 makeConfigurationObjectMultiplicityCorrelations.C:98
 makeConfigurationObjectMultiplicityCorrelations.C:99
 makeConfigurationObjectMultiplicityCorrelations.C:100
 makeConfigurationObjectMultiplicityCorrelations.C:101
 makeConfigurationObjectMultiplicityCorrelations.C:102
 makeConfigurationObjectMultiplicityCorrelations.C:103
 makeConfigurationObjectMultiplicityCorrelations.C:104
 makeConfigurationObjectMultiplicityCorrelations.C:105
 makeConfigurationObjectMultiplicityCorrelations.C:106
 makeConfigurationObjectMultiplicityCorrelations.C:107
 makeConfigurationObjectMultiplicityCorrelations.C:108
 makeConfigurationObjectMultiplicityCorrelations.C:109
 makeConfigurationObjectMultiplicityCorrelations.C:110
 makeConfigurationObjectMultiplicityCorrelations.C:111
 makeConfigurationObjectMultiplicityCorrelations.C:112
 makeConfigurationObjectMultiplicityCorrelations.C:113
 makeConfigurationObjectMultiplicityCorrelations.C:114
 makeConfigurationObjectMultiplicityCorrelations.C:115
 makeConfigurationObjectMultiplicityCorrelations.C:116
 makeConfigurationObjectMultiplicityCorrelations.C:117
 makeConfigurationObjectMultiplicityCorrelations.C:118
 makeConfigurationObjectMultiplicityCorrelations.C:119
 makeConfigurationObjectMultiplicityCorrelations.C:120
 makeConfigurationObjectMultiplicityCorrelations.C:121