]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - T0/AliT0Align.cxx
Moving the copy constructors and assignment operators to private: and removing the...
[u/mrichter/AliRoot.git] / T0 / AliT0Align.cxx
index a5ac69d84d318319db0e5a02ed7c88ea17cf9d3f..574935e72be03ff34c50b8a6e77f987541459c6f 100644 (file)
@@ -28,6 +28,7 @@ Preliminary test version (T.Malkiewicz)
 #include "TFile.h"
 #include "TMath.h"
 #include "TSystem.h"
+#include "TString.h"
 #include "AliSurveyObj.h"
 #include "AliAlignObjParams.h"
 #include "AliCDBStorage.h"
@@ -52,38 +53,53 @@ AliT0Align::AliT0Align() :
   fT0AAlignObj(0x0),
   fT0CAlignObj(0x0),
   fDebug(0),
-  fXPos(0.),
-  fYPos(0.),
-  fRepLoc(0)
-
- {
+  fXPosC(0.),
+  fYPosC(0.),
+  fXPosA(0.),
+  fYPosA(0.),
+  fRepLoc(0),
+  fRepGlob(0),
+  fSide(0x0),
+  fUser(0x0)
+{
   //
   //  default constructor
   //
 }   
 //________________________________________________________________________
-AliT0Align::AliT0Align(Int_t reportloc, Int_t reportglob) :
+AliT0Align::AliT0Align(Int_t reportloc, Int_t side, Int_t reportglob) :
   TObject(),
   fFileGlob(0x0),
   fT0AAlignObj(0x0),
   fT0CAlignObj(0x0),
   fDebug(0),
-  fXPos(0.),
-  fYPos(0.),
-  fRepLoc(0)
+  fXPosC(0.),
+  fYPosC(0.),
+  fXPosA(0.),
+  fYPosA(0.),
+  fRepLoc(0),
+  fRepGlob(0),
+  fSide(0x0),
+  fUser(0x0)
 {
   //
   // constructor - defines data files
   //
   fRepLoc = reportloc;
-  Char_t path[50];
-  fFileGlob = new Char_t[80];
-  sprintf(path,gSystem->Getenv("ALICE_ROOT")); 
+  fRepGlob = reportglob;
+  fSide = side;
+  // Char_t path[50];
+  TString path = Form("%s",gSystem->Getenv("ALICE_ROOT")) ;
+  // fFileGlob = new Char_t[80];
+  //  fUser = new Char_t[10];
+  fFileGlob = Form("%s/T0/Survey_%d_V0.txt",path.Data(),reportglob);
+  fUser = Form("%s/T0/Survey_%d_V0.txt",path.Data(),reportglob);
+  // sprintf(path,gSystem->Getenv("ALICE_ROOT")); 
   //
   // sprintf(fFileLoc,"%s/T0/Survey_%d_T0.txt",path,reportloc);
-  sprintf(fFileGlob,"%s/T0/Survey_%d_V0.txt",path,reportglob);
+  // sprintf(fFileGlob,"%s/T0/Survey_%d_V0.txt",path,reportglob);
   //
-
+  // sprintf(fUser,gSystem->Getenv("alien_API_USER"));
 }
 //_________________________________________________________________________
 AliT0Align::AliT0Align(const AliT0Align &align) :
@@ -92,14 +108,20 @@ AliT0Align::AliT0Align(const AliT0Align &align) :
   fT0AAlignObj(0x0),
   fT0CAlignObj(0x0),
   fDebug(0),
-  fXPos(0.),
-  fYPos(0.),
-  fRepLoc(0)
+  fXPosC(0.),
+  fYPosC(0.),
+  fXPosA(0.),
+  fYPosA(0.),
+  fRepLoc(0),
+  fRepGlob(0),
+  fSide(0x0),
+  fUser(0x0)  
 {
   //
   //  copy constructor - dummy
   //
-  fDebug = align.fDebug;
+  ((AliT0Align &) align).Copy(*this);
+
 }
 //__________________________________________________________________________
 AliT0Align & AliT0Align::operator =(const AliT0Align & align)
@@ -107,18 +129,21 @@ AliT0Align & AliT0Align::operator =(const AliT0Align & align)
   //
   // assignment operator - dummy
   //
-  fDebug=align.fDebug;
-  return (*this);
+  if (this != &align) ((AliT0Align &) align).Copy(*this);
+
+   return (*this);
 }
 
 //__________________________________________________________________________
