@@ -92,7 +92,7 @@ void* GPUTRDTracker_t<TRDTRK, PROP>::SetPointersTracks(void* base)
9292}
9393
9494template <class TRDTRK , class PROP >
95- GPUTRDTracker_t<TRDTRK, PROP>::GPUTRDTracker_t() : mR (nullptr ), mIsInitialized (false ), mGenerateSpacePoints (false ), mProcessPerTimeFrame (false ), mNAngleHistogramBins (25 ), mAngleHistogramRange (50 ), mMemoryPermanent (-1 ), mMemoryTracklets (-1 ), mMemoryTracks (-1 ), mNMaxCollisions (0 ), mNMaxTracks (0 ), mNMaxSpacePoints (0 ), mTracks (nullptr ), mTrackAttribs (nullptr ), mNCandidates (1 ), mNTracks (0 ), mNEvents (0 ), mMaxBackendThreads (100 ), mTrackletIndexArray (nullptr ), mHypothesis (nullptr ), mCandidates (nullptr ), mSpacePoints (nullptr ), mGeo (nullptr ), mRPhiA2 ( 0 ), mRPhiB ( 0 ), mRPhiC2 ( 0 ), mDyA2 ( 0 ), mDyB ( 0 ), mDyC2 ( 0 ), mAngleToDyA ( 0 ), mAngleToDyB ( 0 ), mAngleToDyC ( 0 ), mDebugOutput (false ), mMaxEta (0 .84f ), mRoadZ (18 .f), mZCorrCoefNRC (1 .4f ), mTPCVdrift (2 .58f ), mTPCTDriftOffset (0 .f), mDebug (new GPUTRDTrackerDebug<TRDTRK>())
95+ GPUTRDTracker_t<TRDTRK, PROP>::GPUTRDTracker_t() : mR (nullptr ), mIsInitialized (false ), mGenerateSpacePoints (false ), mProcessPerTimeFrame (false ), mNAngleHistogramBins (25 ), mAngleHistogramRange (50 ), mMemoryPermanent (-1 ), mMemoryTracklets (-1 ), mMemoryTracks (-1 ), mNMaxCollisions (0 ), mNMaxTracks (0 ), mNMaxSpacePoints (0 ), mTracks (nullptr ), mTrackAttribs (nullptr ), mNCandidates (1 ), mNTracks (0 ), mNEvents (0 ), mMaxBackendThreads (100 ), mTrackletIndexArray (nullptr ), mHypothesis (nullptr ), mCandidates (nullptr ), mSpacePoints (nullptr ), mGeo (nullptr ), mRecoParam ( nullptr ), mDebugOutput (false ), mMaxEta (0 .84f ), mRoadZ (18 .f), mZCorrCoefNRC (1 .4f ), mTPCVdrift (2 .58f ), mTPCTDriftOffset (0 .f), mDebug (new GPUTRDTrackerDebug<TRDTRK>())
9696{
9797 // --------------------------------------------------------------------
9898 // Default constructor
@@ -114,9 +114,8 @@ void GPUTRDTracker_t<TRDTRK, PROP>::InitializeProcessor()
114114 // --------------------------------------------------------------------
115115 // Initialise tracker
116116 // --------------------------------------------------------------------
117-
117+ mRecoParam = & GetConstantMem ()-> trdRecoParam ;
118118 UpdateGeometry ();
119-
120119 mDebug ->ExpandVectors ();
121120 mIsInitialized = true ;
122121}
@@ -131,42 +130,6 @@ void GPUTRDTracker_t<TRDTRK, PROP>::UpdateGeometry()
131130 if (!mGeo ) {
132131 GPUFatal (" TRD geometry must be provided externally" );
133132 }
134- float Bz = Param ().bzkG ;
135- float resRPhiIdeal2 = Param ().rec .trd .trkltResRPhiIdeal * Param ().rec .trd .trkltResRPhiIdeal ;
136- GPUInfo (" Initializing with B-field: %f kG" , Bz);
137- if (CAMath::Abs (CAMath::Abs (Bz) - 2 ) < 0 .1f ) {
138- // magnetic field +-0.2 T
139- if (Bz > 0 ) {
140- GPUInfo (" Loading error parameterization for Bz = +2 kG" );
141- mRPhiA2 = resRPhiIdeal2, mRPhiB = -1 .43e-2f , mRPhiC2 = 4 .55e-2f ;
142- mDyA2 = 1 .225e-3f , mDyB = -9 .8e-3f , mDyC2 = 3 .88e-2f ;
143- mAngleToDyA = -0 .1f , mAngleToDyB = 1 .89f , mAngleToDyC = -0 .4f ;
144- } else {
145- GPUInfo (" Loading error parameterization for Bz = -2 kG" );
146- mRPhiA2 = resRPhiIdeal2, mRPhiB = 1 .43e-2f , mRPhiC2 = 4 .55e-2f ;
147- mDyA2 = 1 .225e-3f , mDyB = 9 .8e-3f , mDyC2 = 3 .88e-2f ;
148- mAngleToDyA = 0 .1f , mAngleToDyB = 1 .89f , mAngleToDyC = 0 .4f ;
149- }
150- } else if (CAMath::Abs (CAMath::Abs (Bz) - 5 ) < 0 .1f ) {
151- // magnetic field +-0.5 T
152- if (Bz > 0 ) {
153- GPUInfo (" Loading error parameterization for Bz = +5 kG" );
154- mRPhiA2 = resRPhiIdeal2, mRPhiB = 0 .125f , mRPhiC2 = 0 .0961f ;
155- mDyA2 = 1 .681e-3f , mDyB = 0 .15f , mDyC2 = 0 .1849f ;
156- mAngleToDyA = 0 .13f , mAngleToDyB = 2 .43f , mAngleToDyC = -0 .58f ;
157- } else {
158- GPUInfo (" Loading error parameterization for Bz = -5 kG" );
159- mRPhiA2 = resRPhiIdeal2, mRPhiB = -0 .14f , mRPhiC2 = 0 .1156f ;
160- mDyA2 = 2 .209e-3f , mDyB = -0 .15f , mDyC2 = 0 .2025f ;
161- mAngleToDyA = -0 .15f , mAngleToDyB = 2 .34f , mAngleToDyC = 0 .56f ;
162- }
163- } else {
164- // magnetic field 0 T or another value which is not covered by the error parameterizations
165- // using default values instead
166- GPUWarning (" No error parameterization available for Bz = %.2f kG. Keeping default value (sigma_y = const. = 1cm)" , Bz);
167- mRPhiA2 = 1 .f ;
168- }
169-
170133 // obtain average radius of TRD chambers
171134 float x0[kNLayers ] = {300 .2f , 312 .8f , 325 .4f , 338 .0f , 350 .6f , 363 .2f }; // used as default value in case no transformation matrix can be obtained
172135 auto * matrix = mGeo ->GetClusterMatrix (0 );
@@ -967,7 +930,7 @@ GPUd() void GPUTRDTracker_t<TRDTRK, PROP>::RecalcTrkltCov(const float tilt, cons
967930 // --------------------------------------------------------------------
968931 float t2 = tilt * tilt; // tan^2 (tilt)
969932 float c2 = 1 .f / (1 .f + t2); // cos^2 (tilt)
970- float sy2 = GetRPhiRes (snp);
933+ float sy2 = mRecoParam -> getRPhiRes (snp);
971934 float sz2 = rowSize * rowSize / 12 .f ;
972935 cov[0 ] = c2 * (sy2 + t2 * sz2);
973936 cov[1 ] = c2 * tilt * (sz2 - sy2);
@@ -977,8 +940,8 @@ GPUd() void GPUTRDTracker_t<TRDTRK, PROP>::RecalcTrkltCov(const float tilt, cons
977940template <class TRDTRK , class PROP >
978941GPUd () float GPUTRDTracker_t<TRDTRK, PROP>::GetAngularPull(float dYtracklet, float snp) const
979942{
980- float dYtrack = ConvertAngleToDy (snp);
981- float dYresolution = GetAngularResolution (snp);
943+ float dYtrack = mRecoParam -> convertAngleToDy (snp);
944+ float dYresolution = mRecoParam -> getDyRes (snp);
982945 if (dYresolution < 1e-6f ) {
983946 return 999 .f ;
984947 }
0 commit comments