Hello,
I need to download all the QC plots .root files from a handful of runs (526174 529039 529403 529418 538964 542756 544434 545345 551685 551729) generated by the tasks QcZDCTask and QcZDCRecTask of the ALICE-ZDC detector.
I know how to download a single plot from the qcdb, but doing it one by one would take ages.
It was suggested to me that a script should do the trick, however I have no idea how to do it.
Could anyone help me with that?
Thank you very much,
Stefan
@grigoras Could you provide an example on how to download a file from CCDB/QCDB using curl ?
Maybe it can be of use: alien.py have the -input
argument that take a file with a list (per line) of src dst
pairs
Then you can do something like:
alien.py cp -retry 2 -parent 99 -input my_list_of_files
-parent will keep last N components of the path when copy the src to dst, so -parent 99
will keep the full path of the src when copy to dst (so on disk you will have dst/src filepath)
Hi,
With curl
you can request the list of objects for a run, in a machine-friendly format like JSON and iterate over the files. The content itself is also available over HTTP so it can be fetched again with curl
. Putting the two together in an example command:
curl -s 'http://ali-qcdb-gpn.cern.ch:8083/browse/qc/ZDC/MO/.*/RunNumber=526174?Accept=application/json' | \
jq -r '.objects[] | "curl http://ali-qcdb-gpn.cern.ch:8083\(.replicas[0]) -o \(.path|split("/")|join("_"))_\(.RunNumber).root"'
would give you the list of commands to run to fetch each of these objects locally, with a name you can customize. For the example above the generated commands are like:
curl http://ali-qcdb-gpn.cern.ch:8083/download/09c173dc-3ce4-11ed-b45c-0aa1454fa1a2 -o qc_ZDC_MO_QcZDCRecTask_h_TDC_ZPC_TC_A_526174.root
If you are happy with these commands, run them all.
Cheers,
.costin
It works perfectly! Thank you!!