Automatic treatment of the magnetic field value
[u/mrichter/AliRoot.git] / ITS / AliITSTrackerV1.cxx
index 598fbf4d212ac9703f20436b59eb2e16ddc3f7f9..9dd59526948f058e197e706254b8cd420279e3b0 100644 (file)
@@ -52,6 +52,62 @@ AliITSTrackerV1::AliITSTrackerV1(AliITS* IITTSS, Bool_t flag) {
   Int_t imax=200,jmax=450;
   frl = new AliITSRad(imax,jmax);
 
+///////////////////////////////////////  gets information on geometry ///////////////////////////////////  
+
+  AliITSgeom *g1 = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom(); 
+  
+  Int_t ll=1, dd=1;
+  TVector det(9);
+  
+  //cout<<" nlad ed ndet \n";
+  Int_t ia;                              // fuori
+  for(ia=0; ia<6; ia++) {
+    fNlad[ia]=g1->GetNladders(ia+1);
+    fNdet[ia]=g1->GetNdetectors(ia+1);
+        //cout<<fNlad[i]<<" "<<fNdet[i]<<"\n"; 
+  }
+  //getchar();
+
+  //cout<<" raggio medio = ";
+  Int_t ib;                                  // fuori
+  for(ib=0; ib<6; ib++) {  
+    g1->GetCenterThetaPhi(ib+1,ll,dd,det);
+    fAvrad[ib]=TMath::Sqrt(det(0)*det(0)+det(1)*det(1));
+        //cout<<fAvrad[ib]<<" ";
+  }
+  //cout<<"\n"; getchar();
+  
+  fDetx[0] = ((AliITSgeomSPD*)(g1->GetShape(1, ll, dd)))->GetDx();
+  fDetz[0] = ((AliITSgeomSPD*)(g1->GetShape(1, ll, dd)))->GetDz();
+  
+  fDetx[1] = ((AliITSgeomSPD*)(g1->GetShape(2, ll, dd)))->GetDx();
+  fDetz[1] = ((AliITSgeomSPD*)(g1->GetShape(2, ll, dd)))->GetDz();
+  
+  fDetx[2] = ((AliITSgeomSDD*)(g1->GetShape(3, ll, dd)))->GetDx();
+  fDetz[2] = ((AliITSgeomSDD*)(g1->GetShape(3, ll, dd)))->GetDz();
+  
+  fDetx[3] = ((AliITSgeomSDD*)(g1->GetShape(4, ll, dd)))->GetDx();
+  fDetz[3] = ((AliITSgeomSDD*)(g1->GetShape(4, ll, dd)))->GetDz();
+  
+  fDetx[4] = ((AliITSgeomSSD*)(g1->GetShape(5, ll, dd)))->GetDx();
+  fDetz[4] = ((AliITSgeomSSD*)(g1->GetShape(5, ll, dd)))->GetDz();
+  
+  fDetx[5] = ((AliITSgeomSSD*)(g1->GetShape(6, ll, dd)))->GetDx();
+  fDetz[5] = ((AliITSgeomSSD*)(g1->GetShape(6, ll, dd)))->GetDz();
+  
+  //cout<<"    Detx     Detz\n";
+  //for(Int_t la=0; la<6; la++) cout<<"    "<<fDetx[la]<<"     "<<fDetz[la]<<"\n";
+  //getchar();
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////// gets magnetic field factor ////////////////////////////////
+
+  AliMagF * fieldPointer = gAlice->Field();
+  fFieldFactor = (Double_t)fieldPointer->Factor();
+  //cout<< " field factor = "<<fFieldFactor<<"\n"; getchar();
+
+/////////////////////////////////////////////////////////////////////////////////////////////////////////
+  
 }
 
 AliITSTrackerV1::AliITSTrackerV1(const AliITSTrackerV1 &cobj) {
@@ -68,6 +124,7 @@ AliITSTrackerV1::AliITSTrackerV1(const AliITSTrackerV1 &cobj) {
         Int_t imax=200,jmax=450;
         frl = new AliITSRad(imax,jmax);         
         *frl = *cobj.frl;
+        fFieldFactor = cobj.fFieldFactor;
         Int_t i;
         for(i=0; i<6; i++) {
           fNlad[i] = cobj.fNlad[i];
@@ -91,6 +148,7 @@ AliITSTrackerV1 &AliITSTrackerV1::operator=(AliITSTrackerV1 obj) {
         Int_t imax=200,jmax=450;
         frl = new AliITSRad(imax,jmax);         
         *frl = *obj.frl;
+        fFieldFactor = obj.fFieldFactor;
         Int_t i;
         for(i=0; i<6; i++) {
           fNlad[i] = obj.fNlad[i];
@@ -116,60 +174,7 @@ void AliITSTrackerV1::DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile
 
 
   printf("begin DoTracking - file %p\n",file);
-  
-///////////////////////////////////////  gets information on geometry ///////////////////////////////////  
-
-  AliITSgeom *g1 = ((AliITS*)gAlice->GetDetector("ITS"))->GetITSgeom(); 
-  
-  Int_t ll=1, dd=1;
-  TVector det(9);
-  
-  //cout<<" nlad ed ndet \n";
-  Int_t ia;                              // fuori
-  for(ia=0; ia<6; ia++) {
-    fNlad[ia]=g1->GetNladders(ia+1);
-    fNdet[ia]=g1->GetNdetectors(ia+1);
-        //cout<<fNlad[i]<<" "<<fNdet[i]<<"\n"; 
-  }
-  //getchar();
-
-  //cout<<" raggio medio = ";
-  Int_t ib;                                  // fuori
-  for(ib=0; ib<6; ib++) {  
-    g1->GetCenterThetaPhi(ib+1,ll,dd,det);
-    fAvrad[ib]=TMath::Sqrt(det(0)*det(0)+det(1)*det(1));
-        //cout<<fAvrad[ib]<<" ";
-  }
-  //cout<<"\n"; getchar();
-  
-  fDetx[0] = ((AliITSgeomSPD*)(g1->GetShape(1, ll, dd)))->GetDx();
-  fDetz[0] = ((AliITSgeomSPD*)(g1->GetShape(1, ll, dd)))->GetDz();
-  
-  fDetx[1] = ((AliITSgeomSPD*)(g1->GetShape(2, ll, dd)))->GetDx();
-  fDetz[1] = ((AliITSgeomSPD*)(g1->GetShape(2, ll, dd)))->GetDz();
-  
-  fDetx[2] = ((AliITSgeomSDD*)(g1->GetShape(3, ll, dd)))->GetDx();
-  fDetz[2] = ((AliITSgeomSDD*)(g1->GetShape(3, ll, dd)))->GetDz();
-  
-  fDetx[3] = ((AliITSgeomSDD*)(g1->GetShape(4, ll, dd)))->GetDx();
-  fDetz[3] = ((AliITSgeomSDD*)(g1->GetShape(4, ll, dd)))->GetDz();
-  
-  fDetx[4] = ((AliITSgeomSSD*)(g1->GetShape(5, ll, dd)))->GetDx();
-  fDetz[4] = ((AliITSgeomSSD*)(g1->GetShape(5, ll, dd)))->GetDz();
-  
-  fDetx[5] = ((AliITSgeomSSD*)(g1->GetShape(6, ll, dd)))->GetDx();
-  fDetz[5] = ((AliITSgeomSSD*)(g1->GetShape(6, ll, dd)))->GetDz();
-  
-  //cout<<"    Detx     Detz\n";
-  //for(Int_t la=0; la<6; la++) cout<<"    "<<fDetx[la]<<"     "<<fDetz[la]<<"\n";
-  //getchar();
-//////////////////////////////////////////////////////////////////////////////////////////////////////////  
-  
-  
- //Int_t imax=200,jmax=450;
- //frl = 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;
@@ -179,8 +184,8 @@ void AliITSTrackerV1::DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile
 
   gAlice->GetEvent(0);
  
-    AliKalmanTrack *kkprov;
-    kkprov->SetConvConst(100/0.299792458/0.2/gAlice->Field()->Factor());  
+  AliKalmanTrack *kkprov;
+  kkprov->SetConvConst(100/0.299792458/0.2/fFieldFactor);  
 
 
   TFile *cf=TFile::Open("AliTPCclusters.root");  
@@ -407,7 +412,7 @@ void AliITSTrackerV1::DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile
   list->AddLast(&trackITS);
   
   fPtref=TMath::Abs( (trackITS).GetPt() );
-  //cout << "\n Pt = " << fPtref <<"\n";  //stampa
+  cout << "\n Pt = " << fPtref <<"\n";  //stampa
 
   RecursiveTracking(list);  // nuova ITS 
   list->Delete();
@@ -442,11 +447,11 @@ void AliITSTrackerV1::DoTracking(Int_t evNumber, Int_t minTr, Int_t maxTr, TFile
     // cout<<" progressive track number = "<<j<<"\r";
    // cout<<j<<"\r";
     Int_t numOfCluster=(*fresult).GetNumClust();  
-    //cout<<" progressive track number = "<<j<<"\n";    // stampa
+    cout<<" progressive track number = "<<j<<"\n";    // stampa
     Long_t labITS=(*fresult).GetLabel();
-    //cout << " ITS track label = " << labITS << "\n";         // stampa           
+    cout << " ITS track label = " << labITS << "\n";   // stampa           
     int lab=track->GetLabel();             
-    //cout << " TPC track label = " << lab <<"\n";      // stampa
+    cout << " TPC track label = " << lab <<"\n";      // stampa
         
             
 //propagation to vertex