Jpp  18.2.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Functions
JEllipse.cc File Reference

Auxiliary program to create TEllipse. More...

#include <string>
#include <iostream>
#include "TROOT.h"
#include "TFile.h"
#include "TEllipse.h"
#include "Jeep/JContainer.hh"
#include "Jeep/JProperties.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Classes

struct  JEllipse
 Auxiliary data structure for ellipse. More...
 

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to create TEllipse.

Author
mdejong

Definition in file JEllipse.cc.

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 86 of file JEllipse.cc.

87 {
88  using namespace std;
89  using namespace JPP;
90 
91  typedef JContainer< vector<JEllipse> > JParameters_t;
92 
93  string outputFile;
94  JParameters_t parameters;
95  struct {
96  Color_t color = kBlack;
97  Style_t style = 0; // hollow
98  } fill;
99  struct {
100  Color_t color = kBlack;
101  Style_t style = kSolid;
102  } line;
103  int debug;
104 
105  try {
106 
107  JProperties properties(JEquationParameters("=", "\n", "", "#"));
108 
109  properties.insert(zmake_property(fill.color));
110  properties.insert(zmake_property(fill.style));
111  properties.insert(zmake_property(line.color));
112  properties.insert(zmake_property(line.style));
113 
114  JParser<> zap("Auxiliary program to create TEllipse");
115 
116  zap['o'] = make_field(outputFile);
117  zap['p'] = make_field(parameters, "x y r1 [r2 [phimin phimax]]");
118  zap['@'] = make_field(properties, "ellipse attributes") = JPARSER::initialised();
119  zap['d'] = make_field(debug) = 1;
120 
121  zap(argc, argv);
122  }
123  catch(const exception &error) {
124  FATAL(error.what() << endl);
125  }
126 
127 
128  TFile out(outputFile.c_str(), "recreate");
129 
130  for (size_t i = 0; i != parameters.size(); ++i) {
131 
132  TEllipse* p = new TEllipse(parameters[i].x1, parameters[i].y1, parameters[i].r1, parameters[i].r2, parameters[i].phimin, parameters[i].phimax);
133 
134  p->SetFillColor(fill.color);
135  p->SetFillStyle(fill.style);
136  p->SetLineColor(line.color);
137  p->SetLineStyle(line.style);
138 
139  out.WriteTObject(p);
140  }
141 
142  out.Write();
143  out.Close();
144 }
Utility class to parse command line options.
Definition: JParser.hh:1514
Utility class to parse parameter values.
Definition: JProperties.hh:497
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
Definition: JParser.hh:83
string outputFile
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1989
#define FATAL(A)
Definition: JMessage.hh:67
#define zmake_property(A)
int debug
debug level