#ifndef ALITRDONLINETRACKMATCHING_H
#define ALITRDONLINETRACKMATCHING_H
#include "TObject.h"
class TH1;
class AliESDEvent;
class AliExternalTrackParam;
class AliTRDgeometry;
class AliESDtrack;
class AliESDTrdTrack;
class AliTRDonlineTrackMatching : public TObject {
public:
AliTRDonlineTrackMatching();
~AliTRDonlineTrackMatching();
inline static Short_t TrdLsiSec(Short_t lsi) { return (lsi < 0) ? -1 : (lsi/5); }
inline static Short_t TrdLsiSi(Short_t lsi) { return (lsi < 0) ? -1 : (lsi%5); }
inline static Short_t TrdDetLsi(Short_t det) { return det/6; }
inline static Short_t TrdDetSi(Short_t det) { return (det%30)/6; }
inline static Short_t TrdDetLyr(Short_t det) { return det%6; }
inline static Short_t TrdSecSiLsi(Short_t sec, Short_t si) { return 5*sec + si; }
static Short_t EstimateSector(const Double_t globalCoords[3]);
static Short_t EstimateLayer(Double_t radius);
static Short_t EstimateLocalStack(const Double_t globalCoords[3]);
static Short_t EstimateStack(const Double_t globalCoords[3]);
static Bool_t StackToTrack(const AliExternalTrackParam* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss);
static Bool_t StackToTrack(const AliESDtrack* track, Short_t &stack, UShort_t &layersWithTracklet, Double_t magFieldinKiloGauss);
static Bool_t TrackPlaneIntersect(AliExternalTrackParam *trk, Double_t pnt[3], Double_t norm[3], Double_t mag);
Int_t EstimateTrackDistance(AliESDtrack *esd_track, AliESDTrdTrack* gtu_track, Double_t mag, Double_t *ydist, Double_t *zdist);
static Double_t RateTrackMatch(Double_t distY, Double_t distZ, Double_t rpt, Double_t gpt);
static void SetEsdTrackCutMinTPCrows(Double_t setting) { fEsdTrackCutMinTPCrows = setting; };
static void SetEsdTrackCutMinRatioRowsFindableClusters(Double_t setting) { fEsdTrackCutMinRatioRowsFindableClusters = setting; };
static void SetEsdTrackCutMaxChi2TPCclusters(Float_t setting) { fEsdTrackCutMaxChi2TPCclusters = setting; };
static void SetEsdTrackCutMaxChi2ITSclusters(Float_t setting) { fEsdTrackCutMaxChi2ITSclusters = setting; };
static void SetEsdTrackCutMaxDCAtoVertexXY(Float_t setting) { fEsdTrackCutMaxDCAtoVertexXY = setting; };
static void SetEsdTrackCutMaxDCAtoVertexZ( Float_t setting) { fEsdTrackCutMaxDCAtoVertexZ = setting; };
static void SetEsdTrackCutITSlayerMask(UShort_t setting) { fEsdTrackCutsITSlayerMask = setting; };
static void SetEsdTrackCutsChi2TPCconstrainedVsGlobal(Float_t setting) { fEsdTrackVCutsChi2TPCconstrainedVsGlobal = setting; };
static void SetEsdTrackCutMinimal(Bool_t setting) { fEsdTrackCutMinimal = setting; };
static void SetEsdTrackCutRequireITSrefit(Bool_t setting) { fEsdTrackCutRequireITSrefit = setting; };
static void SetEsdTrackCutRequireTPCrefit(Bool_t setting) { fEsdTrackCutRequireTPCrefit = setting; };
static void SetEsdTrackCutPrim(Bool_t setting) { fEsdTrackCutPrim = setting; };
static void SetEsdTrackDefaultCuts(const char* cutIdent = "minimal");
void SetMinMatchRating(Float_t setting) { fMinMatchRating = setting; };
void SetHistMatchRating(TH1* hist) { fHistMatchRating = hist; };
static Bool_t AcceptTrack(const AliESDtrack* esdTrack, const AliESDEvent* esdEvent);
Bool_t ProcessEvent(AliESDEvent *esdEvent, Bool_t updateRef = kTRUE, Int_t label = -1);
protected:
inline static Double_t PtDiffRel(Double_t refPt, Double_t gtuPt);
static const unsigned int fgkMaxEsdTracksPerStack = 20000;
static const unsigned int fgkTrdStacks = 90;
static const Float_t fgkSaveInnerRadius;
static const Float_t fgkSaveOuterRadius;
static Float_t fEsdTrackCutMinTPCrows;
static Float_t fEsdTrackCutMinRatioRowsFindableClusters;
static Float_t fEsdTrackCutMaxChi2TPCclusters;
static Float_t fEsdTrackCutMaxChi2ITSclusters;
static Float_t fEsdTrackCutMaxDCAtoVertexXY;
static Float_t fEsdTrackCutMaxDCAtoVertexZ;
static UShort_t fEsdTrackCutsITSlayerMask;
static Float_t fEsdTrackVCutsChi2TPCconstrainedVsGlobal;
static Float_t fEsdTrackCutPtDCAOfs;
static Float_t fEsdTrackCutPtDCACoeff;
static Bool_t fEsdTrackCutMinimal;
static Bool_t fEsdTrackCutRequireITSrefit;
static Bool_t fEsdTrackCutRequireTPCrefit;
static Bool_t fEsdTrackCutPrim;
AliTRDgeometry* fTRDgeo;
Float_t fMinMatchRating;
TH1* fHistMatchRating;
AliTRDonlineTrackMatching(const AliTRDonlineTrackMatching &c);
AliTRDonlineTrackMatching& operator=(const AliTRDonlineTrackMatching& rhs);
ClassDef(AliTRDonlineTrackMatching, 0);
};
#endif
AliTRDonlineTrackMatching.h:1 AliTRDonlineTrackMatching.h:2 AliTRDonlineTrackMatching.h:3 AliTRDonlineTrackMatching.h:4 AliTRDonlineTrackMatching.h:5 AliTRDonlineTrackMatching.h:6 AliTRDonlineTrackMatching.h:7 AliTRDonlineTrackMatching.h:8 AliTRDonlineTrackMatching.h:9 AliTRDonlineTrackMatching.h:10 AliTRDonlineTrackMatching.h:11 AliTRDonlineTrackMatching.h:12 AliTRDonlineTrackMatching.h:13 AliTRDonlineTrackMatching.h:14 AliTRDonlineTrackMatching.h:15 AliTRDonlineTrackMatching.h:16 AliTRDonlineTrackMatching.h:17 AliTRDonlineTrackMatching.h:18 AliTRDonlineTrackMatching.h:19 AliTRDonlineTrackMatching.h:20 AliTRDonlineTrackMatching.h:21 AliTRDonlineTrackMatching.h:22 AliTRDonlineTrackMatching.h:23 AliTRDonlineTrackMatching.h:24 AliTRDonlineTrackMatching.h:25 AliTRDonlineTrackMatching.h:26 AliTRDonlineTrackMatching.h:27 AliTRDonlineTrackMatching.h:28 AliTRDonlineTrackMatching.h:29 AliTRDonlineTrackMatching.h:30 AliTRDonlineTrackMatching.h:31 AliTRDonlineTrackMatching.h:32 AliTRDonlineTrackMatching.h:33 AliTRDonlineTrackMatching.h:34 AliTRDonlineTrackMatching.h:35 AliTRDonlineTrackMatching.h:36 AliTRDonlineTrackMatching.h:37 AliTRDonlineTrackMatching.h:38 AliTRDonlineTrackMatching.h:39 AliTRDonlineTrackMatching.h:40 AliTRDonlineTrackMatching.h:41 AliTRDonlineTrackMatching.h:42 AliTRDonlineTrackMatching.h:43 AliTRDonlineTrackMatching.h:44 AliTRDonlineTrackMatching.h:45 AliTRDonlineTrackMatching.h:46 AliTRDonlineTrackMatching.h:47 AliTRDonlineTrackMatching.h:48 AliTRDonlineTrackMatching.h:49 AliTRDonlineTrackMatching.h:50 AliTRDonlineTrackMatching.h:51 AliTRDonlineTrackMatching.h:52 AliTRDonlineTrackMatching.h:53 AliTRDonlineTrackMatching.h:54 AliTRDonlineTrackMatching.h:55 AliTRDonlineTrackMatching.h:56 AliTRDonlineTrackMatching.h:57 AliTRDonlineTrackMatching.h:58 AliTRDonlineTrackMatching.h:59 AliTRDonlineTrackMatching.h:60 AliTRDonlineTrackMatching.h:61 AliTRDonlineTrackMatching.h:62 AliTRDonlineTrackMatching.h:63 AliTRDonlineTrackMatching.h:64 AliTRDonlineTrackMatching.h:65 AliTRDonlineTrackMatching.h:66 AliTRDonlineTrackMatching.h:67 AliTRDonlineTrackMatching.h:68 AliTRDonlineTrackMatching.h:69 AliTRDonlineTrackMatching.h:70 AliTRDonlineTrackMatching.h:71 AliTRDonlineTrackMatching.h:72 AliTRDonlineTrackMatching.h:73 AliTRDonlineTrackMatching.h:74 AliTRDonlineTrackMatching.h:75 AliTRDonlineTrackMatching.h:76 AliTRDonlineTrackMatching.h:77 AliTRDonlineTrackMatching.h:78 AliTRDonlineTrackMatching.h:79 AliTRDonlineTrackMatching.h:80 AliTRDonlineTrackMatching.h:81 AliTRDonlineTrackMatching.h:82 AliTRDonlineTrackMatching.h:83 AliTRDonlineTrackMatching.h:84 AliTRDonlineTrackMatching.h:85 AliTRDonlineTrackMatching.h:86 AliTRDonlineTrackMatching.h:87 AliTRDonlineTrackMatching.h:88 AliTRDonlineTrackMatching.h:89 AliTRDonlineTrackMatching.h:90 AliTRDonlineTrackMatching.h:91 AliTRDonlineTrackMatching.h:92 AliTRDonlineTrackMatching.h:93 AliTRDonlineTrackMatching.h:94 AliTRDonlineTrackMatching.h:95 AliTRDonlineTrackMatching.h:96 AliTRDonlineTrackMatching.h:97