Jpp  17.3.0-rc.2
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JCalibrateK40-PMT.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 #
4 # \author mdejong
5 #
6 version=1.0
7 script=${0##*/}
8 
9 # ------------------------------------------------------------------------------------------
10 #
11 # Utility script to test JCalibrateK40/JFitK40.
12 #
13 # ------------------------------------------------------------------------------------------
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 source $JPP_DIR/setenv.sh $JPP_DIR
21 
22 set_variable DIR $JPP_DIR/examples/JCalibrate
25 set_variable: FORMAT GRAPHICS_FORMAT gif
26 set_variable+ BATCH GRAPHICS_BATCH -B
27 
28 if do_usage $*; then
29  usage "$script [working directory]"
30 fi
31 
32 case $# in
33  1) set_variable WORKDIR $1;;
34 esac
35 
37 set_variable BACKGROUND_HZ 5e3 500
38 set_variable numberOfSlices 6000
39 set_variable DAQ_TIMESLICE JDAQTimesliceL1
40 
42 set_variable numberOfLines 1
43 set_variable numberOfFloors 1
44 
45 JDetector \
46  -D 1 \
47  -@ "detectorType = $detectorType" \
48  -@ "numberOfLines = $numberOfLines" \
49  -@ "numberOfFloors = $numberOfFloors" \
50  -o $DETECTOR \
51  -d $DEBUG
52 
53 set_variable MODULE `getModule -a $DETECTOR -L "1 1"`
54 
55 if ( ! reuse_file $WORKDIR/timeslice.root ); then
56 
57  JRandomTimesliceWriter \
58  -a $DETECTOR \
59  -o $WORKDIR/timeslice.root \
60  -B "$BACKGROUND_HZ" \
61  -n $numberOfSlices \
62  -d $DEBUG --!
63 fi
64 
65 if ( ! reuse_file $WORKDIR/trigger_processor.root ); then
66 
67  JTriggerProcessor \
68  -a $DETECTOR \
69  -f $WORKDIR/timeslice.root \
70  -o $WORKDIR/trigger_processor.root \
71  -C JDAQTimesliceL0 \
72  -@"ctMin=-1.0" \
73  -@"TMaxLocal_ns=25" \
74  -@"writeL1=1" \
75  -d $DEBUG
76 fi
77 
78 if (( 1 )); then
79 
80  JCalibrateK40 \
81  -f $WORKDIR/trigger_processor.root \
82  -C $DAQ_TIMESLICE \
83  -a $DETECTOR \
84  -o $WORKDIR/monitor.root \
85  -d $DEBUG
86 
87  JMergeCalibrateK40 \
88  -f $WORKDIR/monitor.root \
89  -o $WORKDIR/merge.root \
90  -d $DEBUG
91 
92  JFitK40 \
93  -a $DETECTOR \
94  -f $WORKDIR/merge.root \
95  -o $WORKDIR/fit.root \
96  -w \
97  -d $DEBUG
98 
99  for (( PMT = 0; PMT < 31; PMT += 1 )); do
100 
101  rm -f $WORKDIR/trigger_processor-\[${PMT}\].root
102 
103  $DIR/JRemovePMT \
104  -f $WORKDIR/trigger_processor.root \
105  -o $WORKDIR/trigger_processor-\[${PMT}\].root \
106  -P "-1 $PMT" \
107  -d $DEBUG
108 
109  JCalibrateK40 \
110  -f $WORKDIR/trigger_processor-\[${PMT}\].root \
111  -C $DAQ_TIMESLICE \
112  -a $DETECTOR \
113  -o $WORKDIR/monitor-\[${PMT}\].root \
114  -d $DEBUG
115 
116  JMergeCalibrateK40 \
117  -f $WORKDIR/monitor-\[${PMT}\].root \
118  -o $WORKDIR/merge-\[${PMT}\].root \
119  -d $DEBUG
120 
121  JFitK40 \
122  -a $DETECTOR \
123  -f $WORKDIR/merge-\[${PMT}\].root \
124  -o $WORKDIR/fit-\[${PMT}\].root \
125  -w \
126  -d $DEBUG
127  done
128 fi
129 
130 INPUT_FILES=(`ls -U $WORKDIR/fit.root $WORKDIR/fit-\[*\].root`)
131 
132 JVariance1D \
133  -f "${INPUT_FILES//\.root/.root:${MODULE}.1QE}" \
134  -x "101 -0.1 +0.1" \
135  -F first \
136  -o $WORKDIR/variance.root
137 
138 JScale1D \
139  -f $WORKDIR/variance.root:h0 \
140  -o $WORKDIR/scale.root \
141  -F "1.0/GetEntries" \
142  -O "nosw2"
143 
144 JPlot1D \
145  -f $WORKDIR/scale.root:h0 \
146  -y "1.0e-3 1.0" -Y \
147  -\> "#DeltaQE" \
148  -\^ "number of PMTs" \
149  -s 1010 \
150  -T "" -o QE-summary.$FORMAT $BATCH
151 
152 
153 JPlot1D \
154  -w 1000x500 \
155  -f $WORKDIR/fit.root:${MODULE}.1QE \
156  -f $WORKDIR/fit-\[0\].root:${MODULE}.1QE \
157  -f $WORKDIR/fit-\[10\].root:${MODULE}.1QE \
158  -f $WORKDIR/fit-\[20\].root:${MODULE}.1QE \
159  -f $WORKDIR/fit-\[30\].root:${MODULE}.1QE \
160  -y "0.7 1.5" \
161  -\> "PMT" \
162  -\^ "QE" \
163  -L TR \
164  -T "" \
165  -o QE.$FORMAT $BATCH
166 
&set_variable DAQ_TIMESLICE
Definition: JLegolas.sh:32
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 >[user directory] nThe source directory corresponds to a pre calibrated D0ARCA009 detector fi case set_variable DIR
remove to overwrite exit fi JDetector D $ID detectorType
data_type w[N+1][M+1]
Definition: JPolint.hh:778
version
Definition: JEditTuneHV.sh:5
JFitK40_t< TF2 > JFitK40
Type definition for backward compatibility.
Definition: JFitK40.hh:807
static const JPBS_t PMT(3, 4, 2, 3)
PBS of photo-multiplier tube (PMT)
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
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 The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
then echo
static const double C
Physics constants.
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
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
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:77
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
static void monitor()
Definition: DataQueue.cc:32
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
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
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
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
void scale(vector< double > &v, double c)
scale vector content