new configuration parameters introduced for CASliceTracker --- minNTrackClusters...
authorsgorbuno <sgorbuno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 14 Nov 2010 23:49:30 +0000 (23:49 +0000)
committersgorbuno <sgorbuno@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 14 Nov 2010 23:49:30 +0000 (23:49 +0000)
HLT/TPCLib/tracking-ca/AliHLTTPCCAParam.cxx
HLT/TPCLib/tracking-ca/AliHLTTPCCAParam.h
HLT/TPCLib/tracking-ca/AliHLTTPCCATracker.cxx
HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.cxx
HLT/TPCLib/tracking-ca/AliHLTTPCCATrackerComponent.h
HLT/TPCLib/tracking-ca/AliTPCtrackerCA.cxx

index 3f3706d..2ee748c 100644 (file)
@@ -29,7 +29,9 @@ GPUdi() AliHLTTPCCAParam::AliHLTTPCCAParam()
     fCosAlpha( 0 ), fSinAlpha( 0 ), fAngleMin( 0 ), fAngleMax( 0 ), fRMin( 83.65 ), fRMax( 133.3 ),
     fZMin( 0.0529937 ), fZMax( 249.778 ), fErrX( 0 ), fErrY( 0 ), fErrZ( 0.228808 ), fPadPitch( 0.4 ), fBzkG( -5.00668 ),
     fConstBz( -5.00668*0.000299792458 ), fHitPickUpFactor( 1. ),
-      fMaxTrackMatchDRow( 4 ), fNeighboursSearchArea(3.), fTrackConnectionFactor( 3.5 ), fTrackChiCut( 3.5 ), fTrackChi2Cut( 10 ), fClusterError2CorrectionY(1.), fClusterError2CorrectionZ(1.)
+      fMaxTrackMatchDRow( 4 ), fNeighboursSearchArea(3.), fTrackConnectionFactor( 3.5 ), fTrackChiCut( 3.5 ), fTrackChi2Cut( 10 ), fClusterError2CorrectionY(1.), fClusterError2CorrectionZ(1.),
+      fMinNTrackClusters( 30 ),
+      fMaxTrackQPt(1./0.1)
 {
   // constructor
   fParamS0Par[0][0][0] = 0.00047013;
index d3a7e97..bc980fc 100644 (file)
@@ -76,6 +76,8 @@ class AliHLTTPCCAParam
     GPUd() float HitPickUpFactor() const { return fHitPickUpFactor; }
   GPUd() float ClusterError2CorrectionY() const { return fClusterError2CorrectionY; }
   GPUd() float ClusterError2CorrectionZ() const { return fClusterError2CorrectionZ; }
+  GPUd() int MinNTrackClusters() const { return fMinNTrackClusters; }
+  GPUd() float MaxTrackQPt() const { return fMaxTrackQPt; }
 
 
 
@@ -106,6 +108,8 @@ class AliHLTTPCCAParam
     GPUd() void SetClusterError2CorrectionY( float v ) { fClusterError2CorrectionY = v; }
     GPUd() void SetClusterError2CorrectionZ( float v ) { fClusterError2CorrectionZ = v; }
 
+  GPUd() void SetMinNTrackClusters( int v ){ fMinNTrackClusters = v; }
+  GPUd() void SetMinTrackPt( float v ){ fMaxTrackQPt = 1./CAMath::Abs(v); }
 
     GPUd() float GetClusterError2( int yz, int type, float z, float angle ) const;
     GPUd() void GetClusterErrors2( int iRow, float z, float sinPhi, float cosPhi, float DzDs, float &Err2Y, float &Err2Z ) const;
@@ -147,6 +151,9 @@ class AliHLTTPCCAParam
     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
+    int fMinNTrackClusters; //* required min number of clusters on the track
+    float fMaxTrackQPt;    //* required max Q/Pt (==min Pt) of tracks
+
     float fRowX[200];// X-coordinate of rows
     float fParamS0Par[2][3][7];    // cluster error parameterization coeficients
     float fPolinomialFieldBz[6];   // field coefficients
index 0b6ce04..bf6e593 100644 (file)
@@ -652,15 +652,19 @@ GPUh() void AliHLTTPCCATracker::WriteOutput()
   AliHLTTPCCASliceOutput* useOutput = *fOutput;
   if (useOutput == NULL) return;
 
-  useOutput->SetNTracks( fCommonMem->fNTracks );
-  useOutput->SetNTrackClusters( fCommonMem->fNTrackHits );
+  useOutput->SetNTracks( 0 );
+  useOutput->SetNTrackClusters( 0 );
 
   int nStoredHits = 0;
-  
+  int nStoredTracks = 0;
+
   AliHLTTPCCASliceOutTrack *out = useOutput->FirstTrack();
 
   for ( int iTr = 0; iTr < fCommonMem->fNTracks; iTr++ ) {
     AliHLTTPCCATrack &iTrack = fTracks[iTr];    
+    
+    if( iTrack.NHits() < fParam.MinNTrackClusters() ) continue;
+    if( CAMath::Abs(iTrack.Param().GetQPt())> fParam.MaxTrackQPt() ) continue;
 
     out->SetParam( iTrack.Param() );
     int nClu = 0;
@@ -697,13 +701,17 @@ GPUh() void AliHLTTPCCATracker::WriteOutput()
       c.Set( id, iRow, origX, origY, origZ );
       out->SetCluster( nClu, c );
       nClu++;
-      nStoredHits++;
     }
 
+    nStoredTracks++;
+    nStoredHits+=nClu; 
     out->SetNClusters( nClu );
     out = out->NextTrack();    
   }
 
