Organization of Tasks within StEEmcAnalysisTreeMaker

My thinking in creating an EEMC Analysis tree maker is to seperate analysis tasks from tasks related to interpreteing the data from the EEMC.  The StEEmcAnalysisTree is designed to be a tree ready for analysis, with all the steps betweeen uDST files and the physics analysis being included in the maker. Following is a diagram representing the various tasks and their relationships.

 

Diagram for StEEmcAnalysisTreeMaker

 

The orange boxes represent basic tasks.  Black arrows coming from the right side of "tasks" represent pointers to other subtasks.  Blue circles represent specific methods or catagories of methods.  A purple, curvy arrow points from tasks to methods to accomplish the task.  Each method also represents a parent class (often abstract), with the available methods being provided in child classes.

For example, the AnalysisTreeMaker task is divided into tasks, HitFinding and several Discriminators.  The catagory of hitfinding algorithms which is denoted "simple" involve four sub-tasks, each of which can have different methods.

Note, the AnalysisTreeMaker can have pointers to as many discriminator classes as the user requests.  Each discriminator determines the probability a hit has a given property, i.e. being a hadron, or part of jet.  For now, discriminators are assumed to be event level discriminators, i.e. allowing the possibility to take all associated information regarding the event into consideration when determining the probability for all the hits.  Note, the discriminators also use the results of the HitFinder and possibly other discriminators in making their determination.