]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Helper function to populate a ESD track with TPC paramters only
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Jun 2008 09:00:15 +0000 (09:00 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 30 Jun 2008 09:00:15 +0000 (09:00 +0000)
STEER/AliESDtrack.cxx
STEER/AliESDtrack.h

index 08cfd553dc2146d2262a482766fb72b899a9b037..ed2da868378f26387aa9b0929dcab42cfb5eae0e 100644 (file)
@@ -640,6 +640,68 @@ TObject *  AliESDtrack::GetCalibObject(Int_t index){
 }
 
 
+const Bool_t AliESDtrack::FillTPCOnlyTrack(AliESDtrack &track){
+  
+  // Fills the information of the TPC-only first reconstruction pass
+  // into the passed ESDtrack object. For consistency fTPCInner is also filled
+  // again
+
+  if(!fTPCInner)return kFALSE;
+
+  // fill the TPC track params to the global track parameters
+  track.Set(fTPCInner->GetX(),fTPCInner->GetAlpha(),fTPCInner->GetParameter(),fTPCInner->GetCovariance());
+  track.fD = fdTPC;
+  track.fZ = fzTPC;
+  track.fCdd = fCddTPC;
+  track.fCdz = fCdzTPC;
+  track.fCzz = fCzzTPC;
+
+  // copy the TPCinner parameters
+  if(track.fTPCInner) *track.fTPCInner = *fTPCInner;
+  else track.fTPCInner = new AliExternalTrackParam(*fTPCInner);
+  track.fdTPC   = fdTPC;
+  track.fzTPC   = fzTPC;
+  track.fCddTPC = fCddTPC;
+  track.fCdzTPC = fCdzTPC;
+  track.fCzzTPC = fCzzTPC;
+
+
+  // copy all other TPC specific parameters
+
+  // replace label by TPC label
+  track.fLabel    = fTPCLabel;
+  track.fTPCLabel = fTPCLabel;
+
+  track.fTPCchi2 = fTPCchi2; 
+  track.fTPCsignal = fTPCsignal;
+  track.fTPCsignalS = fTPCsignalS;
+  for(int i = 0;i<4;++i)track.fTPCPoints[i] = fTPCPoints[i];
+
+  track.fTPCncls    = fTPCncls;     
+  track.fTPCnclsF   = fTPCnclsF;     
+  track.fTPCsignalN =  fTPCsignalN;
+
+  // PID 
+  for(int i=0;i<AliPID::kSPECIES;++i){
+    track.fTPCr[i] = fTPCr[i];
+    // combined PID is TPC only!
+    track.fR[i] = fTPCr[i];
+  }
+  track.fTPCClusterMap = fTPCClusterMap;
+  track.fTPCSharedMap = fTPCSharedMap;
+
+
+  // reset the flags
+  track.fFlags = kTPCin;
+  track.fID    = fID;
+
+  for (Int_t i=0;i<3;i++) track.fKinkIndexes[i] = fKinkIndexes[i];
+  
+  return kTRUE;
+    
+}
+
 //_______________________________________________________________________
 void AliESDtrack::MakeMiniESDtrack(){
   // Resets everything except
@@ -1457,7 +1519,7 @@ Bool_t AliESDtrack::RelateToVertex
 //_______________________________________________________________________
 void AliESDtrack::Print(Option_t *) const {
   // Prints info on the track
-  
+  AliExternalTrackParam::Print();
   printf("ESD track info\n") ; 
   Double_t p[AliPID::kSPECIESN] ; 
   Int_t index = 0 ; 
index 2edfcfe7d0bad3296fe9655ae3d7cdc383b6f1b8..2bdf7081d21e792ca1f02f6dc5785a4eb4dd7572 100644 (file)
@@ -104,7 +104,7 @@ public:
   Bool_t GetConstrainedExternalCovariance(Double_t cov[15]) const;
   Double_t GetConstrainedChi2() const {return fCchi2;}
   //
-    
+  
 
 
   Bool_t GetInnerPxPyPz(Double_t *p) const {
@@ -113,6 +113,7 @@ public:
   }
   const AliExternalTrackParam * GetInnerParam() const { return fIp;}
   const AliExternalTrackParam * GetTPCInnerParam() const {return fTPCInner;}
+  const Bool_t FillTPCOnlyTrack(AliESDtrack &track);
   Bool_t GetInnerXYZ(Double_t *r) const {
     if (!fIp) return kFALSE;
     return fIp->GetXYZ(r);