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