Jpp  18.0.0-rc.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JGedanken.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 version=1.0
5 script=${0##*/}
6 
7 # ------------------------------------------------------------------------------------------
8 #
9 # Auxiliary script for Gedanken experiment.
10 #
11 # ------------------------------------------------------------------------------------------
12 
13 if [ -z $JPP_DIR ]; then
14  echo "Variable JPP_DIR undefined."
15  exit
16 fi
17 
18 source $JPP_DIR/setenv.sh $JPP_DIR
19 
20 zmodload zsh/mathfunc
21 
22 set_variable: DEBUG SIRENE_DEBUG 2
23 set_variable: WORKDIR SIRENE_WORKDIR ${TMPDIR:-/tmp}/
25 
26 # detector
27 
28 set_variable R_M 25.0
29 set_variable Z_M 50.0
30 set_variable MODULE $R_M 0.0 $Z_M # position
31 
32 # particle
33 
34 set_variable E_GEV 20 # energy
35 set_variable POS 0.0 0.0 0.0 # position
36 set_variable DIR 0.0 0.0 1.0 # direction
37 set_variable TYPE 13 # PDG
38 
39 # graphics
40 
41 set_variable: FORMAT GRAPHICS_FORMAT gif
42 set_variable+ BATCH GRAPHICS_BATCH -B
43 
44 if do_usage $*; then
45  usage "$script [number of events]"
46 fi
47 
48 case $# in
50 esac
51 
53 
54 if [[ ! -f $DETECTOR ]]; then
55 
56  JModule \
57  -D 1001 \
58  -M 1 \
59  -P "$MODULE" \
60  -o $DETECTOR \
61  -d $DEBUG
62 fi
63 
64 if [[ ! -f $WORKDIR/gedanken.root ]]; then
65 
66  $JPP_DIR/examples/JSirene/JGedanken \
67  -o $WORKDIR/gedanken.root \
68  -P "$POS" \
69  -D "$DIR" \
70  -E $E_GEV \
71  -T $TYPE \
72  -n $NUMBER_OF_EVENTS \
73  -d $DEBUG
74 fi
75 
76 if [[ ! -f $WORKDIR/sirene.root ]]; then
77 
78  JSirene \
79  -a $DETECTOR \
80  -f $WORKDIR/gedanken.root \
81  -o $WORKDIR/sirene.root \
82  -F $JPP_DATA/I%p.dat \
83  -k \
84  -N 0 \
85  -d $DEBUG
86 fi
87 
88 if [[ ! -f $WORKDIR/domino.root ]]; then
89 
90  $JPP_DIR/examples/JSirene/JDomino \
91  -a $DETECTOR \
92  -f $WORKDIR/sirene.root \
93  -o $WORKDIR/domino.root \
94  -d $DEBUG
95 fi
96 
97 JPlot1D \
98  -f $WORKDIR/"domino.root:h\[%\]" \
99  -y "1.0e-6 1.0e0" -Y \
100  -\> "#Deltat [ns]" \
101  -\^ "dP/dt npe/ns" \
102  -T "" \
103  -O "HIST][" \
104  -o pdf.$FORMAT $BATCH
105 
106 set_variable PDF $JPP_DATA/J%p.dat
107 set_variable EPS 1.0E-6
108 set_variable PI $((acos(-1)))
109 
110 # constrain angle between [epsilon, pi - epsilon]
111 #
112 function constrain()
113 {
114  if (( $1 > $PI - $EPS )); then
115  echo $(($PI - $EPS))
116  elif (( $1 < $EPS )); then
117  echo $EPS
118  else
119  echo $1
120  fi
121 }
122 
123 for id in {1..31}; do
124 
125  echo "Generating graphics PMT $id"
126 
127  getPMT -a $DETECTOR -p $id | read ID X Y Z DX DY DZ T0 STATUS
128 
129  let "THETA = acos($DZ)"
130 
131  if (( $DX > +$EPS )); then
132  let "PHI = atan(fabs($DY/$DX))"
133  elif (( $DX < -$EPS )); then
134  let "PHI = $PI - atan(fabs($DY/$DX))"
135  else
136  let "PHI = 0.5*$PI"
137  fi
138 
139  set_variable THETA `constrain $THETA`
140  set_variable PHI `constrain $PHI`
141 
142  JPlotPDF \
143  -f ${PDF/\%/1} \
144  -f ${PDF/\%/2} \
145  -f ${PDF/\%/3} \
146  -f ${PDF/\%/4} \
147  -f ${PDF/\%/5} \
148  -f ${PDF/\%/6} \
149  -D "$THETA $PHI" \
150  -R $R_M -E $E_GEV \
151  -H "860 -10 850" \
152  -o $WORKDIR/f1\[${id}\].root
153 
154  set_variable TITLE `printf "PMT[%d] (%5.3f,%5.3f)" $id $THETA $PHI`
155 
156  JPlot1D \
157  -f $WORKDIR/"domino.root:h\[${id}\]" \
158  -f $WORKDIR/f1\[${id}\].root:h0 \
159  -y "1.0e-6 1.0e0" -Y \
160  -\> "#Deltat [ns]" \
161  -\^ "dP/dt npe/ns" \
162  -T "$TITLE" \
163  -O "HIST][" \
164  -o $WORKDIR/pdf_${id}.$FORMAT $BATCH
165 done
166 
167 montage \
168  -tile 8x4 \
169  -geometry +0+0 \
170  $WORKDIR/pdf_{1..31}.$FORMAT \ PDF.$FORMAT >& /dev/null
171 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DEBUG set_variable PDF $JPP_DATA J p dat set_variable HISTOGRAM if do_usage *then usage $script< detector file >< inputfile >< outputfile > fi case set_variable PDF
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
then usage $script< input_file >< detector_file >< output_file(.root)> fi set_variable NUMBER_OF_TIMESLICES set_variable NUMBER_OF_SUMMARYSLICES set_variable NUMBER_OF_EVENTS set_variable ALL_PLOTS case set_variable NUMBER_OF_EVENTS
Definition: JRunAnalyzer.sh:18
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:36
then let DZ
Definition: module-Z:fit.sh:71
version
Definition: JEditTuneHV.sh:5
#define STATUS(A)
Definition: JMessage.hh:63
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
then echo
const JPolynome f1(1.0, 2.0, 3.0)
Function.
const int n
Definition: JPolint.hh:697
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
then JCalibrateToT a
Definition: JTuneHV.sh:116
do set_variable OUTPUT_DIRECTORY $WORKDIR T
static const double PI
Mathematical constants.
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
then awk F
* usage
skip elif((BINFRAC< 1.0))
then for APP in event gandalf start energy
Definition: JMuonMCEvt.sh:44
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:36
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
then display $WORKDIR
Definition: plot-Domino.sh:128
no fit printf nominal n $STRING awk v X
do set_variable MODULE getModule a $WORKDIR detector_a datx L $STRING JEditDetector a $WORKDIR detector_a datx M $MODULE setz o $WORKDIR detector_a datx JEditDetector a $WORKDIR detector_b datx M $MODULE setz o $WORKDIR detector_b datx done echo Output stored at $WORKDIR detector_a datx and $WORKDIR tripod_a txt JDrawDetector2D a $WORKDIR detector_a datx a $WORKDIR detector_b datx L BL o detector $FORMAT $BATCH JDrawDetector2D T $WORKDIR tripod_a txt T $WORKDIR tripod_b txt L BL o tripod $FORMAT $BATCH JCompareDetector a $WORKDIR detector_a datx b $WORKDIR detector_b datx o $WORKDIR abc root &dev null for KEY in X Y Z
do echo n Creating graphics for string $STRING for((FLOOR=$FIRST_FLOOR;$FLOOR<=$LAST_FLOOR;FLOOR+=1))
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DETECTOR_ID set_array RUNS if do_usage *then usage $script< source directory > nThe source directory corresponds to a pre calibrated D0ARCA009 detector fi case set_variable DIR