]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDtrack.cxx
PropagateToDCA in case of track and vertex (M.Ivanov)
[u/mrichter/AliRoot.git] / STEER / AliESDtrack.cxx
index d04ebff5c6e32393a5a8ce2b328b0cf98098759f..44755fb2f59bc259f8bd170f0f49746a6e361ecc 100644 (file)
@@ -79,8 +79,11 @@ AliESDtrack::AliESDtrack() :
   fITStrack(0),
   fTPCchi2(0),
   fTPCncls(0),
+  fTPCnclsF(0),
   fTPCClusterMap(159),//number of padrows
   fTPCsignal(0),
+  fTPCsignalN(0),
+  fTPCsignalS(0),
   fTPCLabel(0),
   fTRDchi2(0),
   fTRDncls(0),
@@ -92,9 +95,10 @@ AliESDtrack::AliESDtrack() :
   fTRDtrack(0),
   fTOFchi2(0),
   fTOFindex(0),
+  fTOFCalChannel(-1),
   fTOFsignal(-1),
-  fPHOSsignal(-1),
-  fEMCALsignal(-1),
+  fTOFsignalToT(0),
+  //  fPHOSsignal(-1),
   fRICHchi2(1e10),
   fRICHncls(0),
   fRICHindex(0),
@@ -118,21 +122,18 @@ AliESDtrack::AliESDtrack() :
     fRICHr[i]=1.;
   }
   
-  for (Int_t i=0; i<AliPID::kSPECIESN; i++) {
-    fPHOSr[i]  = 1.;
-    fEMCALr[i] = 1.;
-  }
+  //  for (Int_t i=0; i<AliPID::kSPECIESN; i++) {
+  //  fPHOSr[i]  = 1.;
+  // } 
+  //  fPHOSpos[0]=fPHOSpos[1]=fPHOSpos[2]=0.;
 
-  fPHOSpos[0]=fPHOSpos[1]=fPHOSpos[2]=0.;
-  fEMCALpos[0]=fEMCALpos[1]=fEMCALpos[2]=0.;
   Int_t i;
   for (i=0;i<12;i++) fITSchi2MIP[i] =1e10;
   for (i=0; i<6; i++)  { fITSindex[i]=0; }
   for (i=0; i<180; i++){ fTPCindex[i]=0; }
   for (i=0; i<3;i++)   { fKinkIndexes[i]=0;}
   for (i=0; i<3;i++)   { fV0Indexes[i]=-1;}
-  for (i=0; i<130; i++) { fTRDindex[i]=0; }
+  for (i=0; i<180; i++) { fTRDindex[i]=0; }
   for (i=0;i<kNPlane;i++) {fTRDsignals[i]=0.; fTRDTimBin[i]=-1;}
   for (i=0;i<4;i++) {fTPCPoints[i]=-1;}
   for (i=0;i<3;i++) {fTOFLabel[i]=-1;}
@@ -168,8 +169,11 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fITStrack(0),    //coping separatelly - in user code
   fTPCchi2(track.fTPCchi2),
   fTPCncls(track.fTPCncls),
+  fTPCnclsF(track.fTPCnclsF),
   fTPCClusterMap(track.fTPCClusterMap),
   fTPCsignal(track.fTPCsignal),
+  fTPCsignalN(track.fTPCsignalN),
+  fTPCsignalS(track.fTPCsignalS),
   fTPCLabel(track.fTPCLabel),
   fTRDchi2(track.fTRDchi2),
   fTRDncls(track.fTRDncls),
@@ -181,9 +185,10 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fTRDtrack(0),
   fTOFchi2(track.fTOFchi2),
   fTOFindex(track.fTOFindex),
+  fTOFCalChannel(track.fTOFCalChannel),
   fTOFsignal(track.fTOFsignal),
-  fPHOSsignal(track.fPHOSsignal),
-  fEMCALsignal(track.fEMCALsignal),
+  fTOFsignalToT(track.fTOFsignalToT),
+  //fPHOSsignal(track.fPHOSsignal),
   fRICHchi2(track.fRICHchi2),
   fRICHncls(track.fRICHncls),
   fRICHindex(track.fRICHindex),
@@ -191,8 +196,7 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   fRICHtheta(track.fRICHtheta),
   fRICHphi(track.fRICHphi),
   fRICHdx(track.fRICHdx),
