we recently set up a storage element at our institute that’s e.g. accessible via dcache.
To be able to really make use of it, I’m trying to access files via dcache in root.
However I’m having problems getting this to work…
However in root I don’t get it accessed:
root [0] TDCacheFile *f = new TDCacheFile(“gsidcap://maigrid-se1.physik.uni-mainz.de:22128/pnfs/physik.uni-mainz.de/data/atlas/eckweiler/user10.SebastianEckweiler.Skimmed.group10.perf-jets.data10_7TeV.00153565.physics_MinBias.recon.ESD.f251_JetEtMissDPDModifier000014.v1_EXT0.20100517v2.EXT0._02731.SkimmedD3PD.root”)
Error in TDCacheFile::TDCacheFile: file pnfs/physik.uni-mainz.de/data/atlas/eckweiler/user10.SebastianEckweiler.Skimmed.group10.perf-jets.data10_7TeV.00153565.physics_MinBias.recon.ESD.f251_JetEtMissDPDModifier000014.v1_EXT0.20100517v2.EXT0._02731.SkimmedD3PD.root does not exist
Weird enough, the CheckFile-method seems to see the file:
root [1] TDCacheFile::CheckFile(“gsidcap://maigrid-se1.physik.uni-mainz.de:22128/pnfs/physik.uni-mainz.de/data/atlas/eckweiler/user10.SebastianEckweiler.Skimmed.group10.perf-jets.data10_7TeV.00153565.physics_MinBias.recon.ESD.f251_JetEtMissDPDModifier000014.v1_EXT0.20100517v2.EXT0._02731.SkimmedD3PD.root”)
(Bool_t)1
Unfortunately our admins are pretty new to these issues as well.
I couldn’t really find any documentation on this, neither on the usual root-pages nor from dcache directly.
Is there a way to trigger some debug output for the DCache part?
Is there something special to be done for the root-setup?
I believe this problem is due to the fact that “gsidcap:” is not a protocol recognized by default
by ROOT. TDCacheFile::CheckFile passes it directly to the dcache calls, so it works.
The TDCacheFile constructor tries to check it the file exists with TSystem::AccessPathName
(equivalent of Unix access) which should go via TDCacheSystem::AccessPathName. However
this fails because the protocol is not recognized by the plugin-handler.
If this interpretation is true, you should be able to workaround the problem by first calling