Skip to content

Commit

Permalink
PrintDQ toolchain (#315)
Browse files Browse the repository at this point in the history
* PrintDQ toolchain

Toolchain to print run quality statistics

* Delete configfiles/PrintDQ/CreateProcessedList.sh

redundant script - there is another one that does the same thing

* Update README.md

update README
  • Loading branch information
S81D authored Nov 25, 2024
1 parent 88afcec commit de2db55
Show file tree
Hide file tree
Showing 13 changed files with 356 additions and 0 deletions.
1 change: 1 addition & 0 deletions configfiles/PrintDQ/ClusterClassifiersConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
verbosity 0
12 changes: 12 additions & 0 deletions configfiles/PrintDQ/ClusterFinderConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# ClusterFinder Config File

verbosity 0
HitStore Hits #Either MCHits or Hits (accessed in ANNIEEvent store)
OutputFile BeamRun_ClusterFinder_DefaultOutput #Output root prefix name for the current run
ClusterFindingWindow 40 # in ns, size of the window used to "clusterize"
AcqTimeWindow 70000 # in ns, size of the acquisition window
ClusterIntegrationWindow 40 # in ns, all hits with +/- 1/2 of this window are considered in the cluster
MinHitsPerCluster 5 # group of hits are considered clusters above this amount of hits
end_of_window_time_cut 0.95 # from o to 1, length of the window you want to loop over with respect to acq. window (1 for full window, 0.95 for 95% from the start)
Plots2D 0 #Draw 2D charge-vs-time plots?
ChankeyToPMTIDMap ./configfiles/EventDisplay/Data-RecoEvent/Chankey_WCSimID.dat
29 changes: 29 additions & 0 deletions configfiles/PrintDQ/EventSelectorConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# EventSelector config file

verbosity 0
MCPMTVolCut 0
MCFVCut 0
MCMRDCut 0
MCPiKCut 0
MCIsMuonCut 0
MCIsElectronCut 0
MCIsSingleRingCut 0
MCIsMultiRingCut 0
MCProjectedMRDHit 0
MCEnergyCut 0
Emin 0 #Minimum energy in MeV
Emax 1000 #Maximum energy in MeV
MRDRecoCut 0
RecoPMTVolCut 0
RecoFVCut 0
NHitCut 0
NHitmin 4 #Minimum number of hit digits
PMTMRDCoincCut 0
PMTMRDOffset 755
PromptTrigOnly 0
TriggerWord -1
SaveStatusToStore 1
NoVeto 0
Veto 0
ThroughGoing 0
IsMC 0 #MC or Data?
12 changes: 12 additions & 0 deletions configfiles/PrintDQ/FindMrdTracksConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# FindMrdTracks Config File
# all variables retrieved with m_variables.Get() must be defined here!

verbosity 0
IsData 1
OutputDirectory .
OutputFile STEC_MRDTracks_cluster40ns
DrawTruthTracks 0 # whether to add MC Truth track info for drawing in MrdPaddlePlot Tool
## note you need to run that tool to actually view the tracks!
WriteTracksToFile 0 # should the track information be written to a ROOT-file?
SelectTriggerType 0 #should the loaded data be filtered by trigger type?
TriggerType Beam #options: Cosmic, Beam, No Loopback
4 changes: 4 additions & 0 deletions configfiles/PrintDQ/FitRWMWaveformConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
verbosityFitRWMWaveform 0
printToRootFile 0


4 changes: 4 additions & 0 deletions configfiles/PrintDQ/LoadANNIEEventConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
verbose 1
FileForListOfInputs ./configfiles/PrintDQ/my_inputs.txt
EventOffset 0
GlobalEvNr 1
1 change: 1 addition & 0 deletions configfiles/PrintDQ/PrintDQConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
verbosity 0
22 changes: 22 additions & 0 deletions configfiles/PrintDQ/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# PrintDQ

***********************
# Description
***********************

The `PrintDQ` toolchain runs the clustering tools (MRD + PMT) over the ProcessedData files created by the event building toolchain to output run quality statistics. For more information, check out the README for the tool: https://github.com/ANNIEsoft/ToolAnalysis/tree/Application/UserTools/PrintDQ. This tool can be used for assessing the quality of Processed runs to help identify issues with the detector.

************************
# Usage
************************

- Populate the `my_inputs.txt` file with all part files from a Processed runs. Running the script `sh create_my_inputs.sh <run_number>` will automatically populate the input file with all Processed Data part files for that run.
- Run the toolchain via: `./Analyse ./configfiles/PrintDQ/ToolChain`
- Run statistics will be outputted via `std::out` once the toolchain completes.


************************
# Additional information
************************

- The current version of the `PrintDQ` tool is intended to be run over 1 run at a time. As the clustering tools may take some time to compile, the processing time of this toolchain may take several minutes (for a ~100 part file run) to ~1 hour (~thousands of part files) depending on how many part files exist.
13 changes: 13 additions & 0 deletions configfiles/PrintDQ/TimeClusteringConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#TimeClustering config file

verbosity 0
MinDigitsForTrack 3
MaxMrdSubEventDuration 30
MinSubeventTimeSep 30
MakeMrdDigitTimePlot 0
LaunchTApplication 0
IsData 1
#OutputROOTFile TimeClustering_MRDTest28_cluster40ns
OutputROOTFile STEC_TimeClusteringOut
MapChankey_WCSimID ./configfiles/SimpleTankEnergyCalibrator/MRD_Chankey_WCSimID.dat

24 changes: 24 additions & 0 deletions configfiles/PrintDQ/ToolChainConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#ToolChain dynamic setup file

##### Runtime Parameters #####
verbose 1 ## Verbosity level of ToolChain
error_level 0 # 0= do not exit, 1= exit on unhandled errors only, 2= exit on unhandled errors and handled errors
attempt_recover 1 ## 1= will attempt to finalise if an execute fails

###### Logging #####
log_mode Interactive # Interactive=cout , Remote= remote logging system "serservice_name Remote_Logging" , Local = local file log;
log_local_path ./log
log_service LogStore


###### Service discovery ##### Ignore these settings for local analysis
service_publish_sec -1
service_kick_sec -1

##### Tools To Add #####
Tools_File configfiles/PrintDQ/ToolsConfig ## list of tools to run and their config files

##### Run Type #####
Inline -1 ## number of Execute steps in program, -1 infinite loop that is ended by user
Interactive 0 ## set to 1 if you want to run the code interactively

10 changes: 10 additions & 0 deletions configfiles/PrintDQ/ToolsConfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
myLoadANNIEEvent LoadANNIEEvent ./configfiles/PrintDQ/LoadANNIEEventConfig
myLoadGeometry LoadGeometry ./configfiles/LoadGeometry/LoadGeometryConfig
myTimeClustering TimeClustering configfiles/PrintDQ/TimeClusteringConfig
myFindMrdTracks FindMrdTracks configfiles/PrintDQ/FindMrdTracksConfig
myClusterFinder ClusterFinder ./configfiles/PrintDQ/ClusterFinderConfig
myClusterClassifiers ClusterClassifiers ./configfiles/PrintDQ/ClusterClassifiersConfig
myEventSelector EventSelector ./configfiles/PrintDQ/EventSelectorConfig
myFitRWMWaveform FitRWMWaveform ./configfiles/PrintDQ/FitRWMWaveformConfig

myPrintDQ PrintDQ ./configfiles/PrintDQ/PrintDQConfig
19 changes: 19 additions & 0 deletions configfiles/PrintDQ/create_my_inputs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

if [[ -z "$1" ]]; then
echo ""
echo "##############################"
echo "Error: No run number provided."
echo "Usage: $0 <run_number>"
echo ""
exit 1
fi

run=$1

output_file="my_inputs.txt"
processed_dir="/pnfs/annie/persistent/processed/processed_EBV2/R${run}/"

find "$processed_dir" -type f -name "Processed*" | sort -t'/' -k2V > "$output_file"

echo "done"
Loading

0 comments on commit de2db55

Please sign in to comment.