Auxiliary program to print ROOT fit results.  
More...
#include <string>
#include <iomanip>
#include <iostream>
#include <vector>
#include <set>
#include "TROOT.h"
#include "TFile.h"
#include "TH1.h"
#include "TGraph.h"
#include "TGraph2D.h"
#include "TF1.h"
#include "JTools/JRange.hh"
#include "JGizmo/JRootObjectID.hh"
#include "JGizmo/JGizmoToolkit.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
 
Go to the source code of this file.
 | 
| std::istream &  | operator>> (std::istream &in, TString &object) | 
|   | Read formula from input stream.  
  | 
|   | 
| std::ostream &  | operator<< (std::ostream &out, const TString &object) | 
|   | Write formula to output stream.  
  | 
|   | 
| int  | main (int argc, char **argv) | 
|   | 
Auxiliary program to print ROOT fit results. 
- Author
 - mdejong 
 
Definition in file JPrintFit.cc.
 
◆ operator>>()
  
  
      
        
          | std::istream & operator>>  | 
          ( | 
          std::istream & |           in,  | 
         
        
           | 
           | 
          TString & |           object ) | 
         
       
   | 
  
inline   | 
  
 
Read formula from input stream. 
- Parameters
 - 
  
    | in | input stream  | 
    | object | formula  | 
  
   
- Returns
 - input stream 
 
Definition at line 30 of file JPrintFit.cc.
   31{
   32  return object.ReadLine(in);
   33}
 
 
 
◆ operator<<()
  
  
      
        
          | std::ostream & operator<<  | 
          ( | 
          std::ostream & |           out,  | 
         
        
           | 
           | 
          const TString & |           object ) | 
         
       
   | 
  
inline   | 
  
 
Write formula to output stream. 
- Parameters
 - 
  
    | out | output stream  | 
    | object | formula  | 
  
   
- Returns
 - output stream 
 
Definition at line 42 of file JPrintFit.cc.
   43{
   44  return out << object.Data();
   45}
 
 
 
◆ main()
      
        
          | int main  | 
          ( | 
          int |           argc,  | 
        
        
           | 
           | 
          char ** |           argv ) | 
        
      
 
Definition at line 53 of file JPrintFit.cc.
   54{
   57 
   59  string           fcn;
   62  TString          formula;
   64 
   65  try {
   66 
   67    JParser<> zap(
"Auxiliary program to print ROOT fit results.");
 
   68 
   69    zap[
'f'] = 
make_field(inputFile,  
"histogram, e.g: <file name>:<object name>");
 
   70    zap[
'='] = 
make_field(fcn,        
"function name")                                   = 
".*";
 
   75 
   76    zap(argc, argv);
   77  }
   78  catch(const exception &error) {
   79    FATAL(error.what() << endl);
 
   80  }
   81 
   82 
   84 
   85  if (p == NULL) {
   86    FATAL(
"No object at " << inputFile << endl);
 
   87  }
   88 
   89  TF1* f1 = NULL;
   90 
   91  if (f1 == NULL && dynamic_cast<TF1*>     (p) != NULL) { f1 = dynamic_cast<TF1*>(p); }
   92  if (f1 == NULL && 
dynamic_cast<TH1*
>     (p) != NULL) { f1 = 
getFunction(
dynamic_cast<TH1*
>     (p), fcn.c_str()); };
 
   93  if (f1 == NULL && 
dynamic_cast<TGraph*
>  (p) != NULL) { f1 = 
getFunction(
dynamic_cast<TGraph*
>  (p), fcn.c_str()); };
 
   94  if (f1 == NULL && 
dynamic_cast<TGraph2D*
>(p) != NULL) { f1 = 
getFunction(
dynamic_cast<TGraph2D*
>(p), fcn.c_str()); };
 
   95 
   96  if (f1 == NULL) {
   97    FATAL(
"No function at " << inputFile << 
" " << fcn << endl);
 
   98  };
   99 
  100  for (int i = 0; i != f1->GetNpar(); ++i) {
  101    if (parameter.count(f1->GetParName(i)) != 0) {
  102      cout << 
FIXED(20,10) << f1->GetParameter(i) << 
' ' 
  103           << 
FIXED(20,10) << f1->GetParError (i) << endl;
 
  104    }
  105  }
  106 
  108    cout << f1->EvalPar(
x.data()) << endl;
 
  109  }
  110 
  111  if (formula != "") {
  113  }
  114}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Auxiliary class to handle file name, ROOT directory and object name.
 
Utility class to parse command line options.
 
TF1 * getFunction(TH1 *h1, const char *const fcn)
Get function.
 
Double_t getResult(const TString &text, TObject *object=NULL)
Get result of given textual formula.
 
TObject * getObject(const JRootObjectID &id)
Get first TObject with given identifier.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary data structure for floating point format specification.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
 
Auxiliary data structure for floating point format specification.