PWGPP-1 - Applying chi2 cut between the TPC/TRD track matching
authormivanov <marian.ivanov@cern.ch>
Mon, 26 May 2014 06:48:58 +0000 (08:48 +0200)
committermivanov <marian.ivanov@cern.ch>
Mon, 26 May 2014 06:48:58 +0000 (08:48 +0200)
TPC/Rec/AliTPCRecoParam.h
TPC/Rec/AliTPCtrack.cxx

index 646dd6a..223530e 100644 (file)
@@ -33,7 +33,7 @@ class AliTPCRecoParam : public AliDetectorRecoParam
   Bool_t   GetUseOuterDetectors() const { return fUseOuterDetectors;}
   void     SetUseOuterDetectors(Bool_t flag)  { fUseOuterDetectors=flag;}
   void     SetMaxChi2TPCTRD(Double_t maxChi2){fMaxChi2TPCTRD=maxChi2;}
-  Double_t GetMaxChi2TPCTRD(){return fMaxChi2TPCTRD;}
+  Double_t GetMaxChi2TPCTRD() const {return fMaxChi2TPCTRD;}
   Double_t GetCutSharedClusters(Int_t index)const { return fCutSharedClusters[index];}
   void  SetCutSharedClusters(Int_t index, Float_t value){ fCutSharedClusters[index]=value;}
   Int_t GetClusterMaxRange(Int_t index)const { return fClusterMaxRange[index];}
index 9ed3e1f..4a63d6a 100644 (file)
@@ -158,7 +158,8 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
   const AliExternalTrackParam  *tpcin = t.GetInnerParam();
   const AliExternalTrackParam  *tpc=(tpcout)?tpcout:tpcin;
   if (!tpc) tpc=&param;
-  Bool_t isOK=kTRUE;// RS recoParam->GetUseOuterDetectors();
+  //Bool_t isOK=kTRUE;// RS recoParam->GetUseOuterDetectors();
+  Bool_t isOK=recoParam->GetUseOuterDetectors();
   if (param.GetCovariance()[0]>kmaxC[0]*kmaxC[0]) isOK=kFALSE;
   if (param.GetCovariance()[2]>kmaxC[1]*kmaxC[1]) isOK=kFALSE;
   if (param.GetCovariance()[5]>kmaxC[2]*kmaxC[2]) isOK=kFALSE;
@@ -170,11 +171,17 @@ AliTPCtrack::AliTPCtrack(const AliESDtrack& t, TTreeSRedirector *pcstream) :
     isOK=kTRUE;
     reject=1;
   }
+  param.Rotate(tpc->GetAlpha());
   isOK=AliTracker::PropagateTrackToBxByBz(&param,tpc->GetX(),t.GetMass(),2.,kFALSE);
   if (param.GetCovariance()[0]>kmaxC[0]*kmaxC[0]) isOK=kFALSE;
   if (param.GetCovariance()[2]>kmaxC[1]*kmaxC[1]) isOK=kFALSE;
   if (param.GetCovariance()[5]>kmaxC[2]*kmaxC[2]) isOK=kFALSE;
   if (param.GetCovariance()[9]>kmaxC[3]*kmaxC[3]) isOK=kFALSE;
+  Double_t chi2= param.GetPredictedChi2(tpc);
+  if (chi2>recoParam->GetMaxChi2TPCTRD()){
+    isOK=kFALSE;
+  }
+
   if (!isOK){
     param=*tpc;
     isOK=kTRUE;