-AliT0Align::~AliT0Align(){
+AliT0Align::~AliT0Align()
+{
   //
   // destructor
   //
   if(fT0AAlignObj) delete fT0AAlignObj;
   if(fT0CAlignObj) delete fT0CAlignObj;
-
+  if(fFileGlob) delete[] fFileGlob;
+  if(fUser) delete[] fUser;
 }
 //__________________________________________________________________________
 Bool_t AliT0Align::LoadSurveyData()
@@ -127,16 +152,29 @@ Bool_t AliT0Align::LoadSurveyData()
   // Create a new survey object and fill it.
  
  AliSurveyObj * s1 = new AliSurveyObj();
+ const int numberPoints = 2;
+ TString pointNames[numberPoints]={"Flange_0","C67_6_Beamcircle"}; 
  
  if(fRepLoc == 0) 
- //
- // Filling from DCDB (via GRID)
- //
- {
-   s1->SetGridUser("tomatkie");
-   s1->Fill("V0", 835615, "tomatkie");
+ { 
+   //
+   // Filling from DCDB (via GRID)
+   //
+   s1->SetGridUser(fUser);
+   if(fSide == 0) 
+   {
+     s1->Fill("T0", fRepGlob, fUser);
+   }
+   else if(fSide == 1)
+   {
+     s1->Fill("VZERO", fRepGlob, fUser);
+   }
+   else
+   {
+     cout<<"Enter the side properly: '0'- A side, '1'- C side'" <<endl;
+     return 0;
+   }
  }
-
  else
  //
  // Filling from local file
@@ -145,11 +183,7 @@ Bool_t AliT0Align::LoadSurveyData()
    s1->FillFromLocalFile(fFileGlob);
  }
  //
- Int_t numberPoints = 3;
- //
- TString pointNames[3] = {"C67_6_Beamcircle", "T0A", "VERTEX"}; 
- //
- Float_t surveyedPoints [3][2];
+ Float_t surveyedPoints [numberPoints][2];
  AliSurveyPoint *currPoint;
 
  //
@@ -164,19 +198,27 @@ Bool_t AliT0Align::LoadSurveyData()
      surveyedPoints[i][1]=currPoint->GetY();
    //  surveyedPoints[i]=currPoint->GetZ();
      if(fDebug)
-     Printf(Form("INFO: Point \"%s\" coordinates read.", pointNames[i].Data()));
+     Printf("INFO: Point %s coordinates read.\n", pointNames[i].Data() ) ;
    }
    else 
    {
      if(fDebug)
      {
-       Printf(Form("ERROR: Essential point missing: \"%s\"", pointNames[i].Data()));
+       Printf("ERROR: Essential point missing: %s\n", pointNames[i].Data() ) ;
        return 1;
      }
    }  
  }
- fXPos = surveyedPoints[0][0]; 
- fYPos = surveyedPoints[0][1];
+ if(fSide == 0)
+ {
+   fXPosA = surveyedPoints[0][0];
+   fYPosA = surveyedPoints[0][1];
+ }
+ else if(fSide == 1)
+ {
+   fXPosC = surveyedPoints[1][0]; 
+   fYPosC = surveyedPoints[1][1];
+ }
  //
  delete s1;
  //
@@ -191,28 +233,32 @@ Double_t AliT0Align::ComputePosition()
   return 0;
 }
 //_______________________________________________________________________
-void AliT0Align::CreateAlignObj(){
+void AliT0Align::CreateAlignObj()
+{
   //
   //  TClonesArray *array = new TClonesArray("AliAlignObjParams",2);
   // TClonesArray &alobj = *array;
   
-
   Double_t dx=0., dy=0., dz=0., dpsi=0., dtheta=0., dphi=0.;
+  dx=fXPosA;
+  dy=fYPosA;
   fT0AAlignObj = new AliAlignObjParams("ALIC_1/0STL_1",0,dx,dy,dz,dpsi,dtheta,dphi,kTRUE);
   
-  dx=fXPos;
-  dy=fYPos;
+  dx=fXPosC;
+  dy=fYPosC;
   // dz=surveyedPoints[2];
   dz=0.;
   fT0CAlignObj = new AliAlignObjParams("ALIC_1/0STR_1",0,dx,dy,dz,dpsi,dtheta,dphi,kTRUE);
+  
 }
 
 //______________________________________________________________________
-void AliT0Align::Run(){
+void AliT0Align::Run()
+{
   //
   // runs the full chain
   //
-  SetDebug(0);
+  // SetDebug(0);
   Bool_t flag = LoadSurveyData();
     if(flag) 
   {
@@ -231,7 +277,7 @@ void AliT0Align::StoreAlignObj()
  // Storing T0 alignment objects 
  //
  AliCDBManager* cdb = AliCDBManager::Instance();
- if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT");
+ if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
  //
  TClonesArray *array = new TClonesArray("AliAlignObjParams",2);
 //
@@ -252,9 +298,10 @@ void AliT0Align::StoreAlignObj()
   if( TString(gSystem->Getenv("TOCDB")) != TString("kTRUE") ){
     // save on file
     const char* filename = "T0SurveyMisalignment.root";
-    Char_t fullname[80];
-    sprintf(fullname,"%s/T0/Align/Data/%s",gSystem->Getenv("ALICE_ROOT"),filename);
-    TFile *f = new TFile(fullname,"RECREATE");
+    //  Char_t fullname[80];
+    //  sprintf(fullname,"%s/T0/Align/Data/%s",gSystem->Getenv("ALICE_ROOT"),filename);
+    TString fullname = Form("%s/T0/Align/Data/%s",gSystem->Getenv("ALICE_ROOT"), filename);
+    TFile *f = new TFile(fullname.Data(),"RECREATE");
     if(!f){
       AliError("cannot open file for output\n");
       return;
@@ -281,7 +328,7 @@ void AliT0Align::StoreAlignObj()
     //
     AliCDBMetaData* md = new AliCDBMetaData();
     md->SetResponsible("Tomasz Malkiewicz");
-    md->SetComment("Full misalignment of T0-C from surveyors");
+    md->SetComment("Position of T0-A and T0-C from survey");
     AliCDBId id("T0/Align/Data",0,AliCDBRunRange::Infinity());
     storage->Put(array,id,md);
   }