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

Annotation of /PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Thu Jul 8 14:00:14 2010 UTC (14 years, 4 months ago) by pam-fi
Branch: MAIN
CVS Tags: MergedFromV8_1, V9, HEAD
Changes since 1.1: +97 -0 lines
File MIME type: text/plain
Merged from branch V8 (tag MergedToHEAD_1). Tag before the merge: BeforeMergingFromV8_1.

1 pam-fi 1.2 /*
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     * Before fitting, the track parameters (measured impact positions and "good" flags) are reset to the
26     * original values. This means that if two or more RefitTrackAction objects are used, each of them will
27     * try to refit the original track of the current event (applying its own mask and spreads), regardless of
28     * what was obtained with previous refits.
29     * For a complete reprocess and fit use #ReprocessTrackAction.
30     */
31     class RefitTrackAction: public CollectionAction {
32     public:
33    
34     /*! @brief Constructor
35     *
36     * @param actionName The action's name.
37     * @param spreadX The width of the gaussian spread applied to all the X view coordinates, in cm.
38     * @param spreadY The width of the gaussian spread applied to all the Y view coordinates, in cm.
39     * @param maskedViews The excluded views. 0 means that all the views will be used, while #T6X means that the
40     * X view of the last tracker plane will be ignored. For other combinations, sum up the values
41     * defined in #TRKLAYERS: T1X + T1Y will exclude the whole first plane, for example.
42     * @param trkParamsFile The file containing the tracker alignment parameters to be used. Default value corresponds to
43     * the values contained in the official software calibration directory.
44     */
45     RefitTrackAction(const char *actionName, float spreadX = 0., float spreadY = 0., int maskedViews = 0,
46     TString trkParamsFile = "") :
47     CollectionAction(actionName), _spreadX(spreadX), _spreadY(spreadY), _maskedViews(maskedViews), _trkParamsFile(
48     trkParamsFile), _sortingMethod(NULL) {
49    
50     }
51    
52     /*! @brief Destructor. */
53     ~RefitTrackAction() {
54     }
55    
56     /* @brief The refitting procedure.
57     *
58     * This will refit the tracker track introducing the mask and spreads defined in the constructor.
59     *
60     * @param event The event to analyze.
61     */
62     void OnGood(PamLevel2 *event);
63    
64     /*! @brief The finalization procedure. */
65     void Finalize() {
66    
67     }
68    
69     /*! @brief Sets the track sorting criterion.
70     *
71     * The action refits the first track, which is the one obtained with PamLevel2::GetTrack(0). This method can
72     * be used to set the sorting criterion used to determine which track is the first.
73     *
74     * @param sortingMethod The sorting method. Format has to be compatible with the argument of PamLevel2::SetSortingMethod.
75     */
76     void SetSortingMethod(const char *sortingMethod) {
77     _sortingMethod = sortingMethod;
78     }
79    
80     private:
81    
82     float _spreadX, _spreadY;
83     int _maskedViews;
84    
85     static TRandom3 *_r3;
86     static long int _currEvent;
87    
88     static float _xmBackup[], _ymBackup[];
89     static int _layerXBackup[], _layerYBackup[];
90    
91     TString _trkParamsFile;
92     static TString _currTrkParamsFile;
93    
94     const char *_sortingMethod;
95     };
96    
97     #endif /* REFITTRACKACTION_H_ */

  ViewVC Help
Powered by ViewVC 1.1.23