X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITStrack.cxx;h=06f8c8d20029a2fb6177c9efee424fcebe52fb0e;hb=8af13b4b2c925ccb80ffa648b285dd78178f9e57;hp=8545c8556432cebc58187f886f3956e9d3ef6957;hpb=2e3c7808207d771c2ca6dc360c993d23bf0ff57e;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITStrack.cxx b/ITS/AliITStrack.cxx index 8545c855643..06f8c8d2002 100644 --- a/ITS/AliITStrack.cxx +++ b/ITS/AliITStrack.cxx @@ -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) ="<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<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<60) {cout<<" phi = "<135) {cout<<" theta = "<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); } }