source: trunk/Mars/mcalib/MCalibrationBlindCamThreeNewStyle.cc@ 20040

Last change on this file since 20040 was 5389, checked in by gaug, 20 years ago
*** empty log message ***
File size: 8.4 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): Markus Gaug 07/2004 <mailto:markus@ifae.es>
19!
20! Copyright: MAGIC Software Development, 2000-2004
21!
22!
23\* ======================================================================== */
24
25/////////////////////////////////////////////////////////////////////////////
26//
27// MCalibrationBlindCamThreeNewStyle
28//
29// Blind Pixels Calibration camera after run 43308. The blind pixel camera
30// consisted then of three non-coated blind pixels with very well known
31// quantum efficiency read out in hardware ID 0,1 and 2 (stored in MRawEvtData2).
32//
33// See also: MCalibrationBlindCam, MHCalibrationChargeBlindCam
34//
35/////////////////////////////////////////////////////////////////////////////
36#include "MCalibrationBlindCamThreeNewStyle.h"
37#include "MCalibrationBlindPix.h"
38
39ClassImp(MCalibrationBlindCamThreeNewStyle);
40
41using namespace std;
42
43// --------------------------------------------------------------------------
44//
45// Default constructor.
46//
47// - CreatePixs();
48// - CreateAreas();
49// - CreateAtts();
50// - CreateQEs();
51// - CreateCollEffs();
52//
53MCalibrationBlindCamThreeNewStyle::MCalibrationBlindCamThreeNewStyle(const char *name)
54 : MCalibrationBlindCam(3,name,"Three Blind Pixels in camera - new style")
55{
56 CreatePixs ();
57 CreateAreas ();
58 CreateAtts ();
59 CreateQEs ();
60 CreateCollEffs();
61}
62
63
64// --------------------------------------------------------------------------
65//
66// Three blind pixels with ID 0,1 and 2 (software)
67//
68void MCalibrationBlindCamThreeNewStyle::CreatePixs()
69{
70
71 (*this)[0].SetPixId(0);
72 (*this)[1].SetPixId(1);
73 (*this)[2].SetPixId(2);
74
75}
76
77// --------------------------------------------------------------------------
78//
79// Three blind pixels with exactly 100 mm^2 area
80//
81void MCalibrationBlindCamThreeNewStyle::CreateAreas()
82{
83
84 MCalibrationBlindPix &pix0 = (MCalibrationBlindPix&)(*this)[0];
85 pix0.SetArea(100.);
86
87 MCalibrationBlindPix &pix1 = (MCalibrationBlindPix&)(*this)[1];
88 pix1.SetArea(100.);
89
90 MCalibrationBlindPix &pix2 = (MCalibrationBlindPix&)(*this)[2];
91 pix2.SetArea (0.196);
92 pix2.SetAreaErr(0.008);
93}
94
95
96// --------------------------------------------------------------------------
97//
98// Three blind pixels with very well known qe's: David's measurments with
99// 1% error.
100//
101void MCalibrationBlindCamThreeNewStyle::CreateQEs()
102{
103
104 MCalibrationBlindPix &pix0 = (MCalibrationBlindPix&)(*this)[0];
105
106 Float_t qe[4];
107
108 qe[ MCalibrationCam::kGREEN ] = 0.166;
109 qe[ MCalibrationCam::kBLUE ] = 0.240;
110 qe[ MCalibrationCam::kUV ] = 0.273;
111 qe[ MCalibrationCam::kCT1 ] = 0.273;
112
113 pix0.SetQE(4,qe);
114
115 Float_t qeerr[4];
116
117 qeerr[ MCalibrationCam::kGREEN ] = 0.004;
118 qeerr[ MCalibrationCam::kBLUE ] = 0.005;
119 qeerr[ MCalibrationCam::kUV ] = 0.006;
120 qeerr[ MCalibrationCam::kCT1 ] = 0.006;
121
122 pix0.SetQEErr(4,qeerr);
123
124 MCalibrationBlindPix &pix1 = (MCalibrationBlindPix&)(*this)[1];
125
126 qe[ MCalibrationCam::kGREEN ] = 0.155;
127 qe[ MCalibrationCam::kBLUE ] = 0.228;
128 qe[ MCalibrationCam::kUV ] = 0.261;
129 qe[ MCalibrationCam::kCT1 ] = 0.261;
130
131 pix1.SetQE(4,qe);
132
133 qeerr[ MCalibrationCam::kGREEN ] = 0.004;
134 qeerr[ MCalibrationCam::kBLUE ] = 0.005;
135 qeerr[ MCalibrationCam::kUV ] = 0.006;
136 qeerr[ MCalibrationCam::kCT1 ] = 0.006;
137
138 pix1.SetQEErr(4,qeerr);
139
140 MCalibrationBlindPix &pix2 = (MCalibrationBlindPix&)(*this)[2];
141
142 qe[ MCalibrationCam::kGREEN ] = 0.160;
143 qe[ MCalibrationCam::kBLUE ] = 0.235;
144 qe[ MCalibrationCam::kUV ] = 0.264;
145 qe[ MCalibrationCam::kCT1 ] = 0.264;
146
147 pix2.SetQE(4,qe);
148
149 qeerr[ MCalibrationCam::kGREEN ] = 0.004;
150 qeerr[ MCalibrationCam::kBLUE ] = 0.005;
151 qeerr[ MCalibrationCam::kUV ] = 0.006;
152 qeerr[ MCalibrationCam::kCT1 ] = 0.006;
153
154 pix2.SetQEErr(4,qeerr);
155
156}
157
158// --------------------------------------------------------------------------
159//
160// One blind pixel with poorly known coll.eff's: email from Eckart with
161// estimates depending on colour, but 5% error (maybe more??)
162//
163void MCalibrationBlindCamThreeNewStyle::CreateCollEffs()
164{
165
166 MCalibrationBlindPix &pix0 = (MCalibrationBlindPix&)(*this)[0];
167
168 Float_t colleff[4];
169
170 colleff[ MCalibrationCam::kGREEN ] = 0.99;
171 colleff[ MCalibrationCam::kBLUE ] = 0.93;
172 colleff[ MCalibrationCam::kUV ] = 0.90;
173 colleff[ MCalibrationCam::kCT1 ] = 0.90;
174
175 pix0.SetCollEff(4,colleff);
176
177 Float_t collefferr[4];
178
179 collefferr[ MCalibrationCam::kGREEN ] = 0.05;
180 collefferr[ MCalibrationCam::kBLUE ] = 0.05;
181 collefferr[ MCalibrationCam::kUV ] = 0.05;
182 collefferr[ MCalibrationCam::kCT1 ] = 0.05;
183
184 pix0.SetCollEffErr(4,collefferr);
185
186 MCalibrationBlindPix &pix1 = (MCalibrationBlindPix&)(*this)[1];
187
188 colleff[ MCalibrationCam::kGREEN ] = 0.99;
189 colleff[ MCalibrationCam::kBLUE ] = 0.93;
190 colleff[ MCalibrationCam::kUV ] = 0.90;
191 colleff[ MCalibrationCam::kCT1 ] = 0.90;
192
193 pix1.SetCollEff(4,colleff);
194
195 collefferr[ MCalibrationCam::kGREEN ] = 0.05;
196 collefferr[ MCalibrationCam::kBLUE ] = 0.05;
197 collefferr[ MCalibrationCam::kUV ] = 0.05;
198 collefferr[ MCalibrationCam::kCT1 ] = 0.05;
199
200 pix1.SetCollEffErr(4,collefferr);
201
202 MCalibrationBlindPix &pix2 = (MCalibrationBlindPix&)(*this)[2];
203
204 colleff[ MCalibrationCam::kGREEN ] = 0.99;
205 colleff[ MCalibrationCam::kBLUE ] = 0.93;
206 colleff[ MCalibrationCam::kUV ] = 0.90;
207 colleff[ MCalibrationCam::kCT1 ] = 0.90;
208
209 pix2.SetCollEff(4,colleff);
210
211 collefferr[ MCalibrationCam::kGREEN ] = 0.05;
212 collefferr[ MCalibrationCam::kBLUE ] = 0.05;
213 collefferr[ MCalibrationCam::kUV ] = 0.05;
214 collefferr[ MCalibrationCam::kCT1 ] = 0.05;
215
216 pix2.SetCollEffErr(4,collefferr);
217
218}
219
220// --------------------------------------------------------------------------
221//
222// One blind pixel has a very well known attenuation 0.01 (datasheet delivered
223// with filter, precision better than 1%
224//
225// The second blind pixel is not yet so well known, the company does not reply.
226// Attenuation: 0.001 (datasheet not delivered with filter, precision guaranteed to 5%)
227//
228void MCalibrationBlindCamThreeNewStyle::CreateAtts()
229{
230
231 MCalibrationBlindPix &pix0 = (MCalibrationBlindPix&)(*this)[0];
232
233 Float_t att[4];
234
235 att[MCalibrationCam::kGREEN ] = 1.97;
236 att[MCalibrationCam::kBLUE ] = 1.96;
237 att[MCalibrationCam::kUV ] = 1.95;
238 att[MCalibrationCam::kCT1 ] = 1.95;
239
240 pix0.SetAtt(4,att);
241
242 Float_t atterr[4];
243
244 atterr[ MCalibrationCam::kGREEN ] = 0.01;
245 atterr[ MCalibrationCam::kBLUE ] = 0.01;
246 atterr[ MCalibrationCam::kUV ] = 0.01;
247 atterr[ MCalibrationCam::kCT1 ] = 0.01;
248
249 pix0.SetAttErr(4,atterr);
250
251 MCalibrationBlindPix &pix1 = (MCalibrationBlindPix&)(*this)[1];
252
253 att[MCalibrationCam::kGREEN ] = 3.00;
254 att[MCalibrationCam::kBLUE ] = 3.00;
255 att[MCalibrationCam::kUV ] = 3.00;
256 att[MCalibrationCam::kCT1 ] = 3.00;
257
258 pix1.SetAtt(4,att);
259
260 atterr[ MCalibrationCam::kGREEN ] = 0.15;
261 atterr[ MCalibrationCam::kBLUE ] = 0.15;
262 atterr[ MCalibrationCam::kUV ] = 0.15;
263 atterr[ MCalibrationCam::kCT1 ] = 0.15;
264
265 pix1.SetAttErr(4,atterr);
266
267 MCalibrationBlindPix &pix2 = (MCalibrationBlindPix&)(*this)[2];
268
269 att[MCalibrationCam::kGREEN ] = 0.;
270 att[MCalibrationCam::kBLUE ] = 0.;
271 att[MCalibrationCam::kUV ] = 0.;
272 att[MCalibrationCam::kCT1 ] = 0.;
273
274 pix2.SetAtt(4,att);
275
276 atterr[ MCalibrationCam::kGREEN ] = 0.;
277 atterr[ MCalibrationCam::kBLUE ] = 0.;
278 atterr[ MCalibrationCam::kUV ] = 0.;
279 atterr[ MCalibrationCam::kCT1 ] = 0.;
280
281 pix2.SetAttErr(4,atterr);
282
283}
284
Note: See TracBrowser for help on using the repository browser.