LCOV - code coverage report
Current view: top level - TRD/TRDbase - AliTRDonlineTrackMatching.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 21 28.6 %
Date: 2016-06-14 17:26:59 Functions: 7 25 28.0 %

          Line data    Source code
       1             : #ifndef ALITRDONLINETRACKMATCHING_H
       2             : #define ALITRDONLINETRACKMATCHING_H
       3             : 
       4             : //
       5             : // Track matching between TRD online tracks and ESD tracks.
       6             : // Author: Felix Rettig <rettig@compeng.uni-frankfurt.de>
       7             : 
       8             : #include "TObject.h"
       9             : class TH1;
      10             : class AliESDEvent;
      11             : class AliExternalTrackParam;
      12             : class AliTRDgeometry;
      13             : class AliESDtrack;
      14             : class AliESDTrdTrack;
      15             : 
      16             : //#define TRD_TM_DEBUG
      17             : 
      18             : class AliTRDonlineTrackMatching : public TObject {
      19             :  public:
      20             :   AliTRDonlineTrackMatching();
      21             :   ~AliTRDonlineTrackMatching();
      22             : 
      23           0 :   inline static Short_t TrdLsiSec(Short_t lsi) { return (lsi < 0) ? -1 : (lsi/5); }           // convert linear stack index 0-89 to TRD sector 0-17
      24         424 :   inline static Short_t TrdLsiSi(Short_t lsi) { return (lsi < 0) ? -1 : (lsi%5); }            // convert stack index 0-89 to local stack index 0-4
      25         584 :   inline static Short_t TrdDetLsi(Short_t det) { return det/6; }                              // convert TRD detector/chamber 0-539 index to linear stack index 0-89
      26         584 :   inline static Short_t TrdDetSi(Short_t det) { return (det%30)/6; }                          // convert detector (=chamber) number 0-539 to local stack index 0-4
      27         584 :   inline static Short_t TrdDetLyr(Short_t det) { return det%6; }                              // convert detector (=chamber) number 0-539 to local layer 0-5
      28        4638 :   inline static Short_t TrdSecSiLsi(Short_t sec, Short_t si) { return 5*sec + si; }          // convert sector (0-17) and local stack index (0-4) to linear stack index 0-89
      29             : 
      30             :   static Short_t EstimateSector(const Double_t globalCoords[3]);
      31             :   static Short_t EstimateLayer(Double_t radius);
      32             :   static Short_t EstimateLocalStack(const Double_t globalCoords[3]);
      33             :   static Short_t EstimateStack(const Double_t globalCoords[3]);
      34             : 
      35             :   static Bool_t StackToTrack(const AliExternalTrackParam* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss);
      36             :   static Bool_t StackToTrack(const AliESDtrack* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss);
      37             : 
      38             :   static Bool_t TrackPlaneIntersect(AliExternalTrackParam *trk, Double_t pnt[3], Double_t norm[3], Double_t mag);
      39             :   Int_t EstimateTrackDistance(AliESDtrack *esd_track, AliESDTrdTrack* gtu_track, Double_t mag, Double_t *ydist, Double_t *zdist);
      40             :   static Double_t RateTrackMatch(Double_t distY, Double_t distZ, Double_t rpt, Double_t gpt);
      41             : 
      42           0 :   static void SetEsdTrackCutMinTPCrows(Double_t setting) { fEsdTrackCutMinTPCrows = setting; };
      43           0 :   static void SetEsdTrackCutMinRatioRowsFindableClusters(Double_t setting) { fEsdTrackCutMinRatioRowsFindableClusters = setting; };
      44           0 :   static void SetEsdTrackCutMaxChi2TPCclusters(Float_t setting) { fEsdTrackCutMaxChi2TPCclusters = setting; };
      45           0 :   static void SetEsdTrackCutMaxChi2ITSclusters(Float_t setting) { fEsdTrackCutMaxChi2ITSclusters = setting; };
      46           0 :   static void SetEsdTrackCutMaxDCAtoVertexXY(Float_t setting) { fEsdTrackCutMaxDCAtoVertexXY = setting; };
      47           0 :   static void SetEsdTrackCutMaxDCAtoVertexZ( Float_t setting) { fEsdTrackCutMaxDCAtoVertexZ = setting; };
      48           0 :   static void SetEsdTrackCutITSlayerMask(UShort_t setting) { fEsdTrackCutsITSlayerMask = setting; };
      49           0 :   static void SetEsdTrackCutsChi2TPCconstrainedVsGlobal(Float_t setting) { fEsdTrackVCutsChi2TPCconstrainedVsGlobal = setting; };
      50           0 :   static void SetEsdTrackCutMinimal(Bool_t setting) { fEsdTrackCutMinimal = setting; };
      51           0 :   static void SetEsdTrackCutRequireITSrefit(Bool_t setting) { fEsdTrackCutRequireITSrefit = setting; };
      52           0 :   static void SetEsdTrackCutRequireTPCrefit(Bool_t setting) { fEsdTrackCutRequireTPCrefit = setting; };
      53           0 :   static void SetEsdTrackCutPrim(Bool_t setting) { fEsdTrackCutPrim = setting; };
      54             : 
      55             :   static void SetEsdTrackDefaultCuts(const char* cutIdent = "minimal");
      56             : 
      57           0 :   void SetMinMatchRating(Float_t setting) { fMinMatchRating = setting; };
      58           0 :   void SetHistMatchRating(TH1* hist) { fHistMatchRating = hist; };
      59             : 
      60             :   static Bool_t AcceptTrack(const AliESDtrack* esdTrack, const AliESDEvent* esdEvent);
      61             :   Bool_t ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef = kTRUE, Int_t label = -1);
      62             : 
      63             :  protected:
      64             : 
      65             :   inline static Double_t PtDiffRel(Double_t refPt, Double_t gtuPt);
      66             : 
      67             :   static const unsigned int fgkMaxEsdTracksPerStack = 20000; // max no. of tracks per stack
      68             :   static const unsigned int fgkTrdStacks = 90;               // no. of TRD stacks (0-89)
      69             :   static const Float_t     fgkSaveInnerRadius;               // inner radius for extrapolation
      70             :   static const Float_t     fgkSaveOuterRadius;               // outer radius for extrapolation
      71             : 
      72             :   static Float_t fEsdTrackCutMinTPCrows;                   // track cut
      73             :   static Float_t fEsdTrackCutMinRatioRowsFindableClusters; // track cut
      74             :   static Float_t fEsdTrackCutMaxChi2TPCclusters;           // track cut
      75             :   static Float_t fEsdTrackCutMaxChi2ITSclusters;           // track cut
      76             :   static Float_t fEsdTrackCutMaxDCAtoVertexXY;             // track cut
      77             :   static Float_t fEsdTrackCutMaxDCAtoVertexZ;              // track cut
      78             :   static UShort_t fEsdTrackCutsITSlayerMask;               // track cut
      79             :   static Float_t fEsdTrackVCutsChi2TPCconstrainedVsGlobal; // track cut
      80             :   static Float_t fEsdTrackCutPtDCAOfs;                     // track cut
      81             :   static Float_t fEsdTrackCutPtDCACoeff;                   // track cut
      82             :   static Bool_t fEsdTrackCutMinimal;                       // activate/deactive minimal track cuts
      83             :   static Bool_t fEsdTrackCutRequireITSrefit;               // track cut
      84             :   static Bool_t fEsdTrackCutRequireTPCrefit;               // track cut
      85             :   static Bool_t fEsdTrackCutPrim;                          // select primaries or keep secondaries for matching
      86             : 
      87             :   AliTRDgeometry* fTRDgeo;           //! TRD geometry instance
      88             :   Float_t fMinMatchRating;           //! min rating to accept pair of matched tracks
      89             :   TH1* fHistMatchRating;             //! optional histogram for match rating for all TRD tracks
      90             : 
      91             :   AliTRDonlineTrackMatching(const AliTRDonlineTrackMatching &c);
      92             :   AliTRDonlineTrackMatching& operator=(const AliTRDonlineTrackMatching& rhs);
      93             : 
      94          74 :   ClassDef(AliTRDonlineTrackMatching, 0);
      95             : };
      96             : 
      97             : #endif

Generated by: LCOV version 1.11