+  useOutput->SetNTracks( nStoredTracks );
+  useOutput->SetNTrackClusters( nStoredHits );
+
   timer.Stop();
   fTimers[5] += timer.CpuTime();
 }
index 3abe8b0..5cc6c71 100644 (file)
@@ -61,7 +61,8 @@ AliHLTTPCCATrackerComponent::AliHLTTPCCATrackerComponent()
     :
     fTracker( NULL ),
     fSolenoidBz( 0 ),
-    fMinNTrackClusters( 0 ),
+    fMinNTrackClusters( 30 ),
+    fMinTrackPt(0.2),
     fClusterZCut( 500. ),
     fNeighboursSearchArea( 0 ), 
     fClusterErrorCorrectionY(0), 
@@ -82,6 +83,7 @@ AliHLTTPCCATrackerComponent::AliHLTTPCCATrackerComponent( const AliHLTTPCCATrack
     fTracker( NULL ),
     fSolenoidBz( 0 ),
     fMinNTrackClusters( 30 ),
+    fMinTrackPt( 0.2 ),
     fClusterZCut( 500. ),
     fNeighboursSearchArea(0),
     fClusterErrorCorrectionY(0), 
@@ -150,7 +152,8 @@ void AliHLTTPCCATrackerComponent::SetDefaultConfiguration()
   // Some parameters can be later overwritten from the OCDB
 
   fSolenoidBz = -5.00668;
-  fMinNTrackClusters = 0;
+  fMinNTrackClusters = 30;
+  fMinTrackPt = 0.2;
   fClusterZCut = 500.;
   fNeighboursSearchArea = 0;
   fClusterErrorCorrectionY = 0;
@@ -192,6 +195,13 @@ int AliHLTTPCCATrackerComponent::ReadConfigurationString(  const char* arguments
       continue;
     }
 
+    if ( argument.CompareTo( "-minTrackPt" ) == 0 ) {
+      if ( ( bMissingParam = ( ++i >= pTokens->GetEntries() ) ) ) break;
+      fMinTrackPt = ( ( TObjString* )pTokens->At( i ) )->GetString().Atof();
+      HLTInfo( "minTrackPt set to: %f", fMinTrackPt );
+      continue;
+    }
+
     if ( argument.CompareTo( "-clusterZCut" ) == 0 ) {
       if ( ( bMissingParam = ( ++i >= pTokens->GetEntries() ) ) ) break;
       fClusterZCut = TMath::Abs( ( ( TObjString* )pTokens->At( i ) )->GetString().Atof() );
@@ -526,6 +536,9 @@ int AliHLTTPCCATrackerComponent::DoEvent
                if( fNeighboursSearchArea>0 ) param.SetNeighboursSearchArea( fNeighboursSearchArea );
                if( fClusterErrorCorrectionY>1.e-4 ) param.SetClusterError2CorrectionY( fClusterErrorCorrectionY*fClusterErrorCorrectionY );
                if( fClusterErrorCorrectionZ>1.e-4 ) param.SetClusterError2CorrectionZ( fClusterErrorCorrectionZ*fClusterErrorCorrectionZ );
+               param.SetMinNTrackClusters( fMinNTrackClusters );
+               param.SetMinTrackPt( fMinTrackPt );
+
                param.Update();
                fTracker->InitializeSliceParam( slice, param );
                delete[] rowX;
index 06e7995..bc91975 100644 (file)
@@ -82,6 +82,7 @@ class AliHLTTPCCATrackerComponent : public AliHLTProcessor
     /** magnetic field */
     double fSolenoidBz;                                            // see above
     int fMinNTrackClusters; //* required min number of clusters on the track
+    double fMinTrackPt;    //* required min Pt of tracks
     double fClusterZCut;  //* cut on cluster Z position (for noise rejection at the age of TPC)
        double fNeighboursSearchArea; //* area in cm for the neighbour search algorithm
     double fClusterErrorCorrectionY; // correction for the cluster errors
index a340632..0366660 100644 (file)
@@ -133,7 +133,8 @@ AliTPCtrackerCA::AliTPCtrackerCA( const AliTPCParam *par ):
     param.SetHitPickUpFactor( 1. );
     param.SetMaxTrackMatchDRow( 5 );
     param.SetTrackConnectionFactor( 3.5 );
-
+    param.SetMinNTrackClusters( 30 );
+    param.SetMinTrackPt(0.3);
     AliTPCClusterParam * clparam = AliTPCcalibDB::Instance()->GetClusterParam();
     for ( int iRow = 0; iRow < nRows; iRow++ ) {
       int    type = ( iRow < 63 ) ? 0 : ( ( iRow > 126 ) ? 1 : 2 );