]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Checking if the field map is set and propagating the tracks to the found vertex
authorbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Sep 2006 08:43:13 +0000 (08:43 +0000)
committerbelikov <belikov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Sep 2006 08:43:13 +0000 (08:43 +0000)
STEER/AliVertexerTracks.cxx
STEER/AliVertexerTracks.h

index 661dff7e264c41b6eeb358bd0fbc12bc68d6a017..9ee4d84d1d9aa1cde5c67a0f78f1b769ac72d004 100644 (file)
@@ -236,6 +236,7 @@ AliESDVertex* AliVertexerTracks::FindPrimaryVertex(const AliESD *esdEvent)
 // (Two iterations: 
 //  1st with 5*fNSigma*sigma(pt) cut w.r.t. to initial vertex; 
 //  2nd with fNSigma*sigma(pt) cut w.r.t. to vertex found in 1st iteration) 
+// All ESD tracks with inside the beam pipe are then propagated to found vertex
 //
   fCurrentVertex = 0;
 
@@ -264,6 +265,7 @@ AliESDVertex* AliVertexerTracks::FindPrimaryVertex(const AliESD *esdEvent)
     trkTree->Fill();
   }
   delete esdTrack;
 
   // ITERATION 1
   // propagate tracks to initVertex
@@ -337,7 +339,19 @@ AliESDVertex* AliVertexerTracks::FindPrimaryVertex(const AliESD *esdEvent)
 
   if(fDebug) fCurrentVertex->PrintStatus();
   if(fTrksToSkip) delete [] fTrksToSkip;
-
+  
+  // propagate tracks to found vertex
+  if(TMath::Sqrt(fCurrentVertex->GetXv()*fCurrentVertex->GetXv()+fCurrentVertex->GetYv()*fCurrentVertex->GetYv())<3.) {
+    for(Int_t ii=0; ii<entr; ii++) {
+      AliESDtrack *et = esdEvent->GetTrack(ii);
+      if(!et->GetStatus()&AliESDtrack::kITSin) continue;
+      if(et->GetX()>3.) continue;
+      et->RelateToVertex(fCurrentVertex,GetField(),100.);
+    }
+  } else {
+    AliWarning("Found vertex outside beam pipe!");
+  }
   return fCurrentVertex;
 }
 //----------------------------------------------------------------------------
index 0ee8b81b8fe24bef738b5234f24109af99e4905b..b17c4e9fdb72a47b0be93ed81558c3ed7b5b1a5a 100644 (file)
@@ -66,7 +66,10 @@ class AliVertexerTracks : public TObject {
   static void GetStrLinDerivMatrix(Double_t *p0,Double_t *p1,Double_t *sigmasq,Double_t (*m)[3],Double_t *d);
 
  protected:
-  Double_t GetField() const { return AliTracker::GetBz();} 
+  Double_t GetField() const { 
+    if(!AliTracker::GetFieldMap())
+      AliFatal("Field map not set; use AliTracker::SetFieldMap()!");
+    return AliTracker::GetBz(); } 
   Int_t    PrepareTracks(TTree &trkTree, Int_t OptImpParCut);
   Double_t Sigmad0rphi(Double_t pt) const;
   void     VertexFinder(Int_t optUseWeights=0);