|
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.
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, hpstanc_transforms::max, min(), dataset::name, nsigma_, tauImpactParameter::TrackHelixVertexFitter::par_, tauImpactParameter::TrackHelixVertexFitter::parcov_, mathSSE::sqrt(), RecoTauCleanerPlugins::tolerance, tauImpactParameter::ChiSquareFunctionUpdator::Up(), and gsfElectronCkfTrackCandidateMaker_cff::updator.
Referenced by trackingPlots.Iteration::modules(), and ~Chi2VertexFitter().
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;
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;
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)