]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDtrack.cxx
bug fixed
[u/mrichter/AliRoot.git] / STEER / AliESDtrack.cxx
index d55a6ef16c365b831d6a5d7d60320c14e3f483f9..af2dd60ae8aacb54464a33bd8f7f19bbe0b528ff 100644 (file)
@@ -189,6 +189,7 @@ AliESDtrack::AliESDtrack() :
   fTRDchi2(0),
   fTOFchi2(0),
   fHMPIDchi2(0),
+  fGlobalChi2(0),
   fITSsignal(0),
   fTPCsignal(0),
   fTPCsignalS(0),
@@ -276,6 +277,7 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fTRDchi2(track.fTRDchi2),
   fTOFchi2(track.fTOFchi2),
   fHMPIDchi2(track.fHMPIDchi2),
+  fGlobalChi2(track.fGlobalChi2),
   fITSsignal(track.fITSsignal),
   fTPCsignal(track.fTPCsignal),
   fTPCsignalS(track.fTPCsignalS),
@@ -374,6 +376,7 @@ AliESDtrack::AliESDtrack(const AliVTrack *track) :
   fTRDchi2(0),
   fTOFchi2(0),
   fHMPIDchi2(0),
+  fGlobalChi2(0),
   fITSsignal(0),
   fTPCsignal(0),
   fTPCsignalS(0),
@@ -400,9 +403,17 @@ AliESDtrack::AliESDtrack(const AliVTrack *track) :
   fTRDslices(0x0)
 {
   //
-  // ESD track from AliVTrack
+  // ESD track from AliVTrack.
+  // This is not a copy constructor !
   //
 
+  if (track->InheritsFrom("AliExternalTrackParam")) {
+     AliError("This is not a copy constructor. Use AliESDtrack(const AliESDtrack &) !");
+     AliWarning("Calling the default constructor...");
+     AliESDtrack();
+     return;
+  }
+
   // Reset all the arrays
   Int_t i;
   for (i=0; i<AliPID::kSPECIES; i++) {
@@ -431,6 +442,11 @@ AliESDtrack::AliESDtrack(const AliVTrack *track) :
   // Set ITS cluster map
   fITSClusterMap=track->GetITSClusterMap();
 
+  fITSncls=0;
+  for(i=0; i<6; i++) {
+    if(HasPointOnITSLayer(i)) fITSncls++;
+  }
+
   // Set the combined PID
   const Double_t *pid = track->PID();
   if(pid){
@@ -478,6 +494,7 @@ AliESDtrack::AliESDtrack(TParticle * part) :
   fTRDchi2(0),
   fTOFchi2(0),
   fHMPIDchi2(0),
+  fGlobalChi2(0),
   fITSsignal(0),
   fTPCsignal(0),
   fTPCsignalS(0),
@@ -759,6 +776,7 @@ AliESDtrack &AliESDtrack::operator=(const AliESDtrack &source){
   fTOFchi2   = source.fTOFchi2;      
   fHMPIDchi2 = source.fHMPIDchi2;      
 
+  fGlobalChi2 = source.fGlobalChi2;      
 
   fITSsignal  = source.fITSsignal;     
   fTPCsignal  = source.fTPCsignal;     
@@ -910,6 +928,7 @@ Bool_t AliESDtrack::FillTPCOnlyTrack(AliESDtrack &track){
   track.fFlags = kTPCin;
   track.fID    = fID;
 
+  track.fFlags |= fFlags & kTPCpid; //copy the TPCpid status flag
  
   for (Int_t i=0;i<3;i++) track.fKinkIndexes[i] = fKinkIndexes[i];
   
@@ -1008,6 +1027,9 @@ void AliESDtrack::MakeMiniESDtrack(){
   fHMPIDmipY = 0;
   fEMCALindex = kEMCALNoMatch;
 
+  // reset global track chi2
+  fGlobalChi2 = 0;
+
   delete fFriendTrack; fFriendTrack = 0;
 } 
 //_______________________________________________________________________