ROOT logo
#if !defined( __CINT__) || defined(__MAKECINT__)

#include <iostream>

#include <AliCDBManager.h>
#include <AliCDBStorage.h>
#include <AliCDBEntry.h>
#include <AliCDBMetaData.h>

#include "AliTRDgeometry.h"

#include "AliTRDCalDCS.h"
#include "AliTRDCalDCSFEE.h"

#endif

// ===================================================
// Modified version of the macro AliTRDCreateDummyCDB 
// to create the default CDB object for the DCS
// data points
// Modifications done by Frederick Kramer 2010-05-11
// ===================================================



// Run numbers for the dummy file
const Int_t    gkDummyRunBeg = 0;
const Int_t    gkDummyRunEnd = 999999999;
AliCDBStorage *gStorLoc      = 0;


//_____________________________________________________________________________
TMap* CreateDCSAliasMap(Int_t entries) {
  // Creates a DCS structure
  // The structure is the following:
  //   TMap (key --> value)
  //     <DCSAlias> --> <valueList>
  //     <DCSAlias> is a string
  //     <valueList> is a TObjArray of AliDCSValue
  //     An AliDCSValue consists of timestamp and a value in form of a AliSimpleValue

  // Each contains 1000 values randomly generated by TRandom::Gaus + 5*nAlias

  TMap* aliasMap = new TMap;
  aliasMap->SetOwner(1);

  TRandom random;

  for(int nAlias=0;nAlias<entries;nAlias++)
  {
    TObjArray* valueSet = new TObjArray;
    valueSet->SetOwner(1);

    TString aliasName="DCSAlias";
    aliasName += nAlias;
    //printf("\n\n alias: %s\n\n",aliasName.Data());

    for (int timeStamp=0;timeStamp<1000;timeStamp+=10)
    {
      AliDCSValue* dcsVal = new AliDCSValue((Float_t) (random.Gaus()+5*nAlias), timeStamp);
      //printf("%s\n",dcsVal->ToString().Data());
      valueSet->Add(dcsVal);
    }
    aliasMap->Add(new TObjString(aliasName), valueSet);
  }

  return aliasMap;
}


//_____________________________________________________________________________
AliCDBMetaData *CreateMetaObject(const char *objectClassName)
{

  AliCDBMetaData *md1= new AliCDBMetaData(); 
  md1->SetObjectClassName(objectClassName);
  md1->SetResponsible("Frederick Kramer");
  md1->SetBeamPeriod(1);
  md1->SetAliRootVersion("05-26-00b"); //root version
  md1->SetComment("Ideal DCS DP CDB object");
  
  return md1;

}

//_____________________________________________________________________________
void StoreObject(const char* cdbPath, AliTRDSensorArray* object, AliCDBMetaData* metaData)
{

  AliCDBId id1(cdbPath,gkDummyRunBeg,gkDummyRunEnd); 
  gStorLoc->Put(object,id1,metaData); 

}
    

//_____________________________________________________________________________
void AliTRDCreateDummyCDB_DP()
{

  cout << endl 
       << "TRD :: Creating dummy CDB for the runs " 
       << gkDummyRunBeg
       << " -- " 
       << gkDummyRunEnd
       << endl;
  
  AliCDBManager *man = AliCDBManager::Instance();
  gStorLoc = man->GetStorage("local://$ALICE_ROOT/OCDB");
  if (!gStorLoc) {
    return;
  }

  AliCDBMetaData *metaData = 0;
  TObjArray* list = AliTRDSensorArray::GetList();

  if (list == 0x0) {
    printf("Error during AliTRDSensorArray::GetList\n");
    printf("DCS will not be processing\n");
  }

  Int_t nEntries = list->GetEntries();
  printf("%d alias loaded\n", nEntries);

  Bool_t* results = new Bool_t [nEntries];
  Int_t*  nGraph  = new Int_t [nEntries];
  TMap* dcsAliasMap = CreateDCSAliasMap(nEntries);

  for (Int_t iAlias = 0; iAlias < nEntries; iAlias++) {

    AliTRDSensorArray * oneTRDDCS = (AliTRDSensorArray *)list->At(iAlias);

    oneTRDDCS->SetStartTime(TTimeStamp (1000000000));
    oneTRDDCS->SetEndTime(TTimeStamp (2000000000));
    printf("Processing DCS : \"%s\"\n", oneTRDDCS->GetStoreName().Data());

    TMap * map;
    map = oneTRDDCS->ExtractDCS(dcsAliasMap);
    nGraph[iAlias] = map->GetEntries();
    oneTRDDCS->SetGraph(map);

    char ocdbpath[256];
    sprintf(ocdbpath, "TRD/Calib/%s", oneTRDDCS->GetStoreName().Data());
    metaData = CreateMetaObject(oneTRDDCS->GetStoreName().Data());

    StoreObject(ocdbpath, oneTRDDCS, metaData);
  }
  
}

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