-  fRICHdy(track.fRICHdy),
-  fPoints(track.fPoints)
+  fRICHdy(track.fRICHdy)
 {
   //
   //copy constructor
@@ -210,7 +214,7 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   for (Int_t i=0; i<3;i++)   { fKinkIndexes[i]=track.fKinkIndexes[i];}
   for (Int_t i=0; i<3;i++)   { fV0Indexes[i]=track.fV0Indexes[i];}
   //
-  for (Int_t i=0;i<130;i++) fTRDindex[i]=track.fTRDindex[i];   
+  for (Int_t i=0;i<180;i++) fTRDindex[i]=track.fTRDindex[i];   
   for (Int_t i=0;i<kNPlane;i++) {
       fTRDsignals[i]=track.fTRDsignals[i]; 
       fTRDTimBin[i]=track.fTRDTimBin[i];
@@ -221,17 +225,18 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   for (Int_t i=0;i<3;i++) fTOFLabel[i]=track.fTOFLabel[i];
   for (Int_t i=0;i<10;i++) fTOFInfo[i]=track.fTOFInfo[i];
   //
-  for (Int_t i=0;i<3;i++) fPHOSpos[i]=track.fPHOSpos[i]; 
-  for (Int_t i=0;i<AliPID::kSPECIESN;i++) fPHOSr[i]=track.fPHOSr[i]; 
-  //
-  for (Int_t i=0;i<3;i++) fEMCALpos[i]=track.fEMCALpos[i]; 
-  for (Int_t i=0;i<AliPID::kSPECIESN;i++) fEMCALr[i]=track.fEMCALr[i]; 
+  //  for (Int_t i=0;i<3;i++) fPHOSpos[i]=track.fPHOSpos[i]; 
+  //for (Int_t i=0;i<AliPID::kSPECIESN;i++) fPHOSr[i]=track.fPHOSr[i]; 
   //
   for (Int_t i=0;i<AliPID::kSPECIES;i++) fRICHr[i]=track.fRICHr[i];
 
   if (track.fCp) fCp=new AliExternalTrackParam(*track.fCp);
   if (track.fIp) fIp=new AliExternalTrackParam(*track.fIp);
   if (track.fOp) fOp=new AliExternalTrackParam(*track.fOp);
+  fPoints =0;
+  if (track.fPoints){
+    fPoints  = new AliTrackPointArray(*(track.fPoints));
+  }
 }
 //_______________________________________________________________________
 AliESDtrack::~AliESDtrack(){ 
@@ -290,9 +295,12 @@ void AliESDtrack::MakeMiniESDtrack(){
   // Reset TPC related track information
   fTPCchi2 = 0;       
   fTPCncls = 0;       
+  fTPCnclsF = 0;       
   for (Int_t i=0;i<180;i++) fTPCindex[i] = 0;  
   fTPCClusterMap = 0;  
   fTPCsignal= 0;      
+  fTPCsignalS= 0;      
+  fTPCsignalN= 0;      
   for (Int_t i=0;i<AliPID::kSPECIES;i++) fTPCr[i]=0; 
   fTPCLabel=0;       
   for (Int_t i=0;i<4;i++) fTPCPoints[i] = 0;
@@ -303,7 +311,7 @@ void AliESDtrack::MakeMiniESDtrack(){
   fTRDchi2 = 0;        
   fTRDncls = 0;       
   fTRDncls0 = 0;       
-  for (Int_t i=0;i<130;i++) fTRDindex[i] = 0;   
+  for (Int_t i=0;i<180;i++) fTRDindex[i] = 0;   
   fTRDsignal = 0;      
   for (Int_t i=0;i<kNPlane;i++) {
       fTRDsignals[i] = 0; 
@@ -319,20 +327,17 @@ void AliESDtrack::MakeMiniESDtrack(){
   fTOFchi2 = 0;        
   fTOFindex = 0;       
   fTOFsignal = 0;      
+  fTOFCalChannel = -1;
+  fTOFsignalToT = 0;
   for (Int_t i=0;i<AliPID::kSPECIES;i++) fTOFr[i] = 0;
   for (Int_t i=0;i<3;i++) fTOFLabel[i] = 0;
   for (Int_t i=0;i<10;i++) fTOFInfo[i] = 0;
 
   // Reset PHOS related track information
-  for (Int_t i=0;i<3;i++) fPHOSpos[i] = 0; 
-  fPHOSsignal = 0; 
-  for (Int_t i=0;i<AliPID::kSPECIESN;i++) fPHOSr[i] = 0;
-  // Reset EMCAL related track information
-  for (Int_t i=0;i<3;i++) fEMCALpos[i] = 0; 
-  fEMCALsignal = 0; 
-  for (Int_t i=0;i<AliPID::kSPECIESN;i++) fEMCALr[i] = 0;
+  //for (Int_t i=0;i<3;i++) fPHOSpos[i] = 0; 
+  //fPHOSsignal = 0; 
+  //for (Int_t i=0;i<AliPID::kSPECIESN;i++) fPHOSr[i] = 0;
+  
   // Reset RICH related track information
   fRICHchi2 = 0;     
   fRICHncls = 0;     
@@ -387,7 +392,7 @@ Bool_t AliESDtrack::UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags){
   }
 
   Set(*t);
-
+  
   switch (flags) {
     
   case kITSin: case kITSout: case kITSrefit:
@@ -403,10 +408,12 @@ Bool_t AliESDtrack::UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags){
     fTPCLabel = t->GetLabel();
     if (!fIp) fIp=new AliExternalTrackParam(*t);
     else fIp->Set(*t);
-
   case kTPCout:
-  
-    fTPCncls=t->GetNumberOfClusters();
+    if (flags & kTPCout){
+      if (!fOp) fOp=new AliExternalTrackParam(*t);
+      else fOp->Set(*t);
+    }
+    fTPCncls=t->GetNumberOfClusters();    
     fTPCchi2=t->GetChi2();
     
      {//prevrow must be declared in separate namespace, otherwise compiler cries:
@@ -459,11 +466,6 @@ Bool_t AliESDtrack::UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags){
         }
      }
     fTPCsignal=t->GetPIDsignal();
-    {Double_t mass=t->GetMass();    // preliminary mass setting 
-    if (mass>0.5) fR[4]=1.;         //        used by
-    else if (mass<0.4) fR[2]=1.;    // the ITS reconstruction
-    else fR[3]=1.;}
-                     //
     break;
 
   case kTRDout: case kTRDin: case kTRDrefit:
@@ -719,7 +721,7 @@ Int_t AliESDtrack::GetTRDclusters(UInt_t *idx) const {
   // This function returns indices of the assgined TRD clusters 
   //---------------------------------------------------------------------
   if (idx!=0)
-    for (Int_t i=0; i<130; i++) idx[i]=fTRDindex[i];  // MI I prefer some constant
+    for (Int_t i=0; i<180; i++) idx[i]=fTRDindex[i];  // MI I prefer some constant
   return fTRDncls;
 }
 
@@ -788,32 +790,6 @@ void AliESDtrack::SetTOFInfo(Float_t*info) {
 
 
 
-//_______________________________________________________________________
-void AliESDtrack::SetPHOSpid(const Double_t *p) {  
-  // Sets the probability of each particle type (in PHOS)
-  SetPIDValues(fPHOSr,p,AliPID::kSPECIESN);
-  SetStatus(AliESDtrack::kPHOSpid);
-}
-
-//_______________________________________________________________________
-void AliESDtrack::GetPHOSpid(Double_t *p) const {
-  // Gets probabilities of each particle type (in PHOS)
-  for (Int_t i=0; i<AliPID::kSPECIESN; i++) p[i]=fPHOSr[i];
-}
-
-//_______________________________________________________________________
-void AliESDtrack::SetEMCALpid(const Double_t *p) {  
-  // Sets the probability of each particle type (in EMCAL)
-  SetPIDValues(fEMCALr,p,AliPID::kSPECIESN);
-  SetStatus(AliESDtrack::kEMCALpid);
-}
-
-//_______________________________________________________________________
-void AliESDtrack::GetEMCALpid(Double_t *p) const {
-  // Gets probabilities of each particle type (in EMCAL)
-  for (Int_t i=0; i<AliPID::kSPECIESN; i++) p[i]=fEMCALr[i];
-}
-
 //_______________________________________________________________________
 void AliESDtrack::SetRICHpid(const Double_t *p) {  
   // Sets the probability of each particle type (in RICH)
@@ -871,7 +847,7 @@ Bool_t AliESDtrack::RelateToVertex
   //Propagate to the DCA
   Double_t crv=0.299792458e-3*b*GetParameter()[4];
   Double_t tgfv=-(crv*x - snp)/(crv*y + TMath::Sqrt(1.-snp*snp));
-  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt(1.+ sn*sn);
+  sn=tgfv/TMath::Sqrt(1.+ tgfv*tgfv); cs=TMath::Sqrt(1.- sn*sn);
 
   x = xv*cs + yv*sn;
   yv=-xv*sn + yv*cs; xv=x;
@@ -945,18 +921,13 @@ void AliESDtrack::Print(Option_t *) const {
       printf("%f, ", p[index]) ;
     printf("\n           signal = %f\n", GetRICHsignal()) ;
   }
-  if( IsOn(kPHOSpid) ){
-    printf("From PHOS: ") ; 
-    GetPHOSpid(p) ; 
-    for(index = 0 ; index < AliPID::kSPECIESN; index++) 
-      printf("%f, ", p[index]) ;
-    printf("\n           signal = %f\n", GetPHOSsignal()) ;
-  }
-  if( IsOn(kEMCALpid) ){
-    printf("From EMCAL: ") ; 
-    GetEMCALpid(p) ; 
-    for(index = 0 ; index < AliPID::kSPECIESN; index++) 
-      printf("%f, ", p[index]) ;
-    printf("\n           signal = %f\n", GetEMCALsignal()) ;
-  }
+  // Since 9 March 2006 PHOS left ESDtrack for ESDCaloCluster
+  // and cannot participate in the global PID for the moment
+//   if( IsOn(kPHOSpid) ){
+//     printf("From PHOS: ") ; 
+//     GetPHOSpid(p) ; 
+//     for(index = 0 ; index < AliPID::kSPECIESN; index++) 
+//       printf("%f, ", p[index]) ;
+//     printf("\n           signal = %f\n", GetPHOSsignal()) ;
+//   }
 }