modified to taking into account new version tracking v1
authorbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 2 Mar 2001 19:44:11 +0000 (19:44 +0000)
committerbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 2 Mar 2001 19:44:11 +0000 (19:44 +0000)
ITS/AliITS.cxx
ITS/AliITS.h
ITS/AliITStrack.cxx
ITS/AliITStrack.h
ITS/AliITStracking.cxx
ITS/AliITStracking.h

index c11dedc982f969fc9aed9f9b6c202dc1911a4ed9..469ff3188298f264a530b7fbd650594856b67296 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.35  2001/02/28 18:16:46  mariana
+Make the code compatible with the new AliRun
+
 Revision 1.34  2001/02/11 15:51:39  mariana
 Set protection in MakeBranch
 
@@ -189,7 +192,8 @@ the AliITS class.
 
 #include "AliITStrack.h"
 #include "AliITSiotrack.h"
-#include "AliITStracking.h" 
+#include "AliITStracking.h"
+#include "AliITSRad.h"   
 #include "../TPC/AliTPC.h"
 #include "../TPC/AliTPCParam.h"
 
@@ -1312,7 +1316,7 @@ Option_t *option,Option_t *opt,Text_t *filename)
 //________________________________________________________________
 
 AliITStrack  AliITS::Tracking(AliITStrack &track, AliITStrack *reference,TObjArray *fastpoints, Int_t
-**vettid, Bool_t flagvert ) { 
+**vettid, Bool_t flagvert,  AliITSRad *rl  ) { 
                                                                                
 //Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it 
 
@@ -1326,7 +1330,7 @@ AliITStrack  AliITS::Tracking(AliITStrack &track, AliITStrack *reference,TObjArr
   Double_t Pt=(tr).GetPt();
   //cout << "\n Pt = " << Pt <<"\n";
 
-  AliITStracking obj(list, reference, this, fastpoints,TMath::Abs(Pt),vettid, flagvert);
+  AliITStracking obj(list, reference, this, fastpoints,TMath::Abs(Pt),vettid, flagvert, rl);
   list->Delete();
   delete list;
 
@@ -1363,6 +1367,10 @@ void AliITS::DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, B
 
   const char *pname="75x40_100x60";
   
+ Int_t imax=200,jmax=450;
+  AliITSRad *rl = new AliITSRad(imax,jmax);
+  //cout<<" dopo costruttore AliITSRad\n"; getchar();
+    
   struct GoodTrack {
     Int_t lab,code;
     Float_t px,py,pz,x,y,z,pxg,pyg,pzg,ptg;
@@ -1378,9 +1386,9 @@ void AliITS::DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, B
   
   GoodTrack gt[7000];
   Int_t ngood=0;
-  ifstream in("good_tracks");
+  ifstream in("itsgood_tracks");
 
-  cerr<<"Reading good tracks...\n";
+  cerr<<"Reading itsgood tracks...\n";
   while (in>>gt[ngood].lab>>gt[ngood].code
          >>gt[ngood].px >>gt[ngood].py>>gt[ngood].pz
          >>gt[ngood].x  >>gt[ngood].y >>gt[ngood].z
@@ -1393,7 +1401,7 @@ void AliITS::DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, B
       break;
     }
   }
-  if (!in.eof()) cerr<<"Read error (good_tracks) !\n";
+  if (!in.eof()) cerr<<"Read error (itsgood_tracks) !\n";
   
   
 // Load tracks
@@ -1572,7 +1580,7 @@ void AliITS::DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, B
 
 /////////////////////////////////////////////////////////////////////////////////////////////////       
                
-    primarytrack.PrimaryTrack();
+    primarytrack.PrimaryTrack(rl);
     TVector  d2=primarytrack.Getd2();
     TVector  tgl2=primarytrack.Gettgl2();
     TVector  dtgl=primarytrack.Getdtgl();
@@ -1582,15 +1590,15 @@ void AliITS::DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, B
     trackITS.SetVertex(vertex); trackITS.SetErrorVertex(ervertex);
     result.SetVertex(vertex);   result.SetErrorVertex(ervertex);   
     */                         
-    Tracking(trackITS,&result,recPoints,vettid, flagvert);  
+    Tracking(trackITS,&result,recPoints,vettid, flagvert,rl);  
             
-     cout<<" progressive track number = "<<j<<"\r";
+    // cout<<" progressive track number = "<<j<<"\r";
    // cout<<j<<"\r";
-    //cout<<" progressive track number = "<<j<<"\n";
+   // cout<<" progressive track number = "<<j<<"\n";
     Long_t labITS=result.GetLabel();
-    //cout << " ITS track label = " << labITS << "\n";                     
+   // cout << " ITS track label = " << labITS << "\n";                     
     int lab=track->GetLabel();             
-  //  cout << " TPC track label = " << lab <<"\n";
+   // cout << " TPC track label = " << lab <<"\n";
     //result.GetClusters(); getchar();  //to print the cluster matrix
         
 //propagation to vertex
index fe8c0d020a4c3d5921cbca3cdb8288f60635d9a5..dfdfda9cf8ef6ac41fe9fd7e9770e90431c8bf0a 100644 (file)
@@ -29,6 +29,7 @@ class AliITSRecPoint;
 class AliITSRawCluster;
 class AliITSmodule;
 class AliITStrack;
+class AliITSRad; 
 
 const Int_t kNTYPES=3;
 
@@ -141,7 +142,7 @@ class AliITS : public AliDetector {
     // tracking
 
     AliITStrack Tracking(AliITStrack &track, AliITStrack *reference, TObjArray *fpoints, Int_t **vettid,
-        Bool_t flagvert );  
+        Bool_t flagvert,  AliITSRad *rl );  
 
     void DoTracking(Int_t evNumber, Int_t min_t, Int_t max_t, TFile *file, Bool_t flagvert);
 
index 8545c8556432cebc58187f886f3956e9d3ef6957..06f8c8d20029a2fb6177c9efee424fcebe52fb0e 100644 (file)
@@ -8,6 +8,7 @@
 #include "AliRun.h"
 #include "AliITStrack.h"
 #include "AliGenerator.h"
+#include "AliITSRad.h"
 
 
 ClassImp(AliITStrack)
@@ -30,7 +31,6 @@ AliITStrack::AliITStrack() {
   for(i=0; i<6; i++) (*ClusterInTrack)(i,6)=(*ClusterInTrack)(i,7)=
                            (*ClusterInTrack)(i,8)=-1.;
   rtrack=0.; 
-  //alphaprov=-50.; //provvisorio 
   d2.ResizeTo(6);
   tgl2.ResizeTo(6); 
   dtgl.ResizeTo(6);   
@@ -69,7 +69,7 @@ AliITStrack::AliITStrack(const AliITStrack &cobj) {
   d2=cobj.d2;
   tgl2=cobj.tgl2;
   dtgl=cobj.dtgl;
-  //alphaprov=cobj.alphaprov;  //provvisorio    
+    
  
   *fmCovariance = *cobj.fmCovariance;
  
@@ -197,22 +197,7 @@ void AliITStrack::LmTPC() {
   fvTrack(1)=zm;
   fvTrack(3)=tpctrack(4);
   fvTrack(4)=tpctrack(2);
-  /*
-  //provvisorio
-   alphaprov=pigre-PhiDef(x0m,y0m)-PhiDef(fVertex(0),fVertex(1));
-  if(alphaprov<0.) alphaprov=alphaprov+2.*pigre;
-  //cout<<" PhiDef(x0m,y0m) ="<<PhiDef(x0m,y0m)<<"\n";
-  //cout<<" PhiDef(fVertex(0),fVertex(1)) = "<<PhiDef(fVertex(0),fVertex(1))<<"\n";
-  //cout<<"alphaprov = "<<alphaprov<<"\n"; getchar();
-  //cout<<" fvTrack(0) prima = "<<fvTrack(0)<<"\n";
-  fvTrack(0)-=alphaprov;
-  if(fvTrack(0)<0.) fvTrack(0)+= 2.*pigre;
-  //cout<<" fvTrack(0) dopo = "<<fvTrack(0)<<"  alphaprov = "<<alphaprov<<"\n"; 
-  cout<<" fvertex = "<<fVertex(0)<<" "<<fVertex(1)<<" "<<fVertex(2)<<"\n";   
-  fVertex(0)=0.;
-  fVertex(1)=0.;
-/////////////////////////////////////////////////////////////////////////////////////////////////// 
-*/ 
+
   
   Double_t dd=TMath::Sqrt((x0m-fVertex(0))*(x0m-fVertex(0))+(y0m-fVertex(1))*(y0m-fVertex(1)));
   Double_t signdd;
@@ -224,23 +209,7 @@ void AliITStrack::LmTPC() {
   TMatrix localM(5,5);    
   Double_t cov[15];
   fTPCtrack->GetCovariance(cov);
-  /*
-  localM(0,0)=cov[0];
-  localM(1,1)=cov[2];
-  localM(2,2)=cov[5];
-  localM(3,3)=cov[9];
-  localM(4,4)=cov[14];
-  localM(1,0)=localM(0,1)=cov[1];
-  localM(2,0)=localM(0,2)=cov[3];
-  localM(2,1)=localM(1,2)=cov[4];
-  localM(3,0)=localM(0,3)=cov[6];
-  localM(3,1)=localM(1,3)=cov[7];
-  localM(3,2)=localM(2,3)=cov[8];
-  localM(4,0)=localM(0,4)=cov[10];
-  localM(4,1)=localM(1,4)=cov[11];
-  localM(4,2)=localM(2,4)=cov[12];
-  localM(4,3)=localM(3,4)=cov[13];
-  */
+
   localM(0,0)=cov[0];
   localM(1,1)=cov[2];
   localM(3,3)=cov[5];
@@ -323,7 +292,7 @@ AliITStrack &AliITStrack::operator=(AliITStrack obj) {
   d2=obj.d2;
   tgl2=obj.tgl2; 
   dtgl=obj.dtgl; 
-  //alphaprov=obj.alphaprov; //proviisorio   
     
   *fmCovariance = *obj.fmCovariance;
   *ClusterInTrack = *obj.ClusterInTrack;
@@ -441,6 +410,7 @@ void AliITStrack::Propagation(Double_t rk) {
   *fmCovariance = B;    
        
 }
+/*
 void AliITStrack::AddEL(Double_t signdE, Bool_t flagtot, Double_t mass) {
 //Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
 //  add energy loss
@@ -475,7 +445,83 @@ void AliITStrack::AddEL(Double_t signdE, Bool_t flagtot, Double_t mass) {
   fvTrack(4)=CC; 
                
 }
+*/
+void AliITStrack::AddEL(AliITSRad *rl, Double_t signdE, Bool_t flagtot, Double_t mass=0.1396) {
+//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
+//  add energy loss
 
+  TVector s(6);  
+  //s(0)=0.0026+0.00283; s(1)=0.018; s(2)=0.0094; s(3)=0.0095; s(4)=0.0091; s(5)=0.0087;
+  //0.00277 is added in the first layer to take into account the energy loss in the beam pipe
+
+  //for(int k=0; k<6; k++) cout<<s(k)<<" "; cout<<"\n";
+  
+  //Double_t Cold=fvTrack(4);
+  
+  Double_t phi=fvTrack(0);
+  Double_t tgl=fvTrack(3);
+  Double_t theta=((TMath::Pi())/2.)-TMath::ATan(tgl);
+  //phi*=180./TMath::Pi();
+  //theta*=180./TMath::Pi();
+  //Double_t rad90=(TMath::Pi())/2.;
+  Double_t rad40=(TMath::Pi())*40./180.;
+  Double_t rad100=(TMath::Pi())*100/180;
+  Double_t rad360=(TMath::Pi())*2.;
+  Int_t imax=rl->Getimax();
+  Int_t jmax=rl->Getjmax();
+  Int_t i=(Int_t) ( (theta-rad40)/rad100*imax);
+  Int_t j=(Int_t) ( phi/rad360*jmax );
+  //Int_t i=(Int_t)( ((theta-((TMath::Pi())/4.))/((TMath::Pi())/2.))*imax );
+  //Int_t j=(Int_t)( (phi/((TMath::Pi())*2.))*jmax );
+  if(i<0) i=0;
+  if(i>=imax) i=imax-1;
+  if(j<0) j=0;
+  if(j>=jmax) j=jmax-1;
+  
+  s(0) = 0.0028/TMath::Sin(theta)+( rl->GetRadMatrix1() )(i,j);   // 0.0028 takes into account the beam pipe
+  s(1) = ( rl->GetRadMatrix2() )(i,j);
+  s(2) = ( rl->GetRadMatrix3() )(i,j);
+  s(3) = ( rl->GetRadMatrix4() )(i,j);
+  s(4) = ( rl->GetRadMatrix5() )(i,j);
+  s(5) = ( rl->GetRadMatrix6() )(i,j);
+  
+  //for(int k=0; k<6; k++) cout<<s(k)<<" "; getchar();
+    
+  //if(phi>60) {cout<<" phi = "<<phi<<"\n"; getchar();}
+  //if(theta<45 || theta>135) {cout<<" theta = "<<theta<<"\n"; getchar();}
+  //cout<<" dentro AddEl: phi, theta = "<<phi<<" "<<theta<<"\n"; getchar(); 
+    
+  Double_t cl=1.+fvTrack(3)*fvTrack(3);  // cl=1/(cosl)**2 = 1 + (tgl)**2 
+  Double_t sqcl=TMath::Sqrt(cl);
+  Double_t pt=GetPt();
+     
+  Double_t p2=pt*pt*cl;
+  Double_t E=TMath::Sqrt(p2+mass*mass);
+  Double_t beta2=p2/(p2+mass*mass);
+  
+  Double_t dE;
+  if(flagtot) {
+    Double_t stot=s(0)+s(1)+s(2)+s(3)+s(4)+s(5);
+    dE=0.153/beta2*(log(5940*beta2/(1-beta2)) - beta2)*stot*21.82*sqcl;
+  } else {
+    dE=0.153/beta2*(log(5940*beta2/(1-beta2)) - beta2)*s(fLayer-1)*21.82*sqcl;
+  }   
+  dE=signdE*dE/1000.; 
+         
+  E+=dE;
+  Double_t p=TMath::Sqrt(E*E-mass*mass);   
+  Double_t sign=1.;
+  if((fvTrack)(4) < 0.) sign=-1.; 
+  pt=sign*p/sqcl; 
+  Double_t CC=(0.3*0.2)/(pt*100.);
+  fvTrack(4)=CC;
+  
+  
+  //Double_t DelCC=CC-Cold;
+  //cout<<"  CC , DelCC, covCC = "<<CC<<" "<<DelCC<<" "<<(*fmCovariance)(4,4)<<"\n"; getchar();
+  //(*fmCovariance)(4,4)=(*fmCovariance)(4,4)+DelCC*DelCC;
+               
+}
 void  AliITStrack::Correct(Double_t rk) {
 //Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
 // correct track to take into account real geometry detector
@@ -496,7 +542,7 @@ void  AliITStrack::Correct(Double_t rk) {
   rtrack=rk;
                
 }
-
+/*
 void AliITStrack::AddMS() {
        
 //////////   Modification of the covariance matrix to take into account multiple scattering  ///////////
@@ -521,6 +567,81 @@ void AliITStrack::AddMS() {
   Double_t dd=D+Cy*D*D-Cy*rtrack*rtrack;
   Double_t Q41=-1./cosl*TMath::Sqrt(rtrack*rtrack - dd*dd)/(1.+ 2.*Cy*D);
   
+   
+  TMatrix J(5,2);      
+  J(0,0)=0.; J(0,1)=0.;
+  J(1,0)=0.; J(1,1)=0.;
+  J(2,0)=Q40;    
+  J(2,1)=Q41;          
+  J(3,0)=Q20;  J(3,1)=0.;
+  J(4,0)=Q30;   J(4,1)=0.;
+                       
+  Double_t p2=(GetPt()*GetPt())/(cosl*cosl);
+  Double_t beta2=p2/(p2+mass*mass);
+  Double_t theta2=14.1*14.1/(beta2*p2*1.e6)*(s(layer-1)/cosl); 
+       
+  TMatrix Jt(TMatrix::kTransposed,J);  
+  TMatrix Q(J,TMatrix::kMult,Jt);
+  Q*=theta2;   
+                   
+  (*fmCovariance)+=Q;
+  
+}
+*/
+void AliITStrack::AddMS(AliITSRad *rl) {
+       
+//////////   Modification of the covariance matrix to take into account multiple scattering  ///////////
+//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it     
+   
+  TVector s(6);
+
+  //s(0)=0.0026+0.00283; s(1)=0.018; s(2)=0.0094; s(3)=0.0095; s(4)=0.0091; s(5)=0.0087;
+//0.00277 is added in the first layer to take into account the energy loss in the beam pipe 
+
+
+  Double_t phi=fvTrack(0);
+  Double_t tgl=fvTrack(3);
+  Double_t theta=((TMath::Pi())/2.)-TMath::ATan(tgl);
+  //phi*=180./TMath::Pi();
+  //theta*=180./TMath::Pi();  
+  //Double_t rad90=(TMath::Pi())/2.;
+  Double_t rad40=(TMath::Pi())*40./180.;
+  Double_t rad100=(TMath::Pi())*100/180;
+  Double_t rad360=(TMath::Pi())*2.;
+  Int_t imax=rl->Getimax();
+  Int_t jmax=rl->Getjmax();
+  Int_t i=(Int_t) ( (theta-rad40)/rad100*imax);
+  Int_t j=(Int_t) ( phi/rad360*jmax);
+  //Int_t i=(Int_t)( ((theta-((TMath::Pi())/4.))/((TMath::Pi())/2.))*imax );
+  //Int_t j=(Int_t)( (phi/((TMath::Pi())*2.))*jmax );
+
+  if(i<0) i=0;
+  if(i>=imax) i=imax-1;
+  if(j<0) j=0;
+  if(j>=jmax) j=jmax-1;
+  
+  s(0) = 0.0028/TMath::Sin(theta)+( rl->GetRadMatrix1() )(i,j);   // 0.0028 takes into account the beam pipe
+  s(1) = ( rl->GetRadMatrix2() )(i,j);
+  s(2) = ( rl->GetRadMatrix3() )(i,j);
+  s(3) = ( rl->GetRadMatrix4() )(i,j);
+  s(4) = ( rl->GetRadMatrix5() )(i,j);
+  s(5) = ( rl->GetRadMatrix6() )(i,j);
+      
+  Double_t mass=0.1396;
+  Int_t layer=(Int_t)GetLayer();
+  
+  //Double_t tgl=fvTrack(3);
+  Double_t cosl=TMath::Cos(TMath::ATan(tgl));  
+  Double_t D=fvTrack(2);
+  Double_t C=fvTrack(4);
+  Double_t Cy=C/2.;
+  Double_t Q20=1./(cosl*cosl);  
+  Double_t Q30=C*tgl;
+   
+  Double_t Q40=Cy*(rtrack*rtrack-D*D)/(1.+ 2.*Cy*D);
+  Double_t dd=D+Cy*D*D-Cy*rtrack*rtrack;
+  Double_t Q41=-1./cosl*TMath::Sqrt(rtrack*rtrack - dd*dd)/(1.+ 2.*Cy*D);
+  
   /*
   Double_t xk=rtrack*TMath::Cos(fvTrack(0));
   Double_t yk=rtrack*TMath::Sin(fvTrack(0));  
@@ -540,7 +661,7 @@ void AliITStrack::AddMS() {
                        
   Double_t p2=(GetPt()*GetPt())/(cosl*cosl);
   Double_t beta2=p2/(p2+mass*mass);
-  Double_t theta2=14.1*14.1/(beta2*p2*1.e6)*(s(layer-1)/cosl); 
+  Double_t theta2=14.1*14.1/(beta2*p2*1.e6)*(s(layer-1)/cosl);
        
   TMatrix Jt(TMatrix::kTransposed,J);  
   TMatrix Q(J,TMatrix::kMult,Jt);
@@ -549,8 +670,7 @@ void AliITStrack::AddMS() {
   (*fmCovariance)+=Q;
   
 }
-
-void AliITStrack::PrimaryTrack() {
+void AliITStrack::PrimaryTrack(AliITSRad *rl) {
 //Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
 // calculation of part of covariance matrix for vertex  constraint
 
@@ -570,7 +690,7 @@ void AliITStrack::PrimaryTrack() {
   TMatrix  newC(5,5);
   newC(4,4)=(*fmCovariance)(4,4);
   (*fmCovariance)=newC;
-  AddEL(1.,1);
+  AddEL(rl,1.,1);
   fLayer=0;
   Int_t i;
   for (i=0; i<6; i++) {
@@ -579,8 +699,8 @@ void AliITStrack::PrimaryTrack() {
     d2(i)=(*fmCovariance)(2,2);
     tgl2(i)=(*fmCovariance)(3,3);
     dtgl(i)=(*fmCovariance)(2,3); 
-    AddMS();    
-    AddEL(-1,0);          
+    AddMS(rl);    
+    AddEL(rl,-1,0);       
   }            
 }      
  
index d0df63b790639b7df788b030ee0566ba12bf4bbf..6aa352396ac82858a16b61b14f64a06e689a54d4 100644 (file)
@@ -67,8 +67,8 @@ public:
 
   Double_t GetSigmaphi() const{return ((Double_t)(*fmCovariance)(0,0));}
   Double_t GetSigmaZ() const{return ((Double_t)(*fmCovariance)(1,1));}
-  void AddEL(Double_t signdE,  Bool_t flagtot, Double_t mass=0.1396); 
-  void AddMS();
+  void AddEL(AliITSRad *rl,Double_t signdE,  Bool_t flagtot, Double_t mass=0.1396); 
+  void AddMS(AliITSRad *rl);
   void Correct(Double_t rk); 
   void SetDv(Double_t x) {Dv=x;}
   void SetZv(Double_t x) {Zv=x;}
@@ -78,7 +78,7 @@ public:
   void SetsigmaZv( Double_t x) {sigmaZv=x;} 
   Double_t GetsigmaDv() {return sigmaDv;}
   Double_t GetsigmaZv() {return sigmaZv;} 
-  void PrimaryTrack();
+  void PrimaryTrack(AliITSRad *rl);
   void Setd2(TVector &x) {for(Int_t i=0; i<6; i++){d2(i)=x(i);}}
   void Settgl2(TVector &x) {for(Int_t i=0; i<6; i++){tgl2(i)=x(i);}}
   void Setdtgl(TVector &x) {for(Int_t i=0; i<6; i++){dtgl(i)=x(i);}} 
index 8f5227827371f624fc38d7a07e057c903ed167c9..19b46fdaf2b969ecd059cd5b611749d0749cc216 100644 (file)
@@ -17,7 +17,7 @@ ClassImp(AliITStracking)
  
 
 AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference, 
-                AliITS *aliITS, TObjArray *rpoints, Double_t Ptref, Int_t **vettid, Bool_t flagvert) {                                                                          
+                AliITS *aliITS, TObjArray *rpoints, Double_t Ptref, Int_t **vettid, Bool_t flagvert,  AliITSRad *rl) {                                                                          
 ///////////////////////   This function perform the tracking in ITS detectors /////////////////////
 ///////////////////////     reference is a pointer to the final best track    ///////////////////// 
 //Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
@@ -54,21 +54,26 @@ AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference,
       Chi2Now = trackITS->GetChi2();
       Chi2Now/=NumClustNow;
       //cout<<" Chi2Now =  "<<Chi2Now<<"\n"; 
-
+    /*
     // if(Ptref > 0.6 && Chi2Now > 20.) continue; 
     if(Ptref > 0.6 && Chi2Now > 30.) continue;           
     if((Ptref <= 0.6 && Ptref>0.2)&& Chi2Now > 15.) continue;        
      // if(Chi2Now>5.) continue; 
       //if(Chi2Now>15.) continue;     
      // if(Ptref <= 0.2 && Chi2Now > 10.) continue;  
-     if(Ptref <= 0.2 && Chi2Now > 8.) continue;                                                                 
+     if(Ptref <= 0.2 && Chi2Now > 8.) continue; 
+     */
+     if(Ptref > 1.0 && Chi2Now > 30.) continue; 
+     if((Ptref >= 0.6 && Ptref<=1.0) && Chi2Now > 40.) continue;         
+     if((Ptref <= 0.6 && Ptref>0.2)&& Chi2Now > 40.) continue;            
+     if(Ptref <= 0.2 && Chi2Now > 8.) continue;                                                                         
     }
                 
     Int_t layerInit = (*trackITS).GetLayer();
     Int_t layernew = layerInit - 2;  // -1 for new layer, -1 for matrix index 
                                          
     Int_t NLadder[]= {20, 40, 14, 22, 34, 38}; 
-        Int_t NDetector[]= {4,  4,   5,  8, 23, 26}; 
+    Int_t NDetector[]= {4,  4,   6,  8, 23, 26}; 
                                                
     TList listoftrack;          
     Int_t ladp, ladm, detp,detm,ladinters,detinters;   
@@ -197,8 +202,8 @@ AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference,
           Float_t sigmatotphi, sigmatotz;
                                  
           //Float_t epsphi=3.2, epsz=3.; 
-                        Float_t epsphi=3.2, epsz=3.0;              
-          //if(Ptref<0.2) {epsphi=3.; epsz=3.;}
+           Float_t epsphi=5.0, epsz=5.0;              
+          if(Ptref<0.2) {epsphi=3.; epsz=3.;}
                                  
           Double_t Rtrack=(*trackITS).Getrtrack();
           Double_t sigmaphi=sigma[0]/(Rtrack*Rtrack);
@@ -223,8 +228,8 @@ AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference,
        
           if(iriv == 0) flaghit=1;
  
-          (*newTrack).AddMS();  // add the multiple scattering matrix to the covariance matrix 
-         (*newTrack).AddEL(1.,0);
+          (*newTrack).AddMS(rl);  // add the multiple scattering matrix to the covariance matrix 
+         (*newTrack).AddEL(rl,1.,0);
                 
          Double_t sigmanew[2];
          sigmanew[0]= sigmaphi;
@@ -253,8 +258,8 @@ AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference,
     if(flaghit==0 || outinters==-2) {
       AliITStrack *newTrack = new AliITStrack(*trackITS);       
       (*newTrack).SetLayer((*trackITS).GetLayer()-1); 
-      (*newTrack).AddMS();  // add the multiple scattering matrix to the covariance matrix  
-      (*newTrack).AddEL(1.,0);               
+      (*newTrack).AddMS(rl);  // add the multiple scattering matrix to the covariance matrix  
+      (*newTrack).AddEL(rl,1.,0);            
                                                  
       listoftrack.AddLast(newTrack);     
     }  
@@ -262,7 +267,7 @@ AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference,
 
     //gObjectTable->Print();   // stampa memoria
 
-    AliITStracking(&listoftrack, reference, aliITS, rpoints,Ptref,vettid,flagvert);          
+    AliITStracking(&listoftrack, reference, aliITS, rpoints,Ptref,vettid,flagvert,rl);          
     listoftrack.Delete();
   } // end of for on tracks
 
@@ -286,7 +291,7 @@ Int_t AliITStracking::NewIntersection(AliITStrack &track, Double_t rk,Int_t laye
   //////////////////////////////////      limits for Geometry 5      /////////////////////////////
   
   Int_t NLadder[]= {20, 40, 14, 22, 34, 38};
-  Int_t NDetector[]= {4,  4,   5,  8, 23, 26}; 
+  Int_t NDetector[]= {4,  4,   6,  8, 23, 26}; 
 
   Float_t Detx[]= {0.64, 0.64, 3.509, 3.509, 3.65, 3.65 };
   Float_t Detz[]= {4.19, 4.19, 3.75 , 3.75 , 2   , 2    };
index 54f6dfe08bc337d53e822b005cb3b8ae19d47653..c9b8370a61f74ed8c458fef4c375d993619983c2 100644 (file)
@@ -9,7 +9,7 @@ class TVector;
 class TMatrix;
 class AliITStrack;
 class AliITS;
-
+class AliITSRad;
 
 class AliITStracking : public TObject {
 
@@ -22,7 +22,7 @@ public:
   AliITStracking() {;}
 
   AliITStracking(TList *trackITSlist,AliITStrack *reference,AliITS *obj,TObjArray *fpoints,
-                 Double_t Ptref, Int_t **vettid, Bool_t flagvert );
+                 Double_t Ptref, Int_t **vettid, Bool_t flagvert, AliITSRad *rl );
 
   Int_t NewIntersection(AliITStrack &track, Double_t rk,Int_t layer, Int_t &ladder, Int_t &detector );
   Double_t PhiDef(Double_t x, Double_t y);