source: trunk/MagicSoft/Mars/macros/sumpedestals.C@ 2240

Last change on this file since 2240 was 2238, checked in by tbretz, 22 years ago
*** empty log message ***
File size: 3.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, 6/2003 <mailto:tbretz@astro.uni-wuerzburg.de>
19!
20! Copyright: MAGIC Software Development, 2000-2003
21!
22!
23\* ======================================================================== */
24
25void ProcessFile(TString fname)
26{
27 //
28 // Create a empty Parameter List and an empty Task List
29 // The tasklist is identified in the eventloop by its name
30 //
31 MParList plist;
32
33 MTaskList tlist;
34 plist.AddToList(&tlist);
35
36 //
37 // Now setup the tasks and tasklist:
38 // ---------------------------------
39 //
40
41 MGeomCamMagic geom;
42 plist.AddToList(&geom);
43
44 // First Task: Read file with image parameters
45 // (created with the star.C macro)
46
47 MReadMarsFile read("Events", fname);
48 read.DisableAutoScheme();
49
50 MCerPhotAnal2 ncalc;
51
52 tlist.AddToList(&read);
53 tlist.AddToList(&ncalc);
54
55 MFillH fill("MHCamEvent", "MPedestalCam");
56 tlist.AddToList(&fill);
57
58 //
59 // Create and setup the eventloop
60 //
61 MEvtLoop evtloop;
62 evtloop.SetParList(&plist);
63
64 //
65 // Execute your analysis
66 //
67 if (!evtloop.Eventloop())
68 return;
69
70 tlist.PrintStatistics();
71
72 TCanvas *c = MH::MakeDefCanvas();
73 c->Divide(3, 2);
74
75 MHCamEvent &h = *(MHCamEvent*)plist->FindObject("MHCamEvent");
76 MHCamera *disp0 = h.GetHistByName();
77 MHCamera *disp1 = new MHCamera(geom, "MPedestalCam;avg", "Pedestals Avarage");
78 MHCamera *disp2 = new MHCamera(geom, "MPedestalCam;rms", "Pedestals Avarage RMS");
79 MHCamera *disp3 = new MHCamera(geom, "MPedestalCam;rel", "Pedestals Avarage RMS/VAL");
80 disp1->SetBit(kCanDelete);
81 disp2->SetBit(kCanDelete);
82 disp3->SetBit(kCanDelete);
83
84 disp1->SetCamContent(*disp0, 0);
85 disp2->SetCamContent(*disp0, 1);
86 disp3->SetCamContent(*disp0, 2);
87
88 disp2->SetStats(kFALSE);
89 disp3->SetStats(kFALSE);
90
91 c->cd(4);
92 gPad->SetBorderMode(0);
93 TText text(0.1, 0.95, &fname[fname.Last('/')+1]);
94 text.SetTextSize(0.03);
95 text.DrawClone();
96 gPad->Divide(1,1);
97 gPad->cd(1);
98 disp1->Draw();
99
100 c->cd(5);
101 gPad->SetBorderMode(0);
102 gPad->Divide(1,1);
103 gPad->cd(1);
104 disp2->Draw();
105
106 c->cd(6);
107 gPad->SetBorderMode(0);
108 gPad->Divide(1,1);
109 gPad->cd(1);
110 disp3->Draw();
111
112 c->cd(1);
113 disp1->Draw("hist");
114
115 c->cd(2);
116 gPad->SetLogy();
117 disp2->Draw("hist");
118
119 c->cd(3);
120 gPad->SetLogy();
121 disp3->Draw("hist");
122
123 c->SaveAs(fname(0, fname.Last('.')+1) + "ps");
124 //c->SaveAs(fname(0, fname.Last('.')+1) + "root");
125}
126
127// -------------------------------------------------------------------------
128//
129// plot.C
130//
131// This macro shows how to fill and display a histogram using Mars
132//
133void sumpedestals(const char *dirname=".")
134{
135 MDirIter Next;
136 Next.AddDirectory(dirname, "raw*.root", -1);
137
138 TString fname;
139 while (1)
140 {
141 fname = Next();
142 if (fname.IsNull())
143 break;
144
145 ProcessFile(fname);
146 return;
147 }
148}
Note: See TracBrowser for help on using the repository browser.