Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JPrintPDB.cc
Go to the documentation of this file.
1 
2 #include <string>
3 #include <iostream>
4 #include <iomanip>
5 
6 #include "JAAnet/JPDB.hh"
7 #include "JLang/JComparator.hh"
8 
9 #include "Jeep/JParser.hh"
10 #include "Jeep/JMessage.hh"
11 
12 
13 /**
14  * \file
15  *
16  * Auxiliary program to print particle codes and masses.
17  * \author mdejong
18  */
19 int main(int argc, char **argv)
20 {
21  using namespace std;
22 
23  string key;
24  int debug;
25 
26  try {
27 
28  JParser<> zap("Auxiliary program to print particle codes and masses.");
29 
30  zap['k'] = make_field(key) = "name", "geant", "pdg", "mass";
31  zap['d'] = make_field(debug) = 2;
32 
33  zap(argc, argv);
34  }
35  catch(const exception& error) {
36  FATAL(error.what() << endl);
37  }
38 
39  using namespace JPP;
40 
41  JPDB pdb = JPDB::getInstance();
42 
43  if (key == "name")
44  sort(pdb.begin(), pdb.end(), make_comparator(&JParticle::name));
45  else if (key == "pdg")
46  sort(pdb.begin(), pdb.end(), make_comparator(&JParticle::pdg));
47  else if (key == "geant")
48  sort(pdb.begin(), pdb.end(), make_comparator(&JParticle::geant));
49  else if (key == "mass")
50  sort(pdb.begin(), pdb.end(), make_comparator(&JParticle::mass));
51 
52  cout << pdb << endl;
53 }
Utility class to parse command line options.
Definition: JParser.hh:1410
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
Definition: JComparator.hh:143
static const JGeant geant(geanx, 0.0001)
Function object for the number of photons from EM-shower as a function of emission angle...
T & getInstance(const T &object)
Get static instance from temporary object.
Definition: JObject.hh:73
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:1836
int debug
debug level
Definition: JSirene.cc:59
General purpose messaging.
#define FATAL(A)
Definition: JMessage.hh:65
Utility class to parse command line options.
int main(int argc, char *argv[])
Definition: Main.cpp:15