- find sx3 events, gainmatch them, calibrate, make a vector of these called SX3_Events - same step for QQQ, call it QQQ_Events - find anodeWire clusters, cathodeWire clusters, make vectors of these - make PC_Events from wire clusters, save 'anode only' and 'cathode only' cases just in case * since PC_Events, QQQ_Events, SX3_Events are all STL containers, we can pass them to functions that perform modular analyses * In this commit: - 4-wire offsets used, along with reliably figuring out phi-offset between QQQ/SX3/PC. We are close, except for some QQQ fine-tuning due to their angular extent not being 90 deg - the pczfix step now makes sense, 1-wire calculations also loosely match between guess and pcz - the nonlinearity correction/dynamic range fix is just adding to the resolution - p(a,a) data analysable by QQQ alphas show good kinematics, when doing the following gates: > A1C1 event pczs dithered, A1C2 events made into pczfix > phicut (45 deg) to gate out p+a correlations, SiE < 5 MeV && PCa > 6000 to select the alpha blob in p+a > Some selection on VertexReconXY so that the Perp() of the vertex is < 6mm > Selection on VertexReconZ so that z is in [-173.6, 100]. Fine alignment pending - Doing all the above gives reasonable p(a,a) kinematic curves with good statistics, Ex peaked at -0.7 MeV, close but not perfect - The above steps, when repeated with oneWire anode events stored in aClusters also yields a very reasonable kinematic locus, and Ex value, even more statistics - Not sure how much of this is autocorrelation stuff but > VertexReconZ vs Ef in QQQ (Ef is eloss-fixed alpha energy using path length) shows sensible trends. - Why Ex is not centered around zero might need more thought. - VertexReconXY is suspiciously well-centered, might need some more thought as well. * Some infrastructure that allows processing of 17F data is also in the pipeline now. * One fairly important bug got fixed which was ignoring qqq.id[0] when making QQQ_Events * Ideally, follow-ups to the above done on 27Al, 17F will make their own functions that are then called separately using booleans at the very top. * The fate of proton dE signals is out to jury.
42 lines
1.4 KiB
Bash
42 lines
1.4 KiB
Bash
#rm results_run*.root
|
|
export DATASET="27Al"
|
|
export flip180="0"
|
|
export flipa=0
|
|
export reactiondata=1
|
|
export anode_offset=0
|
|
root -l -q -x -e ".L MakeVertex.C++"
|
|
rm 27Al_output/*.root
|
|
#declare -i run=28
|
|
#while [[ $run -lt 34 ]]; do #runs 1 to 84
|
|
# wrun=$(printf "%03d" $run)
|
|
# root -q -l -b -x ../ANASEN_analysis/data/27Al_Data/Run_"$wrun"_mapped.root -e 'tree->Process("Make#Vertex.C+O")'; mv Analyzer_SX3.root 27Al_output/results_run$wrun.root;
|
|
# run=run+1
|
|
#done
|
|
|
|
declare -i run=78
|
|
while [[ $run -lt 89 ]]; do #runs 1 to 84
|
|
wrun=$(printf "%03d" $run)
|
|
#root -q -l -b -x ../ANASEN_analysis/data/27Al_Data/Run_"$wrun"_mapped.root -e 'tree->Process("MakeVertex.C+O","Analyzer_27Al.root")'; mv Analyzer_27Al.root 27Al_output/results_run$wrun.root;
|
|
run=run+1
|
|
done
|
|
|
|
function run_once() {
|
|
wrun=$(printf "%02d" $1)
|
|
file_exists=$(test -f ../ANASEN_analysis/data/27Al_Data/Run_0"$wrun"_mapped.root)
|
|
if [[ $file_exists -ne 0 ]]; then return; fi
|
|
root -q -l -b -x ../ANASEN_analysis/data/27Al_Data/Run_0"$wrun"_mapped.root -e $(printf 'tree->Process("MakeVertex.C+O","analyzed_run%s.root")' "$wrun");
|
|
mv analyzed_run$wrun.root 27Al_output/results_run$wrun.root;
|
|
}
|
|
|
|
export -f run_once
|
|
time parallel -j 6 --ctag run_once {1} ::: {50..59}
|
|
time parallel -j 2 --ctag run_once {1} ::: {78..89}
|
|
|
|
|
|
hadd -k -j 4 output.root 27Al_output/results_run*.root
|
|
mv output.root output_27Al.root
|
|
|
|
unset souce_vertex
|
|
unset DATASET
|
|
unset flip180
|