]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/tracking-ca/AliHLTTPCCAParam.h
bug fix: reconstruction crash when the output buffer size exceed
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAParam.h
index f6564614eaa469cdc4c943a98d0a64cca1ba05a4..d3a7e979bdf24839abcece0d7827132038501f6c 100644 (file)
 class AliHLTTPCCAParam
 {
   public:
+       AliHLTTPCCAParam();
+    ~AliHLTTPCCAParam() {}
 
 #if !defined(HLTCA_GPUCODE)
-    GPUd() AliHLTTPCCAParam();
-#endif
-
-    ~AliHLTTPCCAParam() {;}
-
-    GPUd() void Initialize( int iSlice, int nRows, float rowX[],
+    void Initialize( int iSlice, int nRows, float rowX[],
                             float alpha, float dAlpha,
                             float rMin, float rMax, float zMin, float zMax,
                             float padPitch, float zSigma, float bz );
-    GPUd() void Update();
+    void Update();
+#endif //!HLTCA_GPUCODE
 
-    GPUd() void Slice2Global( float x, float y,  float z,
+       GPUd() void Slice2Global( float x, float y,  float z,
                               float *X, float *Y,  float *Z ) const;
 
     GPUd() void Global2Slice( float x, float y,  float z,
@@ -67,13 +65,17 @@ class AliHLTTPCCAParam
     GPUd() float ErrZ() const { return fErrZ;}
     GPUd() float ErrX() const { return fErrX;}
     GPUd() float ErrY() const { return fErrY;}
-    GPUd() float Bz() const { return fBz;}
+    GPUd() float BzkG() const { return fBzkG;}
+    GPUd() float ConstBz() const { return fConstBz;}
 
+    GPUd() float NeighboursSearchArea() const { return fNeighboursSearchArea; }
     GPUd() float TrackConnectionFactor() const { return fTrackConnectionFactor; }
     GPUd() float TrackChiCut()  const { return fTrackChiCut; }
     GPUd() float TrackChi2Cut() const { return fTrackChi2Cut; }
     GPUd() int   MaxTrackMatchDRow() const { return fMaxTrackMatchDRow; }
     GPUd() float HitPickUpFactor() const { return fHitPickUpFactor; }
+  GPUd() float ClusterError2CorrectionY() const { return fClusterError2CorrectionY; }
+  GPUd() float ClusterError2CorrectionZ() const { return fClusterError2CorrectionZ; }
 
 
 
@@ -93,12 +95,16 @@ class AliHLTTPCCAParam
     GPUd() void SetErrZ( float v ) {  fErrZ = v;}
     GPUd() void SetErrX( float v ) {  fErrX = v;}
     GPUd() void SetErrY( float v ) {  fErrY = v;}
-    GPUd() void SetBz( float v ) {  fBz = v;}
+    GPUd() void SetBzkG( float v ) {  fBzkG = v;}
+
+  GPUd() void SetNeighboursSearchArea( float v ) { fNeighboursSearchArea = v;}
     GPUd() void SetTrackConnectionFactor( float v ) { fTrackConnectionFactor = v;}
     GPUd() void SetTrackChiCut( float v ) {  fTrackChiCut = v; }
-    GPUd() void SetTrackChi2Cut( float v ) {  fTrackChi2Cut = v; }
+  GPUd() void SetTrackChi2Cut( float v ) {  fTrackChi2Cut = v; }
     GPUd() void SetMaxTrackMatchDRow( int v ) {  fMaxTrackMatchDRow = v; }
     GPUd() void SetHitPickUpFactor( float v ) {  fHitPickUpFactor = v; }
+    GPUd() void SetClusterError2CorrectionY( float v ) { fClusterError2CorrectionY = v; }
+    GPUd() void SetClusterError2CorrectionZ( float v ) { fClusterError2CorrectionZ = v; }
 
 
     GPUd() float GetClusterError2( int yz, int type, float z, float angle ) const;
@@ -111,12 +117,12 @@ class AliHLTTPCCAParam
       fParamS0Par[i][j][k] = val;
     }
 
-    GPUd() float GetBz() const { return fBz;}
+    GPUd() float GetBzkG() const { return fBzkG;}
+    GPUd() float GetConstBz() const { return fConstBz;}
     GPUd() float GetBz( float x, float y, float z ) const;
     GPUd()  float GetBz( const AliHLTTPCCATrackParam &t ) const;
 
   protected:
-
     int fISlice; // slice number
     int fNRows; // number of rows
 
@@ -127,15 +133,20 @@ class AliHLTTPCCAParam
     float fZMin, fZMax;// slice Z range
     float fErrX, fErrY, fErrZ;// default cluster errors
     float fPadPitch; // pad pitch
-    float fBz;       // magnetic field value (only constant field can be used)
+    float fBzkG;       // constant magnetic field value in kG
+    float fConstBz;       // constant magnetic field value in kG*clight
 
     float fHitPickUpFactor;// multiplier for the chi2 window for hit pick up procedure
 
     int   fMaxTrackMatchDRow;// maximal jump in TPC row for connecting track segments
+
+  float fNeighboursSearchArea; // area in cm for the search of neighbours
+
     float fTrackConnectionFactor; // allowed distance in Chi^2/3.5 for neighbouring tracks
     float fTrackChiCut; // cut for track Sqrt(Chi2/NDF);
     float fTrackChi2Cut;// cut for track Chi^2/NDF
-
+  float fClusterError2CorrectionY; // correction for the squared cluster error during tracking
+  float fClusterError2CorrectionZ; // correction for the squared cluster error during tracking
     float fRowX[200];// X-coordinate of rows
     float fParamS0Par[2][3][7];    // cluster error parameterization coeficients
     float fPolinomialFieldBz[6];   // field coefficients
@@ -157,4 +168,4 @@ GPUd() inline float AliHLTTPCCAParam::GetBz( const AliHLTTPCCATrackParam &t ) co
   return GetBz( t.X(), t.Y(), t.Z() );
 }
 
-#endif
+#endif //ALIHLTTPCCAPARAM_H