]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Classes to import survey data added.
authorrsilva <rsilva@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2007 14:19:51 +0000 (14:19 +0000)
committerrsilva <rsilva@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 May 2007 14:19:51 +0000 (14:19 +0000)
STEER/AliSurveyObj.cxx [new file with mode: 0644]
STEER/AliSurveyObj.h [new file with mode: 0644]
STEER/AliSurveyPoint.cxx [new file with mode: 0644]
STEER/AliSurveyPoint.h [new file with mode: 0644]
STEER/STEERLinkDef.h
STEER/libSTEER.pkg

diff --git a/STEER/AliSurveyObj.cxx b/STEER/AliSurveyObj.cxx
new file mode 100644 (file)
index 0000000..9574480
--- /dev/null
@@ -0,0 +1,454 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/////////////////////////////////////////////////////////////////////
+//                                                                 //
+//  class AliSurveyObj                                            //
+//  Retrieve and Convert survey data into ROOT Objects            //
+//                                                                 //
+/////////////////////////////////////////////////////////////////////
+
+#include "AliSurveyObj.h"
+
+//ROOT includes
+#include "TROOT.h"
+#include "Riostream.h"
+#include "TObjArray.h"
+#include "TGrid.h"
+#include "TFile.h"
+#include "TObjString.h"
+
+//AliROOT includes
+#include "AliLog.h"
+
+//System includes
+//#include <time.h> //for sleep(3); // not used anymore!?
+
+ClassImp(AliSurveyObj)
+  
+//_____________________________________________________________________________
+AliSurveyObj::AliSurveyObj():
+  TObject(),
+  fTitle(""),
+  fDate(""),
+  fDetector(""),
+  fURL("http://edms.cern.ch/"),
+  fReportNr(-1),
+  fVersion(-1),
+  fObs(""),
+  fCoordSys(""),
+  fUnits(""),
+  fNrColumns(-1),
+  fColNames(""),
+  fIsValid(kFALSE),
+  fDataPoints(new TObjArray(1))
+{
+  // constructor
+  fDataPoints->SetOwner(kTRUE);
+}
+
+
+//_____________________________________________________________________________
+AliSurveyObj::~AliSurveyObj() {
+  //destructor
+  
+}
+
+
+//_____________________________________________________________________________
+AliSurveyObj::AliSurveyObj(const AliSurveyObj& surveyObj):
+  TObject(),
+  fTitle(surveyObj.fTitle),
+  fDate(surveyObj.fDate),
+  fDetector(surveyObj.fDetector),
+  fURL(surveyObj.fURL),
+  fReportNr(surveyObj.fReportNr),
+  fVersion(surveyObj.fVersion),
+  fObs(surveyObj.fObs),
+  fCoordSys(surveyObj.fCoordSys),
+  fUnits(surveyObj.fUnits),
+  fNrColumns(surveyObj.fNrColumns),
+  fColNames(surveyObj.fColNames),
+  fIsValid(surveyObj.fIsValid),
+  fDataPoints(new TObjArray(1))
+{
+  // copy constructor
+  TObject *curr = surveyObj.fDataPoints->First();
+  while (curr != 0) {
+    fDataPoints->Add(curr);
+    curr = surveyObj.fDataPoints->After(curr);
+  }
+}
+
+//_____________________________________________________________________________
+AliSurveyObj& AliSurveyObj::operator=(const AliSurveyObj& surveyObj)
+{
+  // assignment operator
+  if (this != &surveyObj) {
+    fTitle = surveyObj.fTitle;
+    fDate = surveyObj.fDate;
+    fDetector = surveyObj.fDetector;
+    fURL = surveyObj.fURL;
+    fReportNr = surveyObj.fReportNr;
+    fVersion = surveyObj.fVersion;
+    fObs = surveyObj.fObs;
+    fCoordSys = surveyObj.fCoordSys;
+    fUnits = surveyObj.fUnits;
+    fNrColumns = surveyObj.fNrColumns;
+    fColNames = surveyObj.fColNames;
+    fIsValid = surveyObj.fIsValid;
+    
+    TObject *curr = surveyObj.fDataPoints->First();
+    while (curr != 0) {
+      fDataPoints->Add(curr);
+      curr = surveyObj.fDataPoints->After(curr);
+    }
+  }
+  
+  return *this;
+}
+
+
+//_____________________________________________________________________________
+void AliSurveyObj::AddPoint(AliSurveyPoint* point) {
+  fDataPoints->Add(point);
+  return;
+}
+
+
+//_____________________________________________________________________________
+Bool_t AliSurveyObj::Connect(const char *gridUrl, const char *user) {
+
+   // if the same Grid is alreay active, skip connection
+       if ( !gGrid || gridUrl != gGrid->GridUrl() ||
+            (( user != "" ) && ( user != gGrid->GetUser() )) ) {
+       // connection to the Grid
+          AliInfo("\nConnecting to the Grid...");
+          if(gGrid){
+                  AliInfo(Form("gGrid = %x; GridUrl = %s; gGrid->GridUrl() = %s", 
+                                gGrid, gridUrl, gGrid->GridUrl()));
+             AliInfo(Form("User = %s; gGrid->GetUser() = %s",
+                           user, gGrid->GetUser()));
+          }
+          TGrid::Connect(gridUrl,user);
+       }
+       
+       if(!gGrid) {
+               AliError("Connection failed!");
+               return kFALSE;
+       }
+   return kTRUE;
+}
+
+
+/*
+//_____________________________________________________________________________
+AliCDBGrid::~AliCDBGrid()
+{
+// destructor
+       delete gGrid; gGrid=0;
+
+}
+*/
+
+
+
+//_____________________________________________________________________________
+Bool_t AliSurveyObj::OpenFile(TString openString) {
+  TString storage = "alien://alice.cern.ch";
+
+  Printf("TFile::Open string: \n -> \"%s\"\n", openString.Data());
+
+  if (openString.BeginsWith("alien://")) Connect(storage.Data(), "rsilva");
+
+  TFile *file = TFile::Open(openString.Data(), "READ");
+  if ( !file ) {
+    AliError(Form("Error opening file \"%s\"", openString.Data()));
+    return kFALSE;
+  }
+
+  Int_t size = file->GetSize();
+
+  char *buf = new Char_t[size];
+  memset(buf, '\0', size);
+
+  --size;
+
+  file->Seek(0);  
+  if ( file->ReadBuffer(buf, size) ) {
+    AliError("Error reading file contents to buffer!");
+    return kFALSE;
+  }
+
+  // Printf("%d bytes read!\n", size);
+  Printf("%d bytes read!\n", file->GetBytesRead());
+  
+  // Printf("->\n%s\n<- ", buf);
+
+  // Printf("%d AQUI!\n", size);
+
+  ParseBuffer(buf);
+
+  file->Close();
+  delete[] buf;
+  return kTRUE;
+}
+
+
+
+//_____________________________________________________________________________
+Bool_t AliSurveyObj::Get(TString detector, Int_t reportNumber,
+                         Int_t reportVersion) {
+  TString baseFolder = "/alice/cern.ch/user/r/rsilva/";
+
+  TString fullOpenString = "alien://" + baseFolder + detector + '/';
+  fullOpenString += Form("%d_v%d.txt?filetype=raw", reportNumber, reportVersion);
+  // !Still need to check it's a valid path before actually using it
+
+  return OpenFile(fullOpenString);
+}
+
+
+//_____________________________________________________________________________
+Bool_t AliSurveyObj::GetFromLocalFile(const Char_t* filename) {
+  TString fullOpenString = "file://" + TString(filename) + "?filetype=raw";
+
+  return OpenFile(fullOpenString);
+}
+
+
+//_____________________________________________________________________________
+TString &AliSurveyObj::Sanitize(TString str) {
+  str.Remove(TString::kTrailing, '\r');
+  str.Remove(TString::kTrailing, '\n');
+  return str.Remove(TString::kBoth, ' ');
+}
+
+
+//_____________________________________________________________________________
+Bool_t AliSurveyObj::ParseBuffer(const Char_t* buf) {
+  TString buffer = TString(buf);
+  TObjArray *lines = buffer.Tokenize('\n');
+  TObjArray *dataLine = NULL; // Used to Tokenize each point read
+  TObjArray *colLine = NULL; // Used to Tokenize the column names
+
+  const Int_t kFieldCheck = 10;
+  Bool_t check[kFieldCheck];
+  TString tmp_name = "";
+  Float_t tmp_x = 0.0, tmp_y = 0.0, tmp_z = 0.0;
+  Float_t tmp_precX = 0.0, tmp_precY = 0.0, tmp_precZ = 0.0;
+  Char_t tmp_type = '\0';
+  Bool_t tmp_targ = kTRUE;
+  AliSurveyPoint *dp = 0;
+  
+  for (Int_t i = 0; i < kFieldCheck; ++i) check[i] = kFALSE;
+
+  Int_t nrLines = lines->GetEntries();
+  Printf("Lines in file: %d\n", nrLines); 
+
+  TString currLine = "", nextLine = "";
+  for (Int_t i = 0; i < nrLines; ++i) {
+    currLine = ((TObjString *)(lines->At(i)))->GetString().Data();
+    nextLine = ((i + 1) < nrLines ? ((TObjString *)(lines->At(i + 1)))->GetString().Data() : "");
+    currLine = Sanitize(currLine);
+    nextLine = Sanitize(nextLine);
+    Printf("\n%d: \"\"%s\"\"\"\n", i + 1, currLine.Data());
+    
+    if (0 == currLine.Length()) {
+      Printf("Info: Empty line skipped\n\n");
+    } else if (currLine.BeginsWith(">") && !nextLine.BeginsWith(">")) {
+      currLine.Remove(TString::kLeading, '>');
+      currLine.Remove(TString::kTrailing, ':');
+      currLine.Remove(TString::kBoth, ' ');
+      nextLine.Remove(TString::kBoth, ' ');
+      // Printf(" -> Field: \"%s\"\n", currLine.Data());
+      
+      if (currLine.BeginsWith("Title", TString::kIgnoreCase)) {
+       // Report Title
+       fTitle = nextLine;
+       ++i;
+      } else if (currLine.BeginsWith("Date", TString::kIgnoreCase)) {
+       // Report(measurement) Date
+       fDate = nextLine;
+       ++i;
+      } else if (currLine.BeginsWith("Subdetector", TString::kIgnoreCase)) {
+       // Subdetector or structure
+       fDetector = nextLine;
+       ++i;
+      } else if (currLine.BeginsWith("Report URL", TString::kIgnoreCase)) {
+       // Report URL in EDMS
+       if (nextLine.BeginsWith("http://edms.cern.ch/document/", TString::kIgnoreCase) ||
+           nextLine.BeginsWith("https://edms.cern.ch/document/", TString::kIgnoreCase)) {
+         fURL = nextLine;
+         nextLine.Remove(TString::kTrailing, '/');
+         nextLine = nextLine(nextLine.Last('/') + 1, nextLine.Length() - nextLine.Last('/') + 1);
+         // Printf(nextLine);
+         if (!nextLine.IsDigit()) {
+           lines->Delete();
+           return kFALSE;
+         }
+         fReportNr = nextLine.Atoi();
+         ++i;
+       } else { // URL incorrectly formated
+         AliError("Survey text file sintax error! (incorrectly formated Report URL)");
+         return kFALSE;
+       }
+      } else if (currLine.BeginsWith("Version", TString::kIgnoreCase)) {
+       if (!nextLine.IsDigit()) {
+         lines->Delete();
+         return kFALSE;
+       }
+       fVersion = nextLine.Atoi();
+       ++i;
+      } else if (currLine.BeginsWith("General Observations", TString::kIgnoreCase)) {
+       fObs = "";
+       while (('>' != nextLine[0]) && nextLine.Length() > 0) { 
+         fObs += (0 == fObs.Length()) ? nextLine : " / " + nextLine;
+         ++i;
+         nextLine = ((i + 1) < nrLines ? ((TObjString *)(lines->At(i + 1)))->GetString().Data() : "");
+         nextLine = Sanitize(nextLine);
+       }
+       // Printf("->%s<-\n", fObs.Data());
+      } else if (currLine.BeginsWith("Coordinate System", TString::kIgnoreCase)) {
+       fCoordSys = nextLine;
+       ++i;
+      } else if (currLine.BeginsWith("Units", TString::kIgnoreCase)) {
+       fUnits = nextLine;
+       ++i;
+      } else if (currLine.BeginsWith("Nr Columns", TString::kIgnoreCase)) {
+       if (!nextLine.IsDigit()) {
+         lines->Delete();
+         return kFALSE;
+       }
+       fNrColumns = nextLine.Atoi();
+       ++i;
+      } else if (currLine.BeginsWith("Column Names", TString::kIgnoreCase)) {
+       fColNames = nextLine;
+       colLine = nextLine.Tokenize(',');
+       if (colLine->GetEntries() != fNrColumns) {
+         colLine->Delete();
+         lines->Delete();
+         return kFALSE;
+       }
+       ++i;
+      } else if (currLine.BeginsWith("Data", TString::kIgnoreCase)) {
+       while (('>' != nextLine[0]) && nextLine.Length() > 0) {
+         Printf("Data LINE: \"%s\"\n", nextLine.Data());
+
+         dataLine = nextLine.Tokenize(' ');
+         if (dataLine->GetEntries() != fNrColumns) {
+           dataLine->Delete();
+           lines->Delete();
+           return kFALSE;
+         }
+
+         for (Int_t t = 0; t < kFieldCheck; ++t) check[t] = 0;
+
+         for (Int_t j = 0; j < dataLine->GetEntries(); ++j) {
+           TString cn = ((TObjString *)(colLine->At(j)))->GetString();
+           TString value = ((TObjString *)(dataLine->At(j)))->GetString();
+           if (cn.BeginsWith("Point Name", TString::kIgnoreCase)) {
+             tmp_name = value;
+             check[0] = kTRUE;
+           } else if (cn.BeginsWith("X", TString::kIgnoreCase)) {
+             tmp_x = value.Atof();
+             check[1] = kTRUE;
+           } else if (cn.BeginsWith("Y", TString::kIgnoreCase)) {
+             tmp_y = value.Atof();
+             check[2] = kTRUE;
+           } else if (cn.BeginsWith("Z", TString::kIgnoreCase)) {
+             tmp_z = value.Atof();
+             check[3] = kTRUE;
+           } else if (cn.BeginsWith("Precision", TString::kIgnoreCase)) {
+             TString tmpCN = cn(0, cn.First('('));
+             Int_t precLength = TString("Precision").Length();
+             //Printf(" ====== %d ======= %d ====== \n", precLength, tmpCN.Length());
+             //Printf(" ====== %s ======= \n", tmpCN.Data());
+             if (precLength == tmpCN.Length()) {
+               tmp_precX = tmp_precY = tmp_precZ = value.Atof();
+               check[6] = kTRUE;
+             } else {
+               TString axis = cn(precLength, tmpCN.Length() - precLength);
+               if (axis.Contains('X', TString::kIgnoreCase)) {
+                 tmp_precX = value.Atof();
+                 check[7] = kTRUE;
+               } else if (axis.Contains('Y', TString::kIgnoreCase)) {
+                 tmp_precY = value.Atof();
+                 check[8] = kTRUE;
+               } else if (axis.Contains('Z', TString::kIgnoreCase)) {
+                 tmp_precZ = value.Atof();
+                 check[9] = kTRUE;
+               } else {
+                 AliError("Survey text file sintax error! (Precision column name invalid)");
+                 dataLine->Delete();
+                 lines->Delete();
+                 return kFALSE;
+               }
+             }
+           } else if (cn.BeginsWith("Point Type", TString::kIgnoreCase)) {
+             tmp_type = value.Data()[0];
+             check[4] = kTRUE;
+           } else if (cn.BeginsWith("Target Used", TString::kIgnoreCase)) {
+             tmp_targ = (value.Data()[0] == 'Y') ? kTRUE : kFALSE;
+             check[5] = kTRUE;
+           }
+
+           Printf("--> %s\n", ((TObjString *)(dataLine->At(j)))->GetString().Data());
+         }
+         Bool_t res = kTRUE, precInd = kTRUE;
+
+         // Target
+         if (kFALSE == check[5]) {
+           tmp_targ = kTRUE;
+           check[5] = kTRUE;
+         }
+         
+         // Individual axis precisions
+         for (Int_t t = 7; t < 10; ++t) precInd &= check[t];
+         if ((kFALSE == check[6]) && (kTRUE == precInd)) check[6] = kTRUE;
+
+         for (Int_t t = 0; t < kFieldCheck - 3; ++t) {
+           Printf("RES(%d): %d\n", t, check[t]);
+           res &= check[t];
+         }
+         if (kTRUE == res) {
+           dp = new AliSurveyPoint(tmp_name, tmp_x, tmp_y, tmp_z, tmp_precX, tmp_precY, tmp_precZ, tmp_type, tmp_targ);
+           dp->PrintPoint();
+           AddPoint(dp);
+         } else {
+           AliError("Parsing error processing data line!");
+           dataLine->Delete();
+           lines->Delete();
+           return kFALSE;
+         }
+         
+         dataLine->Delete();
+         dataLine = NULL;
+         ++i;
+         nextLine = ((i + 1) < nrLines ? ((TObjString *)(lines->At(i + 1)))->GetString().Data() : "");
+         nextLine = Sanitize(nextLine);
+       }
+      }
+    } else { // 2 lines in a row start with ">"
+      AliError("Survey text file sintax error! (2 consecutive lines start with \'>\')");
+      lines->Delete();
+      return kFALSE;
+    }
+  }
+  lines->Delete();
+  fIsValid = kTRUE;
+  return kTRUE;
+}
+
diff --git a/STEER/AliSurveyObj.h b/STEER/AliSurveyObj.h
new file mode 100644 (file)
index 0000000..d036323
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef ALI_SURVEY_OBJ_H
+#define ALI_SURVEY_OBJ_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/////////////////////////////////////////////////////////////////////
+//                                                                 //
+//  class AliSurveyObj                                            //
+//  Retrieve and Convert survey data into ROOT Objects            //
+//                                                                 //
+/////////////////////////////////////////////////////////////////////
+
+#include <TObject.h>
+//#include <sstream>
+
+#include <TString.h>
+#include <TObjArray.h>
+
+//#include "AliLog.h"
+#include "AliSurveyPoint.h"
+
+class AliSurveyObj: public TObject {
+
+ public:
+  AliSurveyObj();
+  ~AliSurveyObj();
+  Bool_t GetFromLocalFile(const Char_t* filename);
+  Bool_t Get(TString detector, Int_t reportNumber, Int_t reportVersion);
+
+  
+  Int_t GetEntries() const {return fDataPoints->GetEntries();};
+  Bool_t IsValid() const {return fIsValid;};
+
+  
+ private:
+  TString fTitle;     // Report Title
+  TString fDate;      // Report Date
+  TString fDetector;  // Subdetector (or structure) surveyed
+  TString fURL;       // Report URL in EDMS
+  Int_t fReportNr;    // Report Number
+  Int_t fVersion;     // Report Version
+  TString fObs;       // General observations / comments
+  TString fCoordSys;  // Measurements coordinate system
+  TString fUnits;     // Measurements units
+  Int_t fNrColumns;   // Number of columns in data values
+  TString fColNames;  // Column names sepparated by commas
+  Bool_t fIsValid;    // Is the data valid? (sucessfully parsed)
+  
+  TObjArray *fDataPoints;      // Actual Data
+  
+  Bool_t Connect(const char *gridUrl, const char *user);
+  Bool_t OpenFile(TString openString);
+  TString &Sanitize(TString str);
+  Bool_t ParseBuffer(const Char_t* buf);
+  AliSurveyObj (const AliSurveyObj& surveyObj);            // copy constructor
+  AliSurveyObj& operator=(const AliSurveyObj& surveyObj);  // assignment operator 
+  void AddPoint(AliSurveyPoint* point);
+  ClassDef(AliSurveyObj, 1);
+};
+
+#endif
diff --git a/STEER/AliSurveyPoint.cxx b/STEER/AliSurveyPoint.cxx
new file mode 100644 (file)
index 0000000..9d30c49
--- /dev/null
@@ -0,0 +1,72 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+/////////////////////////////////////////////////////////////////////
+//                                                                 //
+//  class AliSurveyPoint                                                  //
+//  Retrieve and Convert survey data into ROOT Objects            //
+//                                                                 //
+/////////////////////////////////////////////////////////////////////
+
+#include "AliSurveyPoint.h"
+
+ClassImp(AliSurveyPoint)
+  
+//_____________________________________________________________________________
+AliSurveyPoint::AliSurveyPoint():
+  fPointName(""),
+  fX(0.0),
+  fY(0.0),
+  fZ(0.0),
+  fPrecisionX(0.0),
+  fPrecisionY(0.0),
+  fPrecisionZ(0.0),
+  fType(' '),
+  fTargetUsed(kTRUE)
+{
+  // constructor
+  
+}
+
+//_____________________________________________________________________________
+AliSurveyPoint::AliSurveyPoint(TString name, Float_t x, Float_t y,
+                               Float_t z, Float_t precX, Float_t precY,
+                               Float_t precZ, Char_t type, Bool_t Target):
+  fPointName(name),
+  fX(x),
+  fY(y),
+  fZ(z),
+  fPrecisionX(precX),
+  fPrecisionY(precY),
+  fPrecisionZ(precZ),
+  fType(type),
+  fTargetUsed(Target)
+{
+  //constructor
+  
+}
+
+//_____________________________________________________________________________
+AliSurveyPoint::~AliSurveyPoint() {
+  //destructor
+  
+}
+
+//_____________________________________________________________________________
+void AliSurveyPoint::PrintPoint() {
+  printf("Point Coordinates \"%s\": %f %f %f\n", (const char*) fPointName, fX, fY, fZ);
+  return;
+}
+
diff --git a/STEER/AliSurveyPoint.h b/STEER/AliSurveyPoint.h
new file mode 100644 (file)
index 0000000..78fcf63
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef ALI_SURVEY_POINT_H
+#define ALI_SURVEY_POINT_H
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice                               */
+
+/////////////////////////////////////////////////////////////////////
+//                                                                 //
+//  class AliSurveyPoint                                          //
+//  Retrieve and Convert survey data into ROOT Objects            //
+//                                                                 //
+/////////////////////////////////////////////////////////////////////
+
+#include <TObject.h>
+#include <TString.h>
+
+class AliSurveyPoint: public TObject {
+
+ public:
+  AliSurveyPoint();
+  AliSurveyPoint(TString name, Float_t x, Float_t y, Float_t z,
+                Float_t precX, Float_t precY, Float_t precZ, 
+                 Char_t type, Bool_t Target);
+  virtual ~AliSurveyPoint();
+  
+  TString GetPointName() {return fPointName;};
+  Float_t GetX() {return fX;};
+  Float_t GetY() {return fY;};
+  Float_t GetZ() {return fZ;};
+  Float_t GetPrecisionX() {return fPrecisionX;};
+  Float_t GetPrecisionY() {return fPrecisionY;};
+  Float_t GetPrecisionZ() {return fPrecisionZ;};
+  Char_t GetType() {return fType;};
+  Bool_t GetTarget() {return fTargetUsed;};
+  
+  void PrintPoint();
+  
+ private:
+  TString fPointName;
+  Float_t fX;
+  Float_t fY;
+  Float_t fZ;
+  Float_t fPrecisionX;
+  Float_t fPrecisionY;
+  Float_t fPrecisionZ;
+  Char_t fType;
+  Bool_t fTargetUsed;
+  
+  ClassDef(AliSurveyPoint, 1);
+};
+
+#endif
index c3af2995426d46e4d816c17ce3dabcd02e8be0a7..6d9694cefa143e5a5b01c1d8611b9e6a8a16e7a8 100644 (file)
 #pragma link C++ class AliDCSSensor+;
 #pragma link C++ class AliDCSSensorArray+;
 
+#pragma link C++ class AliSurveyObj+;
+#pragma link C++ class AliSurveyPoint+;
+
 #endif
index 21c99bd61676954ad46518735d46e8deb3f03cce..cfafdb6b6192a2b4113eb9f789b2ed2bdebeffe5 100644 (file)
@@ -37,7 +37,8 @@ AliMathBase.cxx AliSignalProcesor.cxx \
 AliTracker.cxx AliCluster.cxx AliHelix.cxx AliV0.cxx AliKink.cxx \
 AliSelectorRL.cxx AliSplineFit.cxx \
 AliMagFMapsV1.cxx \
-AliDCSValue.cxx AliDCSSensor.cxx AliDCSSensorArray.cxx
+AliDCSValue.cxx AliDCSSensor.cxx AliDCSSensorArray.cxx \
+AliSurveyObj.cxx AliSurveyPoint.cxx
 
 
 HDRS:= $(SRCS:.cxx=.h)