/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkExtAlg/TrkExtAlg-00-00-64/src/Ext_err_valid.cxx File Reference

#include <iostream>
#include "CLHEP/Matrix/SymMatrix.h"

Go to the source code of this file.

Functions

static const double Large (1.0e13)
bool Ext_err_valid (bool msg, HepSymMatrix &error, const int dimension)
bool Ext_err_valid (bool msg, const HepSymMatrix &error, const int dimension)


Function Documentation

bool Ext_err_valid ( bool  msg,
const HepSymMatrix &  error,
const int  dimension 
)

Definition at line 92 of file Ext_err_valid.cxx.

References ers::error, genRecEmupikp::i, and Large().

00093 {
00094   bool valid( 1 );
00095   double trace( 0 );
00096 
00097   for( int i = 1; i<=dimension; i++ ){
00098     double elem( error( i, i ) );
00099     trace += elem;
00100     if( elem < 0.0 ){
00101       valid = 0;
00102       if( msg ){
00103         std::cout << "%ERROR detected at Ext_err_valid: error matrix: error(" 
00104         << i << "," << i << ")= " << elem << " < 0.0." << std::endl;
00105       }
00106     } else if( elem > Large ){
00107       valid = 0;
00108       if( msg ){
00109         std::cout << "%ERROR detected at Ext_err_valid: error matrix: error(" 
00110         << i << "," << i << ")= " << elem << " > " << Large << std::endl;
00111       }
00112     }
00113   }
00114   if( !trace ) valid = 0;
00115   return( valid );
00116 }

bool Ext_err_valid ( bool  msg,
HepSymMatrix &  error,
const int  dimension 
)

Definition at line 58 of file Ext_err_valid.cxx.

References ers::error, genRecEmupikp::i, and Large().

Referenced by Ext_errmx::valid().

00059 {
00060   bool valid( 1 );
00061   double trace( 0 );
00062 
00063   for( int i = 1; i<=dimension; i++ ){
00064     double elem( error( i, i ) );
00065     trace += elem;
00066     if( elem < 0.0 ){
00067       valid = 0;
00068       if( msg ){
00069         std::cout << "%ERROR detected at Ext_err_valid: error(" 
00070         << i << "," << i << ") = " << elem << " < 0.0. "
00071         << "Force to 0.0." << std::endl;
00072       }
00073       error( i, i ) = 0.0;
00074     } else if( elem > Large ){
00075       valid = 0;
00076       if( msg ){
00077         std::cout << "%ERROR detected at Ext_err_valid: error(" 
00078         << i << "," << i << ") = " << elem << " > " << Large
00079         << ". Force to " << Large << std::endl;
00080       }
00081       error( i, i ) = Large;
00082     }
00083   }
00084   if( !trace ) valid = 0;
00085   return( valid );
00086 }

static const double Large ( 1.  0e13  )  [static]

Referenced by Ext_err_valid(), EmcShower::operator>(), and EmcShDigi::operator>().


Generated on Tue Nov 29 23:17:05 2016 for BOSS_7.0.2 by  doxygen 1.4.7