]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliSurveyObj.h
Added methods to list available reports and detectors. Changed Fill(..) method to...
[u/mrichter/AliRoot.git] / STEER / AliSurveyObj.h
index a63a182ff833c82541d291db3133ab4ce0771e8d..4410b6146c710bf96780522941dd334d3a70ae17 100644 (file)
 //#include "AliLog.h"
 #include "AliSurveyPoint.h"
 
+class TGridResult;
+
 class AliSurveyObj: public TObject {
 
  public:
   AliSurveyObj();
   ~AliSurveyObj();
   Bool_t FillFromLocalFile(const Char_t* filename);
-  Bool_t Fill(TString detector, Int_t reportNumber, Int_t reportVersion);
+  Bool_t Fill(TString detector, Int_t reportNumber,
+             Int_t reportVersion, TString username = "");
+  Bool_t Fill(TString detector, Int_t reportNumber,
+             TString username = "");
 
-  
+  static void ListValidDetectors();
+  Int_t ListReports(TString detector = "", Int_t year = -1,
+                   Int_t reportNumber = -1,
+                   Int_t reportVersion = -1);
+
+  void SetGridUser(TString username);
+  // Number of points (AliSurveyPoint) in the TObjArray
   Int_t GetEntries() const {return fDataPoints->GetEntries();};
 
   TString GetReportTitle() const {return fTitle;};
@@ -37,11 +49,23 @@ class AliSurveyObj: public TObject {
   TString GetURL() const {return fURL;};
   Int_t GetReportNumber() const {return fReportNr;};
   Int_t GetReportVersion() const {return fVersion;};
+
+  // General comments and observations
   TString GetObservations() const {return fObs;};
+
+  // Coordinate system used for the measurements
   TString GetCoordSys() const {return fCoordSys;};
+
+  // Units used in the measurement
   TString GetUnits() const {return fUnits;};
+
+  // Number of columns read from file (in the "Data" section)
   Int_t GetNrColumns() const {return fNrColumns;};
+
+  // TObjArray with the names of the columns read
   TObjArray *GetColumnNames() const {return fColNames.Tokenize(',');};
+
+  // TObjArray with the points read (AliSurveyPoint)
   TObjArray *GetData() const {return fDataPoints;};
 
   Bool_t IsValid() const {return fIsValid;};
@@ -60,16 +84,34 @@ class AliSurveyObj: public TObject {
   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)
+  TString fGridUser;  // Username to be used for the connection to GRID
   
   TObjArray *fDataPoints;      // Actual Data
   
+  static const TString fgkStorage;
+  static const TString fgkBaseFolder;
+  static const TString fgkValidDetectors;
+  static const TString fgkGRPDetectors;
+  static const TString fgkMUONDetectors;
+    
   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 Reset();
+  Bool_t IsValidDetector(TString detector) const;
+  TString RealFolderName(TString detector) const;
+  TString FileNamePathToDetector(TString filename) const;
+  Int_t FileNamePathToReportYear(TString filename) const;
+  Int_t FileNamePathToReportNumber(TString filename) const;
+  Int_t FileNamePathToReportVersion(TString filename) const;
+  TGridResult *QueryReports(TString detector, Int_t year,
+                           Int_t reportNumber, Int_t reportVersion);
+
+  AliSurveyObj (const AliSurveyObj& surveyObj);
+  AliSurveyObj& operator=(const AliSurveyObj& surveyObj); 
   void AddPoint(AliSurveyPoint* point);
+
   ClassDef(AliSurveyObj, 1);
 };