ROOTPWA
checkBins.sh
Go to the documentation of this file.
1 #!/bin/bash
2 
3 # script checks pwa directory structure for consitency
4 # Checks:
5 # Equal Number of waves in every bin
6 # Equal Number of events in every wave
7 
8 #loop over mass-bin directories
9 
10 
11 TXT_BLD=$(tput bold)
12 TXT_RED=$(tput setaf 1)
13 TXT_GREEN=$(tput setaf 2)
14 TXT_YLW=$(tput setaf 3)
15 TXT_BLUE=$(tput setaf 4)
16 TXT_PURPLE=$(tput setaf 5)
17 TXT_CYAN=$(tput setaf 6)
18 TXT_WHITE=$(tput setaf 7)
19 TXT_RESET=$(tput sgr0)
20 
21 rm /tmp/unfinAmps
22 rm /tmp/unfinPAmps
23 rm /tmp/unfinAAmps
24 
25 rm /tmp/zeroAmps
26 rm /tmp/zeroPAmps
27 rm /tmp/zeroAAmps
28 
29 #cd $1;
30 
31 echo -e "Mass-Bin \t Num \t NumPSP NumAcc \t FileSize \t PSPFileSize \t AccFileSize \tt NAN"
32 
33 
34 
35 
36 for i in $1*; do
37 
38  export NUMAMP=`ls $i/AMPS/*.amp | wc -l`
39  export NUMPSPAMP=`ls $i/PSPAMPS/*.amp | wc -l`
40  export NUMACCAMP=`ls $i/ACCAMPS/*.amp | wc -l`
41 
42  MAXN=0;
43  MINN=100000000;
44  MAXNMC=0;
45  MINNMC=100000000;
46  MAXNACC=0;
47  MINNACC=100000000;
48 
49  if [ $NUMAMP -gt 0 ]; then
50  for j in $i/AMPS/*.amp; do
51  N=$(stat -c%s "$j"); # use filesize as proxy
52  #cat $j | vamp | wc
53  #echo $j $N;
54  if [ $N -gt $MAXN ]; then MAXN=$N; fi;
55  if [ $N -lt $MINN ]; then MINN=$N; fi;
56  if [ $N -lt $MAXN -a $N -gt 0 ] ; then ls $j >> /tmp/unfinAmps; fi
57  if [ $N -lt $MAXN -a $N -eq 0 ] ; then ls $j >> /tmp/zeroAmps; fi
58  done
59  fi
60  if [ $NUMPSPAMP -gt 0 ]; then
61  for j in $i/PSPAMPS/*.amp; do
62  NMC=$(stat -c%s "$j"); # use filesize as proxy
63  #echo $j $N;
64  if [ $NMC -gt $MAXNMC ]; then MAXNMC=$NMC; fi;
65  if [ $NMC -lt $MINNMC ]; then MINNMC=$NMC; fi;
66  if [ $NMC -lt $MAXNMC -a $NMC -gt 0 ]; then ls $j >> /tmp/unfinPAmps; fi
67  if [ $NMC -lt $MAXNMC -a $NMC -eq 0 ]; then ls $j >> /tmp/zeroPAmps; fi
68  done
69  fi
70  if [ $NUMACCAMP -gt 0 ]; then
71  for j in $i/ACCAMPS/*.amp; do
72  NACC=$(stat -c%s "$j"); # use filesize as proxy
73  #echo $j $N;
74  if [ $NACC -gt $MAXNACC ]; then MAXNACC=$NACC; fi;
75  if [ $NACC -lt $MINNACC ]; then MINNACC=$NACC; fi;
76  if [ $NACC -lt $MAXNACC -a $NACC -gt 0 ]; then ls $j >> /tmp/unfinAAmps; fi
77  if [ $NACC -lt $MAXNACC -a $NACC -eq 0 ]; then ls $j >> /tmp/zeroAAmps; fi
78  done
79 fi
80 
81  if [[ $NUMAMP != $NUMPSPAMP ]]; then
82 
83  echo -e "${TXT_RED}$i \t $NUMAMP \t $NUMPSPAMP \t $NUMACCAMP \t\t $MINN..$MAXN \t $MINNMC..$MAXNMC \t $MINNACC..$MAXNACC ${TXT_RESET}\c";
84  elif [[ $MAXNMC != $MINNMC ]]; then
85 
86  echo -e "${TXT_RED}$i${TXT_RESET} \t $NUMAMP \t $NUMPSPAMP \t $NUMACCAMP \t\t $MINN..$MAXN \t ${TXT_RED}$MINNMC..$MAXNMC ${TXT_RESET} \t $MINNACC..$MAXNACC\c";
87  elif [[ $MAXN != $MINN ]]; then
88  echo -e "${TXT_RED}$i${TXT_RESET} \t $NUMAMP \t $NUMPSPAMP \t $NUMACCAMP \t\t ${TXT_RED}$MINN..$MAXN${TXT_RESET} \t $MINNMC..$MAXNMC \c";
89  else echo -e "$i \t $NUMAMP \t $NUMPSPAMP \t $NUMACCAMP \t\t $MINN..$MAXN \t $MINNMC..$MAXNMC \t $MINNACC..$MAXNACC \c"
90  fi;
91 
92 
93 
94  if [[ -e $i/AMPS/norm.int ]]; then
95  if grep -q nan $i/AMPS/norm.int ; then echo "${TXT_RED}!!${TXT_RESET}";
96  elif grep -q "(0,0)" $i/AMPS/norm.int ; then echo "${TXT_RED}(0,0)${TXT_RESET}";
97  else echo -e "\t ok";
98  fi
99  else echo -e "\t no norm";
100  fi
101 
102 
103 
104 done; # and loop over bins
105 
106 echo "Unfinshed Files (remove if you want to recalculate them!)"
107 cat /tmp/unfinAmps
108 cat /tmp/unfinPAmps
109 cat /tmp/unfinAAmps
110 
111 echo "Zero size Files"
112 cat /tmp/zeroAmps
113 cat /tmp/zeroPAmps
114 cat /tmp/zeroAAmps
115 
116 
117 cd -;