18 |
* It takes care of opening the file, filling the tree and writing it on a file. Descendants |
* It takes care of opening the file, filling the tree and writing it on a file. Descendants |
19 |
* have to implement the pure virtual members #_InitBranches() and #_ComputeBranches, which |
* have to implement the pure virtual members #_InitBranches() and #_ComputeBranches, which |
20 |
* takes care, for the current event, of creating the branches and filling the structures |
* takes care, for the current event, of creating the branches and filling the structures |
21 |
* linked to the branches. |
* linked to the branches. #_InitBranches() will be automatically called at the beginning of |
22 |
|
* the analysis, while #_ComputeBranches will be invoked for each event. |
23 |
*/ |
*/ |
24 |
|
|
25 |
class TreeOutputAction: public CollectionAction { |
class TreeOutputAction: public CollectionAction { |
41 |
/*! @brief The pre-selection tasks. |
/*! @brief The pre-selection tasks. |
42 |
* |
* |
43 |
* This routine opens the ROOT output file and calls the #_InitBranches() method. |
* This routine opens the ROOT output file and calls the #_InitBranches() method. |
44 |
|
* |
45 |
|
* @param events Pointer to PamLevel2 object which contains the events to analize. |
46 |
*/ |
*/ |
47 |
void Setup(PamLevel2 *events); |
void Setup(PamLevel2 *events); |
48 |
|
|
77 |
* Concrete implementations of this method will have to set the branches to save in |
* Concrete implementations of this method will have to set the branches to save in |
78 |
* the file. The tree object which has to be branched is #_tree. If one wants to |
* the file. The tree object which has to be branched is #_tree. If one wants to |
79 |
* branch his own structure, one possibility is to define it in the child class' header. |
* branch his own structure, one possibility is to define it in the child class' header. |
80 |
|
* |
81 |
|
* @param events Pointer to PamLevel2 object which contains the events to analize. |
82 |
*/ |
*/ |
83 |
virtual void _InitBranches(PamLevel2 *event) = 0; |
virtual void _InitBranches(PamLevel2 *events) = 0; |
84 |
|
|
85 |
/*! @brief The branch computation routine. |
/*! @brief The branch computation routine. |
86 |
* |
* |
88 |
* event's data. Remember to NOT call _tree.Fill() here: this operation is automatically |
* event's data. Remember to NOT call _tree.Fill() here: this operation is automatically |
89 |
* handled by #OnGood(), so you have only to care about filling the buffers. |
* handled by #OnGood(), so you have only to care about filling the buffers. |
90 |
* Implementation is demanded to concrete children classes. |
* Implementation is demanded to concrete children classes. |
91 |
|
* |
92 |
|
* @param event The selected event. |
93 |
*/ |
*/ |
94 |
virtual void _ComputeBranches(PamLevel2 *event) = 0; |
virtual void _ComputeBranches(PamLevel2 *event) = 0; |
95 |
|
|