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

Diff of /PamCut/CollectionActions/RefitTrackAction/RefitTrackAction.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by pam-fi, Tue May 11 15:16:15 2010 UTC revision 1.2 by pam-fi, Thu Jul 8 14:00:14 2010 UTC
# Line 0  Line 1 
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     * 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_ */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.23