]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskESDfilter.cxx
setter(s) for constrained tracks, make sure to have the same p_T cuts after the const...
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskESDfilter.cxx
index 025d08224e5d47f54d524d3ac07fe3dd187c9a82..13597d39ece85f50feeaebca085fa1422d7dc3a7 100644 (file)
@@ -1000,6 +1000,19 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
 \r
   AliAODTrack* aodTrack(0x0);\r
   \r
+  // account for change in pT after the constraint\r
+  Float_t ptMax = 1E10;\r
+  Float_t ptMin = 0;\r
+  for(int i = 0;i<32;i++){\r
+    if(fTPCConstrainedFilterMask&(1<<i)){\r
+      AliESDtrackCuts*cuts = (AliESDtrackCuts*)fTrackFilter->GetCuts()->At(i);\r
+      Float_t tmp1= 0,tmp2 = 0;\r
+      cuts->GetPtRange(tmp1,tmp2);\r
+      if(tmp1>ptMin)ptMin=tmp1;\r
+      if(tmp2<ptMax)ptMax=tmp2;\r
+    }\r
+  } \r
+\r
   for (Int_t nTrack = 0; nTrack < esd.GetNumberOfTracks(); ++nTrack) \r
   {\r
     AliESDtrack* esdTrack = esd.GetTrack(nTrack); //carefull do not modify it othwise  need to work with a copy \r
@@ -1048,9 +1061,20 @@ void AliAnalysisTaskESDfilter::ConvertTPCOnlyTracks(const AliESDEvent& esd)
     }\r
     \r
     track->GetPxPyPz(p);\r
+\r
+    Float_t pT = track->Pt();\r
+    if(pT<ptMin||pT>ptMax){\r
+      delete track;\r
+      continue;\r
+    }\r
+\r
+    // \r
+\r
+\r
     track->GetXYZ(pos);\r
     track->GetCovarianceXYZPxPyPz(covTr);\r
     track->GetESDpid(pid);\r
+\r
     if(fMChandler)fMChandler->SelectParticle(esdTrack->GetLabel());\r
     aodTrack = new(Tracks()[fNumberOfTracks++]) AliAODTrack((track->GetID()+1)*-1,\r
                                                             track->GetLabel(),\r
@@ -1137,7 +1161,23 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
 \r
   AliAODTrack* aodTrack(0x0);\r
   const AliESDVertex *vtx = esd.GetPrimaryVertex();\r
-  for (Int_t nTrack = 0; nTrack < esd.GetNumberOfTracks(); ++nTrack) \r
+\r
+  // account for change in pT after the constraint\r
+  Float_t ptMax = 1E10;\r
+  Float_t ptMin = 0;\r
+  for(int i = 0;i<32;i++){\r
+    if(fGlobalConstrainedFilterMask&(1<<i)){\r
+      AliESDtrackCuts*cuts = (AliESDtrackCuts*)fTrackFilter->GetCuts()->At(i);\r
+      Float_t tmp1= 0,tmp2 = 0;\r
+      cuts->GetPtRange(tmp1,tmp2);\r
+      if(tmp1>ptMin)ptMin=tmp1;\r
+      if(tmp2<ptMax)ptMax=tmp2;\r
+    }\r
+  } \r
+\r
+\r
+\r
+ for (Int_t nTrack = 0; nTrack < esd.GetNumberOfTracks(); ++nTrack) \r
   {\r
     AliESDtrack* esdTrack = esd.GetTrack(nTrack); //carefull do not modify it othwise  need to work with a copy \r
     const AliExternalTrackParam * exParamGC = esdTrack->GetConstrainedParam();\r
@@ -1165,6 +1205,14 @@ void AliAnalysisTaskESDfilter::ConvertGlobalConstrainedTracks(const AliESDEvent&
     esdTrack->GetImpactParameters(dDCA,cDCA);\r
 \r
     esdTrack->GetConstrainedPxPyPz(p);\r
+\r
+\r
+    Float_t pT = exParamGC->Pt();\r
+    if(pT<ptMin||pT>ptMax){\r
+      continue;\r
+    }\r
+\r
+\r
     esdTrack->GetConstrainedXYZ(pos);\r
     exParamGC->GetCovarianceXYZPxPyPz(covTr);\r
     esdTrack->GetESDpid(pid);\r
@@ -1922,6 +1970,10 @@ void AliAnalysisTaskESDfilter::SetDetectorRawSignals(AliAODPid *aodpid, AliESDtr
 \r
 \r
  aodpid->SetITSsignal(track->GetITSsignal());\r
+ Double_t itsdedx[4]; // dE/dx samples for individual ITS layers\r
+ track->GetITSdEdxSamples(itsdedx);\r
+ aodpid->SetITSdEdxSamples(itsdedx);\r
+\r
  aodpid->SetTPCsignal(track->GetTPCsignal());\r
  aodpid->SetTPCsignalN(track->GetTPCsignalN());\r
 \r