--- /dev/null
+#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);
+ }
+
+}
+