From 7f06a34f543bcd676dec8598307e961b4227fbf7 Mon Sep 17 00:00:00 2001 From: schutz Date: Mon, 8 Mar 2004 16:00:54 +0000 Subject: [PATCH] replaces AliPHOSAliEnFile: references to AliEn removed --- PHOS/AliPHOSGridFile.cxx | 271 +++++++++++++++++++++++++++++++++++++++ PHOS/AliPHOSGridFile.h | 75 +++++++++++ PHOS/PHOSLinkDef.h | 2 +- PHOS/libPHOS.pkg | 2 +- 4 files changed, 348 insertions(+), 2 deletions(-) create mode 100644 PHOS/AliPHOSGridFile.cxx create mode 100644 PHOS/AliPHOSGridFile.h diff --git a/PHOS/AliPHOSGridFile.cxx b/PHOS/AliPHOSGridFile.cxx new file mode 100644 index 00000000000..b677dcca117 --- /dev/null +++ b/PHOS/AliPHOSGridFile.cxx @@ -0,0 +1,271 @@ +/************************************************************************** + * 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. * + **************************************************************************/ +/* $Id$ */ + +//_________________________________________________________________________ +// To navigate in the Grid catalogue (very elementary) +// check here : /afs/cern.ch/user/p/peters/public/README.ALIEN +//-- Author: Yves Schutz (CERN) + +// --- ROOT system --- +#include "TObjString.h" +#include "TGridResult.h" + +// --- Standard library --- + +// --- AliRoot header files --- + +#include "AliPHOSGridFile.h" + +ClassImp(AliPHOSGridFile) ; + +//____________________________________________________________________________ +AliPHOSGridFile::AliPHOSGridFile(TString grid) +{ + // default ctor; Doing initialisation ; + fGrid = 0 ; + if (grid == "alien") + fGrid = TGrid::Connect("alien://aliendb1.cern.ch:15000/?direct") ; + else + Error("AliPHOSGridFile", " %s is an unknown grid system", grid.Data()) ; + if ( !fGrid ) + Error("ctor", "Cannot connect to alien://aliendb1.cern.ch:15000/?direct") ; + + fRoot = "/alice/production/aliprod" ; + if ( !fGrid->OpenDir(fRoot) ) + Error("ctor", "Cannot find directory %s ", fRoot.Data() ) ; + + fYear = "" ; + fProd = "" ; + fVers = "" ; + fType = "" ; + fRun = "" ; + fEvt = "" ; + + fPath += fRoot ; + +} + +//____________________________________________________________________________ +AliPHOSGridFile::~AliPHOSGridFile() +{ +} + +//____________________________________________________________________________ +TString AliPHOSGridFile::GetLFN() const +{ + TString fileName(Pwd()) ; + fileName += "galice.root" ; + if ( !fGrid->GetAccessPath(fileName) ) { + Warning("GetLFN", "file %s does not exist", fileName.Data()) ; + fileName = "" ; + } + else + fileName.Prepend("alien://") ; + return fileName ; +} + +//____________________________________________________________________________ +void AliPHOSGridFile::Copy(AliPHOSGridFile & lfn) +{ + //Copy method used by the Copy ctor + fRoot = lfn.fRoot ; + fYear = lfn.fYear ; + fProd = lfn.fProd ; + fVers = lfn.fVers ; + fType = lfn.fType ; + fRun = lfn.fRun ; + fEvt = lfn.fEvt ; + TObject::Copy(lfn) ; +} + +//____________________________________________________________________________ +void AliPHOSGridFile::Help() +{ + // Prints information on available lfn's + + Info("Info", " ") ; + +} + +//____________________________________________________________________________ +void AliPHOSGridFile::ListEvents() const +{ + // list the available events for the current path and run selected + + char path[80] ; + sprintf(path, "%s/%s-%s/%s/%s/%s", fRoot.Data(), fYear.Data(), fProd.Data(), fVers.Data(), fType.Data(), fRun.Data()) ; + Info("ListEvents", "Searching %s", path) ; + Grid_ResultHandle_t gr = fGrid->Find(path, "galice.root") ; + TGridResult ar(gr) ; + ar.Print() ; +} + +//____________________________________________________________________________ +void AliPHOSGridFile::ListRuns() const +{ + // list the available runs for the current path selected + + char path[80] ; + sprintf(path, "%s/%s-%s/%s/%s", fRoot.Data(), fYear.Data(), fProd.Data(), fVers.Data(), fType.Data()) ; + Info("ListEvents", "Searching %s", path) ; + Grid_ResultHandle_t gr = fGrid->OpenDir(path) ; + TGridResult ar(gr) ; + ar.Print() ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetYearProd(TString year, TString prod) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + char tempo[80] ; + sprintf(tempo, "/%s-%s", year.Data(), prod.Data()) ; + + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fYear = year ; + fProd = prod ; + fPath = path ; + } + return rv ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetVers(TString vers) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + char tempo[80] ; + sprintf(tempo, "/%s-%s/%s", fYear.Data(), fProd.Data(), vers.Data()) ; + fVers = tempo ; + + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fVers = vers ; + fPath = path ; + } + return rv ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetType(TString type) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + char tempo[80] ; + sprintf(tempo, "/%s-%s/%s/%s", fYear.Data(), fProd.Data(), fVers.Data(), type.Data()) ; + + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fType = type ; + fPath = path ; + } + return rv ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetPath(TString year, TString prod, TString vers, TString type) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + char tempo[80] ; + sprintf(tempo, "/%s-%s/%s/%s", year.Data(), prod.Data(), vers.Data(), type.Data()) ; + + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fPath = path ; + fYear += year ; + fProd += prod ; + fVers += vers ; + fType += type ; + } + return rv ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetRun(Int_t run) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + + TString zero("00000") ; + TString srun ; + srun += run ; + Int_t nzero = zero.Length() - srun.Length() ; + Int_t index ; + for (index = 0 ; index < nzero ; index++) + srun.Prepend("0") ; + + char tempo[80] ; + sprintf(tempo, "/%s-%s/%s/%s/%s", fYear.Data(), fProd.Data(), fVers.Data(), fType.Data(), srun.Data()) ; + + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fRun = srun ; + fPath = path ; + } + return rv ; +} + +//____________________________________________________________________________ +Bool_t AliPHOSGridFile::SetEvt(Int_t evt) +{ + // set the year and verifies if the directory exists + Bool_t rv = kFALSE ; + + TString zero("00000") ; + TString sevt ; + sevt += evt ; + Int_t nzero = zero.Length() - sevt.Length() ; + Int_t index ; + for (index = 0 ; index < nzero ; index++) + sevt.Prepend("0") ; + + char tempo[80] ; + sprintf(tempo, "/%s-%s/%s/%s/%s/%s/", fYear.Data(), fProd.Data(), fVers.Data(), fType.Data(), fRun.Data(), sevt.Data()) ; + TString path(fRoot) ; + path += tempo ; + if ( !fGrid->OpenDir(path) ) + Error("ctor", "Cannot find directory %s ", path.Data() ) ; + else { + rv = kTRUE ; + fEvt = sevt ; + fPath = path ; + } + return rv ; +} + + diff --git a/PHOS/AliPHOSGridFile.h b/PHOS/AliPHOSGridFile.h new file mode 100644 index 00000000000..619f1577e78 --- /dev/null +++ b/PHOS/AliPHOSGridFile.h @@ -0,0 +1,75 @@ +#ifndef ALIPHOSGRIDFILE_H +#define ALIPHOSGRIDFILE_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +//_________________________________________________________________________ +// Description of logical filename in Grid catalogue +// check here : /afs/cern.ch/user/p/peters/public/README.GRID +//*-- +//*-- Author: Yves Schutz (CERN) + +// --- ROOT system --- +#include "TObject.h" +#include "TString.h" +#include "TGrid.h" + +// --- AliRoot header files --- + +class AliPHOSGridFile : public TObject { + + public: + + AliPHOSGridFile(TString grid="alien") ; + AliPHOSGridFile(AliPHOSGridFile & lfn) : TObject(lfn) { + lfn.Copy(*this) ; + } + virtual ~AliPHOSGridFile(void) ; + virtual void Copy(AliPHOSGridFile & lfn) ; + + void ListEvents() const ; + void ListRuns() const ; + TString GetRootDir() const { return fRoot ; } + TString GetLFN() const ; + void Help() ; + Bool_t IsConnected() const { + Bool_t rv = kFALSE ; + if(fGrid) + rv = kTRUE ; + return rv ; } + Bool_t SetYearProd(TString year, TString prod) ; + Bool_t SetVers(TString vers) ; + Bool_t SetType(TString type) ; + + Bool_t SetPath(TString year, TString prod, TString vers, TString type) ; + + Bool_t SetRun(Int_t run) ; + Bool_t SetEvt(Int_t evt) ; + + TString Pwd() const { return fPath ; } + + AliPHOSGridFile & operator = (const AliPHOSGridFile & /*rvalue*/) { + // assignement operator requested by coding convention but not needed + Fatal("operator =", "not implemented") ; + return *this ; + } + +private: + + TGrid * fGrid ; //! connection to alien data catalogue + TString fRoot ; //! root directory + TString fYear ; //! year of the DC + TString fProd ; //! production id + TString fVers ; //! aliroot tag version + TString fType ; //! event type + TString fRun ; //! run number + TString fEvt ; //! event number + TString fPath ; //! the lfn is fRoot/fYear/fProd/fVers/fType/fRun/fEvt + + + ClassDef(AliPHOSGridFile,1) + + }; + +#endif // AliPHOSGRIDFILE_H + diff --git a/PHOS/PHOSLinkDef.h b/PHOS/PHOSLinkDef.h index b2e2e7c3930..de3e0886e36 100644 --- a/PHOS/PHOSLinkDef.h +++ b/PHOS/PHOSLinkDef.h @@ -64,6 +64,6 @@ #pragma link C++ class AliPHOSJet+; #pragma link C++ class AliPHOSJetFinder+; #pragma link C++ class AliPHOSGammaJet+; -#pragma link C++ class AliPHOSAliEnFile+; +#pragma link C++ class AliPHOSGridFile+; #endif diff --git a/PHOS/libPHOS.pkg b/PHOS/libPHOS.pkg index f9a8ec5fa52..7aedf7b6169 100644 --- a/PHOS/libPHOS.pkg +++ b/PHOS/libPHOS.pkg @@ -27,7 +27,7 @@ SRCS = AliPHOS.cxx AliPHOSv0.cxx AliPHOSv1.cxx AliPHOSv2.cxx \ AliPHOSCalibrator.cxx AliPHOSCalibrManager.cxx AliPHOSConTableDB.cxx \ AliPHOSFastGlobalReconstruction.cxx AliPHOSGetter.cxx \ AliPHOSGammaJet.cxx \ - AliPHOSAliEnFile.cxx + AliPHOSGridFile.cxx HDRS:= $(SRCS:.cxx=.h) -- 2.39.3