1 #if !defined( __CINT__) || defined(__MAKECINT__)
5 #include <AliCDBManager.h>
6 #include <AliCDBStorage.h>
7 #include <AliCDBEntry.h>
8 #include <AliCDBMetaData.h>
10 #include "AliTRDgeometry.h"
12 #include "AliTRDCalDCS.h"
13 #include "AliTRDCalDCSFEE.h"
17 // ===================================================
18 // Modified version of the macro AliTRDCreateDummyCDB
19 // to create the default CDB object for the DCS
21 // Modifications done by Frederick Kramer 2010-05-11
22 // ===================================================
26 // Run numbers for the dummy file
27 const Int_t gkDummyRunBeg = 0;
28 const Int_t gkDummyRunEnd = 999999999;
29 AliCDBStorage *gStorLoc = 0;
32 //_____________________________________________________________________________
33 TMap* CreateDCSAliasMap(Int_t entries) {
34 // Creates a DCS structure
35 // The structure is the following:
36 // TMap (key --> value)
37 // <DCSAlias> --> <valueList>
38 // <DCSAlias> is a string
39 // <valueList> is a TObjArray of AliDCSValue
40 // An AliDCSValue consists of timestamp and a value in form of a AliSimpleValue
42 // Each contains 1000 values randomly generated by TRandom::Gaus + 5*nAlias
44 TMap* aliasMap = new TMap;
45 aliasMap->SetOwner(1);
49 for(int nAlias=0;nAlias<entries;nAlias++)
51 TObjArray* valueSet = new TObjArray;
52 valueSet->SetOwner(1);
54 TString aliasName="DCSAlias";
56 //printf("\n\n alias: %s\n\n",aliasName.Data());
58 for (int timeStamp=0;timeStamp<1000;timeStamp+=10)
60 AliDCSValue* dcsVal = new AliDCSValue((Float_t) (random.Gaus()+5*nAlias), timeStamp);
61 //printf("%s\n",dcsVal->ToString().Data());
62 valueSet->Add(dcsVal);
64 aliasMap->Add(new TObjString(aliasName), valueSet);
71 //_____________________________________________________________________________
72 AliCDBMetaData *CreateMetaObject(const char *objectClassName)
75 AliCDBMetaData *md1= new AliCDBMetaData();
76 md1->SetObjectClassName(objectClassName);
77 md1->SetResponsible("Frederick Kramer");
78 md1->SetBeamPeriod(1);
79 md1->SetAliRootVersion("05-26-00b"); //root version
80 md1->SetComment("Ideal DCS DP CDB object");
86 //_____________________________________________________________________________
87 void StoreObject(const char* cdbPath, AliTRDSensorArray* object, AliCDBMetaData* metaData)
90 AliCDBId id1(cdbPath,gkDummyRunBeg,gkDummyRunEnd);
91 gStorLoc->Put(object,id1,metaData);
96 //_____________________________________________________________________________
97 void AliTRDCreateDummyCDB_DP()
101 << "TRD :: Creating dummy CDB for the runs "
107 AliCDBManager *man = AliCDBManager::Instance();
108 gStorLoc = man->GetStorage("local://$ALICE_ROOT/OCDB");
113 AliCDBMetaData *metaData = 0;
114 TObjArray* list = AliTRDSensorArray::GetList();
117 printf("Error during AliTRDSensorArray::GetList\n");
118 printf("DCS will not be processing\n");
121 Int_t nEntries = list->GetEntries();
122 printf("%d alias loaded\n", nEntries);
124 Bool_t* results = new Bool_t [nEntries];
125 Int_t* nGraph = new Int_t [nEntries];
126 TMap* dcsAliasMap = CreateDCSAliasMap(nEntries);
128 for (Int_t iAlias = 0; iAlias < nEntries; iAlias++) {
130 AliTRDSensorArray * oneTRDDCS = (AliTRDSensorArray *)list->At(iAlias);
132 oneTRDDCS->SetStartTime(TTimeStamp (1000000000));
133 oneTRDDCS->SetEndTime(TTimeStamp (2000000000));
134 printf("Processing DCS : \"%s\"\n", oneTRDDCS->GetStoreName().Data());
137 map = oneTRDDCS->ExtractDCS(dcsAliasMap);
138 nGraph[iAlias] = map->GetEntries();
139 oneTRDDCS->SetGraph(map);
142 sprintf(ocdbpath, "TRD/Calib/%s", oneTRDDCS->GetStoreName().Data());
143 metaData = CreateMetaObject(oneTRDDCS->GetStoreName().Data());
145 StoreObject(ocdbpath, oneTRDDCS, metaData);