New class wrapping the access of files in the AliEn catalogue
[u/mrichter/AliRoot.git] / PHOS / AliPHOSAliEnFile.h
1 #ifndef ALIPHOSALIENFILE_H
2 #define ALIPHOSALIENFILE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //_________________________________________________________________________
7 // Description of logical filename in AliEn catalogue
8 // check here : /afs/cern.ch/user/p/peters/public/README.ALIEN 
9 //*--                  
10 //*-- Author: Yves Schutz (CERN)
11
12 // --- ROOT system ---
13 #include "TObject.h" 
14 #include "TString.h" 
15 #include "TGrid.h" 
16
17 // --- AliRoot header files ---
18
19 class AliPHOSAliEnFile : public TObject {
20
21  public:
22   
23   AliPHOSAliEnFile() ; 
24   AliPHOSAliEnFile(AliPHOSAliEnFile & lfn) : TObject(lfn) {
25     lfn.Copy(*this) ; 
26   } 
27   virtual ~AliPHOSAliEnFile(void) ; 
28   virtual void Copy(AliPHOSAliEnFile & lfn) ;
29   
30   void ListEvents() const ; 
31   void ListRuns() const ; 
32   TString GetRootDir() const { return fRoot ; }
33   TString GetLFN() const ; 
34   void Help() ; 
35   
36   Bool_t SetYearProd(TString year, TString prod) ; 
37   Bool_t SetVers(TString vers) ; 
38   Bool_t SetType(TString type) ; 
39
40   Bool_t SetPath(TString year, TString prod, TString vers, TString type) ; 
41
42   Bool_t SetRun(Int_t run) ; 
43   Bool_t SetEvt(Int_t evt) ; 
44
45   TString Pwd() const { return fPath ; }
46
47   AliPHOSAliEnFile & operator = (const AliPHOSAliEnFile & /*rvalue*/)  {
48     // assignement operator requested by coding convention but not needed
49     Fatal("operator =", "not implemented") ;
50     return *this ; 
51   }
52   
53 private:
54   
55   TGrid * fGrid ; //! connection to alien data catalogue 
56   TString fRoot ; //! root directory
57   TString fYear ; //! year of the DC 
58   TString fProd ; //! production id 
59   TString fVers ; //! aliroot tag version
60   TString fType ; //! event type
61   TString fRun  ; //! run number
62   TString fEvt  ; //! event number
63   TString fPath ; //! the lfn is fRoot/fYear/fProd/fVers/fType/fRun/fEvt
64  
65
66   ClassDef(AliPHOSAliEnFile,1)  
67     
68     };
69
70 #endif // AliPHOSALIENFILE_H
71