/[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.1.2.3 by pam-fi, Thu Jun 3 14:14:12 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     * 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_ */

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

  ViewVC Help
Powered by ViewVC 1.1.23