]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDDBAccess.C
Update of example macro
[u/mrichter/AliRoot.git] / TRD / AliTRDDBAccess.C
1
2 AliCDBStorage      *storLoc;
3 AliCDBStorage      *storGrid;
4 AliCDBEntry        *entry     = 0;
5 AliTRDCalVdrift    *calobj    = 0;
6 AliTRDCalROCVdrift *calobjROC = 0;
7
8 void AliTRDDBAccess()
9 {
10
11   // Single instance of AliCDBManager. 
12   AliCDBManager *man = AliCDBManager::Instance();
13
14   printf("\nTRD :: Activating Local storage...\n");
15   storLoc = man->GetStorage("local://DBLocal");
16
17   // Create the new database object
18   AliTRDCalVdrift    *calVdrift    = new AliTRDCalVdrift("Vdrift","TRD drift velocities");
19   AliTRDCalROCVdrift *calROCVdrift = calVdrift->GetCalROCVdrift(0,2,0);
20   calROCVdrift->SetVdrift(1,1,1.50);
21   calROCVdrift->SetVdrift(2,2,1.55);
22   calROCVdrift->SetVdrift(3,3,1.60);
23
24   // Id of the object: AliCDBId("name", firstRun, lastRun)
25   AliCDBId id1("TRD/Calib/Vdrift",0,10); 
26
27   // MetaData describing the object
28   AliCDBMetaData *md1= new AliCDBMetaData(); 
29   md1->SetObjectClassName("AliTRDCalVdrift");
30   md1->SetResponsible("Christoph Blume");
31   md1->SetBeamPeriod(1);
32   md1->SetAliRootVersion("05-04-00"); //root version
33   md1->SetComment("This is a Vdrift test");
34   TObjString *strVdrift = new TObjString("Drift velocities for 540 chambers");
35   md1->SetProperty("key1",strVdrift);
36
37   // Store the object into local storage
38   // Filename: DBLocal/TRD/Calib/Vdrift/Run0_10_v0_s0.root
39   printf("\nTRD :: Storing object into local storage...\n");
40   storLoc->Put(calVdrift,id1,md1); 
41
42   // Read, update, store again
43   printf("\nTRD :: Retrieve object from local storage...\n");
44   entry = storLoc->Get("TRD/Calib/Vdrift",5);
45
46   calobj    = (AliTRDCalVdrift *) entry->GetObject();
47   calobjROC = calobj->GetCalROCVdrift(0,2,0);
48   printf("\nTRD :: Drift velocities (1): %f (1,1), %f (2,2), %f (3.3)\n"
49         ,calobjROC->GetVdrift(1,1)
50         ,calobjROC->GetVdrift(2,2)
51         ,calobjROC->GetVdrift(3,3));
52
53   // Update object
54   calobjROC->SetVdrift(1,1,1.60);
55   calobjROC->SetVdrift(2,2,1.35);
56   calobjROC->SetVdrift(3,3,1.10);
57
58   // Store into local: filename = Run0_10_v0_s1.root
59   printf("\nTRD :: Storing object into local storage...\n");
60   storLoc->Put(entry); 
61
62   // Read, update, store again
63   printf("\nTRD :: Retrieve object from local storage...\n");
64   entry = storLoc->Get("TRD/Calib/Vdrift",5);
65
66   calobj    = (AliTRDCalVdrift *) entry->GetObject();
67   calobjROC = calobj->GetCalROCVdrift(0,2,0);
68   printf("\nTRD :: Drift velocities (2): %f (1,1), %f (2,2), %f (3.3)\n"
69         ,calobjROC->GetVdrift(1,1)
70         ,calobjROC->GetVdrift(2,2)
71         ,calobjROC->GetVdrift(3,3));
72
73   printf("\nTRD :: Activating GRID storage...\n");
74   storGrid = 0x0;
75   storGrid = man->GetStorage("alien://aliendb4.cern.ch:9000;cblume;DBGrid;ALICE::CERN::se01");
76   if (!storGrid) {
77     printf("\nTRD :: Failure in activating GRID storage...\n");   
78   }
79
80   // Store into GRID: filename =  DBGrid/TRD/Calib/Vdrift/Run0_10_v1.root
81   if (storGrid) {
82     storGrid->Put(entry); 
83   }
84
85   AliCDBManager::Instance()->Destroy();
86   delete entry;
87   delete md1;
88
89 }