#include <StMinuitVertexFinder.h>
Inheritance diagram for StMinuitVertexFinder:
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) |
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)
Definition at line 105 of file StMinuitVertexFinder.h.
|
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(). |