]>
Commit | Line | Data |
---|---|---|
ec6160d5 | 1 | // $Id$ |
2 | #ifndef ALIHLTGLOBALTRACKMERGER_H | |
3 | #define ALIHLTGLOBALTRACKMERGER_H | |
4 | //* This file is property of and copyright by the ALICE HLT Project * | |
5 | //* ALICE Experiment at CERN, All rights reserved. * | |
6 | //* See cxx source for full Copyright notice * | |
7 | ||
8 | /** @file AliHLTGlobalTrackMerger.h | |
9 | @author Jacek Otwinowski (Jacek.Otwinowski@gsi.de) | |
10 | @date | |
11 | @brief The HLT TPC merger base class | |
12 | */ | |
13 | ||
14 | ||
ec6160d5 | 15 | class AliESDEvent; |
16 | class AliESDVertex; | |
17 | class AliExternalTrackParam; | |
18 | ||
19 | class TClonesArray; | |
a9f060e5 | 20 | class TTreeStream; |
21 | class TTreeSRedirector; | |
ec6160d5 | 22 | |
23 | #include "AliHLTLogging.h" | |
24 | #include "AliESDtrack.h" | |
25 | ||
26 | /** | |
27 | * @class AliHLTGlobalTrackMerger | |
28 | * Global track merger for the barrel section. | |
29 | * | |
30 | * @ingroup alihlt_global | |
31 | * @author Jacek.Otwinowski@gsi.de | |
32 | */ | |
33 | class AliHLTGlobalTrackMerger : public AliHLTLogging { | |
34 | public: | |
35 | AliHLTGlobalTrackMerger(); | |
36 | /** destructor */ | |
37 | virtual ~AliHLTGlobalTrackMerger(); | |
38 | ||
ec6160d5 | 39 | // set matching parameters |
40 | void SetParameter(Double_t maxy=1., Double_t maxz=1., Double_t maxsnp=0.05, Double_t maxtgl=0.1, Double_t signed1Pt=0.001); | |
41 | ||
42 | // match tracks | |
4b6d0cc6 | 43 | Bool_t MatchTracks(AliExternalTrackParam *extTPC=0, AliESDtrack *trackTRD=0); |
ec6160d5 | 44 | |
45 | // merge tracks | |
46 | Bool_t Merge(AliESDEvent *esdEvent=0); | |
4b6d0cc6 | 47 | Bool_t MergeTracks(AliESDtrack *trackTPC=0, AliESDtrack *trackTRD=0, AliESDEvent *esdEvent=0); |
ec6160d5 | 48 | |
ec6160d5 | 49 | // propagate tracks to DCA to primary vertex |
50 | void PropagateTracksToDCA(AliESDEvent *esdEvent=0); | |
51 | ||
52 | // Smooth track parameters | |
53 | // (origin Sergey Gorbunov) | |
54 | /* | |
55 | Bool_t SmoothTracks( Double_t T1[], Double_t C1[], Double_t Chi21, Int_t NDF1, | |
56 | Double_t T2[], Double_t C2[], Double_t Chi22, Int_t NDF2, | |
57 | Double_t T [], Double_t C [], Double_t &Chi2, Int_t &NDF, | |
58 | Int_t N ); | |
59 | */ | |
60 | ||
61 | Bool_t SmoothTracks( const Double_t T1[], const Double_t C1[], Double_t Chi21, Int_t NDF1, | |
62 | const Double_t T2[], const Double_t C2[], Double_t Chi22, Int_t NDF2, | |
63 | Double_t T [], Double_t C [], Double_t &Chi2, Int_t &NDF, | |
64 | Int_t N ); | |
65 | Int_t IndexS(Int_t i, Int_t j) { | |
66 | return ( j<=i ) ? i*(i+1)/2+j :j*(j+1)/2+i; | |
67 | } | |
68 | void MultSSQ( const Double_t *A, const Double_t *B, Double_t *C, Int_t N ); | |
69 | Bool_t InvertS( Double_t A[], Int_t N ); | |
70 | ||
71 | private: | |
72 | ||
73 | // TRD-TPC matching parameters | |
74 | Double_t fMaxY; //! max Y track (cm) | |
75 | Double_t fMaxZ; //! max Z track (cm) | |
76 | Double_t fMaxSnp; //! max local sine of the track momentum azimuthal angle | |
77 | Double_t fMaxTgl; //! max tangent of the track momentum dip angle | |
78 | Double_t fMaxSigned1Pt; //! max 1/pt (1/(GeV/c)) | |
79 | ||
80 | // primary vertex | |
81 | AliESDVertex *fVertex; //! event vertex (needed to propagate all tracks to DCA) | |
a9f060e5 | 82 | |
83 | TTreeSRedirector *fDebugStreamer; //! | |
ec6160d5 | 84 | |
85 | /** copy constructor prohibited */ | |
86 | AliHLTGlobalTrackMerger(const AliHLTGlobalTrackMerger&); | |
87 | /** assignment operator prohibited */ | |
88 | AliHLTGlobalTrackMerger& operator=(const AliHLTGlobalTrackMerger&); | |
89 | ||
90 | ClassDef(AliHLTGlobalTrackMerger,1) //Merging base class | |
91 | }; | |
92 | ||
93 | #endif |