]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCDBTemp.C
Conversion of data from surveyors into alignment objects
[u/mrichter/AliRoot.git] / TPC / AliTPCDBTemp.C
1 /**
2 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliSplineFit.cxx+
3 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliDCSSensor.cxx+
4 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliDCSSensorArray.cxx+
5 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCSensorTemp.cxx+
6 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCSensorTempArray.cxx+
7 .L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCDBTemp.C+
8 TTimeStamp startTime(2006,10,18,0,0,0,0,kFALSE)
9 TTimeStamp endTime(2006,10,19,0,0,0,0,kFALSE)
10 Int_t run=2546
11 AliTPCDBTemp db
12 db->Init(run)
13 db->MakeCalib("TempSensor.txt","DCSMap.root",startTime,endTime,run)
14
15
16 **/
17 #include "AliTPCDBTemp.h"
18
19 AliTPCDBTemp::AliTPCDBTemp(): 
20    fFirstRun(0),
21    fLastRun(0),
22    fTemperature(0),
23    fStorLoc(0),
24    fCalib(0),
25    fMetaData(0)
26 {}
27
28
29
30 void AliTPCDBTemp::MakeCalib(const char *fList, const char *fMap,
31                              const TTimeStamp& startTime, 
32                              const TTimeStamp& endTime,
33                              Int_t run )
34 {
35    // The Terminate() function is the last function to be called during
36    // a query. It always runs on the client, it can be used to present
37    // the results graphically or save the results to file.
38
39    AliTPCSensorTempArray *fTemperature = new AliTPCSensorTempArray(fList);
40    fTemperature->SetStartTime(startTime);
41    fTemperature->SetEndTime(endTime);
42    TMap* map = SetGraphFile(fMap);
43    if (map) {
44      fTemperature->MakeSplineFit(map);
45    }
46    delete map;
47
48    SetFirstRun(run);
49    SetLastRun(run);                 
50    StoreObject("TPC/Calib/Temperature",fTemperature, fMetaData);
51 }
52
53
54 AliCDBMetaData* AliTPCDBTemp::CreateMetaObject(const char* objectClassName)
55 {
56   AliCDBMetaData *md1= new AliCDBMetaData(); 
57   md1->SetObjectClassName(objectClassName);
58   md1->SetResponsible("Haavard Helstrup");
59   md1->SetBeamPeriod(2);
60   md1->SetAliRootVersion("05-13-04"); //root version
61   md1->SetComment("Temperature values");
62   
63   return md1;
64 }
65
66 void AliTPCDBTemp::StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
67 {
68
69   AliCDBId id1(cdbPath, fFirstRun, fLastRun); 
70   if (fStorLoc) fStorLoc->Put(object, id1, metaData); 
71 }
72
73 void AliTPCDBTemp::Init(Int_t run){
74
75 //   Int_t kLastRun=4000;
76 //   Long64_t longRun;
77    
78    SetFirstRun(run);
79    SetLastRun(run); 
80        
81    InitDB(run);
82 //   fCalib = AliTPCcalibDB::Instance();    
83 //   longRun=run;
84 //   fCalib->SetRun(longRun);
85 //   fTemperature = fCalib->GetTemperature();
86      
87 }
88
89 void AliTPCDBTemp::InitDB(Int_t run)
90
91    //   Data base generation
92    
93 //   printf ("Data base creation started.. \n");
94    char   *CDBpath="local:///afs/cern.ch/alice/tpctest/Calib/";
95
96    fMetaData = CreateMetaObject("AliTPCSensorTempArray");
97    AliCDBManager *man = AliCDBManager::Instance();
98    man->SetDefaultStorage("local:///afs/cern.ch/alice/tpctest/AliRoot/HEAD"); 
99    man->SetRun(run);
100    man->SetSpecificStorage("TPC/*/*","local:///afs/cern.ch/alice/tpctest/Calib");
101    fStorLoc = man->GetStorage(CDBpath);
102    if (!fStorLoc)    return;
103 }
104 //_____________________________________________________________________________
105 TMap* AliTPCDBTemp::SetGraphFile(const char *fname)
106 {
107   // 
108   // Read DCS maps from file given by fname 
109   //
110   TFile file(fname);
111   TMap * map = (TMap*)file.Get("DCSMap");
112   return map;
113 }