source: trunk/MagicSoft/Mars/macros/status.C@ 2223

Last change on this file since 2223 was 2221, checked in by tbretz, 22 years ago
*** empty log message ***
File size: 4.6 KB
Line 
1/* ======================================================================== *\
2!
3! *
4! * This file is part of MARS, the MAGIC Analysis and Reconstruction
5! * Software. It is distributed to you in the hope that it can be a useful
6! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
7! * It is distributed WITHOUT ANY WARRANTY.
8! *
9! * Permission to use, copy, modify and distribute this software and its
10! * documentation for any purpose is hereby granted without fee,
11! * provided that the above copyright notice appear in all copies and
12! * that both that copyright notice and this permission notice appear
13! * in supporting documentation. It is provided "as is" without express
14! * or implied warranty.
15! *
16!
17!
18! Author(s): Thomas Bretz, 4/2003 <mailto:tbretz@astro.uni-wuerzburg.de>
19!
20! Copyright: MAGIC Software Development, 2000-2003
21!
22!
23\* ======================================================================== */
24
25/////////////////////////////////////////////////////////////////////////////
26//
27// Status - Example how to use the MStatusDisplay
28//
29// Use a camera file as input
30//
31/////////////////////////////////////////////////////////////////////////////
32
33void status(const char *fname="cosmics.root")
34{
35 //
36 // Update frequency by default = 1Hz
37 //
38 MStatusDisplay *d = new MStatusDisplay;
39
40 // Set update time to 5s
41 // d->SetUpdateTime(5000);
42
43 // Disable online update
44 // d->SetUpdateTime(-1);
45
46 d->SetLogStream(&gLog, kTRUE); // Disables output to stdout
47 gLog.SetOutputFile("status.log", kTRUE); // Enable output to file
48 //gLog.EnableOutputDevice(MLog::eStdout); // Enable output to stdout again
49
50 //
51 // Create a empty Parameter List and an empty Task List
52 // The tasklist is identified in the eventloop by its name
53 //
54 MParList plist;
55
56 MTaskList tlist;
57 plist.AddToList(&tlist);
58
59 MSrcPosCam src;
60 src.SetReadyToSave();
61 plist.AddToList(&src);
62
63 //
64 // The geometry container must be created by yourself to make sure
65 // that you don't choose a wrong geometry by mistake
66 //
67 MGeomCamMagic geomcam;
68 plist.AddToList(&geomcam);
69
70 //
71 // Now setup the tasks and tasklist:
72 // ---------------------------------
73 //
74 MReadMarsFile read("Events");
75 read.DisableAutoScheme();
76
77 // ------------- user change -----------------
78 read.AddFile(fname);
79
80 MMcPedestalCopy pcopy;
81 MMcPedestalNSBAdd pnsb;
82 MCerPhotCalc ncalc;
83
84 MBlindPixelCalc blind;
85 blind.SetUseInterpolation();
86
87 MSigmabarCalc sgcal;
88 MImgCleanStd clean;
89 MHillasCalc hcalc;
90 MHillasSrcCalc scalc; // !!Preliminary!! Will be removed later!
91 MCT1SupercutsCalc calc1;
92
93 // -------------------------------------------
94 MFillH hfill0("Uncleaned [MHCamEvent]", "MCerPhotEvt");
95 MFillH hfill1("MHHillas", "MHillas");
96 MFillH hfill2("MHHillasExt");
97 MFillH hfill3("MHHillasExtSrc [MHHillasExt]", "MHillasSrc");
98 MFillH hfill4("MHHillasSrc","MHillasSrc");
99 MFillH hfill5("MHNewImagePar","MNewImagePar");
100 MFillH hfill6("MHStarMap", "MHillas");
101 MFillH hfill7("Cleaned [MHCamEvent]", "MCerPhotEvt");
102 MFillH hfill8("MHHadronness", "MHadronness");
103 MFillH hfill9("MHSigmaTheta");
104
105 tlist.AddToList(&read);
106 tlist.AddToList(&pcopy);
107 tlist.AddToList(&pnsb);
108 tlist.AddToList(&ncalc);
109 tlist.AddToList(&hfill0);
110 tlist.AddToList(&blind);
111 //tlist.AddToList(&sgcal);
112 tlist.AddToList(&clean);
113 tlist.AddToList(&hcalc);
114 tlist.AddToList(&scalc);
115 //tlist.AddToList(&calc1);
116 tlist.AddToList(&hfill1);
117 tlist.AddToList(&hfill2);
118 tlist.AddToList(&hfill3);
119 tlist.AddToList(&hfill4);
120 tlist.AddToList(&hfill5);
121 tlist.AddToList(&hfill6);
122 tlist.AddToList(&hfill7);
123 //tlist.AddToList(&hfill8);
124
125 MEvtLoop evtloop;
126 evtloop.SetParList(&plist);
127 evtloop.SetDisplay(d);
128
129 //
130 // Execute your analysis
131 //
132 if (!evtloop.Eventloop())
133 return;
134
135 tlist.PrintStatistics();
136
137 //
138 // Make sure the display hasn't been deleted by the user while the
139 // eventloop was running.
140 //
141 if ((d = evtloop.GetDisplay()))
142 {
143 // Save data in a postscriptfile (status.ps)
144 d->SaveAsPS();
145 /*
146 * ----------- Write status to a root file ------------
147 *
148 TFile file("status.root", "RECREATE");
149 d->Write();
150 file.Close();
151 delete d;
152 */
153 }
154 /*
155 * ----------- Read status from a root file ------------
156 *
157 TFile file2("status.root", "READ");
158 MStatusDisplay *d2 = new MStatusDisplay;
159 d2->Read();
160 */
161}
Note: See TracBrowser for help on using the repository browser.