]>
Commit | Line | Data |
---|---|---|
8d0843c6 | 1 | #ifndef ALIMUONVTRACKRECONSTRUCTOR_H |
2 | #define ALIMUONVTRACKRECONSTRUCTOR_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
8 | /// \ingroup rec | |
9 | /// \class AliMUONVTrackReconstructor | |
10 | /// \brief Virtual class for the MUON track reconstruction | |
11 | /// | |
c4ee792d | 12 | // Author: Philippe Pillot |
8d0843c6 | 13 | |
14 | #include <TObject.h> | |
15 | ||
16 | class TClonesArray; | |
8d0843c6 | 17 | class AliMUONTriggerTrack; |
7771752e | 18 | class AliMUONTrackHitPattern; |
7ec3b9cf | 19 | class AliMUONVClusterStore; |
20 | class AliMUONVTrackStore; | |
21 | class AliMUONVTriggerTrackStore; | |
22 | class AliMUONVTriggerStore; | |
23 | class AliMUONGeometryTransformer; | |
24 | class AliMUONDigitMaker; | |
32ab62c9 | 25 | class AliMUONTriggerCircuit; |
8d0843c6 | 26 | |
27 | class AliMUONVTrackReconstructor : public TObject { | |
28 | ||
29 | public: | |
7ec3b9cf | 30 | AliMUONVTrackReconstructor(); // default Constructor |
8d0843c6 | 31 | virtual ~AliMUONVTrackReconstructor(); // Destructor |
32 | ||
33 | // Parameters for track reconstruction: public methods | |
34 | // Get and Set, Set to defaults | |
35 | /// Return minimum value (GeV/c) of momentum in bending plane | |
36 | Double_t GetMinBendingMomentum(void) const {return fMinBendingMomentum;} | |
37 | /// Return chamber resolution (cm) in bending plane | |
38 | Double_t GetBendingResolution(void) const {return fBendingResolution;} | |
39 | /// Return chamber resolution (cm) in non-bending plane | |
40 | Double_t GetNonBendingResolution(void) const {return fNonBendingResolution;} | |
8d0843c6 | 41 | |
42 | // Reconstructed tracks | |
43 | /// Return number of reconstructed tracks | |
44 | Int_t GetNRecTracks() const {return fNRecTracks;} // Number | |
45 | /// Set number of reconstructed tracks | |
46 | void SetNRecTracks(Int_t NRecTracks) {fNRecTracks = NRecTracks;} | |
47 | /// Return array of reconstructed tracks | |
48 | TClonesArray* GetRecTracksPtr(void) const {return fRecTracksPtr;} // Array | |
49 | ||
50 | // Functions | |
7ec3b9cf | 51 | void EventReconstruct(const AliMUONVClusterStore& clusterStore, |
52 | AliMUONVTrackStore& trackStore); | |
8d0843c6 | 53 | |
32ab62c9 | 54 | void EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit, |
7ec3b9cf | 55 | const AliMUONVTriggerStore& triggerStore, |
56 | AliMUONVTriggerTrackStore& triggerTrackStore); | |
57 | ||
58 | void ValidateTracksWithTrigger(AliMUONVTrackStore& trackStore, | |
59 | const AliMUONVTriggerTrackStore& triggerTrackStore, | |
60 | const AliMUONVTriggerStore& triggerStore, | |
61 | const AliMUONTrackHitPattern& trackHitPattern); | |
62 | ||
8d0843c6 | 63 | protected: |
64 | ||
65 | // Defaults parameters for reconstruction | |
66 | static const Double_t fgkDefaultMinBendingMomentum; ///< default min. bending momentum for reconstruction | |
67 | static const Double_t fgkDefaultMaxBendingMomentum; ///< default max. bending momentum for reconstruction | |
68 | static const Double_t fgkDefaultBendingResolution; ///< default bending coordinate resolution for reconstruction | |
69 | static const Double_t fgkDefaultNonBendingResolution; ///< default non bending coordinate resolution for reconstruction | |
208f139e | 70 | static const Double_t fgkDefaultBendingVertexDispersion; ///< default vertex dispersion in bending plane for reconstruction |
71 | static const Double_t fgkDefaultNonBendingVertexDispersion; ///< default vertex dispersion in non bending plane for reconstruction | |
72 | static const Double_t fgkDefaultMaxNormChi2MatchTrigger; ///< default maximum normalized chi2 of tracking/trigger track matching | |
8d0843c6 | 73 | |
74 | // Parameters for track reconstruction | |
75 | Double_t fMinBendingMomentum; ///< minimum value (GeV/c) of momentum in bending plane | |
76 | Double_t fMaxBendingMomentum; ///< maximum value (GeV/c) of momentum in bending plane | |
77 | Double_t fBendingResolution; ///< chamber resolution (cm) in bending plane | |
78 | Double_t fNonBendingResolution; ///< chamber resolution (cm) in non bending plane | |
208f139e | 79 | Double_t fBendingVertexDispersion; ///< vextex dispersion (cm) in bending plane |
80 | Double_t fNonBendingVertexDispersion; ///< vextex dispersion (cm) in non bending plane | |
81 | Double_t fMaxNormChi2MatchTrigger; ///< maximum normalized chi2 of tracking/trigger track matching | |
8d0843c6 | 82 | |
8d0843c6 | 83 | TClonesArray* fHitsForRecPtr; ///< pointer to the array of hits for reconstruction |
84 | Int_t fNHitsForRec; ///< number of hits for reconstruction | |
8d0843c6 | 85 | Int_t* fNHitsForRecPerChamber; ///< number of HitsForRec |
86 | Int_t* fIndexOfFirstHitForRecPerChamber; ///< index (0...) of first HitForRec | |
87 | ||
8d0843c6 | 88 | // Reconstructed tracks |
89 | TClonesArray *fRecTracksPtr; ///< pointer to array of reconstructed tracks | |
90 | Int_t fNRecTracks; ///< number of reconstructed tracks | |
91 | ||
8d0843c6 | 92 | // Functions |
93 | AliMUONVTrackReconstructor (const AliMUONVTrackReconstructor& rhs); ///< copy constructor | |
94 | AliMUONVTrackReconstructor& operator=(const AliMUONVTrackReconstructor& rhs); ///< assignment operator | |
95 | ||
96 | void SortHitsForRecWithIncreasingChamber(); | |
208f139e | 97 | TClonesArray *MakeSegmentsInStation(Int_t station); |
8d0843c6 | 98 | |
71a2d3aa | 99 | /// \todo add comment |
7ec3b9cf | 100 | virtual void AddHitsForRecFromRawClusters(const AliMUONVClusterStore& clusterStore); |
71a2d3aa | 101 | /// \todo add comment |
8d0843c6 | 102 | virtual void MakeTracks(void) = 0; |
71a2d3aa | 103 | /// \todo add comment |
8d0843c6 | 104 | virtual void MakeTrackCandidates(void) = 0; |
71a2d3aa | 105 | /// \todo add comment |
8d0843c6 | 106 | virtual void FollowTracks(void) = 0; |
71a2d3aa | 107 | /// \todo add comment |
8d0843c6 | 108 | virtual void RemoveDoubleTracks(void) = 0; |
71a2d3aa | 109 | /// \todo add comment |
208f139e | 110 | virtual void FillMUONTrack(void) = 0; |
8d0843c6 | 111 | |
112 | private: | |
113 | ||
8d0843c6 | 114 | // Functions |
8d0843c6 | 115 | void ResetTracks(void); |
8d0843c6 | 116 | void ResetHitsForRec(void); |
117 | ||
8d0843c6 | 118 | ClassDef(AliMUONVTrackReconstructor, 0) // MUON track reconstructor in ALICE |
208f139e | 119 | }; |
8d0843c6 | 120 | |
121 | #endif |