]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
New class replacing the macro AliTPCDBTemp.C (Haavard)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 24 Jun 2007 21:51:20 +0000 (21:51 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 24 Jun 2007 21:51:20 +0000 (21:51 +0000)
TPC/AliTPCDBTemp.C [deleted file]
TPC/AliTPCDBTemp.cxx [new file with mode: 0644]
TPC/AliTPCDBTemp.h

diff --git a/TPC/AliTPCDBTemp.C b/TPC/AliTPCDBTemp.C
deleted file mode 100644 (file)
index 7cffba4..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliSplineFit.cxx+
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliDCSSensor.cxx+
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliDCSSensorArray.cxx+
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCSensorTemp.cxx+
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCSensorTempArray.cxx+
-.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCDBTemp.C+
-TTimeStamp startTime(2006,10,18,0,0,0,0,kFALSE)
-TTimeStamp endTime(2006,10,19,0,0,0,0,kFALSE)
-Int_t run=2546
-AliTPCDBTemp db
-db->Init(run)
-db->MakeCalib("TempSensor.txt","DCSMap.root",startTime,endTime,run)
-
-
-**/
-#include "AliTPCDBTemp.h"
-
-AliTPCDBTemp::AliTPCDBTemp(): 
-   fFirstRun(0),
-   fLastRun(0),
-   fTemperature(0),
-   fStorLoc(0),
-   fCalib(0),
-   fMetaData(0)
-{}
-
-
-
-void AliTPCDBTemp::MakeCalib(const char *fList, const char *fMap,
-                             const TTimeStamp& startTime, 
-                            const TTimeStamp& endTime,
-                            Int_t run )
-{
-   // The Terminate() function is the last function to be called during
-   // a query. It always runs on the client, it can be used to present
-   // the results graphically or save the results to file.
-
-   AliTPCSensorTempArray *fTemperature = new AliTPCSensorTempArray(fList);
-   fTemperature->SetStartTime(startTime);
-   fTemperature->SetEndTime(endTime);
-   TMap* map = SetGraphFile(fMap);
-   if (map) {
-     fTemperature->MakeSplineFit(map);
-   }
-   delete map;
-
-   SetFirstRun(run);
-   SetLastRun(run);                
-   StoreObject("TPC/Calib/Temperature",fTemperature, fMetaData);
-}
-
-
-AliCDBMetaData* AliTPCDBTemp::CreateMetaObject(const char* objectClassName)
-{
-  AliCDBMetaData *md1= new AliCDBMetaData(); 
-  md1->SetObjectClassName(objectClassName);
-  md1->SetResponsible("Haavard Helstrup");
-  md1->SetBeamPeriod(2);
-  md1->SetAliRootVersion("05-13-04"); //root version
-  md1->SetComment("Temperature values");
-  
-  return md1;
-}
-
-void AliTPCDBTemp::StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
-{
-
-  AliCDBId id1(cdbPath, fFirstRun, fLastRun); 
-  if (fStorLoc) fStorLoc->Put(object, id1, metaData); 
-}
-
-void AliTPCDBTemp::Init(Int_t run){
-
-//   Int_t kLastRun=4000;
-//   Long64_t longRun;
-   
-   SetFirstRun(run);
-   SetLastRun(run); 
-       
-   InitDB(run);
-//   fCalib = AliTPCcalibDB::Instance();    
-//   longRun=run;
-//   fCalib->SetRun(longRun);
-//   fTemperature = fCalib->GetTemperature();
-     
-}
-
-void AliTPCDBTemp::InitDB(Int_t run)
-{ 
-   //   Data base generation
-   
-//   printf ("Data base creation started.. \n");
-   char   *CDBpath="local:///afs/cern.ch/alice/tpctest/Calib/";
-
-   fMetaData = CreateMetaObject("AliTPCSensorTempArray");
-   AliCDBManager *man = AliCDBManager::Instance();
-   man->SetDefaultStorage("local:///afs/cern.ch/alice/tpctest/AliRoot/HEAD"); 
-   man->SetRun(run);
-   man->SetSpecificStorage("TPC/*/*","local:///afs/cern.ch/alice/tpctest/Calib");
-   fStorLoc = man->GetStorage(CDBpath);
-   if (!fStorLoc)    return;
-}
-//_____________________________________________________________________________
-TMap* AliTPCDBTemp::SetGraphFile(const char *fname)
-{
-  // 
-  // Read DCS maps from file given by fname 
-  //
-  TFile file(fname);
-  TMap * map = (TMap*)file.Get("DCSMap");
-  return map;
-}
diff --git a/TPC/AliTPCDBTemp.cxx b/TPC/AliTPCDBTemp.cxx
new file mode 100644 (file)
index 0000000..fb2b2d4
--- /dev/null
@@ -0,0 +1,219 @@
+/**
+.L /afs/cern.ch/user/h/haavard/alice/tpc/temperature/AliTPCDBTemp.C+
+TTimeStamp startTime(2006,10,18,0,0,0,0,kFALSE)
+TTimeStamp endTime(2006,10,19,0,0,0,0,kFALSE)
+Int_t run=2546
+AliTPCDBTemp db
+db->Init(run)
+db->MakeCalib("TempSensor.txt","DCSMap.root",startTime,endTime,run)
+
+
+**/
+#include "AliTPCDBTemp.h"
+
+ClassImp(AliTPCDBTemp)
+
+const Int_t kValCut = 100;         // discard temperatures > 100 degrees
+const Int_t kDiffCut = 5;         // discard temperature differences > 5 degrees
+
+//______________________________________________________________________________________________
+
+AliTPCDBTemp::AliTPCDBTemp(): 
+   fFirstRun(0),
+   fLastRun(0),
+   fTemperature(0),
+   fStorLoc(0),
+   fCalib(0),
+   fMetaData(0),
+   fConfTree(0)
+{}
+//______________________________________________________________________________________________
+
+AliTPCDBTemp::AliTPCDBTemp(const AliTPCDBTemp& org):
+  TObject(org),
+  fFirstRun(org.fFirstRun),
+  fLastRun(org.fLastRun),
+  fTemperature(0),
+  fStorLoc(0),
+  fCalib(0),
+  fMetaData(0),
+  fConfTree(0)
+{
+//
+//  Copy constructor
+//
+
+ ((AliTPCDBTemp &) org).Copy(*this);
+}
+
+//______________________________________________________________________________________________
+AliTPCDBTemp::~AliTPCDBTemp(){
+//
+// destructor
+//
+   fCalib->Terminate();
+   delete fTemperature;
+   delete fMetaData;
+   delete fConfTree;
+}
+
+//______________________________________________________________________________________________
+AliTPCDBTemp& AliTPCDBTemp::operator= (const AliTPCDBTemp& org )
+{
+ //
+ // assignment operator
+ //
+ if (&org == this) return *this;
+
+ new (this) AliTPCDBTemp(org);
+ return *this;
+} 
+
+//______________________________________________________________________________________________
+void AliTPCDBTemp::Copy(TObject &c) const
+{
+  //
+  // Copy function
+  //
+
+  TObject::Copy(c);
+}
+
+
+//______________________________________________________________________________________________
+
+void AliTPCDBTemp::MakeCalib(const char *fList, const char *fMap,
+                             const TTimeStamp& startTime, 
+                            const TTimeStamp& endTime,
+                            Int_t run )
+{
+   // The Terminate() function is the last function to be called during
+   // a query. It always runs on the client, it can be used to present
+   // the results graphically or save the results to file.
+
+   AliTPCSensorTempArray *fTemperature = new AliTPCSensorTempArray(fList);
+   fTemperature->SetStartTime(startTime);
+   fTemperature->SetEndTime(endTime);
+   fTemperature->SetValCut(kValCut);
+   fTemperature->SetDiffCut(kDiffCut);
+   TMap* map = SetGraphFile(fMap);
+   if (map) {
+     fTemperature->MakeSplineFit(map);
+   }
+   delete map;
+   map=0;
+   fMap=0;
+
+   SetFirstRun(run);
+   SetLastRun(run);                
+   StoreObject("TPC/Calib/Temperature",fTemperature, fMetaData);
+}
+
+//______________________________________________________________________________________________
+void AliTPCDBTemp::MakeConfig(const char *file, Int_t firstRun, Int_t lastRun )
+{
+   //
+   // Store Configuration file to OCDB
+   //
+
+   TTree *tree = ReadListTree(file);
+   SetConfTree(tree);
+   SetFirstRun(firstRun);
+   SetLastRun(lastRun);                    
+   
+   AliCDBMetaData* metaConf=CreateMetaObject("TTree");      
+   StoreObject("TPC/Config/Temperature",fConfTree, metaConf);
+}
+
+
+//______________________________________________________________________________________________
+
+AliCDBMetaData* AliTPCDBTemp::CreateMetaObject(const char* objectClassName)
+{
+  AliCDBMetaData *md1= new AliCDBMetaData(); 
+  md1->SetObjectClassName(objectClassName);
+  md1->SetResponsible("Haavard Helstrup");
+  md1->SetBeamPeriod(2);
+  md1->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+  md1->SetComment("Temperature");
+  
+  return md1;
+}
+//______________________________________________________________________________________________
+
+void AliTPCDBTemp::StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
+{
+
+  AliCDBId id1(cdbPath, fFirstRun, fLastRun); 
+  if (fStorLoc) fStorLoc->Put(object, id1, metaData); 
+}
+//______________________________________________________________________________________________
+
+void AliTPCDBTemp::Init(Int_t run){
+
+//   Int_t kLastRun=4000;
+   Long64_t longRun;
+   
+   SetFirstRun(run);
+   SetLastRun(run); 
+       
+   InitDB(run);
+   fCalib = AliTPCcalibDB::Instance();    
+   longRun=run;
+   fCalib->SetRun(longRun);
+   fTemperature = fCalib->GetTemperature();
+     
+}
+//______________________________________________________________________________________________
+
+void AliTPCDBTemp::InitDB(Int_t run)
+{ 
+   //   Data base generation
+   
+   char   *CDBpath="local:///afs/cern.ch/alice/tpctest/Calib/";
+
+   fMetaData = CreateMetaObject("AliTPCSensorTempArray");
+   AliCDBManager *man = AliCDBManager::Instance();
+   man->SetDefaultStorage("local:///afs/cern.ch/alice/tpctest/AliRoot/HEAD"); 
+   man->SetRun(run);
+   man->SetSpecificStorage("TPC/*/*","local:///afs/cern.ch/alice/tpctest/Calib");
+   AliCDBEntry *config = man->Get("TPC/Config/Temperature");
+   if (config) fConfTree = (TTree*)config->GetObject();
+   fStorLoc = man->GetStorage(CDBpath);
+   if (!fStorLoc)    return;
+}
+//_____________________________________________________________________________
+TMap* AliTPCDBTemp::SetGraphFile(const char *fname)
+{
+  // 
+  // Read DCS maps from file given by fname 
+  //
+  TFile file(fname);
+  TMap * map = (TMap*)file.Get("DCSMap");
+  return map;
+}
+//______________________________________________________________________________________________
+
+TClonesArray * AliTPCDBTemp::ReadList(const char *fname) {
+  //
+  // read values from ascii file
+  //
+  TTree* tree = new TTree("tempConf","tempConf");
+  tree->ReadFile(fname,"");
+  TClonesArray *arr = AliTPCSensorTemp::ReadTree(tree);
+  return arr;
+}
+
+//______________________________________________________________________________________________
+
+TTree * AliTPCDBTemp::ReadListTree(const char *fname) {
+  //
+  // read values from ascii file
+  //
+  TTree* tree = new TTree("tempConf","tempConf");
+  tree->ReadFile(fname,"");
+  TClonesArray *arr = AliTPCSensorTemp::ReadTree(tree);
+  arr->Delete();
+  delete arr;
+  return tree;
+}
index 41bf7d34850c7fa0def222ff856b5917cf0037cf..f3c3d76c1abe6a2cb06f5fa62e97c5677fd1de81 100644 (file)
 #include "AliTPCSensorTempArray.h"
 #include "AliLog.h"
 
-class AliTPCDBTemp {
+class AliTPCDBTemp : public TObject {
 
 public:
 
   AliTPCDBTemp();
+  AliTPCDBTemp(const AliTPCDBTemp& org);
+  ~AliTPCDBTemp();
+  AliTPCDBTemp& operator= (const AliTPCDBTemp& org);
+  void            Copy(TObject &c) const;
   void            MakeCalib(const char *file, const char *fMap,
                             const TTimeStamp& startTime,
                            const TTimeStamp& endTime, Int_t run);
+  void            MakeConfig(const char *file, Int_t firstRun, Int_t lastRun); 
   AliCDBMetaData* CreateMetaObject(const char *objectClassName);
   void            StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData);
   void            Init(Int_t run);
@@ -39,14 +44,21 @@ public:
   void            SetFirstRun(Int_t frun){fFirstRun=frun;}
   void            SetLastRun(Int_t lrun) {fLastRun=lrun;}
   TMap*           SetGraphFile(const char* fname);
+  void            SetConfTree(TTree* tree) {fConfTree=tree;}
+  TTree*          GetConfTree() const {return fConfTree;} 
+  static TClonesArray *  ReadList(const char* fname);
+  static TTree        *  ReadListTree(const char* fname);
 
 private:
 
-   Int_t          fFirstRun;
-   Int_t          fLastRun;
-   AliTPCSensorTempArray  *fTemperature;
-   AliCDBStorage  *fStorLoc;
-   AliTPCcalibDB  *fCalib;
-   AliCDBMetaData *fMetaData;
+   Int_t          fFirstRun;      // first run in validity period
+   Int_t          fLastRun;        // last run in validity period
+   AliTPCSensorTempArray  *fTemperature; // array of temperature sensors
+   AliCDBStorage  *fStorLoc;      // pointer to CDB storage
+   AliTPCcalibDB  *fCalib;        // calibration object
+   AliCDBMetaData *fMetaData;     // data base metadata
+   TTree          *fConfTree;     // configuration tree
+   
+   ClassDef(AliTPCDBTemp,1)
 };
 #endif