-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcopyLegoTrainOutput.sh
executable file
·91 lines (74 loc) · 3.01 KB
/
copyLegoTrainOutput.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
baseGridDir=/alice/data/2015/LHC15o
#baseGridDir=/alice/sim/2018/LHC18a11_cent_woSDD/
#baseGridDir=/alice/data/2018/LHC18l
#recoPass=pass3_lowIR_pidfix
#recoPass=pass1_pidfix
recoPass=pass1
#trainType=DQ_pp_MC_ESD
#trainType=DQ_pp_ESD
trainType=PWGDQ/DQ_PbPb_ESD
#trainType=DQ_PbPb_MC_ESD
#trainType=DQ_pPb
#trainType=PWGPP/DPG_ESD
isMC=no
fileToCopy=dstTree.root
#fileToCopy=AnalysisResults.root
legoTrainNumber=$1
outputDir=$2
runList=`cat $3`
isLEGOoutputMerged=$4
for run in $runList; do
mkdir -p $outputDir/$run
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Copying UNMERGED LEGO train output
if [ "$isLEGOoutputMerged" = "unmerged" ]; then
if [ "$isMC" = "yes" ]; then
alien_ls $baseGridDir/${run:3}/$trainType/$legoTrainNumber | grep [0-9][0-9] > $outputDir/$run/chunkList.txt
fi
if [ "$isMC" = "no" ]; then
alien_ls $baseGridDir/$run/$recoPass/$trainType/$legoTrainNumber | grep [0-9][0-9] > $outputDir/$run/chunkList.txt
fi
nchunks=`cat $outputDir/$run/chunkList.txt | wc -l`
echo "Copying $nchunks files for run $run from grid"
chunkList=`cat $outputDir/$run/chunkList.txt`
for chunk in $chunkList; do
while [ $(ps -ef | grep alien_cp | wc -l) -gt 20 ]; do
sleep 10s;
done
sourceFile="alien://$baseGridDir/$run/$recoPass/$trainType/$legoTrainNumber/$chunk/$fileToCopy"
destinationDir="$outputDir/$run/$chunk/"
if [ "$isMC" = "yes" ]; then
sourceFile="alien://$baseGridDir/${run:3}/$trainType/$legoTrainNumber/$chunk/$fileToCopy"
fi
echo " Copying file $sourceFile to $destinationDir"
mkdir -p $outputDir/$run/$chunk
if [ -s $outputDir/$run/$chunk/$fileToCopy ]
then
echo " --> Chunk exists already"
else
alien_cp $sourceFile $destinationDir &
fi
done
fi
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Copying MERGED LEGO train output
if [ "$isLEGOoutputMerged" = "merged" ]; then
while [ $(ps -ef | grep alien_cp | wc -l) -gt 20 ]; do
sleep 10s;
done
echo "Copying merged file for run $run from grid"
mkdir -p $outputDir/$run/chunk1
if [ -s $outputDir/$run/chunk1/$fileToCopy ]
then
echo " --> File exists already"
else
if [ "$isMC" = "no" ]; then
alien_cp alien://$baseGridDir/$run/$recoPass/$trainType/$legoTrainNumber/$fileToCopy $outputDir/$run/chunk1/ &
fi
if [ "$isMC" = "yes" ]; then
alien_cp alien://$baseGridDir/${run:3}/$trainType/$legoTrainNumber/$fileToCopy $outputDir/$run/chunk1/ &
fi
fi
fi
done