/[PAMELA software]/PamCut/CollectionActions/ReprocessTrackAction/ReprocessTrackAction.h
ViewVC logotype

Contents of /PamCut/CollectionActions/ReprocessTrackAction/ReprocessTrackAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.2.1 - (show annotations) (download)
Thu Jul 8 12:57:55 2010 UTC (14 years, 4 months ago) by pam-fi
Branch: V8
CVS Tags: MergedToHEAD_1
Changes since 1.1: +3 -1 lines
File MIME type: text/plain
Added the possibility to recompute only level 1.

1 /*
2 * ReprocessTrackAction.h
3 *
4 * Created on: 23/dic/2009
5 * Author: N. Mori
6 */
7
8 #ifndef REPROCESSTRACKACTION_H_
9 #define REPROCESSTRACKACTION_H_
10
11 #include "../CollectionAction/CollectionAction.h"
12
13 /*! @brief Level 1 reprocessing
14 *
15 * This action reprocesses the level 1 to obtain a new level 2. The level 1 can be recomputed
16 * from level 0 or provided externally. Remember that the standard PamLevel2::GetPamTree needs to
17 * be instructed explicitly to open level 0 informations for tracker, by appending "+TRK0" to its 3rd
18 * parameter. Make sure that the PamLevel2 object you will use with this action (or generally, with every
19 * code that needs level 0) has been correctly initialized.
20 */
21 class ReprocessTrackAction: public CollectionAction {
22 public:
23
24 /*! @brief Constructor
25 *
26 * @param actionName The action's name.
27 * @param newTrkL1 level1 computed outside the action. If NULL, the action will compute the level 1
28 * starting from level 0.
29 * @param externalFlag This can be used to control externally if the event has to be
30 * reprocessed or not. If NULL, all the events will be reprocessed. If it
31 * points to a bool variable, an event will be reprocessed only if this variable
32 * is true.
33 * @param reprocL2 If false, only the level 1 will be recomputed (if newTrkL1 is NULL, otherwise nothing is done).
34 */
35 ReprocessTrackAction(const char *actionName, TrkLevel1 **newTrkL1 = NULL, bool *externalFlag = NULL, bool reprocL2 = true) :
36 CollectionAction(actionName), _newTrkL1(newTrkL1), _externalFlag(externalFlag), _allEvents(0), _reprocessed(0),
37 _lostTracks(0), _recoveredTracks(0) {
38
39 }
40
41 /*! @brief Destructor. */
42 ~ReprocessTrackAction() {
43 //delete _newTrkL1; // This causes a double delete (I suppose...)
44 }
45
46 /* @brief The reprocessing procedure.
47 *
48 * This will reprocess tracker information, depending on the flags set in constructor's parameter list.
49 */
50 void OnGood(PamLevel2 *event);
51
52 /*! @brief The finalization procedure.
53 *
54 * Produces a screen output of the refitting statistics (reprocessed events, recovered tracks and so on).
55 */
56 void Finalize() {
57 cout << "\n----> Reprocessing stats:\n";
58 cout << " events : " << _allEvents << "\n";
59 cout << " reprocessed: " << _reprocessed << "\n";
60 cout << " Tracks:\n";
61 cout << " lost : " << _lostTracks << "\n";
62 cout << " recovered : " << _recoveredTracks << endl;
63
64 }
65
66 private:
67
68 TrkLevel1 **_newTrkL1;
69 bool *_externalFlag;
70 bool _reprocL2;
71 unsigned int _allEvents, _reprocessed, _lostTracks, _recoveredTracks;
72
73 };
74
75 #endif /* REPROCESSTRACKACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23