LCOV - code coverage report
Current view: top level - ITSMFT/MFT/MFTrec - AliMFTTracker.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 6 16.7 %
Date: 2016-06-14 17:26:59 Functions: 1 10 10.0 %

          Line data    Source code
       1             : #ifndef AliMFTTracker_H
       2             : #define AliMFTTracker_H
       3             : 
       4             : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /// \ingroup MFTrec
       8             : /// \class AliMFTTracker
       9             : /// \brief Class for the creation of the "standalone MFT tracks"
      10             : ///
      11             : ///
      12             : /// Class for the creation of the "standalone MFT tracks" built from the tracks reconstructed
      13             : /// clusters of the Muon Forward Tracker
      14             : ///
      15             : /// \author Raphael Tieulent <raphael.tieulent@cern.ch>, IPN-Lyon
      16             : /// \date April 27th, 2015
      17             : 
      18             : 
      19             : #include "AliTracker.h"
      20             : #include "AliMFTConstants.h"
      21             : 
      22             : class AliMFT;
      23             : class AliMFTTrack;
      24             : class AliMFTTrackFinder;
      25             : class AliMFTCluster;
      26             : class AliMFTSegmentation;
      27             : class AliMuonForwardTrack;
      28             : class AliMUONTrackParam;
      29             : class AliMUONTrack;
      30             : class AliMUONVCluster;
      31             : 
      32             : //==============================================================================================
      33             : 
      34             : class AliMFTTracker : public AliTracker {
      35             : 
      36             : public:
      37             : 
      38             :   enum {kConverged, kDiverged};
      39             : 
      40             :   AliMFTTracker();
      41             :   virtual ~AliMFTTracker();
      42             : 
      43             :   Int_t LoadClusters(TTree *cf);
      44             :   void UnloadClusters();
      45             :   Int_t Clusters2Tracks(AliESDEvent *event);
      46             : 
      47           0 :   void SetNPlanesMFT(Int_t nPlanesMFT) { fNPlanesMFT = nPlanesMFT; }
      48             :   void SeparateFrontBackClusters();
      49             : 
      50           0 :   void SetMinResearchRadiusAtPlane(Int_t plane, Double_t radius) { if (plane>=0 && plane<fNMaxPlanes) fMinResearchRadiusAtPlane[plane] = radius; }
      51             : 
      52             :   void GetVertexFromMC();
      53             : 
      54             :   /// Dummy implementation
      55           0 :   virtual Int_t PropagateBack(AliESDEvent* /*event*/) {return 0;}
      56             :   /// Dummy implementation
      57           0 :   virtual Int_t RefitInward(AliESDEvent* /*event*/) {return 0;}
      58             :   /// Dummy implementation
      59           0 :   virtual AliCluster *GetCluster(Int_t /*index*/) const {return 0;}
      60             : 
      61             :   void AddClustersFromUnderlyingEvent();
      62             :   void AddClustersFromPileUpEvents();
      63             :   
      64             :   void LoadTracks();
      65             :   Bool_t LinearFit(AliMFTTrack * track);
      66             :   Double_t RunKalmanFilter(AliMUONTrackParam &trackParam, AliMUONVCluster &cluster);
      67             : 
      68             : protected:
      69             : 
      70             :   static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes;        // max number of MFT planes
      71             :   static const Double_t fRadLengthSi;
      72             :   static const Int_t fMaxNCandidates = 1000;
      73             : 
      74             :   AliESDEvent *fESD;   //! pointer to the ESD event
      75             : 
      76             :   AliMFT *fMFT;                        //!
      77             :   AliMFTSegmentation * fSegmentation;
      78             :   AliMFTTrackFinder * fTrackFinder;
      79             :   Int_t fNPlanesMFT, fNPlanesMFTAnalyzed;
      80             : 
      81             :   Double_t fSigmaClusterCut;         // to select the clusters in the MFT planes which are compatible with the extrapolated muon track
      82             :   Double_t fScaleSigmaClusterCut;    // to tune the cut on the compatible clusters in case of too many candidates
      83             : 
      84             :   Int_t fNMaxMissingMFTClusters;              // max. number of MFT clusters which can be missed in the global fit procedure
      85             :   Bool_t fIsPlaneMandatory[fNMaxPlanes];      // specifies which MFT planes cannot be missed in the global fit procedure
      86             : 
      87             :   Bool_t fGlobalTrackingDiverged;    // to keep memory of a possible divergence in the global tracking finding
      88             : 
      89             :   TClonesArray *fMFTClusterArray[fNMaxPlanes];         //! array of clusters for the planes of the MFT
      90             :   TClonesArray *fMFTClusterArrayFront[fNMaxPlanes];    //! array of front clusters for the planes of the MFT
      91             :   TClonesArray *fMFTClusterArrayBack[fNMaxPlanes];     //! array of back clusters for the planes of the MFT
      92             : 
      93             :   TClonesArray *fCandidateTracks;   //! array of candidate global tracks 
      94             :   TClonesArray *fMFTTracks;   //! array of candidate MFT standalone tracks
      95             : 
      96             :   AliMUONTrack *fMUONTrack;  //! muon track being analyzed
      97             : 
      98             :   AliMuonForwardTrack *fCurrentTrack;     //! muon extrapolated track being tested
      99             :   AliMuonForwardTrack *fFinalBestCandidate;     //! best final candidate (if any)
     100             : 
     101             :   // uncertainty on the x position of the primary vertex (seed for the extrapolation of the MUON tracks)
     102             :   Double_t fXExtrapVertex;   
     103             :   Double_t fYExtrapVertex;
     104             :   Double_t fZExtrapVertex;
     105             :   Double_t fXExtrapVertexError;
     106             :   Double_t fYExtrapVertexError;
     107             : 
     108             :   // generator event vertex from Monte-Carlo
     109             :   Double_t fXVertexMC;
     110             :   Double_t fYVertexMC;
     111             :   Double_t fZVertexMC;
     112             : 
     113             :   Bool_t fBransonCorrection;    // if TRUE, Branson Correction is applied when extrapolating the MUON tracks to the vertex region
     114             : 
     115             :   Double_t fMinResearchRadiusAtPlane[fNMaxPlanes];
     116             :   
     117             : 
     118             : private:
     119             : 
     120             :   AliMFTTracker(const AliMFTTracker &tracker);
     121             :   AliMFTTracker & operator=(const AliMFTTracker &tracker);
     122             :   
     123             :   /// \cond CLASSIMP
     124          12 :   ClassDef(AliMFTTracker,1);   //MFT tracker for standalone tracks
     125             :   /// \endcond
     126             : 
     127             : };
     128             : 
     129             : //====================================================================================================================================================
     130             : 
     131             : #endif 
     132             : 

Generated by: LCOV version 1.11