StMinuitVertexFinder Class Reference

#include <StMinuitVertexFinder.h>

Inheritance diagram for StMinuitVertexFinder:

StGenericVertexFinder List of all members.

Public Member Functions

int fit (StEvent *)
void printInfo (ostream &=cout) const
void UseVertexConstraint (double x0, double y0, double dxdz, double dydz, double weight)
virtual void InitRun (int runumber)
void Clear ()
int NCtbMatches ()
int NCtbSlats ()
void CTBforSeed ()
void NoCTBforSeed ()
void setExternalSeed (const StThreeVectorD &)
void setPrintLevel (int=0)
 Use mMinuit print level.

int statusMin () const
void DoUseITTF ()
void DoNotUseITTF ()
void useOldBEMCRank ()
void lowerSplitVtxRank ()
void setFlagBase ()
void SetFitPointsCut (int fitpoints)
void SetMinimumTracks (int n)

Detailed Description

Author:
Thomas Ullrich, Feb 2002
Modified for pp by David Hardtke, Summer 2002

StEvent based vertex fitter using a robust potential. The actual fit is performed by MINUIT (TMinuit). For documentation the following links and documents are very useful: http://wwwinfo.cern.ch/asdoc/minuit/minmain.html http://root.cern.ch/root/html/TMinuit.html http://www-glast.slac.stanford.edu/software/root/GRUG/docs/Feature/GRUGminuit.pdf

Modified for multiple veretx finding by Marco van Leeuwen April/May 2006

Vertexfinding process has been split into two stages: a seedfinding and a fitting stage. Multiple vertices can be found for each event and are sorted by 'ranking'. The highets ranked vertex is most likely the triggered vertex.

Vertex rank calculation is done in calculateRanks(). Three ranks are calculated, based on mean-dip, number of tracks crossing central membrane and number of tracks matched to BEMC. The ranks are normalised to have mean value close to 0 for triggered vertices and a sigma of about 1 (independent of multiplicity). Each individual rank is bounded to [-5,1]. For data analysis, a quality cut on the rank of the best vertex is recommended. This needs to be refined, but requiring rank > -3 seems to work OK.

for more info, see: http://www.star.bnl.gov/protected/highpt/mvl/multi_vertex/

Member Functions: ----------------- StMinuitVertexFinder::fit(StEvent* evt) Find and fit the vertex for given event.

StThreeVectorD StMinuitVertexFinder::result() Returns the found vertex.

int StMinuitVertexFinder::status() The meaning of the return values of status() is as follows: -1 = not enough good tracks for fit in this case fit() returns false. All other values are related to the actual fit and reflect the status of the covariant matrix and thus the quality of the fit. (See also MNSTAT in Minuit documentation) 0 = not calculated at all 1 = diagonal approximation only 2 = full matrix, but forced positive-definite 3 = full accurate covariant matrix

void StMinuitVertexFinder::setExternalSeed(const StThreeVectorD& seed); If the seed is known, e.g. from pVPD, ZDC, or BBC, the estimated position can be passed to the fitter. In this case the fit performs faster, but not necessarily more accurate. The seed has to be provided for every fit (fit()). It will only be used for the next fit.

void StMinuitVertexFinder::setPrintLevel(int level); Set Minuit print level: 0-3 0 means essentially no output 3 prints a lot, for debugging only 1 current default level

void StMinuitVertexFinder::printInfo([ostream& os]); Prints information of the last fit to output stream os. If no argument is given the info is printed to cout.

Example code:

StEvent *event = ...; StMinuitVertexFinder myfinder; StThreeVectorD myvertex; if (myfinder.fit(event)) { myvertex = myfinder.result(); myfinder.printInfo(); } else cout << "Error: vertex fit failed, no vertex." << endl;

PP vertex finding: For proton-proton (and presumable dAu) vertex finding, we only do a 1D fit and use the beamline constraint to get the x and y positions of the vertex. To enable this mode, use:

myvertex.UseVertexConstraint(x0,y0,dzdy,dydz,weight)

Id
StMinuitVertexFinder.h,v 1.10 2008/07/31 18:11:10 genevb Exp

Definition at line 105 of file StMinuitVertexFinder.h.


Member Function Documentation

int StMinuitVertexFinder::fit StEvent event  )  [virtual]
 

LSB This should not be necessary and could be removed in future

Implements StGenericVertexFinder.

Definition at line 495 of file StMinuitVertexFinder.cxx.

References StTriggerDetectorCollection::ctb(), fit(), StDcaGeometry::impact(), StCtbTriggerDetector::mips(), StCtbTriggerDetector::numberOfSlats(), StCtbTriggerDetector::numberOfTrays(), StVertex::setChiSquared(), StVertex::setCovariantMatrix(), StVertex::setFlag(), StPrimaryVertex::setMeanDip(), StPrimaryVertex::setNumMatchesWithBEMC(), StPrimaryVertex::setNumMatchesWithCTB(), StPrimaryVertex::setNumTracksCrossingCentralMembrane(), StPrimaryVertex::setNumTracksUsedInFinder(), StMeasuredPoint::setPosition(), StPrimaryVertex::setRanking(), StPrimaryVertex::setSumOfTrackPt(), StPrimaryVertex::setVertexFinderId(), and StDcaGeometry::z().

Referenced by fit().


The documentation for this class was generated from the following files:
Generated on Thu Feb 12 05:09:09 2009 for StRoot by doxygen 1.3.7