FACT++  1.0
telesto.cc
Go to the documentation of this file.
1 #include <TROOT.h>
2 #include <TClass.h>
3 #include <TSystem.h>
4 #include <TGClient.h>
5 #include <TApplication.h>
6 #include <TObjectTable.h>
7 
8 #include "MAGIC.h"
9 
10 #include "MLog.h"
11 #include "MLogManip.h"
12 
13 //#include "MEnv.h"
14 #include "MArgs.h"
15 #include "MArray.h"
16 #include "MParContainer.h"
17 //#include "MDirIter.h"
18 
19 #include "TPointGui.h"
20 //#include "MStatusDisplay.h"
21 
22 //#include "MSequence.h"
23 //#include "MJStar.h"
24 
25 using namespace std;
26 
27 static void StartUpMessage()
28 {
29  gLog << all << endl;
30 
31  // 1 2 3 4 5 6
32  // 123456789012345678901234567890123456789012345678901234567890
33  gLog << "========================================================" << endl;
34  gLog << " Telesto - COSY" << endl;
35  gLog << " Telesto - Telescope TPoint organizer" << endl;
36  gLog << " Compiled with ROOT v" << ROOT_RELEASE << " on <" << __DATE__ << ">" << endl;
37  gLog << "========================================================" << endl;
38  gLog << endl;
39 }
40 
41 static void Usage()
42 {
43  // 1 2 3 4 5 6 7 8
44  // 12345678901234567890123456789012345678901234567890123456789012345678901234567890
45  gLog << all << endl;
46  gLog << "Sorry the usage is:" << endl;
47  gLog << " telestop [file.txt|file.col [pointing.mod]]" << endl << endl;
48  gLog << " Arguments:" << endl;
49  gLog << " file.txt|file.col A collection of files or a file with tpoints" << endl;
50  gLog << " pointing.mod A pointing model to load at startup" << endl << endl;
51  gLog << " Root Options:" << endl;
52  gLog << " -b Batch mode (no graphical output to screen)" << endl<<endl;
53  gLog << " Options:" << endl;
54  gLog.Usage();
55 // gLog << " --debug-env=0 Disable debugging setting resources <default>" << endl;
56 // gLog << " --debug-env[=1] Display untouched resources after program execution" << endl;
57 // gLog << " --debug-env=2 Display untouched resources after eventloop setup" << endl;
58 // gLog << " --debug-env=3 Debug setting resources from resource file and command line" << endl;
59  gLog << " --debug-mem Debug memory usage" << endl << endl;
60 // gLog << " --rc=Name:option Set or overwrite a resource of the resource file." << endl;
61  gLog << " (Note, that this option can be used multiple times." << endl;
62  gLog << endl;
63  gLog << " Output options:" << endl;
64 // gLog << " -q Quit when job is finished" << endl;
65 // gLog << " -f Force overwrite of existing files" << endl;
66  gLog << endl;
67  gLog << " --version, -V Show startup message with version number" << endl;
68  gLog << " -?, -h, --help This help" << endl << endl;
69  gLog << "Background:" << endl;
70  gLog << " Telesto is a moon of Saturn. It was discovered by Smith, Reitsema," << endl;
71  gLog << " Larson and Fountain in 1980 from ground-based observations, and was" << endl;
72  gLog << " provisionally designated S/1980 S 13." << endl;
73  gLog << " In 1983 it was officially named after Telesto of Greek mythology. It" << endl;
74  gLog << " is also designated as Saturn XIII or Tethys B." << endl;
75  gLog << " Telesto is co-orbital with Tethys, residing in Tethys' leading" << endl;
76  gLog << " Lagrangian point (L4). This relationship was first identified by" << endl;
77  gLog << " Seidelmann et al. The moon Calypso also resides in the other" << endl;
78  gLog << " (trailing) lagrangian point of Tethys, 60 deg in the other direction." << endl;
79  gLog << " The Cassini probe performed a distant flyby of Telesto on Oct. 11," << endl;
80  gLog << " 2005. The resulting images show that its surface is surprisingly" << endl;
81  gLog << " smooth, devoid of small impact craters." << endl << endl;
82 }
83 
84 int main(int argc, char **argv)
85 {
86  if (!MARS::CheckRootVer())
87  return 0xff;
88 
89  MLog::RedirectErrorHandler(MLog::kColor);
90 
91  //
92  // Evaluate arguments
93  //
94  MArgs arg(argc, argv);
95  gLog.Setup(arg);
96 
98 
99  if (arg.HasOnly("-V") || arg.HasOnly("--version"))
100  return 0;
101 
102  if (arg.HasOnly("-?") || arg.HasOnly("-h") || arg.HasOnly("--help"))
103  {
104  Usage();
105  return 2;
106  }
107 
108  const Bool_t kDebugMem = arg.HasOnlyAndRemove("--debug-mem");
109 
110  //
111  // check for the right usage of the program (number of arguments)
112  //
113  if (arg.GetNumArguments()>2)
114  {
115  gLog << warn << "WARNING - Wrong number of arguments..." << endl;
116  Usage();
117  return 2;
118  }
119 
120  TString fname=arg.GetArgumentStr(0);
121  TString mod =arg.GetArgumentStr(1);
122 
123  //
124  // check for the right usage of the program (number of options)
125  //
126  if (arg.GetNumOptions()>0)
127  {
128  gLog << warn << "WARNING - Unknown commandline options..." << endl;
129  arg.Print("options");
130  gLog << endl;
131  return 2;
132  }
133 
134 // MArray::Class()->IgnoreTObjectStreamer();
135 // MParContainer::Class()->IgnoreTObjectStreamer();
136 
137  TApplication app("telesto", &argc, argv);
138  if (!gClient || gROOT->IsBatch())
139  {
140  gLog << err << "Bombing... maybe your DISPLAY variable is not set correctly!" << endl;
141  return 1;
142  }
143 
144  if (kDebugMem)
145  TObject::SetObjectStat(kTRUE);
146 
147  TPointGui *gui = new TPointGui(fname, mod);
148  gui->SetExitLoopOnClose();
149 
150  // Wait until the user decides to exit the application
151  app.Run(kFALSE);
152 
153  if (TObject::GetObjectStat())
154  {
155  TObject::SetObjectStat(kFALSE);
156  gObjectTable->Print();
157  }
158 
159  return 0;
160 }
STL namespace.
int main(int argc, char **argv)
Definition: telesto.cc:84
#define gLog
Definition: fits.h:36
static void Usage()
Definition: telesto.cc:41
static void StartUpMessage()
Definition: telesto.cc:27
void SetExitLoopOnClose(Bool_t b=kTRUE)
Definition: TPointGui.h:95