X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSTrackV1.cxx;h=80ca853165beb0bf337780d90acadb375ca1d494;hb=ca8fb7ae92bb129d6d49ba33f64fc5b22946a3b1;hp=4a6b0f84705356e2ffca39ee35dd9f9f38435e56;hpb=55cd883fcc6e83d68525694aca9a12c03f810834;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSTrackV1.cxx b/ITS/AliITSTrackV1.cxx index 4a6b0f84705..80ca853165b 100644 --- a/ITS/AliITSTrackV1.cxx +++ b/ITS/AliITSTrackV1.cxx @@ -4,7 +4,7 @@ // The track is mainly caracterized by the state vector of elements (fX0, fX1, fX2, fX3, fX4) and the // corresponding covariance matrix of elements (C00, C10, ..... C44) that is triangular // -#include +#include #include #include #include @@ -12,7 +12,7 @@ #include "AliITSRad.h" #include "AliITSTrackV1.h" #include "AliGenerator.h" -#include "AliMagF.h" +//#include "AliMagF.h" ClassImp(AliITSTrackV1) @@ -23,30 +23,51 @@ AliITSTrackV1::AliITSTrackV1() { fTPCtrack = 0; fC00=fC10=fC11=fC20=fC21=fC22=fC30=fC31=fC32=fC33=fC40=fC41=fC42=fC43=fC44=0.; - flistCluster = new TObjArray; + flistCluster = 0; + fNumClustInTrack =0; + fChi2=-1; + flabel =0; + fLayer = -1; + fClusterInTrack = 0; + frtrack=0.; + fnoclust=0; + fMass=0.13956995; //a pion by default + fFieldFactor = 0.0; + fdEdx = 0.; // oggi + Int_t ia=0; // oggi + for( ia=0; ia<4; ia++) fcor[ia]=0.; // oggi + +} +AliITSTrackV1::AliITSTrackV1(Double_t fieldfactor) { +//Origin A. Badala' and G.S. Pappalardo: e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it +// default constructor + + fTPCtrack = 0; + fC00=fC10=fC11=fC20=fC21=fC22=fC30=fC31=fC32=fC33=fC40=fC41=fC42=fC43=fC44=0.; + flistCluster = 0; fNumClustInTrack =0; fChi2=-1; flabel =0; fVertex.ResizeTo(3); fErrorVertex.ResizeTo(3); fLayer = -1; - fClusterInTrack = new TMatrix(6,9); - Int_t i,j; - //for(i=0; i<6; i++) (*fClusterInTrack)(i,6)=(*fClusterInTrack)(i,7)= - // (*fClusterInTrack)(i,8)=-1.; - for(i=0; i<6; i++){ - for(j=4; j<9; j++) (*fClusterInTrack)(i,j)=-1.; //modificata angela - } + fClusterInTrack = 0; frtrack=0.; fnoclust=0; fd2.ResizeTo(6); ftgl2.ResizeTo(6); fdtgl.ResizeTo(6); + fMass=0.13956995; //a pion by default + fdEdx = 0.; + Int_t ia=0; + for( ia=0; ia<4; ia++) fcor[ia]=0.; + //////////////////////////////////////// gets magnetic field factor //////////////////////////////// - AliMagF * fieldPointer = gAlice->Field(); - fFieldFactor = (Double_t)fieldPointer->Factor(); + // AliMagF * fieldPointer = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField()); + // fFieldFactor =(Double_t)fieldPointer-> SolenoidField()/10/.2; + fFieldFactor = fieldfactor; //cout<< " field factor = "<GetSize(); i++) flistCluster->AddLast(cobj.flistCluster->At(i)); } -AliITSTrackV1::AliITSTrackV1(AliTPCtrack &obj) +AliITSTrackV1::AliITSTrackV1(AliTPCtrack &obj, Double_t fieldfactor) { //Origin A. Badala' and G.S. Pappalardo: e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it // special constructor to convert a TPC track into an ITS track //////////////////////////////////////// gets magnetic field factor //////////////////////////////// - AliMagF * fieldPointer = gAlice->Field(); - fFieldFactor = (Double_t)fieldPointer->Factor(); - //cout<< " field factor = "<GetField()); + // fFieldFactor =(Double_t)fieldPointer-> SolenoidField()/10/.2; + fFieldFactor = fieldfactor; + // cout<< " field factor dentro alitrack = "<0.) phi=0.; - if(ym==0. && xm<0.) phi=pigre; - if(xm==0 && ym>0.) phi=pigre/2.; - if(xm==0 && ym<0.) phi=1.5*pigre; - } - else { - if (xm>0. && ym>0.) phi=TMath::ATan(ym/xm); - if (xm<0. && ym>0.) phi=pigre+TMath::ATan(ym/xm); - if (xm<0. && ym<0.) phi=pigre+TMath::ATan(ym/xm); - if (xm>0. && ym<0.) phi=(2*pigre)+TMath::ATan(ym/xm); - }; - if(phi<0. || phi>(2*pigre)) {cout<<"attention error on phi in AliITSTrackV1:LmTPC \n"; getchar();} - */ - Double_t phi=TMath::ATan2(ym,xm); if(phi<0) phi=2.*TMath::Pi()+phi; //nuova def phi + Double_t phi=TMath::ATan2(ym,xm); if(phi<0) phi=2.*TMath::Pi()+phi; fX0=phi; fX1=zm; @@ -286,12 +292,12 @@ void AliITSTrackV1::LmTPC() { dfidy=(xm*cosa+ym*sina)/(frtrack*frtrack); dDdy=signdd*((y0m-fVertex(1))*cosa-(x0m-fVertex(0))*sina)/dd; - Double_t dyodr=signy*(r+(xl-xo)*etaTPC)/TMath::Sqrt(r*r-(xl-xo)*(xl-xo)); + Double_t dyodr=signy*(r+(xl-xo)*etaTPC)/TMath::Sqrt((r-(xl-xo))*(r+(xl-xo))); Double_t dyomdr=sina*etaTPC+cosa*dyodr; Double_t dxomdr=cosa*etaTPC-sina*dyodr; Double_t ddddR=((x0m-fVertex(0))*dxomdr+(y0m-fVertex(1))*dyomdr)/dd; dDdC=-r*r*(signdd*ddddR-1.); - Double_t dyoldxol=signy*(xl-xo)/TMath::Sqrt(r*r-(xl-xo)*(xl-xo)); + Double_t dyoldxol=signy*(xl-xo)/TMath::Sqrt((r-(xl-xo))*(r+(xl-xo))); Double_t dxomdeta=r*(cosa-sina*dyoldxol); Double_t dyomdeta=r*(sina+cosa*dyoldxol); dDdeta=signdd*((x0m-fVertex(0))*dxomdeta+(y0m-fVertex(1))*dyomdeta)/dd; @@ -322,7 +328,6 @@ void AliITSTrackV1::LmTPC() { fC43=cov[13]; fC44=cov[9]; - //cout<<" C32 e C44 = "<GetSigmaY2(), r01=0., r11=c->GetSigmaZ2(); - r00+=fC00; r01+=fC10; r11+=fC11; - - Double_t det=r00*r11 - r01*r01; - if (TMath::Abs(det) < 1.e-10) { - Int_t n=GetNumberOfClusters(); - if (n>4) cerr<GetY() - fP0, dz=c->GetZ() - fP1; - - return (dy*r00*dy + 2*r01*dy*dz + dz*r11*dz)/det; - */ - - + Double_t r00=sigma[0], r01=0., r11=sigma[1]; r00+=fC00; r01+=fC10; r11+=fC11; Double_t det=r00*r11-r01*r01; @@ -800,7 +799,4 @@ Double_t AliITSTrackV1::GetPredChi2(Double_t m[2], Double_t sigma[2] ) const { Double_t chi2 = (dphi*r00*dphi +2.*r01*dphi*dz + dz*r11*dz)/det; return chi2; - - - }