Difference between revisions of "GlueX Analysis Software"

From GlueXWiki
Jump to: navigation, search
(Quick Start)
(Manual Start)
Line 10: Line 10:
 
* See [https://halldweb.jlab.org/doc-private/DocDB/ShowDocument?docid=3407 talk] about using the <span style="color:#0000FF">ReactionFilter</span> plugin to define channels on the command line and produce ROOT Trees automatically.
 
* See [https://halldweb.jlab.org/doc-private/DocDB/ShowDocument?docid=3407 talk] about using the <span style="color:#0000FF">ReactionFilter</span> plugin to define channels on the command line and produce ROOT Trees automatically.
  
== Manual Start ==
+
== Manual Quick Start ==
  
 
* Use the <span style="color:#0000FF">MakeReactionPlugin.pl</span> perl script (it is installed to $PATH) to create a new plugin for your analysis.  
 
* Use the <span style="color:#0000FF">MakeReactionPlugin.pl</span> perl script (it is installed to $PATH) to create a new plugin for your analysis.  

Revision as of 06:24, 3 November 2017

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 Quick 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

Classes

Other