GlueX Analysis Software
From GlueXWiki
Contents
[hide]Summary
- In his/her plugin, a user specifies the reaction(s) he/she wants to study (DReaction), along with the histograms and cuts to perform (if any) (DAnalysisAction), then just asks JANA for the results (DAnalysisResults).
- These results can then be saved to a ROOT TTree (DEventWriterROOT), or can be used to make a physical REST skim (DEventWriterREST).
- Through this process, the program creates all possible particle combinations for the desired reaction (DParticleCombo, kinematic fits the event to the reaction (if requested) (DKinFitResults), and creates a new (DParticleCombo) with the new kinfit information.
- The DAnalysisAction objects encapsulate the setup and execution of an action (e.g. cut, histogram) into a single object.
- Many common actions are predefined in DANA (see libraries/ANALYSIS/DHistogramActions.h and libraries/ANALYSIS/DCutActions.h), but the user can write custom ones for their analysis in their plugin.
- The DAnalysisResults objects indicate which DParticleCombo objects have passed/failed the DAnalysisAction cuts for each DReaction.
Super Quick Start
- See talk about using the ReactionFilter plugin to define channels on the command line and produce ROOT Trees automatically.
Manual Start
- Use the MakeReactionPlugin.pl perl script (it is installed to $PATH) to create a new plugin for your analysis.
- Execute the script with no arguments for usage instructions. A minimum of one argument is required (the plugin name).
- It is recommended that you run either script with unique names as the arguments. That way this plugin can be executed with other analysis plugins simultaneously.
- Use the MakeAnalysisAction.pl perl script (it is installed to $PATH) to create any desired custom DAnalysisAction objects for your analysis.
- See existing analysis actions in sim-recon/src/libraries/ANALYSIS/DHistogramActions.h and sim-recon/src/libraries/ANALYSIS/DCutActions.h for examples.
- In DReaction_factory::init(void), create a DReaction object (with a unique name!) for each analysis you want to perform, specify the kinematic fit type for it, specify the DAnalysisActions for each, and add them to _data.
- The DAnalysisAction objects are executed sequentially for each possible particle combination (DParticleCombo) matching the given DReaction, until it fails a cut.
- If more than one DAnalysisAction object of a given type is used in a DReaction, all of their constructors must be called with a unique identifier string (including the default "").
- More details on analysis actions in sim-recon/src/libraries/ANALYSIS/: DAnalysisAction.*, DHistogramActions.*, DCutActions.*
- Setup the DEventProcessor (e.g. grab results, save output to ROOT, etc.).
- Compile and run hd_root with your plugin (preferably on REST data).
Known Issues
Reconstruction Libraries: Minor Software Issues
- DTOFPoint::tErr is not set.
ANALYSIS/PID Libraries: Minor Software Issues
- PID/Detector-Matching:
- Several variables in DDetectorMatches are not yet calculated, are set to 0.0 (e.g. BCAL dx, correlations, variances, etc.)
- For PID Timing FOM calculation, hard-coded values/functions are used for the uncertainties, rather than the covariance matrices.
- For PID dE/dx FOM calculation, the variance is hard-coded from a MC study.
More Information
Presentations
- Example analysis γp→ω(p), October 2015
- Analysis software updates since the 2013 Workshop (Through June 2015)
- γp→π+π+π-(n) and the Analysis Workshop (October 2013 GlueX Collaboration Meeting (Slides & Audio))
- July 2013 GlueX Analysis Workshop (Full Prezi, Full PDF)
- Prezi/PDF/Audio/Screen_Video for individual talks can be found on the workshop page.
- Note: to navigate the Prezi: use the arrow keys to transition between the frames, or use your mouse (click on a frame outline to zoom to it, pan, etc.)
- Introduction: Presentation at February 2013 GlueX Collaboration Meeting (Slides & Audio)
Classes
- Data Classes: Generated, Detector, Particle, and REST
- DReaction
- DParticleCombo
- Analysis Actions
- ANALYSIS Library Factories