DISCLAIMER: Any plots shown in this tutorial should not be shown at conferences without prior approval by the ePIC LFHCal DSC. They are purely meant as illustrations what the software can do in its current state.
In order to get started make sure you download the software:
have a working developer version of root and can actually compile the software. The repository contains 2 major version of the analysis code:
OldStructure (used prior to the Aug. 2024 TB)
NewStructure (used since Aug. 2024)
A basis intro can description is also given in the README in the main directory of the software. We only left the older part of the software as inspiration for some future parts of the code. Any further development should be done in "NewStructure". So in order to see whether everything works in principle. Open a shell in the main checkout of the git-repo, make sure you have access to root and do
cd NewStructure
make Convert DataPrep DataAna
This should compile the primary class for the calibrations. You can test the compilation as follows
./Convert -h
This should give you all the options the program Analyse can handle. If that worked , you'll need some data! If not something went wrong with your compilation.
In case you make any major changes to the basis classes remember to do
make clean
make Convert DataPrep DataAna
Otherwise you might be building against an outdated class by accident. In case you pulled changes from the git repository, always make yourself familiar with the new options first using:
./Convert -h
Usage:
./Convert [-option (arguments)]
Options:
-a printing calib object to file (using name of output root or calib root file ending in txt)
-c xxx Convert ASCII input file xxx into root format output
-d [0-n] switch on debug info with debug level 0 to n
-f Force to write output if already exist
-i uuu Input file in root format
-m www Name of mapping file 2024 PS TB [../configs/mappingFile_202409_CAEN.txt]
-o vvv Output file name (mandatory)
-O kkk Output directory name for plots (mandatory)
-r rrr Name of run list file 2024 PS TB [../configs/DataTakingDB_202409_CAEN.csv]
-y yyyy setting year externally to narrow parameters
-h this help
Examples:
./Convert -c (-f) input.txt -o output.root (Convert ASCII to root) (-f to overwrite existing output)
./DataPrep -h
Usage:
./DataPrep [-option (arguments)]
Options:
-a printing calib object to file (using name of output root or calib root file ending in txt)
-A aaa stripping only calib and setup object to external file
-b calculate bad channel map internally
-B lll apply external bad channel map during transfer of calibs
-C yyy Apply calibrations stored in yyy root file to the input uncalibrated file
-d [0-n] switch on debug info with debug level 0 to n
-e extended plotting = 1
-E extended plotting = 2
-f Force to write output if already exist
-F fff set explicit plot extension explicitly, default is pdf
-i uuu Input file in root format
-k kkk enabling overwriting of calib file using external calib txt file
-L LLL enable testing with only limited number of events
-m www Name of mapping file 2024 PS TB [../configs/mappingFile_202409_CAEN.txt]
-M save mip triggered cells only
-n extract noise after first mip fits and reevaluate pedestals
-N save noise triggered cells only
-o vvv Output file name (mandatory)
-O kkk Output directory name for plots (mandatory)
-p Extract pedestal from input file and store it in output file
-P zzz Correct pedestals stored in zzz root file and applied to input file
-r rrr Name of run list file 2024 PS TB [../configs/DataTakingDB_202409_CAEN.csv]
-s extract scaling constant from input data
-S extract scaling constant from input data in 2nd iteration based on pretriggered data
-t use local trigger eval from existing input, don't redo in calibrate
-T ttt evaluate local triggers before calibrating, use external calib file ttt
-y yyyy setting year externally to narrow parameters
-h this help
Examples:
./DataPrep -p (-f) -o OutputWithExtractedPedestal.root -i input.root (-f to overwrite existing output)
./DataPrep -s (-f) -o OutputWithMIPscaling.root -i input.root (-f to overwrite existing output)
./DataPrep -S (-f) -o OutputWithMIPscaling.root -i input.root (-f to overwrite existing output)
./DataPrep -s (-f) -o OutputWithMIPscaling.root -P PedestalInput.root -i RawInput.root (-f to overwrite existing output)
./DataPrep -C Calibration.root (-f) -o CalibratedOutput.root -i Input.root (-f to overwrite existing output)
./DataAna -h
Usage:
./DataAna [-option (arguments)]
Options:
-a printing calib object to file (using name of output root or calib root file ending in txt)
-d [0-n] switch on debug info with debug level 0 to n
-f Force to write output if already exist
-i uuu Input file in root format
-o vvv Output file name
-O kkk Output Histos saved in
-P zzz Plots directory path
-Q Run basic QA routine
-r rrr Name of run list file 2024 PS TB [../configs/DataTakingDB_202409_CAEN.csv]
-y yyyy setting year externally to narrow parameters
Examples:
./DataAna -Q (-f) -P plotDir/ -O OutputHist.root -i input.root (-f to overwrite existing output)
If you don't know where raw files for the data are contact Friederike Bock (fbock@cern.ch) and she'll let you know how to get access.
As you might be analysing quite a lot of runs and doing things in parallel for instance on the same data set but with different settings it might be worth separating the directory in which you have the checked out version of the software and where you are compiling/running & storing things.
To do so we prepared a small script which can create softlinks to your original software directory (allowing you to have the same software version w/o multiple copies). This script is called $prepareAnalysisDirectory.sh and can be executed as follows on any unix system: