Difference between revisions of "GlueX Analysis Software"

From GlueXWiki
Jump to: navigation, search
(Summary)
(Summary)
Line 2: Line 2:
 
* In his/her plugin, a user specifies the reaction(s) he/she wants to study (<span style="color:#0000FF">DReaction</span>), along with the histograms and cuts to perform (if any) (<span style="color:#0000FF">DAnalysisAction</span>), then just asks JANA for the results (<span style="color:#0000FF">DAnalysisResults</span>).
 
* In his/her plugin, a user specifies the reaction(s) he/she wants to study (<span style="color:#0000FF">DReaction</span>), along with the histograms and cuts to perform (if any) (<span style="color:#0000FF">DAnalysisAction</span>), then just asks JANA for the results (<span style="color:#0000FF">DAnalysisResults</span>).
 
* These results can then be saved to a ROOT TTree (<span style="color:#0000FF">DEventWriterROOT</span>), or can be used to make a physical REST skim (<span style="color:#0000FF">DEventWriterREST</span>).
 
* These results can then be saved to a ROOT TTree (<span style="color:#0000FF">DEventWriterROOT</span>), or can be used to make a physical REST skim (<span style="color:#0000FF">DEventWriterREST</span>).
* Through this process, the program creates all possible track combinations for the desired reaction (<span style="color:#0000FF">DParticleCombo</span>, tag <span style="color:#0000FF">"PreKinFit"</span>), kinematic fits the event to the reaction (if requested) (<span style="color:#0000FF">DKinFitResults</span>), and updates the tracks with the new kinfit information (<span style="color:#0000FF">DParticleCombo</span>, no tag).
+
* Through this process, the program creates all possible particle combinations for the desired reaction (<span style="color:#0000FF">DParticleCombo</span>, kinematic fits the event to the reaction (if requested) (<span style="color:#0000FF">DKinFitResults</span>), and creates a new (<span style="color:#0000FF">DParticleCombo</span>) with the new kinfit information.
 
* The <span style="color:#0000FF">DAnalysisAction</span> objects encapsulate the setup and execution of an action (e.g. cut, histogram) into a single object.  
 
* The <span style="color:#0000FF">DAnalysisAction</span> 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.  
 
** 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.  

Revision as of 06:21, 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.

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