No more needed. They will be substituted by the new version of tracking V1
authorbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Jul 2001 17:11:04 +0000 (17:11 +0000)
committerbarbera <barbera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 3 Jul 2001 17:11:04 +0000 (17:11 +0000)
ITS/AliITSiotrack.cxx [deleted file]
ITS/AliITSiotrack.h [deleted file]
ITS/AliITStrack.cxx [deleted file]
ITS/AliITStrack.h [deleted file]
ITS/AliITStracking.cxx [deleted file]
ITS/AliITStracking.h [deleted file]

diff --git a/ITS/AliITSiotrack.cxx b/ITS/AliITSiotrack.cxx
deleted file mode 100644 (file)
index 73d4d18..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-////////////////////////////////////////////////
-//  Reconstructed point class for set:ITS     //
-////////////////////////////////////////////////
-
-#include <TMatrix.h>
-
-#include "AliITSiotrack.h"
-
-ClassImp(AliITSiotrack)
-
-AliITSiotrack::AliITSiotrack() {
-
-  // default creator
-  fLab=-3; 
-  fX=fZ=fY=0.; 
-  fPx=fPy=fPz=0.;
-  for (Int_t i=0;i<6;i++) {fIdModules[i]=fIdPoints[i]=-1; fIdPoints[i]=-1;}
-  fStateVPhi=0.; fStateVZ=0.; fStateVD=0.; fStateVTgl=0.; fStateVC=0.;
-  fRadius=0.; fCharge=0; 
-  fC00=fC10=fC11=fC20=fC21=fC22=fC30=fC31=fC32=fC33=fC40=fC41=fC42=fC43=fC44=0.;      
-}
-   
-
-void AliITSiotrack::SetCovMatrix(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21, 
-Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40, 
-Double_t C41, Double_t C42, Double_t C43, Double_t C44){
-
-  fC00=C00; fC10=C10; fC11=C11; fC20=C20; fC21=C21; fC22=C22; fC30=C30; fC31=C31;
-  fC32=C32; fC33=C33; fC40=C40; fC41=C41; fC42=C42; fC43=C43; fC44=C44; 
-}
-
-void AliITSiotrack::GetCovMatrix(Double_t &C00, Double_t &C10, Double_t &C11,
-Double_t &C20, Double_t &C21, Double_t &C22, Double_t &C30, Double_t &C31, 
-Double_t &C32, Double_t &C33, Double_t &C40, Double_t &C41, Double_t &C42, 
-Double_t &C43, Double_t &C44){
-
-  C00=fC00; C10=fC10; C11=fC11; C20=fC20; C21=fC21; 
-  C22=fC22; C30=fC30; C31=fC31; C32=fC32; C33=fC33;
-  C40=fC40; C41=fC41; C42=fC42; C43=fC43; C44=fC44;  
-}
-
diff --git a/ITS/AliITSiotrack.h b/ITS/AliITSiotrack.h
deleted file mode 100644 (file)
index d1f8457..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef ALIITSIOTRACK_H
-#define ALIITSIOTRACK_H 
-
-////////////////////////////////////////////////////
-//  Reconstructed space point class for set:ITS   //
-////////////////////////////////////////////////////
-
-#include <TObject.h>
-
-class AliITSiotrack : public TObject {
-
-
- public:
-
-  AliITSiotrack();                        // constructor
-  virtual ~AliITSiotrack() {};            // distructor
-  Int_t   GetLabel() const {return fLab;} // get track label
-  Int_t   GetIdPoint(Int_t i) const {return fIdPoints[i];}   // get the identification number for the point
-  Int_t   GetIdModule(Int_t i) const {return fIdModules[i];} // get the module number for the point
-  //Double_t * GetStateVector();            // get the state vector (5 elements)
-  //Double_t * GetCovMatrix();              // get the covariance matrix as 15 elements array
- void GetCovMatrix(Double_t &C00, Double_t &C10, Double_t &C11, Double_t &C20,
-                   Double_t &C21, Double_t &C22, Double_t &C30, Double_t &C31,
-                  Double_t &C32, Double_t &C33, Double_t &C40, Double_t &C41,
-                  Double_t &C42, Double_t &C43, Double_t &C44);
-  Double_t GetStatePhi() const {return fStateVPhi;}  // gets the Phi angle of the state vector
-  Double_t GetStateZ() const {return fStateVZ;}      // gets the Z cohordinate of the state vector
-  Double_t GetStateD() const {return fStateVD;}      // gets the radial impact parameter of the state vector
-  Double_t GetStateC() const {return fStateVC;}      // gets the curvature C of the state vector
-  Double_t GetStateTgl() const {return fStateVTgl;}  // gets the dip angle tangent of the state vector
-  Double_t GetRadius() const {return fRadius;}       // gets the radius corresponding to the state vector
-  Int_t     GetCharge() const {return fCharge;}      // gets the particle charge
-  Float_t GetX() const {return fX;}     // gets the x cohordinate of the found vertex
-  Float_t GetZ() const {return fZ;}     // gets the z cohordinate of the found vertex
-  Float_t GetY() const {return fY;}     // gets the y cohordinate of the found vertex
-  Float_t GetPx() const {return fPx;}   // gets the x momentum component at the found vertex 
-  Float_t GetPy() const {return fPy;}   // gets the y momentum component at the found vertex 
-  Float_t GetPz()const {return fPz;}    // gets the z momentum component at the found vertex 
-  //void SetCovMatrix(TMatrix *cov);      // sets the covariance matrix
-  void SetCovMatrix(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21, 
-       Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40, 
-       Double_t C41, Double_t C42, Double_t C43, Double_t C44);
-  
-  void SetLabel(Int_t lab) {fLab=lab;}  // sets the track label
-  void SetIdPoint(Int_t i,Int_t pnt) {fIdPoints[i]=pnt;}   // set the identification number for the point
-  void SetIdModule(Int_t i,Int_t mod) {fIdModules[i]=mod;} // set the module number for the point
-   
-  void SetStatePhi(Double_t phi) {fStateVPhi=phi;}   // sets the Phi angle of the state vector 
-  void SetStateZ(Double_t z) {fStateVZ=z;}           // sets the Z cohordinate of the state vector
-  void SetStateD(Double_t d) {fStateVD=d;}           // sets the radial impact parameter of the state vector 
-  void SetStateTgl(Double_t tgl) {fStateVTgl=tgl;}   // sets the dip angle tangent of the state vector
-  void SetStateC(Double_t c) {fStateVC=c;}           // sets the curvature C of the state vector
-  void SetRadius(Double_t r) {fRadius= r;}           // sets the radius corresponding to the state vector
-  void SetCharge(Int_t charge) {fCharge=charge;}     // sets the particle charge
-
-  void SetX(Float_t x){fX=x;}        // sets the x cohordinate of the found vertex
-  void SetZ(Float_t z){fZ=z;}        // sets the z cohordinate of the found vertex
-  void SetY(Float_t y){fY=y;}        // sets the y cohordinate of the found vertex
-  void SetPx(Float_t px) {fPx=px;}   // sets the x momentum component at the found vertex 
-  void SetPy(Float_t py) {fPy=py;}   // sets the y momentum component at the found vertex
-  void SetPz(Float_t pz) {fPz=pz;}   // sets the z momentum component at the found vertex
-
- private:
-    
-  Int_t     fLab;       // label of reconstructed track
-  Float_t   fX ;        // x cohordinate of the found vertex
-  Float_t   fY ;        // y cohordinate of the found vertex
-  Float_t   fZ ;        // z cohordinate of the found vertex
-  Float_t   fPx;        // x component of track momentum at the found vertex
-  Float_t   fPy;        // y component of track momentum at the found vertex
-  Float_t   fPz;        // z component of track momentum at the found vertex
-   
-  //
-  Int_t     fIdPoints[6];   // points assigned to the track (entry # in fRecPoints is given by module #)
-  Int_t     fIdModules[6];  // module # corresponding to each point belonging to the track
-
-  Double_t  fStateVPhi;          // 
-  Double_t  fStateVZ;            //  state vector components
-  Double_t  fStateVD;            //
-  Double_t  fStateVTgl;          //
-  Double_t  fStateVC;            //
-        
-  Double_t  fRadius;             //  distance of the point from the origin
-  Int_t     fCharge;             //  particle charge  
-
-//  Covariance matrix
-//Double_t  fcovar[25];              //! Elements of Covariance matrix below
-  Double_t  fC00;
-  Double_t  fC10, fC11;
-  Double_t  fC20, fC21, fC22;
-  Double_t  fC30, fC31, fC32, fC33;
-  Double_t  fC40, fC41, fC42, fC43, fC44;
-        
-  ClassDef(AliITSiotrack,1)  // AliITSiotrack class
-};
-
-#endif
diff --git a/ITS/AliITStrack.cxx b/ITS/AliITStrack.cxx
deleted file mode 100644 (file)
index 0719582..0000000
+++ /dev/null
@@ -1,712 +0,0 @@
-#include <iostream.h>
-#include <TMath.h>
-#include <TVector.h>
-#include <TMatrix.h>
-#include <TObjArray.h>
-
-#include "AliITS.h"
-#include "AliRun.h"
-#include "AliITStrack.h"
-#include "AliGenerator.h"
-#include "AliITSRad.h"
-
-
-ClassImp(AliITStrack)
-
-AliITStrack::AliITStrack() {
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it 
-// default constructor   
-  fC00=fC10=fC11=fC20=fC21=fC22=fC30=fC31=fC32=fC33=fC40=fC41=fC42=fC43=fC44=0.;
-  flistCluster = new TObjArray; 
-  fNumClustInTrack =0;
-  fChi2=-1;
-  flabel =0; 
-  fVertex.ResizeTo(3); 
-  fErrorVertex.ResizeTo(3);
-  fLayer = -1; 
-  ClusterInTrack = new TMatrix(6,9);
-  Int_t i;
-  for(i=0; i<6; i++) (*ClusterInTrack)(i,6)=(*ClusterInTrack)(i,7)=
-                           (*ClusterInTrack)(i,8)=-1.;
-  rtrack=0.; 
-  d2.ResizeTo(6);
-  tgl2.ResizeTo(6); 
-  dtgl.ResizeTo(6);   
-}
-
-
-AliITStrack::AliITStrack(const AliITStrack &cobj) {
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it    
-
-  ClusterInTrack = new TMatrix(6,9);
-  Int_t i;
-  for(i=0; i<6; i++) (*ClusterInTrack)(i,6)=(*ClusterInTrack)(i,7)=
-                           (*ClusterInTrack)(i,8)=-1.;
-  flistCluster = new TObjArray; 
-  fVertex.ResizeTo(3); 
-  fErrorVertex.ResizeTo(3);
-  fVertex = cobj.fVertex;
-  fErrorVertex = cobj.fErrorVertex;
-  flabel = cobj.flabel;
-  fLayer=cobj.fLayer;
-  fTPCtrack = cobj.fTPCtrack;
-  fNumClustInTrack = cobj.fNumClustInTrack; 
-  fChi2= cobj.fChi2;
-  fX0=cobj.fX0; fX1=cobj.fX1; fX2=cobj.fX2; fX3=cobj.fX3; fX4=cobj.fX4; 
-  rtrack=cobj.rtrack;
-  Dv=cobj.Dv;
-  Zv=cobj.Zv;
-  sigmaDv=cobj.sigmaDv;
-  sigmaZv=cobj.sigmaZv;
-  d2.ResizeTo(6);
-  tgl2.ResizeTo(6); 
-  dtgl.ResizeTo(6); 
-  d2=cobj.d2;
-  tgl2=cobj.tgl2;
-  dtgl=cobj.dtgl;
-    
-  fC00=cobj.fC00; fC10=cobj.fC10; fC11=cobj.fC11; fC20=cobj.fC20; fC21=cobj.fC21;
-  fC22=cobj.fC22; fC30=cobj.fC30; fC31=cobj.fC31; fC32=cobj.fC32; fC33=cobj.fC33; 
-  fC40=cobj.fC40; fC41=cobj.fC41; fC42=cobj.fC42; fC43=cobj.fC43; fC44=cobj.fC44; 
-  *ClusterInTrack = *cobj.ClusterInTrack;
-  for(i=0; i<cobj.flistCluster->GetSize(); i++) 
-    flistCluster->AddLast(cobj.flistCluster->At(i));
-}
-
-AliITStrack::AliITStrack(AliTPCtrack &obj)
-{ 
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it 
-
-  fTPCtrack = &obj;
-  fVertex.ResizeTo(3); 
-  fErrorVertex.ResizeTo(3);
-
-  d2.ResizeTo(6);
-  tgl2.ResizeTo(6); 
-  dtgl.ResizeTo(6); 
-  AliGenerator *gener = gAlice->Generator();
-  Float_t Vxg,Vyg,Vzg;
-  gener->GetOrigin(Vxg,Vyg,Vzg);
-  
-  fVertex(0)=(Double_t)Vxg;
-  fVertex(1)=(Double_t)Vyg; 
-  fVertex(2)=(Double_t)Vzg;    
-  
-  fLayer = 7;
-  //fmCovariance = new TMatrix(5,5);
-  ClusterInTrack = new TMatrix(6,9);
-  
-  Int_t i;
-  for(i=0; i<6; i++) (*ClusterInTrack)(i,6)=(*ClusterInTrack)(i,7)=
-                           (*ClusterInTrack)(i,8)=-1.;
-  flistCluster = new TObjArray; 
-  fNumClustInTrack = 0; 
-  LmTPC(); 
-
-}
-
-
-AliITStrack::~AliITStrack() { 
-
-  //destructor
-  if(flistCluster) delete flistCluster; 
-  if(ClusterInTrack) delete ClusterInTrack;
-
-}     
-
-void AliITStrack::PutCElements(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21, 
-Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40, 
-Double_t C41, Double_t C42, Double_t C43, Double_t C44){
-
-  fC00=C00; fC10=C10; fC11=C11; fC20=C20; fC21=C21; fC22=C22; fC30=C30; fC31=C31; fC32=C32; fC33=C33;
-  fC40=C40; fC41=C41; fC42=C42; fC43=C43; fC44=C44; 
-}
-  
-void AliITStrack::GetCElements(Double_t &C00, Double_t &C10, Double_t &C11, Double_t &C20, Double_t &C21, 
-Double_t &C22, Double_t &C30, Double_t &C31, Double_t &C32, Double_t &C33, Double_t &C40, 
-Double_t &C41, Double_t &C42, Double_t &C43, Double_t &C44){
-
-  C00=fC00; C10=fC10; C11=fC11; C20=fC20; C21=fC21; C22=fC22; C30=fC30; C31=fC31; C32=fC32; C33=fC33;
-  C40=fC40; C41=fC41; C42=fC42; C43=fC43; C44=fC44; 
-
-}
-
-void AliITStrack::GetXElements(Double_t &X0, Double_t &X1, Double_t &X2, Double_t &X3, Double_t &X4) {
-  X0=fX0; X1=fX1; X2=fX2; X3=fX3; X4=fX4; 
-}
-
-void AliITStrack::PutXElements(Double_t X0, Double_t X1, Double_t X2, Double_t X3, Double_t X4){
-  fX0=X0; fX1=X1; fX2=X2; fX3=X3; fX4=X4; 
-}   
-
-void AliITStrack::LmTPC() {
-
-// Transform the TPC state vector from TPC-local to master and build a new state vector ITS-type
-// The covariance matrix is also modified accordingly
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it      
-
-   
-  Double_t Alpha = fTPCtrack->GetAlpha(); 
-  //printf("LmTPC: Alpha %f\n",Alpha); 
-
-  Double_t YTPC   = fTPCtrack->GetY();
-  Double_t ZTPC   = fTPCtrack->GetZ();
-  Double_t CTPC   = fTPCtrack->GetC();
-  Double_t EtaTPC = fTPCtrack->GetEta();
-  Double_t TglTPC = fTPCtrack->GetTgl();
-  
-
-  Double_t xm, ym, zm;
-  Double_t sina = TMath::Sin(Alpha);
-  Double_t cosa = TMath::Cos(Alpha);
-  Double_t xl= fTPCtrack->GetX();
-  xm = xl * cosa - YTPC*sina;
-  ym = xl * sina + YTPC*cosa;
-  zm = ZTPC;  
-  //cout<<" xl e alpha = "<<xl<<" "<<Alpha<<"\n"; getchar(); 
-
-  Double_t x0m,y0m;
-
-  ///////////////////////////////////// determine yo //////////////////////////////////////////////////
-  
-  Double_t Vxl=fVertex(0)*cosa+fVertex(1)*sina;
-  Double_t Vyl= -fVertex(0)*sina+fVertex(1)*cosa;
-  Double_t Xo,Yo, signy;
-  Double_t R = 1./CTPC;
-  Xo =  EtaTPC / CTPC;
-  xoTPC=Xo;
-  Double_t Yo1, Yo2, diffsq1, diffsq2;  
-  Yo1 = YTPC +  TMath::Sqrt(R*R - (xl-Xo)*(xl-Xo)); 
-  Yo2 = YTPC -  TMath::Sqrt(R*R - (xl-Xo)*(xl-Xo));   
-  diffsq1=TMath::Abs((Yo1-Vyl)*(Yo1-Vyl)+(Xo-Vxl)*(Xo-Vxl)-R*R);
-  diffsq2=TMath::Abs((Yo2-Vyl)*(Yo2- Vyl)+(Xo-Vxl)*(Xo-Vxl)-R*R);
-  if(diffsq1<diffsq2) {Yo=Yo1; signy=1.;} else {Yo=Yo2; signy=-1.;};
-  
-  ////////////////////////////////////////////////////////////////////////////////////////////////////
-
-  x0m = Xo * cosa - Yo * sina;
-  y0m = Xo * sina + Yo * cosa;  
-
-  rtrack=TMath::Sqrt(xm*xm+ym*ym);
-  Double_t pigre=TMath::Pi();
-  Double_t phi=0.0;
-  if(ym == 0. || xm == 0.) {
-    if(ym == 0. && xm == 0.) {cout << "  Error in AliITStrack::LmTPC x=0 and y=0 \n"; getchar();}
-    if(ym ==0. && xm>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  AliITStrack:LmTPC \n"; getchar();}  
-
-  fX0=phi;
-  fX1=zm;
-  fX3=TglTPC;
-  fX4=CTPC;
-
-  
-  Double_t dd=TMath::Sqrt((x0m-fVertex(0))*(x0m-fVertex(0))+(y0m-fVertex(1))*(y0m-fVertex(1)));
-  Double_t signdd;
-  if (R>0) signdd=1.; else signdd=-1.;
-  fX2=signdd*dd-R;
-  //cout<<" fvertex = "<<fVertex(0)<<" "<<fVertex(1)<<" "<<fVertex(2)<<"\n";
-      
-  Double_t cov[15];
-  fTPCtrack->GetCovariance(cov);
-
-  Double_t  dfidy, dDdy, dDdC, dDdeta;
-
-  dfidy=(xm*cosa+ym*sina)/(rtrack*rtrack);
-  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 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 dxomdeta=R*(cosa-sina*dyoldxol);
-  Double_t dyomdeta=R*(sina+cosa*dyoldxol);
-  dDdeta=signdd*((x0m-fVertex(0))*dxomdeta+(y0m-fVertex(1))*dyomdeta)/dd;
-  
-  Double_t F00=dfidy;
-  Double_t F20=dDdy;    
-  Double_t F22=dDdC;    
-  Double_t F23=dDdeta;
-  
-  Double_t T00=cov[0]*F00;
-  Double_t T02=cov[0]*F20+cov[6]*F22+cov[3]*F23;
-  Double_t T20=cov[6]*F00;
-  Double_t T22=cov[6]*F20+cov[9]*F22+cov[8]*F23;
-  
-  fC00=F00*T00;
-  fC10=cov[1]*F00;
-  fC11=cov[2];
-  fC20=F20*T00+F22*T20+F23*cov[3]*F00;
-  fC21=F20*cov[1]+F22*cov[7]+F23*cov[4];
-  fC22=F20*T02+F22*T22+F23*(cov[3]*F20+cov[8]*F22+cov[5]*F23);
-  fC30=cov[10]*F00;
-  fC31=cov[11];
-  fC32=cov[10]*F20+cov[13]*F22+cov[12]*F23;
-  fC33=cov[14];
-  fC40=T20;
-  fC41=cov[7];
-  fC42=T22;
-  fC43=cov[13];
-  fC44=cov[9];
-  
-  //cout<<" C32 e C44 = "<<fC32<<" "<<fC44<<"\n"; getchar();
-   
-}
-
-
-AliITStrack &AliITStrack::operator=(AliITStrack obj) {
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
-
-  delete flistCluster;
-  delete ClusterInTrack;
-  ClusterInTrack = new TMatrix(6,9);
-  flistCluster = new TObjArray; 
-  flabel = obj.flabel;
-  fTPCtrack = obj.fTPCtrack; 
-  fNumClustInTrack = obj.fNumClustInTrack; 
-  fChi2= obj.fChi2;
-  fVertex=obj.fVertex;
-  fErrorVertex=obj.fErrorVertex;
-  fX0=obj.fX0; fX1=obj.fX1; fX2=obj.fX2; fX3=obj.fX3; fX4=obj.fX4;  
-  fLayer=obj.fLayer;
-  rtrack=obj.rtrack;
-  Dv=obj.Dv;
-  Zv=obj.Zv;
-  sigmaDv=obj.sigmaDv;
-  sigmaZv=obj.sigmaZv;
-  d2=obj.d2;
-  tgl2=obj.tgl2; 
-  dtgl=obj.dtgl; 
-  
-  fC00=obj.fC00; fC10=obj.fC10; fC11=obj.fC11; fC20=obj.fC20; fC21=obj.fC21;
-  fC22=obj.fC22; fC30=obj.fC30; fC31=obj.fC31; fC32=obj.fC32; fC33=obj.fC33; 
-  fC40=obj.fC40; fC41=obj.fC41; fC42=obj.fC42; fC43=obj.fC43; fC44=obj.fC44; 
-  
-  
-  *ClusterInTrack = *obj.ClusterInTrack;
-  Int_t i;
-  for(i=0; i<obj.flistCluster->GetSize(); i++) flistCluster->AddLast(obj.flistCluster->At(i));
-
-  return *this;
-  
-}
-
-void AliITStrack::PutCluster(Int_t layerc, TVector vecclust) {
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
-  
-  (*ClusterInTrack)(layerc,0) = vecclust(0);
-  (*ClusterInTrack)(layerc,1) = vecclust(1);
-  (*ClusterInTrack)(layerc,2) = vecclust(2);
-  (*ClusterInTrack)(layerc,3) = vecclust(3);
-  (*ClusterInTrack)(layerc,4) = vecclust(4);  
-  (*ClusterInTrack)(layerc,5) = vecclust(5);
-  (*ClusterInTrack)(layerc,6) = vecclust(6);
-  (*ClusterInTrack)(layerc,7) = vecclust(7);
-  (*ClusterInTrack)(layerc,8) = vecclust(8);
-
-}
-
-
-void AliITStrack::GetClusters() {
-
-  TMatrix A(*ClusterInTrack);
-  TMatrix B(6,3);
-  Int_t i;
-  for(i=0;i<6; i++){
-   B(i,0)=A(i,6); B(i,1)=A(i,7); B(i,2)=A(i,8); 
-  }
-  A.Print();
- // B.Print(); 
-}
-
-
-TVector AliITStrack::GetLabTrack(Int_t lay) {
-  TVector VecLabel(3);
-  VecLabel(0)=( (Float_t) (*ClusterInTrack)(lay,6) );
-  VecLabel(1)=( (Float_t) (*ClusterInTrack)(lay,7) );
-  VecLabel(2)=( (Float_t) (*ClusterInTrack)(lay,8) );
-  return VecLabel;
-}
-
-void AliITStrack::Search(TVector VecTotLabref, Long_t &labref, Int_t &freq){
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
-// define label
-
-  Int_t vecfreq[18];
-  
-  Int_t i,j;
-  for(i=0; i<18; i++) vecfreq[i]=0;
-  
-  for(i=0; i<18; i++) {
-    for(j=0; j<18; j++) {
-     // if(VecTotLabref(i) == 0.) VecTotLabref(i)=-3.;  //commentato il 5-3-2001
-      if( (VecTotLabref(i)>=0.) && (VecTotLabref(i)==VecTotLabref(j)) ) vecfreq[i]++;    
-    }  
-  }
-  Int_t imax=-1000;
-  Long_t  labdefault= (Long_t)1000000.;
-  freq=0;
-  for(i=0; i<18; i++) {
-    if(vecfreq[i]>freq) {freq=vecfreq[i]; imax=i;}  
-  }
-  if(imax<0) labref=labdefault; else labref=(Long_t) VecTotLabref(imax);
-} 
-
-
-void AliITStrack::Propagation(Double_t rk) {
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it  
-//Propagation of track 
-  Double_t duepi=2.*TMath::Pi();
-  Double_t rkm1=rtrack;
-//cout<<" rk e rkm1 dentro Propagation   "<<rk<<" "<<rkm1<<"\n";
-  
-  //
-  Double_t Ak=argA(rk), Akm1=argA(rkm1);
-  Double_t ak=arga(rk), akm1=arga(rkm1);
-  fX0+=TMath::ASin(Ak)-TMath::ASin(Akm1);
-
-  if(fX0>duepi) fX0-=duepi;
-  if(fX0<0.) fX0+=duepi;
-       
-  Double_t tgl=fX3;
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2;
-  fX1+=tgl/Cy*(TMath::ASin(ak)-TMath::ASin(akm1));  
-  rtrack=rk;
-
-       
-  Double_t Bk=argB(rk), Bkm1=argB(rkm1);       
-  Double_t Ck=argC(rk), Ckm1=argC(rkm1);  
-
-  Double_t F02=Ck/TMath::Sqrt(1.-Ak*Ak) - Ckm1/TMath::Sqrt(1.-Akm1*Akm1);
-  Double_t F04=Bk/TMath::Sqrt(1.-Ak*Ak) - Bkm1/TMath::Sqrt(1.-Akm1*Akm1);      
-  Double_t F12=tgl*D*(1./rk - 1./rkm1);
-  Double_t F13=rk - rkm1;
-  
-
-  Double_t C00=fC00;
-  Double_t C10=fC10;
-  Double_t C11=fC11;
-  Double_t C20=fC20;
-  Double_t C21=fC21;
-  Double_t C22=fC22;
-  Double_t C30=fC30;
-  Double_t C31=fC31;      //    provare se si puo' fare a meno
-  Double_t C32=fC32;
-  Double_t C33=fC33;
-  Double_t C40=fC40;
-  Double_t C41=fC41;
-  Double_t C42=fC42;
-  Double_t C43=fC43;
-  Double_t C44=fC44;
-  
-  Double_t R10=C10+C21*F02+C41*F04;
-  Double_t R20=C20+C22*F02+C42*F04;
-  Double_t R30=C30+C32*F02+C43*F04;
-  Double_t R40=C40+C42*F02+C44*F04;
-  Double_t R21=C21+C22*F12+C32*F13;
-  Double_t R31=C31+C32*F12+C33*F13;
-  Double_t R41=C41+C42*F12+fC43*F13;
-
-  fC00=C00+C20*F02+C40*F04+F02*R20+F04*R40;
-  fC10=R10+F12*R20+F13*R30;
-  fC11=C11+C21*F12+C31*F13+F12*R21+F13*R31;
-  fC20=R20;
-  fC21=R21;
-  fC30=R30;
-  fC31=R31;
-  fC40=R40;
-  fC41=R41;
-  
-}
-
-void AliITStrack::AddEL(AliITSRad *rl, 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
-
-  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";
-  for(int k=0; k<6; k++) s(k)=s(k)*1.6;
-  
-  Double_t phi=fX0;
-  
-  if(phi<0.174 ) s(5)=s(5)+0.012; 
-   if(phi>6.1 ) s(5)=s(5)+0.012; // to take into account rail 
-   if(phi>2.96 && phi<3.31 ) s(5)=s(5)+0.012;   
-  
-   
-  Double_t tgl=fX3;
-  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.+fX3*fX3;  // 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(fX4 < 0.) sign=-1.; 
-  pt=sign*p/sqcl; 
-  Double_t CC=(0.299792458*0.2)/(pt*100.);
-  //Double_t CC=(0.299792458*0.5)/(pt*100.);
-  fX4=CC;
-  
-}
-
-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
-
-  Double_t duepi=2.*TMath::Pi();
-  Double_t rkm1=rtrack;
-  Double_t Ak=argA(rk), Akm1=argA(rkm1);
-  Double_t ak=arga(rk), akm1=arga(rkm1);
-
-  fX0+=TMath::ASin(Ak)-TMath::ASin(Akm1);
-  if(fX0>duepi) fX0-=duepi;
-  if(fX0<0.) fX0+=duepi;
-       
-  Double_t tgl=fX3;
-  Double_t C=fX4;
-  Double_t Cy=C/2;
-  fX1+=tgl/Cy*(TMath::ASin(ak)-TMath::ASin(akm1));
-  rtrack=rk;
-               
-}
-
-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 
-
-  for(int k=0; k<6; k++) s(k)=s(k)*1.6;
-  
-  Double_t phi=fX0;
- if(phi<0.174 ) s(5)=s(5)+0.012; //aggiunta provvisoria
-  if(phi>6.1 ) s(5)=s(5)+0.012; //aggiunta provvisoria  
-   if(phi>2.96 && phi< 3.31) s(5)=s(5)+0.012; //aggiunta provvisoria 
-      
-  Double_t tgl=fX3;
-  Double_t theta=((TMath::Pi())/2.)-TMath::ATan(tgl);
-  Double_t rad40=(TMath::Pi())*40./180.;      // rivedere
-  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);
-
-  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 cosl=TMath::Cos(TMath::ATan(tgl));  
-  Double_t D=fX2;
-  Double_t C=fX4;
-  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 dprova=rtrack*rtrack - dd*dd;
-  Double_t Q41=0.;
-  if(dprova>0.) Q41=-1./cosl*TMath::Sqrt(dprova)/(1.+ 2.*Cy*D);
-               
-  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);
-
-  fC22+=theta2*(Q40*Q40+Q41*Q41);
-  fC32+=theta2*Q20*Q40;
-  fC33+=theta2*Q20*Q20;
-  fC42+=theta2*Q30*Q40;
-  fC43+=theta2*Q30*Q20;
-  fC44+=theta2*Q30*Q30;
-    
-}
-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
-
-  Double_t Rlayer[6];
-       
-  Rlayer[0]=4.; Rlayer[1]=7.;  Rlayer[2]=14.9;  Rlayer[3]=23.8;  
-  Rlayer[4]=39.1;  Rlayer[5]=43.6;
-       
-  Double_t Cy=fX4/2.;  
-  Double_t tgl=(fX1-Zv)*Cy/TMath::ASin(Cy*rtrack);
-  Double_t rtrack=1.;  
-  fX0=0.;
-  fX1=rtrack*tgl; 
-  fX2=Dv;
-  fX3=tgl; 
-
-  fC00=fC10=fC11=fC20=fC21=fC22=fC30=fC31=fC32=fC33=fC40=fC41=fC42=fC43=0.;
-
-  AddEL(rl,1.,1);
-  fLayer=0;
-  Int_t i;
-  for (i=0; i<6; i++) {
-    Propagation(Rlayer[i]);
-    fLayer++;
-    d2(i)=fC22;
-    tgl2(i)=fC33;
-    dtgl(i)=fC32; 
-    AddMS(rl);    
-    AddEL(rl,-1,0);       
-  }            
-}      
-  
-Int_t AliITStrack::DoNotCross(Double_t rk) const{
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2.;
-  return (TMath::Abs((Cy*rk+(1.+Cy*D)*D/rk)/(1.+2.*Cy*D))>=1.)?1:0;
-}
-  
-
-Double_t AliITStrack::argA(Double_t rk) const {
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2.;
-  Double_t arg=(Cy*rk + (1 + Cy*D)*D/rk)/(1.+ 2.*Cy*D);                
-  if (TMath::Abs(arg) < 1.) return arg;
-  //cout<<"class AliITSTrack: argA out of range !\n";/* getchar();*/
-  return (arg>0) ? 0.99999999999 : -0.9999999999;
-}
-   
-Double_t AliITStrack::arga(Double_t rk) const {
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2.;
-  Double_t arg=(rk*rk - D*D)/(1.+ 2.*Cy*D);            
-  if (arg<0.) {/*cout<<"class AliITSTrack: arga out of range !\n";*/ arg=0.;} 
-  return Cy*TMath::Sqrt(arg);
-}
-       
-Double_t AliITStrack::argB(Double_t rk) const {
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2.;       
-  return (rk*rk - D*D)/(rk*(1.+ 2.*Cy*D)*(1.+ 2.*Cy*D));
-}
-   
-Double_t AliITStrack::argC(Double_t rk) const {
-  Double_t C=fX4;
-  Double_t D=fX2;
-  Double_t Cy=C/2.;            
-  return  (1./rk - 2.*Cy*argA(rk)/(1.+ 2.*Cy*D));
-}
-
-Double_t AliITStrack::PhiDef(Double_t x, Double_t y){
-  Double_t pigre= TMath::Pi();
-  Double_t phi=10000.;
-  if(y == 0. || x == 0.) {
-    if(y == 0. && x == 0.) {
-      cout << "  Error in AliITStracking::PhiDef x=0 and y=0 \n"; getchar();
-    }
-    if(y==0. && x>0.) phi=0.;
-    if(y==0. && x<0.) phi=pigre;
-    if(x==0 && y>0.) phi=pigre/2.;
-    if(x==0 && y<0.) phi=1.5*pigre;   
-  }
-    else {
-      if (x>0. && y>0.) phi=TMath::ATan(y/x);
-      if (x<0. && y>0.) phi=pigre+TMath::ATan(y/x);
-      if (x<0. && y<0.) phi=pigre+TMath::ATan(y/x); 
-      if (x>0. && y<0.) phi=(2.*pigre)+TMath::ATan(y/x);     
-    }
-  if(phi<0. || phi>(2*pigre)) {
-    cout<<" Error on phi in  AliITStracking::PhiDef \n"; getchar();
-  }  
-  return phi;
-}
-
diff --git a/ITS/AliITStrack.h b/ITS/AliITStrack.h
deleted file mode 100644 (file)
index c7c187d..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-#ifndef ALIITSTRACK_H
-#define ALIITSTRACK_H
-
-#include <TObject.h>
-#include <TMatrix.h>
-#include <TVector.h>
-
-#include "../TPC/AliTPCtrack.h"
-
-class TObjArray;
-class AliITSRad;
-
-//   ITS Track Class
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
-//
-class AliITStrack : public TObject { 
-
-public:
-
-  AliITStrack() ;
-  AliITStrack(AliTPCtrack &obj);
-  AliITStrack(const AliITStrack &cobj);
-  AliITStrack &operator=(AliITStrack obj);
-  ~AliITStrack();
-  Int_t GetNumClust() { return fNumClustInTrack;}
-  void AddClustInTrack() { fNumClustInTrack++;}
-  TObjArray *GetListOfCluster() { return flistCluster;}
-  void SetChi2(Double_t chi2) { fChi2 = chi2;}
-  Double_t GetChi2() { return fChi2;}
-  Double_t GetZ() const {return fX1;}
-  Double_t GetTgl() const {return fX3;}   
-  Double_t Getrtrack() const{return rtrack;}
-  Double_t Getphi()  const{return fX0;}
-  Double_t GetC() const {return fX4;}
-  Double_t GetD() const{return fX2;} 
-  Double_t GetPt() const {return 0.299792458*0.2/(fX4*100.);}            
-  void SetVertex(TVector &vert) { for(Int_t i=0;i<3;i++) fVertex(i) = vert(i);}
-  void SetErrorVertex(TVector &evert) {for(Int_t i=0;i<3;i++) fErrorVertex(i) = evert(i);}
-
-  void LmTPC(); // trasform state vector and covariance matrix from local TPC to master
-  TVector GetVertex() { return fVertex;}
-  TVector GetErrorVertex() { return fErrorVertex;}
-  Long_t  GetLabel() { return flabel;}
-  void SetLabel(Long_t label) { flabel = label;}
-  Int_t  GetLayer() { return fLayer;}
-  
-
-  void PutCElements(Double_t C00, Double_t C10, Double_t C11, Double_t C20, Double_t C21, 
-  Double_t C22, Double_t C30, Double_t C31, Double_t C32, Double_t C33, Double_t C40, 
-  Double_t C41, Double_t C42, Double_t C43, Double_t C44);
-  
-  void GetCElements(Double_t &C00, Double_t &C10, Double_t &C11, Double_t &C20, Double_t &C21, 
-  Double_t &C22, Double_t &C30, Double_t &C31, Double_t &C32, Double_t &C33, Double_t &C40, 
-  Double_t &C41, Double_t &C42, Double_t &C43, Double_t &C44);
-   
-  void GetXElements(Double_t &X0, Double_t &X1, Double_t &X2, Double_t &X3, Double_t &X4);
-  void PutXElements(Double_t X0, Double_t X1, Double_t X2, Double_t X3, Double_t X4);
-    
-  void SetLayer(Int_t layer) { fLayer = layer;}
-  AliTPCtrack *GetTPCtrack() { return fTPCtrack;}
-
-  void PutCluster(Int_t layerc, TVector vecclust);
-  TVector GetLabTrack(Int_t lay);
-  void Search(TVector VecTotLabref, Long_t &labref, Int_t &freq); 
-  Float_t GetZclusterTrack(Int_t lay) {return ((Float_t) (*ClusterInTrack)(lay,2));}  
-  void GetClusters();
-  Int_t GetLabTPC() {return (*fTPCtrack).GetLabel();}
-  Int_t GetIdPoint(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,4));}
-  Int_t GetIdModule(Int_t lay) {return ((Int_t) (*ClusterInTrack)(lay,5));}
-  Float_t GetIdParticle(Int_t lay) {return (*ClusterInTrack)(lay,3);}
-      
-
-  Int_t DoNotCross(Double_t rk) const;
-  Double_t argA(Double_t rk) const;
-  Double_t arga(Double_t rk) const;
-  Double_t argB(Double_t rk) const;
-  Double_t argC(Double_t rk) const;             
-  void  Propagation(Double_t rk) ;
-
-  Double_t GetSigmaphi() const{return fC00;}
-  Double_t GetSigmaZ() const{return  fC11;}
-  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;}
-  Double_t GetDv() {return Dv;}
-  Double_t GetZv() {return Zv;}
-  void SetsigmaDv( Double_t x) {sigmaDv=x;}
-  void SetsigmaZv( Double_t x) {sigmaZv=x;} 
-  Double_t GetsigmaDv() {return sigmaDv;}
-  Double_t GetsigmaZv() {return sigmaZv;} 
-  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);}} 
-  TVector Getd2() { return d2;}
-  TVector Gettgl2() { return tgl2;}
-  TVector Getdtgl() { return dtgl;}
-  Double_t Getd2(Int_t i){return (Double_t)d2(i);}  
-  Double_t Gettgl2(Int_t i){return (Double_t)tgl2(i);}
-  Double_t Getdtgl(Int_t i){return (Double_t)dtgl(i);}
-  Double_t GetxoTPC() {return xoTPC;} 
-  Double_t PhiDef(Double_t x, Double_t y); 
-  //Int_t  Getfreq(){return freq;}  //provvisorio 
-  // void  Setfreq(Int_t xfreq){freq=xfreq;}  //provvisorio                    
-//////////////////////////////////////////////////////////////////////////////////////// 
-
- private:  
-   
-  AliTPCtrack     *fTPCtrack;           // reference to TPC track
-
-  Double_t        fX0,fX1,fX2,fX3,fX4;  // state vector: |phi/z/D/tgl/C 
-  Double_t        rtrack;               // radius of courrent layer     
-  
-  Double_t        fC00, fC10, fC11,     // Covariance Matrix
-                  fC20, fC21, fC22,     //      "       "
-                                               fC30, fC31, fC32,     //      "       " 
-                                               fC33, fC40, fC41,     //      "       " 
-                                               fC42, fC43, fC44;     //      "       "
-      
-  Double_t        fChi2;                // fChi^2 of track         
-  TObjArray       *flistCluster;        // list of clusters of the track
-  Int_t           fNumClustInTrack;     // total number of clusters
-  Long_t          flabel;               // label of the track
-  TVector         fVertex;              // vertex coordinates of the track
-  TVector         fErrorVertex;         // error on the vertex coordinates
-  Int_t           fLayer;               // current Layer of the track
-  TMatrix        *ClusterInTrack;       // matrix of clusters belonging to the  track
-                                        // row index = layer-1; 
-                                        // cols index = master coordinates of the clusters
-  
-  
-  Double_t          Dv;                 // radial impact parameter for vertex  constraint
-  Double_t          Zv;                 // longitudinal impact parameter for vertex constraint
-  Double_t          sigmaDv;            // sigma for Dv extraction
-  Double_t          sigmaZv;            // sigma for Zv extraction
-  TVector           d2;                 // C(2,2)  per primary track
-  TVector           tgl2;               // C(3,3)   per primary track
-  TVector           dtgl;               // C(2,3)     per primary track
-
-  Double_t          xoTPC;
-                  
- // Int_t freq; //provvisorio     
-
-  ClassDef(AliITStrack, 1)
-   
-};
-
-#endif
-
diff --git a/ITS/AliITStracking.cxx b/ITS/AliITStracking.cxx
deleted file mode 100644 (file)
index 735d0e7..0000000
+++ /dev/null
@@ -1,826 +0,0 @@
-#include <iostream.h>
-#include <TMath.h> 
-#include <TList.h> 
-#include <TTree.h> 
-#include <TVector.h>
-//#include <TObjectTable.h>
-
-#include "AliITStracking.h"
-#include "AliRun.h"
-#include "AliITS.h"
-#include "AliITSgeom.h"
-#include "AliITSRecPoint.h"
-#include "AliITSRad.h"
-#include "AliITStrack.h"
-#include "AliITSgeoinfo.h"
-
-ClassImp(AliITStracking)
-
-AliITStracking::AliITStracking(TList *trackITSlist, AliITStrack *reference, 
-                AliITS *aliITS, TObjArray *rpoints, Double_t Ptref, Int_t **vettid, Bool_t flagvert,  
-                                        AliITSRad *rl, AliITSgeoinfo *geoinfo) {                                                                                
-///////////////////////   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
-// The authors  thank   Mariana Bondila to have help them to resolve some problems.  July-2000                                                      
-
-  //Rlayer[0]=4.; Rlayer[1]=7.;  Rlayer[2]=14.9;  Rlayer[3]=23.8;  Rlayer[4]=39.1;  Rlayer[5]=43.6; //vecchio
-  
-  Int_t index;   
-  for(index =0; index<trackITSlist->GetSize(); index++) {
-    AliITStrack *trackITS = (AliITStrack *) trackITSlist->At(index);
-
-    if((*trackITS).GetLayer()==7) reference->SetChi2(10.223e140);
-   // cout <<" Layer inizio = "<<(*trackITS).GetLayer()<<"\n";
-   //  cout<<"fvtrack =" <<"\n";
-   //  cout << (*trackITS)(0) << " "<<(*trackITS)(1)<<" "<<(*trackITS)(2)<<" "<<(*trackITS)(3)<<" "<<(*trackITS)(4)<<"\n";
-   //  cout<< " rtrack = "<<(*trackITS).Getrtrack()<<"\n";
-   //  cout<< " Pt = "<<(*trackITS).GetPt()<<"\n";
-   //  getchar();    
-    Double_t Chi2Now, Chi2Ref;
-    if((*trackITS).GetLayer()==1 ) {
-      Chi2Now = trackITS->GetChi2();
-      Float_t NumClustNow = trackITS->GetNumClust();
-      if(trackITS->GetNumClust()) Chi2Now /= (Double_t )trackITS->GetNumClust();
-      Chi2Ref = reference->GetChi2();
-      Float_t NumClustRef = reference->GetNumClust();  
-      if(reference->GetNumClust()) Chi2Ref /= (Double_t )reference->GetNumClust();
-      //cout<<" Chi2Now and Chi2Ref = "<<Chi2Now<<" "<<Chi2Ref<<"\n";
-               if( NumClustNow > NumClustRef ) {*reference = *trackITS;} 
-      if((NumClustNow == NumClustRef )&& (Chi2Now < Chi2Ref))  {*reference = *trackITS;}
-      continue;        
-    }
-    Float_t NumClustNow = trackITS->GetNumClust();
-    if(NumClustNow) { 
-      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 > 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};   //vecchio
-    //Int_t NDetector[]= {4,  4,   6,  8, 23, 26}; //vecchio
-                                               
-    TList listoftrack;          
-    Int_t ladp, ladm, detp,detm,ladinters,detinters;   
-    Int_t layerfin=layerInit-1;
-    //Double_t Rfin=Rlayer[layerfin-1];  // vecchio
-        Double_t Rfin=geoinfo->Avrad[layerfin-1];  // nuovo
-    // cout<<"Prima di intersection \n";
-
-    Int_t  outinters=NewIntersection(*trackITS, Rfin, layerfin, ladinters, detinters, geoinfo);
-                
-   // cout<<" outinters = "<<outinters<<"\n";
-   //  cout<<" Layer ladder detector intersection ="<<layerfin<<" "<<ladinters<<" "<<detinters<<"\n";
-   //  cout << " phiinters zinters = "<<(*trackITS)(0) << " "<<(*trackITS)(1)<<"\n"; getchar();
-                        
-    if(outinters==-1) continue;
-        
-    Int_t flaghit=0;                           
-    if(outinters==0){   
-      TVector Touclad(9), Toucdet(9);   
-      Int_t lycur=layerfin;                                            
-      ladp=ladinters+1;
-      ladm=ladinters-1;
-      //if(ladm <= 0) ladm=NLadder[layerfin-1];  //vecchio
-               if(ladm <= 0) ladm=geoinfo->Nlad[layerfin-1];    //nuovo
-      //if(ladp > NLadder[layerfin-1]) ladp=1;         //vecchio
-               if(ladp > geoinfo->Nlad[layerfin-1]) ladp=1;  //nuovo
-      detp=detinters+1;
-      detm=detinters-1;
-      Int_t idetot=1;
-      Touclad(0)=ladinters; Touclad(1)=ladm; Touclad(2)=ladp;
-      Touclad(3)=ladinters; Touclad(4)=ladm; Touclad(5)=ladp;
-      Touclad(6)=ladinters; Touclad(7)=ladm; Touclad(8)=ladp;
-      Toucdet(0)=detinters; Toucdet(1)=detinters; Toucdet(2)=detinters;
-      //if(detm > 0 && detp <= NDetector[layerfin-1]) {   //vecchio
-               if(detm > 0 && detp <= geoinfo->Ndet[layerfin-1]) {     //nuovo
-        idetot=9;
-        Toucdet(3)=detm; Toucdet(4)=detm; Toucdet(5)=detm;        
-        Toucdet(6)=detp; Toucdet(7)=detp; Toucdet(8)=detp;
-      }
-        
-      //if(detm > 0 && detp > NDetector[layerfin-1]) {  //vecchio
-               if(detm > 0 && detp > geoinfo->Ndet[layerfin-1]) {   //nuovo
-        idetot=6;
-        Toucdet(3)=detm; Toucdet(4)=detm; Toucdet(5)=detm;
-      }
-        
-      //if(detm <= 0 && detp <= NDetector[layerfin-1]) {  //vecchio
-               if(detm <= 0 && detp <= geoinfo->Ndet[layerfin-1]) {   //nuovo
-        idetot=6;
-        Toucdet(3)=detp; Toucdet(4)=detp; Toucdet(5)=detp;
-      }
-      Int_t iriv;      
-      for (iriv=0; iriv<idetot; iriv++) {  //for on detectors
-        AliITSgeom *g1 = aliITS->GetITSgeom();  
-        TVector CTF(9);
-        g1->GetCenterThetaPhi(layerInit-1,(Int_t)Touclad(iriv),(Int_t)Toucdet(iriv),CTF);
-
-        // cout<<" layer, ladder, det, xo, yo, zo = "<<layerInit-1<<" "<<(Int_t)Touclad(iriv)<<
-        // " "<<(Int_t)Toucdet(iriv)<<" "<<CTF(0)<<" "<<CTF(1)<<" "<<CTF(2)<< " "<<CTF(6)<<"\n"; getchar(); 
-
-        ////////////////////////////////////////////////////////////////////////////////////////////////
-
-        /*** Rec points sorted by module *****/
-        /**************************************/
-
-        Int_t index;
-        AliITSRecPoint *recp;
-        AliITSgeom *geom = aliITS->GetITSgeom();
-        index = geom->GetModuleIndex(lycur,Touclad(iriv),Toucdet(iriv));
-        Int_t lay,lad,det;
-        geom->GetModuleId(index,lay,lad,det);
-        aliITS->ResetRecPoints();
-        //gAlice->TreeR()->GetEvent(index+1); //first entry in TreeR is empty
-        gAlice->TreeR()->GetEvent(index); //first entry in TreeR is empty
-
-        Int_t npoints=rpoints->GetEntries();
-        Int_t *indlist=new Int_t[npoints+1];
-        Int_t counter=0;
-        Int_t ind;
-        for (ind=0; ind<=npoints; ind++) {
-          indlist[ind]=-1;
-              if (*(vettid[index]+ind)==0) {
-              indlist[counter]=ind;
-                  counter++;
-             }
-        }
-
-        ind=-1;
-       
-        for(;;) { 
-          ind++;
-          if(indlist[ind] < 0) recp=0;
-              else recp = (AliITSRecPoint*)rpoints->UncheckedAt(indlist[ind]);
-
-         if((!recp)  )  break; 
-         TVector cluster(3),vecclust(9);
-         vecclust(6)=vecclust(7)=vecclust(8)=-1.;
-         Double_t sigma[2];
-           //modificata 8-3-2001                
-         // set veclust in global
-         Float_t global[3], local[3];
-         local[0]=recp->GetX();
-         local[1]=0.;
-         local[2]= recp->GetZ();
-          AliITSgeom *g1 = aliITS->GetITSgeom();
-          Int_t play = lycur;
-          Int_t plad = TMath::Nint(Touclad(iriv));   
-          Int_t pdet = TMath::Nint(Toucdet(iriv));             
-          g1->LtoG(play,plad,pdet,local,global); 
-         
-          vecclust(0)=global[0];
-          vecclust(1)=global[1];
-          vecclust(2)=global[2];
-         
-         /*
-         ////  modificato 8-3-2001
-          vecclust(0)=recp->GetRhit();;
-          vecclust(1)=recp->Getphi();
-          vecclust(2)=recp->GetZglobal();
-         */
-                                                    
-          vecclust(3) = (float)recp->fTracks[0]; 
-          vecclust(4) = (float)indlist[ind];
-          vecclust(5) = (float)index;
-          vecclust(6) = (float)recp->fTracks[0];
-          vecclust(7) = (float)recp->fTracks[1];
-          vecclust(8) = (float)recp->fTracks[2];
-     
-          sigma[0] = (Double_t)  recp->GetSigmaX2();      
-         sigma[1] = (Double_t) recp->GetSigmaZ2();
-          //commentato 8-3-2001                 
-         //now we are in r,phi,z in global
-          cluster(0) = TMath::Sqrt(vecclust(0)*vecclust(0)+vecclust(1)*vecclust(1));//r hit
-          cluster(1) = PhiDef(vecclust(0),vecclust(1));    // phi hit
-          cluster(2) = vecclust(2);                   // z hit
-         
-         /*
-        //modificato 8-3-2001
-          cluster(0) = vecclust(0);//r hit
-          cluster(1) = vecclust(1);    // phi hit
-          cluster(2) = vecclust(2);                   // z hit 
-         */            
-        // cout<<" layer = "<<play<<"\n";
-        // cout<<" cluster prima = "<<vecclust(0)<<" "<<vecclust(1)<<" "
-        // <<vecclust(2)<<"\n"; getchar();    
-          //cluster(1)= cluster(1)-trackITS->Getalphaprov();  //provvisorio;
-                        //if(cluster(1)<0.) cluster(1)+=2.*TMath::Pi(); //provvisorio
-                        //cout<<" cluster(1) dopo = "<<cluster(1)<< " alphaprov = "<<trackITS->Getalphaprov()<<"\n";                    
-          Float_t sigmatotphi, sigmatotz;
-                                 
-          //Float_t epsphi=3.2, 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);
-          sigmatotphi=epsphi*TMath::Sqrt(sigmaphi + (*trackITS).GetSigmaphi());
-                
-          sigmatotz=epsz*TMath::Sqrt(sigma[1] + (*trackITS).GetSigmaZ());
-  //cout<<"cluster e sigmatotphi e track = "<<cluster(0)<<" "<<cluster(1)<<" "<<sigmatotphi<<" "<<vecclust(3)<<"\n";
-  //if(vecclust(3)==481) getchar();
-              if(cluster(1)<6. && (*trackITS).Getphi()>6.) cluster(1)=cluster(1)+(2.*TMath::Pi());
-              if(cluster(1)>6. && (*trackITS).Getphi()<6.) cluster(1)=cluster(1)-(2.*TMath::Pi());                               
-          if(TMath::Abs(cluster(1)-(*trackITS).Getphi()) > sigmatotphi) continue;
-                       // cout<<" supero sigmaphi \n";      
-          AliITStrack *newTrack = new AliITStrack((*trackITS));
-          (*newTrack).SetLayer((*trackITS).GetLayer()-1); 
-              if (TMath::Abs(Rtrack-cluster(0))/Rtrack>1e-6) 
-                                               (*newTrack).Correct(Double_t(cluster(0)));      
-                       //cout<<" cluster(2) e (*newTrack).GetZ() = "<<cluster(2)<<" "<<        (*newTrack).GetZ()<<"\n";                                                                               
-          if(TMath::Abs(cluster(2)-(*newTrack).GetZ()) > sigmatotz){ 
-             delete newTrack;
-             continue;}
-       
-          if(iriv == 0) flaghit=1;
-          (*newTrack).AddMS(rl);  // add the multiple scattering matrix to the covariance matrix 
-         (*newTrack).AddEL(rl,1.,0);
-                
-         Double_t sigmanew[2];
-         sigmanew[0]= sigmaphi;
-         sigmanew[1]=sigma[1];
-
-         if(flagvert)   
-           KalmanFilterVert(newTrack,cluster,sigmanew);  
-         else                                                    
-           KalmanFilter(newTrack,cluster,sigmanew);
-              
-                 
-          (*newTrack).PutCluster(layernew, vecclust);
-           newTrack->AddClustInTrack();            
-                                                                       
-          listoftrack.AddLast(newTrack);
-
-        }   // end of for(;;) on rec points 
-
-        delete [] indlist;
-  
-      }  // end of for on detectors
-     
-    }//end if(outinters==0) 
-  
-    if(flaghit==0 || outinters==-2) {
-      AliITStrack *newTrack = new AliITStrack(*trackITS);       
-      (*newTrack).SetLayer((*trackITS).GetLayer()-1); 
-      (*newTrack).AddMS(rl);  // add the multiple scattering matrix to the covariance matrix  
-      (*newTrack).AddEL(rl,1.,0);            
-                                                 
-      listoftrack.AddLast(newTrack);     
-    }  
-               
-
-    //gObjectTable->Print();   // stampa memoria
-        
-    AliITStracking(&listoftrack, reference, aliITS, rpoints,Ptref,vettid,flagvert,rl, geoinfo);          
-    listoftrack.Delete();
-  } // end of for on tracks
-
-  //gObjectTable->Print();   // stampa memoria
-
-}   
-
-Int_t AliITStracking::NewIntersection(AliITStrack &track, Double_t rk,Int_t layer, Int_t &ladder, 
-Int_t &detector, AliITSgeoinfo *geoinfo) { 
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
-// Found the intersection and the detector 
-
-  if(track.DoNotCross(rk)){ /*cout<< " Do not cross \n";*/ return -1;} 
-  track.Propagation(rk);
-  Double_t zinters=track.GetZ();
-  Double_t phinters=track.Getphi();
-  //phinters = phinters+track.Getalphaprov(); //provvisorio
-  //if(phinters>2.*3.14) phinters=phinters-2.*3.14; //provvisorio
-  //cout<<"zinters = "<<zinters<<"  phinters = "<<phinters<<"\n";
-
-  //////////////////////////////////      limits for Geometry 5      /////////////////////////////
-  
-  //Int_t NLadder[]= {20, 40, 14, 22, 34, 38};
-  //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    };
-
-  ////////////////////////////////////////////////////////////////////////////////////////////////  
-  
-  TVector det(9);
-  TVector ListDet(2);
-  TVector DistZCenter(2);  
-  AliITSgeom *g1 = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom();
-  
-  Int_t iz=0; 
-  Double_t epsz=1.2;
-  Double_t epszpixel=0.05;
-
-  Int_t iD;
-  //for(iD = 1; iD<= NDetector[layer-1]; iD++) {   //vecchio
-  for(iD = 1; iD<= geoinfo->Ndet[layer-1]; iD++) {
-    g1->GetCenterThetaPhi(layer,1,iD,det);
-    //Double_t zmin=det(2)-Detz[layer-1];   //vecchio
-        Double_t zmin=det(2)-geoinfo->Detz[layer-1];   //nuovo
-    //if(iD==1) zmin=det(2)-(Detz[layer-1])*epsz;              //vecchio
-        if(iD==1) zmin=det(2)-(geoinfo->Detz[layer-1])*epsz;           //nuovo
-    //Double_t zmax=det(2)+Detz[layer-1];    //vecchio
-        Double_t zmax=det(2)+geoinfo->Detz[layer-1];    //nuovo
-    //if(iD==NDetector[layer-1]) zmax=det(2)+(Detz[layer-1])*epsz;  //vecchio
-        if(iD==geoinfo->Ndet[layer-1]) zmax=det(2)+(geoinfo->Detz[layer-1])*epsz;   //nuovo
-    //added to take into account problem on drift
-    if(layer == 4 || layer==3) zmin=zmin-epszpixel; zmax=zmax+epszpixel;
-    //cout<<"zmin zinters zmax det(2)= "<<zmin<<" "<<zinters<<" "<<zmax<<" "<<det(2)<<"\n";    
-    if(zinters > zmin && zinters <= zmax) { 
-      if(iz>1) {cout<< " Errore su iz in NewIntersection \n"; getchar();}
-      else {
-        ListDet(iz)= iD; DistZCenter(iz)=TMath::Abs(zinters-det(2)); iz++;
-      }
-    }                        
-  }
-  
-  if(iz==0) {/* cout<< " No detector along Z \n";*/ return -2;}
-  detector=Int_t (ListDet(0));
-  if(iz>1 && (DistZCenter(0)>DistZCenter(1)))   detector=Int_t (ListDet(1));
-  
-  AliITSgeom *g2 = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom(); 
-  Float_t global[3];
-  Float_t local[3];
-  TVector ListLad(2);
-  TVector DistphiCenter(2);
-  Int_t ip=0;
-  Double_t pigre=TMath::Pi();
-  
-  Int_t iLd;   
-  //for(iLd = 1; iLd<= NLadder[layer-1]; iLd++) {   //vecchio
-  for(iLd = 1; iLd<= geoinfo->Nlad[layer-1]; iLd++) {  //nuovo
-          g1->GetCenterThetaPhi(layer,iLd,detector,det);
-  Double_t phidet=PhiDef(Double_t(det(0)),Double_t(det(1)));
-  // cout<<" layer phidet e det(6) = "<< layer<<" "<<phidet<<" "<<det(6)<<"\n"; getchar();
-  Double_t xmin,ymin,xmax,ymax;        
- // Double_t phiconfr=0.0;
-  //cout<<" phiconfr inizio =  "<<phiconfr <<"\n"; getchar();  
-  local[1]=local[2]=0.;  
-  //local[0]= -(Detx[layer-1]);  //vecchio
-  local[0]= -(geoinfo->Detx[layer-1]);    //nuovo
-  //if(layer==1)    local[0]= (Detx[layer-1]);  //take into account different reference system  //vecchio
-  if(layer==1)    local[0]= (geoinfo->Detx[layer-1]);  //take into account different reference system   //nuovo
-  g2->LtoG(layer,iLd,detector,local,global);
-  xmax=global[0]; ymax=global[1];
-  //local[0]= (Detx[layer-1]);   //vecchio
-  local[0]= (geoinfo->Detx[layer-1]);   //nuovo
-  //if(layer==1)    local[0]= -(Detx[layer-1]);  //take into account different reference system //vecchio
-  if(layer==1)    local[0]= -(geoinfo->Detx[layer-1]);  //take into account different reference system //nuovo 
-  g2->LtoG(layer,iLd,detector,local,global);
-  xmin=global[0]; ymin=global[1];
-  Double_t phimin=PhiDef(xmin,ymin);
-  Double_t phimax=PhiDef(xmax,ymax);
-  //cout<<" xmin ymin = "<<xmin<<" "<<ymin<<"\n";
-  // cout<<" xmax ymax = "<<xmax<<" "<<ymax<<"\n";  
-  // cout<<" iLd phimin phimax ="<<iLd<<" "<<phimin<<" "<<phimax<<"\n";
-
-  Double_t phiconfr=phinters;
- if(phimin>phimax ){    
-     if(phimin <5.5) {cout<<" Error in NewIntersection for phi \n"; getchar();}
-    phimin=phimin-(2.*pigre);
-    if(phinters>(1.5*pigre)) phiconfr=phinters-(2.*pigre); 
-    if(phidet>(1.5*pigre)) phidet=phidet-(2.*pigre);
-  }              
-  //  cout<<" phiconfr finale = "<<phiconfr<<"\n"; getchar(); 
-  if(phiconfr>phimin && phiconfr<= phimax) {
-    if(ip>1) {
-      cout<< " Errore su ip in NewIntersection \n"; getchar();
-    }
-      else  {
-        ListLad(ip)= iLd; DistphiCenter(ip)=TMath::Abs(phiconfr-phidet); ip++;
-      }  
-    }
-  }
-  if(ip==0) { cout<< " No detector along phi \n"; getchar();}
-  ladder=Int_t (ListLad(0));
-  if(ip>1 && (DistphiCenter(0)>DistphiCenter(1)))   ladder=Int_t (ListLad(1));       
-
-  return 0;
-}
-
-
-Double_t AliITStracking::PhiDef(Double_t x, Double_t y){
-  Double_t pigre= TMath::Pi();
-  Double_t phi=0.0;
-  if(y == 0. || x == 0.) {
-    if(y == 0. && x == 0.) {
-      cout << "  Error in AliITStracking::PhiDef x=0 and y=0 \n"; getchar();
-    }
-    if(y==0. && x>0.) phi=0.;
-    if(y==0. && x<0.) phi=pigre;
-    if(x==0 && y>0.) phi=pigre/2.;
-    if(x==0 && y<0.) phi=1.5*pigre;   
-  }
-    else {
-      if (x>0. && y>0.) phi=TMath::ATan(y/x);
-      if (x<0. && y>0.) phi=pigre+TMath::ATan(y/x);
-      if (x<0. && y<0.) phi=pigre+TMath::ATan(y/x); 
-      if (x>0. && y<0.) phi=(2.*pigre)+TMath::ATan(y/x);     
-    }
-  if(phi<0. || phi>(2*pigre)) {
-    cout<<" Error on phi in  AliITStracking::PhiDef \n"; getchar();
-  }  
-  return phi;
-}
-
-
-void AliITStracking::KalmanFilter(AliITStrack *newTrack,TVector &cluster,Double_t sigma[2]){ 
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
-// Kalman filter without vertex constraint
-
-
-  ////////////////////////////// Evaluation of the measurement vector /////////////////////////////////////  
-
-  Double_t m[2];
-  Double_t rk,phik,zk;
-  rk=cluster(0);   phik=cluster(1);  zk=cluster(2);
-  m[0]=phik;    m[1]=zk; 
-       
-  ///////////////////////////////////// Evaluation of the error matrix V  ///////////////////////////////          
-
-  Double_t V00=sigma[0];
-  Double_t V11=sigma[1];
-  
-  ///////////////////////////////////////////////////////////////////////////////////////////
-  
-  
-  Double_t Cin00,Cin10,Cin20,Cin30,Cin40,Cin11,Cin21,Cin31,Cin41,Cin22,Cin32,Cin42,Cin33,Cin43,Cin44;
-                           
-  newTrack->GetCElements(Cin00,Cin10,Cin11,Cin20,Cin21,Cin22,Cin30,Cin31,Cin32,Cin33,Cin40,
-                         Cin41,Cin42,Cin43,Cin44); //get C matrix
-                         
-  Double_t Rold00=Cin00+V00;
-  Double_t Rold10=Cin10;
-  Double_t Rold11=Cin11+V11;
-  
-//////////////////////////////////// R matrix inversion  ///////////////////////////////////////////////
-  
-  Double_t det=Rold00*Rold11-Rold10*Rold10;
-  Double_t R00=Rold11/det;
-  Double_t R10=-Rold10/det;
-  Double_t R11=Rold00/det;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////                           
-
-  Double_t K00=Cin00*R00+Cin10*R10;
-  Double_t K01=Cin00*R10+Cin10*R11;
-  Double_t K10=Cin10*R00+Cin11*R10;  
-  Double_t K11=Cin10*R10+Cin11*R11;
-  Double_t K20=Cin20*R00+Cin21*R10;  
-  Double_t K21=Cin20*R10+Cin21*R11;  
-  Double_t K30=Cin30*R00+Cin31*R10;  
-  Double_t K31=Cin30*R10+Cin31*R11;  
-  Double_t K40=Cin40*R00+Cin41*R10;
-  Double_t K41=Cin40*R10+Cin41*R11;
-  
-  Double_t X0,X1,X2,X3,X4;
-  newTrack->GetXElements(X0,X1,X2,X3,X4);     // get the state vector
-  
-  Double_t savex0=X0, savex1=X1;
-  
-  X0+=K00*(m[0]-savex0)+K01*(m[1]-savex1);
-  X1+=K10*(m[0]-savex0)+K11*(m[1]-savex1);
-  X2+=K20*(m[0]-savex0)+K21*(m[1]-savex1);
-  X3+=K30*(m[0]-savex0)+K31*(m[1]-savex1);
-  X4+=K40*(m[0]-savex0)+K41*(m[1]-savex1);
-  
-  Double_t C00,C10,C20,C30,C40,C11,C21,C31,C41,C22,C32,C42,C33,C43,C44;
-  
-  C00=Cin00-K00*Cin00-K01*Cin10;
-  C10=Cin10-K00*Cin10-K01*Cin11;
-  C20=Cin20-K00*Cin20-K01*Cin21;
-  C30=Cin30-K00*Cin30-K01*Cin31;
-  C40=Cin40-K00*Cin40-K01*Cin41;
-  
-  C11=Cin11-K10*Cin10-K11*Cin11;
-  C21=Cin21-K10*Cin20-K11*Cin21;
-  C31=Cin31-K10*Cin30-K11*Cin31;
-  C41=Cin41-K10*Cin40-K11*Cin41;
-  
-  C22=Cin22-K20*Cin20-K21*Cin21;
-  C32=Cin32-K20*Cin30-K21*Cin31;
-  C42=Cin42-K20*Cin40-K21*Cin41;
-
-  C33=Cin33-K30*Cin30-K31*Cin31;
-  C43=Cin43-K30*Cin40-K31*Cin41;
-  
-  C44=Cin44-K40*Cin40-K41*Cin41;
-  
-  newTrack->PutXElements(X0,X1,X2,X3,X4);               // put the new state vector
-   
-  newTrack->PutCElements(C00,C10,C11,C20,C21,C22,C30,C31,C32,C33,C40,C41,C42,C43,C44); // put in track the
-                                                                                       // new cov matrix  
-  Double_t VMCold00=V00-C00;
-  Double_t VMCold10=-C10;
-  Double_t VMCold11=V11-C11;
-  
-///////////////////////////////////// Matrix VMC inversion  ////////////////////////////////////////////////
-  
-  det=VMCold00*VMCold11-VMCold10*VMCold10;
-  Double_t VMC00=VMCold11/det;
-  Double_t VMC10=-VMCold10/det;
-  Double_t VMC11=VMCold00/det;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-  Double_t chi2=(m[0]-X0)*( VMC00*(m[0]-X0) + 2.*VMC10*(m[1]-X1) ) +                    
-                (m[1]-X1)*VMC11*(m[1]-X1);      
-        
-  newTrack->SetChi2(newTrack->GetChi2()+chi2);
-   
-} 
-
-
-void AliITStracking::KalmanFilterVert(AliITStrack *newTrack,TVector &cluster,Double_t sigma[2]){
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it 
-// Kalman filter with vertex constraint
-
-  ////////////////////////////// Evaluation of the measurement vector m ///////////////  
-
-  Double_t m[4];
-  Double_t rk,phik,zk;
-  rk=cluster(0);   phik=cluster(1);  zk=cluster(2);
-  m[0]=phik;    m[1]=zk;
-  Double_t CC=(*newTrack).GetC();
-  Double_t Zv=(*newTrack).GetZv(); 
-  Double_t Dv=(*newTrack).GetDv();
-  Double_t Cy=CC/2.;
-  Double_t tgl= (zk-Zv)*Cy/TMath::ASin(Cy*rk);
-  m[2]=Dv;    m[3]=tgl;
-
-  ///////////////////////////////////// Evaluation of the error matrix V  //////////////
-  Int_t Layer=newTrack->GetLayer();
-  Double_t V00=sigma[0];
-  Double_t V11=sigma[1];
-  Double_t V31=sigma[1]/rk;
-  Double_t sigmaDv=newTrack->GetsigmaDv();
-  Double_t V22=sigmaDv*sigmaDv  + newTrack->Getd2(Layer-1);
-  Double_t V32=newTrack->Getdtgl(Layer-1);
-  Double_t sigmaZv=newTrack->GetsigmaZv();  
-  Double_t V33=(sigma[1]+sigmaZv*sigmaZv)/(rk*rk) + newTrack->Gettgl2(Layer-1);
-  ///////////////////////////////////////////////////////////////////////////////////////
-  
-  Double_t Cin00,Cin10,Cin11,Cin20,Cin21,Cin22,Cin30,Cin31,Cin32,Cin33,Cin40,Cin41,Cin42,Cin43,Cin44;
-                           
-  newTrack->GetCElements(Cin00,Cin10,Cin11,Cin20,Cin21,Cin22,Cin30,Cin31,Cin32,Cin33,Cin40,
-                         Cin41,Cin42,Cin43,Cin44); //get C matrix
-                         
-  Double_t R[4][4];
-  R[0][0]=Cin00+V00;
-  R[1][0]=Cin10;
-  R[2][0]=Cin20;
-  R[3][0]=Cin30;
-  R[1][1]=Cin11+V11;
-  R[2][1]=Cin21;
-  R[3][1]=Cin31+sigma[1]/rk;
-  R[2][2]=Cin22+sigmaDv*sigmaDv+newTrack->Getd2(Layer-1);
-  R[3][2]=Cin32+newTrack->Getdtgl(Layer-1);
-  R[3][3]=Cin33+(sigma[1]+sigmaZv*sigmaZv)/(rk*rk) + newTrack->Gettgl2(Layer-1);
-  
-  R[0][1]=R[1][0]; R[0][2]=R[2][0]; R[0][3]=R[3][0]; R[1][2]=R[2][1]; R[1][3]=R[3][1]; 
-  R[2][3]=R[3][2];
-
-/////////////////////  Matrix R inversion ////////////////////////////////////////////
-  const Int_t n=4;
-  Double_t big, hold;
-  Double_t d=1.;
-  Int_t ll[n],mm[n];
-
-  Int_t i,j,k;
-  
-  for(k=0; k<n; k++) {
-    ll[k]=k;
-    mm[k]=k;
-    big=R[k][k];
-    for(j=k; j<n ; j++) {
-      for (i=j; i<n; i++) {
-        if(TMath::Abs(big) < TMath::Abs(R[i][j]) ) { big=R[i][j]; ll[k]=i; mm[k]=j; }
-      }
-    }    
-//
-    j= ll[k];
-    if(j > k) {
-      for(i=0; i<n; i++) { hold=-R[k][i]; R[k][i]=R[j][i]; R[j][i]=hold; }
-      
-    }
-//
-    i=mm[k];
-    if(i > k ) { 
-      for(j=0; j<n; j++) { hold=-R[j][k]; R[j][k]=R[j][i]; R[j][i]=hold; }
-    }
-//
-    if(!big) {
-      d=0.;
-      cout << "Singular matrix\n"; 
-    }
-    for(i=0; i<n; i++) {
-      if(i == k) { continue; }    
-      R[i][k]=R[i][k]/(-big);
-    }   
-//
-    for(i=0; i<n; i++) {
-      hold=R[i][k];
-      for(j=0; j<n; j++) {
-        if(i == k || j == k) { continue; }
-       R[i][j]=hold*R[k][j]+R[i][j];
-      }
-    }
-//  
-    for(j=0; j<n; j++) {
-      if(j == k) { continue; }
-      R[k][j]=R[k][j]/big;
-    }
-//
-    d=d*big;
-//
-    R[k][k]=1./big;        
-  } 
-//  
-  for(k=n-1; k>=0; k--) {
-    i=ll[k];
-    if(i > k) {
-      for (j=0; j<n; j++) {hold=R[j][k]; R[j][k]=-R[j][i]; R[j][i]=hold;}
-    }  
-    j=mm[k];
-    if(j > k) {
-      for (i=0; i<n; i++) {hold=R[k][i]; R[k][i]=-R[j][i]; R[j][i]=hold;}
-      }
-  }
-//////////////////////////////////////////////////////////////////////////////////
-
-
-  Double_t K00=Cin00*R[0][0]+Cin10*R[1][0]+Cin20*R[2][0]+Cin30*R[3][0];
-  Double_t K01=Cin00*R[1][0]+Cin10*R[1][1]+Cin20*R[2][1]+Cin30*R[3][1];
-  Double_t K02=Cin00*R[2][0]+Cin10*R[2][1]+Cin20*R[2][2]+Cin30*R[3][2];
-  Double_t K03=Cin00*R[3][0]+Cin10*R[3][1]+Cin20*R[3][2]+Cin30*R[3][3];
-  Double_t K10=Cin10*R[0][0]+Cin11*R[1][0]+Cin21*R[2][0]+Cin31*R[3][0];  
-  Double_t K11=Cin10*R[1][0]+Cin11*R[1][1]+Cin21*R[2][1]+Cin31*R[3][1];
-  Double_t K12=Cin10*R[2][0]+Cin11*R[2][1]+Cin21*R[2][2]+Cin31*R[3][2];
-  Double_t K13=Cin10*R[3][0]+Cin11*R[3][1]+Cin21*R[3][2]+Cin31*R[3][3];
-  Double_t K20=Cin20*R[0][0]+Cin21*R[1][0]+Cin22*R[2][0]+Cin32*R[3][0];  
-  Double_t K21=Cin20*R[1][0]+Cin21*R[1][1]+Cin22*R[2][1]+Cin32*R[3][1];  
-  Double_t K22=Cin20*R[2][0]+Cin21*R[2][1]+Cin22*R[2][2]+Cin32*R[3][2];
-  Double_t K23=Cin20*R[3][0]+Cin21*R[3][1]+Cin22*R[3][2]+Cin32*R[3][3];
-  Double_t K30=Cin30*R[0][0]+Cin31*R[1][0]+Cin32*R[2][0]+Cin33*R[3][0];  
-  Double_t K31=Cin30*R[1][0]+Cin31*R[1][1]+Cin32*R[2][1]+Cin33*R[3][1];  
-  Double_t K32=Cin30*R[2][0]+Cin31*R[2][1]+Cin32*R[2][2]+Cin33*R[3][2];  
-  Double_t K33=Cin30*R[3][0]+Cin31*R[3][1]+Cin32*R[3][2]+Cin33*R[3][3];
-  Double_t K40=Cin40*R[0][0]+Cin41*R[1][0]+Cin42*R[2][0]+Cin43*R[3][0];
-  Double_t K41=Cin40*R[1][0]+Cin41*R[1][1]+Cin42*R[2][1]+Cin43*R[3][1];
-  Double_t K42=Cin40*R[2][0]+Cin41*R[2][1]+Cin42*R[2][2]+Cin43*R[3][2];  
-  Double_t K43=Cin40*R[3][0]+Cin41*R[3][1]+Cin42*R[3][2]+Cin43*R[3][3];
-  
-  Double_t X0,X1,X2,X3,X4;
-  newTrack->GetXElements(X0,X1,X2,X3,X4);     // get the state vector
-  
-  Double_t savex0=X0, savex1=X1, savex2=X2, savex3=X3;
-  
-  X0+=K00*(m[0]-savex0)+K01*(m[1]-savex1)+K02*(m[2]-savex2)+
-      K03*(m[3]-savex3);
-  X1+=K10*(m[0]-savex0)+K11*(m[1]-savex1)+K12*(m[2]-savex2)+
-      K13*(m[3]-savex3);
-  X2+=K20*(m[0]-savex0)+K21*(m[1]-savex1)+K22*(m[2]-savex2)+
-      K23*(m[3]-savex3);
-  X3+=K30*(m[0]-savex0)+K31*(m[1]-savex1)+K32*(m[2]-savex2)+
-      K33*(m[3]-savex3);
-  X4+=K40*(m[0]-savex0)+K41*(m[1]-savex1)+K42*(m[2]-savex2)+
-      K43*(m[3]-savex3);       
-
-  Double_t C00,C10,C20,C30,C40,C11,C21,C31,C41,C22,C32,C42,C33,C43,C44;
-  
-  C00=Cin00-K00*Cin00-K01*Cin10-K02*Cin20-K03*Cin30;
-  C10=Cin10-K00*Cin10-K01*Cin11-K02*Cin21-K03*Cin31;
-  C20=Cin20-K00*Cin20-K01*Cin21-K02*Cin22-K03*Cin32;
-  C30=Cin30-K00*Cin30-K01*Cin31-K02*Cin32-K03*Cin33;
-  C40=Cin40-K00*Cin40-K01*Cin41-K02*Cin42-K03*Cin43;
-  
-  C11=Cin11-K10*Cin10-K11*Cin11-K12*Cin21-K13*Cin31;
-  C21=Cin21-K10*Cin20-K11*Cin21-K12*Cin22-K13*Cin32;
-  C31=Cin31-K10*Cin30-K11*Cin31-K12*Cin32-K13*Cin33;
-  C41=Cin41-K10*Cin40-K11*Cin41-K12*Cin42-K13*Cin43;
-  
-  C22=Cin22-K20*Cin20-K21*Cin21-K22*Cin22-K23*Cin32;
-  C32=Cin32-K20*Cin30-K21*Cin31-K22*Cin32-K23*Cin33;
-  C42=Cin42-K20*Cin40-K21*Cin41-K22*Cin42-K23*Cin43;
-
-  C33=Cin33-K30*Cin30-K31*Cin31-K32*Cin32-K33*Cin33;
-  C43=Cin43-K30*Cin40-K31*Cin41-K32*Cin42-K33*Cin43;
-  
-  C44=Cin44-K40*Cin40-K41*Cin41-K42*Cin42-K43*Cin43;
-  
-  newTrack->PutXElements(X0,X1,X2,X3,X4);               // put the new state vector
-  
-  newTrack->PutCElements(C00,C10,C11,C20,C21,C22,C30,C31,C32,C33,C40,C41,C42,C43,C44); // put in track the
-                                                                                       // new cov matrix
-  
-  Double_t VMC[4][4];
-  
-  VMC[0][0]=V00-C00; VMC[1][0]=-C10; VMC[2][0]=-C20; VMC[3][0]=-C30;
-  VMC[1][1]=V11-C11; VMC[2][1]=-C21; VMC[3][1]=V31-C31;
-  VMC[2][2]=V22-C22; VMC[3][2]=V32-C32;
-  VMC[3][3]=V33-C33;
-  
-  VMC[0][1]=VMC[1][0]; VMC[0][2]=VMC[2][0]; VMC[0][3]=VMC[3][0];
-  VMC[1][2]=VMC[2][1]; VMC[1][3]=VMC[3][1];
-  VMC[2][3]=VMC[3][2];
-  
-
-/////////////////////// VMC matrix inversion ///////////////////////////////////  
-  d=1.;
-  
-  for(k=0; k<n; k++) {
-    ll[k]=k;
-    mm[k]=k;
-    big=VMC[k][k];
-    for(j=k; j<n ; j++) {
-      for (i=j; i<n; i++) {
-        if(TMath::Abs(big) < TMath::Abs(VMC[i][j]) ) { big=VMC[i][j]; ll[k]=i; mm[k]=j; }
-      }
-    }    
-//
-    j= ll[k];
-    if(j > k) {
-      for(i=0; i<n; i++) { hold=-VMC[k][i]; VMC[k][i]=VMC[j][i]; VMC[j][i]=hold; }
-      
-    }
-//
-    i=mm[k];
-    if(i > k ) { 
-      for(j=0; j<n; j++) { hold=-VMC[j][k]; VMC[j][k]=VMC[j][i]; VMC[j][i]=hold; }
-    }
-//
-    if(!big) {
-      d=0.;
-      cout << "Singular matrix\n"; 
-    }
-    for(i=0; i<n; i++) {
-      if(i == k) { continue; }    
-      VMC[i][k]=VMC[i][k]/(-big);
-    }   
-//
-    for(i=0; i<n; i++) {
-      hold=VMC[i][k];
-      for(j=0; j<n; j++) {
-        if(i == k || j == k) { continue; }
-       VMC[i][j]=hold*VMC[k][j]+VMC[i][j];
-      }
-    }
-//  
-    for(j=0; j<n; j++) {
-      if(j == k) { continue; }
-      VMC[k][j]=VMC[k][j]/big;
-    }
-//
-    d=d*big;
-//
-    VMC[k][k]=1./big;        
-  } 
-//  
-  for(k=n-1; k>=0; k--) {
-    i=ll[k];
-    if(i > k) {
-      for (j=0; j<n; j++) {hold=VMC[j][k]; VMC[j][k]=-VMC[j][i]; VMC[j][i]=hold;}
-    }  
-    j=mm[k];
-    if(j > k) {
-      for (i=0; i<n; i++) {hold=VMC[k][i]; VMC[k][i]=-VMC[j][i]; VMC[j][i]=hold;}
-      }
-  }
-
-
-////////////////////////////////////////////////////////////////////////////////
-
-  Double_t chi2=(m[0]-X0)*( VMC[0][0]*(m[0]-X0) + 2.*VMC[1][0]*(m[1]-X1) + 
-                   2.*VMC[2][0]*(m[2]-X2)+ 2.*VMC[3][0]*(m[3]-X3) ) +
-                (m[1]-X1)* ( VMC[1][1]*(m[1]-X1) + 2.*VMC[2][1]*(m[2]-X2)+ 
-                  2.*VMC[3][1]*(m[3]-X3) ) +
-                (m[2]-X2)* ( VMC[2][2]*(m[2]-X2)+ 2.*VMC[3][2]*(m[3]-X3) ) +
-                (m[3]-X3)*VMC[3][3]*(m[3]-X3); 
-        
-  newTrack->SetChi2(newTrack->GetChi2()+chi2);
-   
-} 
-
diff --git a/ITS/AliITStracking.h b/ITS/AliITStracking.h
deleted file mode 100644 (file)
index be07955..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef ALIITSTRACKING_H
-#define ALIITSTRACKING_H
-
-//class TObjArray;
-class AliITStrack;
-class AliITS;
-class AliITSRad;
-class AliITSgeoinfo;
-
-class AliITStracking : public TObject {
-
-//Origin  A. Badala' and G.S. Pappalardo:  e-mail Angela.Badala@ct.infn.it, Giuseppe.S.Pappalardo@ct.infn.it
-   
-  Double_t  Rlayer[6];
-       
-public:
-  
-  AliITStracking() {;}
-
-  AliITStracking(TList *trackITSlist,AliITStrack *reference,AliITS *obj,TObjArray *fpoints,
-                 Double_t Ptref, Int_t **vettid, Bool_t flagvert, AliITSRad *rl, AliITSgeoinfo *geoinfo);
-
-  Int_t NewIntersection(AliITStrack &track, Double_t rk,Int_t layer, Int_t &ladder, Int_t &detector,
-  AliITSgeoinfo *geoinfo);
-  Double_t PhiDef(Double_t x, Double_t y);
-
-  void KalmanFilter(AliITStrack *newtrack, TVector &cluster, Double_t sigma[2]);  
-  void KalmanFilterVert(AliITStrack *newtrack, TVector &cluster, Double_t sigma[2]);  
-                      
-  ClassDef(AliITStracking,1)
-};
-
-#endif