GENFIT Rev: NoNumberAvailable
Loading...
Searching...
No Matches
Exception.cc
Go to the documentation of this file.
1/* Copyright 2008-2010, Technische Universitaet Muenchen,
2 Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3
4 This file is part of GENFIT.
5
6 GENFIT is free software: you can redistribute it and/or modify
7 it under the terms of the GNU Lesser General Public License as published
8 by the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 GENFIT is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public License
17 along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#include "Exception.h"
21#include "IO.h"
22
23namespace genfit {
24
25bool Exception::quiet_ = false;
26
27Exception::Exception(std::string excString, int line, std::string file) :
28 excString_(excString), line_(line), file_(file), fatal_(false) {
29 std::ostringstream ErrMsgStream;
30 ErrMsgStream << "genfit::Exception thrown with excString:"
31 << std::endl << excString_ << std::endl
32 << "in line: " << line_ << " in file: " << file_ << std::endl
33 << "with fatal flag " << fatal_ << std::endl;
34 errorMessage_ = ErrMsgStream.str();
35}
36
38}
39
40void Exception::setNumbers(std::string _numbersLabel,
41 const std::vector<double>& _numbers) {
42 numbersLabel_ = _numbersLabel;
43 numbers_ = _numbers;
44}
45
46void Exception::setMatrices(std::string _matricesLabel,
47 const std::vector<TMatrixD>& _matrices) {
48 matricesLabel_ = _matricesLabel;
49 matrices_ = _matrices;
50}
51
52const char* Exception::what() const noexcept{
53 return errorMessage_.c_str();
54}
55
57 if(quiet_) return;
58 if(numbers_.empty() && matrices_.empty()) return; //do nothing
59 debugOut << "genfit::Exception Info Output" << std::endl;
60 debugOut << "===========================" << std::endl;
61 if(numbersLabel_ != "") {
62 debugOut << "Numbers Label String:" << std::endl;
63 debugOut << numbersLabel_ << std::endl;
64 }
65 if(!numbers_.empty()) {
66 debugOut << "---------------------------" << std::endl;
67 debugOut << "Numbers:" << std::endl;
68 for(unsigned int i=0;i<numbers_.size(); ++i ) debugOut << numbers_[i] << std::endl;
69 }
70 if(matricesLabel_ != "") {
71 debugOut << "---------------------------" << std::endl;
72 debugOut << "Matrices Label String:" << std::endl;
73 debugOut << matricesLabel_ << std::endl;
74 }
75 if(!matrices_.empty()) {
76 debugOut << "---------------------------" << std::endl;
77 debugOut << "Matrices:" << std::endl;
78 for(unsigned int i=0;i<matrices_.size(); ++i ) matrices_[i].Print();
79 }
80 debugOut << "===========================" << std::endl;
81}
82
83} /* End of namespace genfit */
84
void setNumbers(std::string, const std::vector< double > &)
Set list of numbers with description.
Definition Exception.cc:40
std::vector< TMatrixD > matrices_
Definition Exception.h:93
std::string matricesLabel_
Definition Exception.h:91
std::string errorMessage_
Definition Exception.h:88
virtual const char * what() const noexcept
Standard error message handling for exceptions. use like "std::cerr << e.what();".
Definition Exception.cc:52
std::string file_
Definition Exception.h:86
std::string excString_
Definition Exception.h:84
static bool quiet_
Definition Exception.h:82
void setMatrices(std::string, const std::vector< TMatrixD > &)
Set list of matrices with description.
Definition Exception.cc:46
Exception(std::string excString, int line, std::string file)
Initializing constructor.
Definition Exception.cc:27
virtual ~Exception() noexcept
Definition Exception.cc:37
std::vector< double > numbers_
Definition Exception.h:92
std::string numbersLabel_
Definition Exception.h:90
void info()
Print information in the exception object.
Definition Exception.cc:56
Defines for I/O streams used for error and debug printing.
std::ostream debugOut