#include <Chi2VertexFitter.h>
|
enum | ExtraPar { BField0 =0,
MassOffSet =1,
NExtraPar =1
} |
|
enum | FreeTrackPar { kappa0 =3,
lambda0,
phi0,
NFreeTrackPar
} |
|
enum | FreeVertexPar { x0 =0,
y0,
z0,
NFreeVertexPar
} |
|
static void | computedxydz (const TVectorT< double > &inpar, int particle, double &kappa, double &lam, double &phi, double &x, double &y, double &z, double &s, double &dxy, double &dz) |
|
static TVectorT< double > | computeLorentzVectorPar (const TVectorT< double > &inpar) |
|
virtual TString | freeParName (int Par) |
|
double | chi2_ |
|
bool | isConfigured_ |
|
bool | isFit_ |
|
double | ndf_ |
|
TVectorT< double > | par_ |
|
TMatrixTSym< double > | parcov_ |
|
Definition at line 16 of file Chi2VertexFitter.h.
tauImpactParameter::Chi2VertexFitter::Chi2VertexFitter |
( |
const std::vector< TrackParticle > & |
particles, |
|
|
const TVector3 & |
vguess, |
|
|
double |
nsigma = 4.0 |
|
) |
| |
|
inline |
Definition at line 18 of file Chi2VertexFitter.h.
TrackHelixVertexFitter(const std::vector< TrackParticle > &particles, const TVector3 &vguess)
virtual tauImpactParameter::Chi2VertexFitter::~Chi2VertexFitter |
( |
| ) |
|
|
inlinevirtual |
bool Chi2VertexFitter::fit |
( |
void |
| ) |
|
|
virtual |
Implements tauImpactParameter::TrackHelixVertexFitter.
Definition at line 26 of file Chi2VertexFitter.cc.
References tauImpactParameter::TrackHelixVertexFitter::chi2_, tauImpactParameter::TrackHelixVertexFitter::freeParName(), i, tauImpactParameter::TrackHelixVertexFitter::isConfigured_, tauImpactParameter::TrackHelixVertexFitter::isFit_, j, bookConverter::max, min(), mergeVDriftHistosByStation::name, nsigma_, tauImpactParameter::TrackHelixVertexFitter::par_, tauImpactParameter::TrackHelixVertexFitter::parcov_, mathSSE::sqrt(), tauImpactParameter::ChiSquareFunctionUpdator::Up(), and HLT_25ns14e33_v1_cff::updator.
27 if(
isFit_==
true)
return true;
30 ROOT::Minuit2::MnUserParameters MnPar;
31 for(
int i=0;
i<
par_.GetNrows();
i++){
38 int numberofcalls=200+
par_.GetNrows()*100+
par_.GetNrows()*
par_.GetNrows()*5;
39 double tolerance(0.01);
40 double edmMin(0.001*
updator.Up()*tolerance);
42 ROOT::Minuit2::MnMinimize minimize(
updator,MnPar);
43 ROOT::Minuit2::FunctionMinimum
min= minimize(numberofcalls,tolerance);
44 for(
unsigned int i=0;
i<=max && min.Edm()>edmMin;
i++){
45 if(
i==max)
return false;
46 min = minimize(
i*numberofcalls,tolerance);
49 if(min.IsAboveMaxEdm()){
edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Found Vertex that is above EDM " << std::endl;
return false;}
51 edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Failed min.IsValid()" << std::endl;
52 if(!min.HasValidParameters()){
edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Failed min.HasValidParameters()" << std::endl; }
53 if(!min.HasValidCovariance()){
edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Failed min.HasValidCovariance()" << std::endl; }
54 if(!min.HesseFailed()){
edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Failed min.HesseFailed()" << std::endl; }
55 if(!min.HasReachedCallLimit()){
edm::LogWarning(
"Chi2VertexFitter::Fit") <<
"Failed min.HasReachedCallLimit()" << std::endl; }
60 for(
int i=0;
i<
par_.GetNrows();
i++){
par_(
i)=min.UserParameters().Value(
i);}
62 for(
int i=0;
i<
par_.GetNrows();
i++){
63 for(
int j=0;
j<
par_.GetNrows();
j++){
TMatrixTSym< double > parcov_
virtual TString freeParName(int Par)
double tauImpactParameter::Chi2VertexFitter::nsigma_ |
|
private |