LCOV - code coverage report
Current view: top level - MUON/MUONrec - AliMUONVTrackReconstructor.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 2 6 33.3 %

          Line data    Source code
       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             : ///
      12             : //  Author: Philippe Pillot
      13             : 
      14             : #include <TObject.h>
      15             : 
      16             : class AliMUONTrack;
      17             : class AliMUONTrackParam;
      18             : class AliMUONVCluster;
      19             : class AliMUONTriggerTrack;
      20             : class AliMUONTrackHitPattern;
      21             : class AliMUONVClusterServer;
      22             : class AliMUONVClusterStore;
      23             : class AliMUONVTrackStore;
      24             : class AliMUONVTriggerTrackStore;
      25             : class AliMUONVTriggerStore;
      26             : class AliMUONGeometryTransformer;
      27             : class AliMUONDigitMaker;
      28             : class AliMUONTriggerCircuit;
      29             : class TClonesArray;
      30             : class AliMUONRecoParam;
      31             : class AliMUONLocalTrigger;
      32             : 
      33             : class AliMUONVTrackReconstructor : public TObject {
      34             : 
      35             :  public:
      36             :   AliMUONVTrackReconstructor(const AliMUONRecoParam* recoParam, AliMUONVClusterServer* clusterServer,
      37             :                              const AliMUONGeometryTransformer* transformer); // default Constructor
      38             :   virtual ~AliMUONVTrackReconstructor(); // Destructor
      39             : 
      40             : 
      41             :   void EventReconstruct(AliMUONVClusterStore& clusterStore,
      42             :                         AliMUONVTrackStore& trackStore);
      43             :   
      44             :   void EventReconstructTrigger(const AliMUONTriggerCircuit& triggerCircuit,
      45             :                                const AliMUONVTriggerStore& triggerStore,
      46             :                                AliMUONVTriggerTrackStore& triggerTrackStore);
      47             :   
      48             :   void ValidateTracksWithTrigger(AliMUONVTrackStore& trackStore,
      49             :                                  const AliMUONVTriggerTrackStore& triggerTrackStore,
      50             :                                  const AliMUONVTriggerStore& triggerStore,
      51             :                                  const AliMUONTrackHitPattern& trackHitPattern);
      52             : 
      53             :   /// Return reco parameters
      54       12520 :   const AliMUONRecoParam* GetRecoParam() const { return fkRecoParam; }
      55             :   
      56             :   /// Re-fit the given track
      57             :   virtual Bool_t RefitTrack(AliMUONTrack &track, Bool_t enableImprovement = kTRUE) = 0;
      58             :   
      59             :   Bool_t TriggerToTrack(const AliMUONTriggerCircuit& circuit,
      60             :                         const AliMUONLocalTrigger& locTrg,
      61             :                         AliMUONTriggerTrack& triggerTrack,
      62             :                         UChar_t globalTriggerPattern = 0);
      63             :   
      64             :   
      65             :   
      66             :  protected:
      67             : 
      68             :   TClonesArray *fRecTracksPtr; ///< pointer to array of reconstructed tracks
      69             :   Int_t fNRecTracks; ///< number of reconstructed tracks
      70             : 
      71             :   AliMUONVClusterServer* fClusterServer; ///< reference to our cluster server
      72             : 
      73             :   const AliMUONRecoParam* fkRecoParam; ///< reference to reco parameters
      74             :   const AliMUONGeometryTransformer* fkTransformer; //!<! geometry transformer (not owner)
      75             :   
      76             :   Double_t* fMaxMCSAngle2; ///< maximum angle dispersion due to MCS
      77             :   
      78             :   // Functions
      79             :   AliMUONVTrackReconstructor (const AliMUONVTrackReconstructor& rhs); ///< copy constructor
      80             :   AliMUONVTrackReconstructor& operator=(const AliMUONVTrackReconstructor& rhs); ///< assignment operator
      81             :   
      82             :   /// Make track candidates from clusters in stations(1..) 4 and 5
      83             :   virtual Bool_t MakeTrackCandidates(AliMUONVClusterStore& clusterStore) = 0;
      84             :   /// Make extra track candidates from clusters in stations(1..) 4 and 5
      85             :   virtual Bool_t MakeMoreTrackCandidates(AliMUONVClusterStore& clusterStore) = 0;
      86             :   /// Follow tracks in stations(1..) 3, 2 and 1
      87             :   virtual Bool_t FollowTracks(AliMUONVClusterStore& clusterStore) = 0;
      88             :   /// Complement the reconstructed tracks
      89             :   virtual Bool_t ComplementTracks(const AliMUONVClusterStore& clusterStore) = 0;
      90             :   void ImproveTracks();
      91             :   /// Improve the given reconstructed track
      92             :   virtual void ImproveTrack(AliMUONTrack &track) = 0;
      93             :   void Finalize();
      94             :   /// Finalize the given track
      95             :   virtual Bool_t FinalizeTrack(AliMUONTrack &track) = 0;
      96             :   
      97             :   void DiscardMonoCathodClusters();
      98             :   void ChangeMonoCathodClusterRes(AliMUONTrack &track);
      99             :   
     100             :   Bool_t IsAcceptable(AliMUONTrackParam &trackParam);
     101             :   
     102             :   TClonesArray* MakeSegmentsBetweenChambers(const AliMUONVClusterStore& clusterStore, Int_t ch1, Int_t ch2);
     103             : 
     104             :   void RemoveUsedSegments(TClonesArray& segments);
     105             :   void RemoveIdenticalTracks();
     106             :   void RemoveDoubleTracks();
     107             :   void RemoveBadTracks();
     108             :   void RemoveConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all);
     109             :   void TagConnectedTracks(Int_t stMin, Int_t stMax, Bool_t all);
     110             : 
     111             :   void AskForNewClustersInStation(const AliMUONTrackParam &trackParam,
     112             :                                   AliMUONVClusterStore& clusterStore, Int_t station);
     113             :   void AskForNewClustersInChamber(const AliMUONTrackParam &trackParam,
     114             :                                   AliMUONVClusterStore& clusterStore, Int_t chamber);
     115             :   
     116             :   Double_t TryOneCluster(const AliMUONTrackParam &trackParam, AliMUONVCluster* cluster,
     117             :                          AliMUONTrackParam &trackParamAtCluster, Bool_t updatePropagator = kFALSE);
     118             :   Bool_t   TryOneClusterFast(const AliMUONTrackParam &trackParam, const AliMUONVCluster* cluster);
     119             :   Double_t TryTwoClustersFast(const AliMUONTrackParam &trackParamAtCluster1, AliMUONVCluster* cluster2,
     120             :                               AliMUONTrackParam &trackParamAtCluster2);
     121             : 
     122             :   Bool_t FollowLinearTrackInChamber(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextChamber);
     123             :   Bool_t FollowLinearTrackInStation(AliMUONTrack &trackCandidate, const AliMUONVClusterStore& clusterStore, Int_t nextStation);
     124             : 
     125             :  private:
     126             :   
     127             :   // Functions
     128             :   void ResetTracks();
     129             :   
     130             :   
     131          18 :   ClassDef(AliMUONVTrackReconstructor, 0) // MUON track reconstructor in ALICE
     132             : };
     133             :         
     134             : #endif

Generated by: LCOV version 1.11