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

Contents of /PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.2.3 - (show annotations) (download)
Thu Jun 3 14:14:12 2010 UTC (14 years, 8 months ago) by pam-fi
Branch: V8
Changes since 1.1.2.2: +24 -2 lines
File MIME type: text/plain
Negative chi2 assigned to badly-refitted tracks. The action now checks if at least one track exists before refitting (so it doesn't crashes on events without tracks).

1 /*
2 * RefitTrackAction.h
3 *
4 * Created on: 10/may/2010
5 * Author: N. Mori
6 */
7
8 #ifndef REFITTRACKACTION_H_
9 #define REFITTRACKACTION_H_
10
11 #include "../CollectionAction/CollectionAction.h"
12 #include <TRandom3.h>
13
14 /*! @brief Track refitting.
15 *
16 * This action refits the TRK track using only level 2 data. This means that it will use the same
17 * clusters which are associated to the track, with the possibility to mask or shift some of them.
18 * If a refit fails the event will not be discarded (since this is not a cut) but chi2 will be negative,
19 * and the event will be subsequently discarded by an eventual TrkPhSinCut.
20 * This action can be used also before TrkPhSinCut, since it checks for the existence of at least
21 * one track before refitting. The refitted track is always the first "physical" track; the ordering
22 * criterion can be set using #SetSortingMethod. If, instead, this action is placed after a TrkPhsinCut
23 * it is not necessary to set this parameter, since the value used for TrkPhSinCut will be automatically
24 * used (of course, it can be used as well if a different ordering may be needed).
25 * For a complete reprocess and fit use #ReprocessTrackAction.
26 */
27 class RefitTrackAction: public CollectionAction {
28 public:
29
30 /*! @brief Constructor
31 *
32 * @param actionName The action's name.
33 * @param spreadX The width of the gaussian spread applied to all the X view coordinates, in cm.
34 * @param spreadY The width of the gaussian spread applied to all the Y view coordinates, in cm.
35 * @param maskedViews The excluded views. 0 means that all the views will be used, while #T6X means that the
36 * X view of the last tracker plane will be ignored. For other combinations, sum up the values
37 * defined in #TRKLAYERS: T1X + T1Y will exclude the whole first plane, for example.
38 * @param trkParamsFile The file containing the tracker parameters to be used. Default value corresponds to the standard
39 * parameters used for data reduction.
40 */
41 RefitTrackAction(const char *actionName, float spreadX = 0., float spreadY = 0., int maskedViews = 0.,
42 TString trkParamsFile = "") :
43 CollectionAction(actionName), _spreadX(spreadX), _spreadY(spreadY), _maskedViews(maskedViews), _trkParamsFile(
44 trkParamsFile), _sortingMethod(NULL) {
45
46 }
47
48 /*! @brief Destructor. */
49 ~RefitTrackAction() {
50 }
51
52 /* @brief The refitting procedure.
53 *
54 * This will refit the tracker track introducing the mask and spreads defined in the constructor.
55 */
56 void OnGood(PamLevel2 *event);
57
58 /*! @brief The finalization procedure. */
59 void Finalize() {
60
61 }
62
63 /* @brief Set the track sorting criterion
64 *
65 * The action refits the first track, which is the one obtained with PamLevel2::GetTrack(0). This method can
66 * be used to set the sorting criterion used to determine which track is the first.
67 *
68 * @param sortingMethod The sorting method. Format has to be compatible with the argument of PamLevel2::SetSortingMethod.
69 */
70 void SetSortingMethod(const char *sortingMethod) {
71 _sortingMethod = sortingMethod;
72 }
73
74 private:
75
76 float _spreadX, _spreadY;
77 int _maskedViews;
78
79 static TRandom3 *_r3;
80 static long int _currEvent;
81
82 float _xmBackup[6], _ymBackup[6];
83 int _layerXBackup[6], _layerYBackup[6];
84
85 TString _trkParamsFile;
86 static TString _currTrkParamsFile;
87
88 const char *_sortingMethod;
89 };
90
91 #endif /* REFITTRACKACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23