13#ifndef TConformalFinder_FLAG_
14#define TConformalFinder_FLAG_
16#ifdef TRKRECO_DEBUG_DETAIL
22#include "CLHEP/Alist/ConstAList.h"
23#include "TrkReco/TBuilder.h"
24#include "TrkReco/TFinderBase.h"
25#include "TrkReco/TMLink.h"
26#include "TrkReco/TSegment.h"
29# define ConformalInitialization 0
30# define ConformalFast2DLevel0 10
31# define ConformalFast2DLevel1 11
32# define ConformalFast3DLevel0 20
33# define ConformalFast3DLevel1 21
34# define ConformalSlow2D 40
35# define ConformalSlow3D 41
36# define ConformalOutside 99
39# include "TrkReco/TWindow.h"
50 TConformalFinder(
unsigned fastFinder,
unsigned slowFinder,
unsigned perfectSegmentFinding,
51 float maxSigma,
float maxSigmaStereo,
float salvageLevel,
52 unsigned minNLinksForSegment,
unsigned minNCoreLinks,
53 unsigned minNSegments,
unsigned salvageLoadWidth,
unsigned stereoMode,
54 unsigned stereoLoadWidth,
float szSegmentDistance,
float szLinkDistance,
55 unsigned fittingFlag );
62 std::string
name(
void )
const;
68 void dump(
const std::string& message = std::string(
"" ),
69 const std::string& prefix = std::string(
"" ) )
const;
87 void selectGoodHits(
void );
90 void findSegments(
void );
91 void findSegmentsPerfect(
void );
93 void findSegmentsTsf(
void );
96 void linkSegments(
unsigned level );
97 void linkSegmentsTsf(
void );
100 void fastFinding2D(
unsigned level );
101 void fastFinding3D(
unsigned level );
104 void slowFinding2D(
unsigned level );
107 void targetSuperLayer(
unsigned ptn,
unsigned& in,
unsigned& out )
const;
110 bool trackQuality(
const TTrack& )
const;
122 void refineLinks(
TTrack&,
unsigned minNHits )
const;
132 void deleteTrack(
TTrack& )
const;
141 unsigned axialStereo )
const;
142 AList<TSegment> pickUpSegmentsInConformal(
float phi[12],
float loadWidth,
143 unsigned axialStereo )
const;
145 unsigned axialStereo )
const;
146 AList<TMLink> pickUpLinksInConformal(
float phi[12],
float loadWidth,
147 unsigned axialStereo )
const;
150 bool quality2D(
TTrack&
t,
unsigned level )
const;
153 unsigned level )
const;
161 const unsigned _perfectSegmentFinding;
162 const unsigned _segmentSeparation;
163 const unsigned _minNLinksForSegment;
164 const unsigned _minNLinksForSegmentInRefine;
165 const unsigned _maxNLinksForSegment;
166 const unsigned _maxWidthForSegment;
167 const unsigned _minNCoreLinks;
168 const unsigned _minNSegments;
169 const float _minUsedFractionSlow2D;
170 const unsigned _appendLoad;
171 const unsigned _salvageLoadWidth;
172 const unsigned _stereoMode;
173 const unsigned _stereoLoadWidth;
174 float _linkMaxDistance[3];
175 float _linkMinDirAngle[3];
180 const bool _fastFinder;
181 const bool _slowFinder;
183 const float _maxSigma2;
200 unsigned _nTracksFast3D;
201 unsigned _nTracksSlow3D;
202 unsigned _nTracksFast2D;
203 unsigned _nTracksSlow2D;
204 unsigned _nTracksFast2DBadQuality;
205 unsigned _nTracksSlow2DBadQuality;
212 static unsigned _stage;
217 mutable TWindow _rphiWindow;
220 void displayStatus(
const std::string& message )
const;
221 void displayAppendSegments(
const AList<TSegment> a[2][6], leda_color = leda_black )
const;
223 const std::string&
text )
const;
229#ifdef TConformalFinder_NO_INLINE
233# define TConformalFinder_INLINE_DEFINE_HERE
236#ifdef TConformalFinder_INLINE_DEFINE_HERE
HepGeom::Vector3D< double > HepVector3D
HepGeom::Point3D< double > HepPoint3D
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
A class to build a track.
A virtual class for a track finder in tracking.
A class to represent a wire in MDC.
A class to represent a point in 2D.
A class to relate TMDCWireHit and TTrack objects.
A class to represent a track in tracking.