source: branches/MarsISDCBranchBasedOn17887/mpedestal/MPedestalPix.cc@ 18160

Last change on this file since 18160 was 9332, checked in by tbretz, 16 years ago
*** empty log message ***
File size: 4.7 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 12/2000 <mailto:tbretz@uni-sw.gwdg.de>
19! Author(s): Markus Gaug 04/2004 <mailto:markus@ifae.es>
20! Author(s): Florian Goebel 06/2004 <mailto:fgoebel@mppmu.mpg.de>
21!
22! Copyright: MAGIC Software Development, 2000-2008
23!
24!
25\* ======================================================================== */
26
27/////////////////////////////////////////////////////////////////////////////
28//
29// MPedestalPix
30//
31// This is the storage container to hold informations about the pedestal
32// (offset) value of one Pixel (PMT).
33//
34// Float_t fPedestal:
35// - mean value of pedestal (PMT offset)
36// Float_t fPedestalRms:
37// - root mean square / sigma / standard deviation of pedestal
38// Float_t fPedestalABoffset:
39// - the difference between odd slice pedestal mean and the
40// total pedestal mean (fPedestal). For even slices pedestal
41// use -fPedestalABoffset.
42// UInt_t fNumEvents:
43// - number of times, the Process was executed (to estimate the error
44// of pedestal)
45//
46// version 2:
47// ----------
48// added:
49// fPedestalABoffset difference between pedestal mean of odd slices and
50// the total pedestal mean (fPedestal)
51// fNumEvents number of times, the Process was executed
52// (to estimate the error of pedestal)
53//
54// version 3:
55// ----------
56// - fValid removed
57//
58/////////////////////////////////////////////////////////////////////////////
59#include "MPedestalPix.h"
60
61#include <TMath.h>
62
63#include "MLog.h"
64#include "MLogManip.h"
65
66ClassImp(MPedestalPix);
67
68using namespace std;
69
70// ------------------------------------------------------------------------
71//
72// Default constructor. Calls Clear()
73//
74MPedestalPix::MPedestalPix()
75{
76 Clear();
77}
78
79// ------------------------------------------------------------------------
80//
81// return fNumEvents>0 ? fPedestalRms/TMath::Sqrt((Float_t)fNumEvents) : 0;
82//
83Float_t MPedestalPix::GetPedestalError() const
84{
85 return fNumEvents>0 ? fPedestalRms/TMath::Sqrt((Float_t)fNumEvents) : 0;
86}
87
88// ------------------------------------------------------------------------
89//
90// return fNumEvents>0 ? fPedestalRms/TMath::Sqrt((Float_t)fNumEvents*2) : 0;
91//
92Float_t MPedestalPix::GetPedestalRmsError() const
93{
94 return fNumEvents>0 ? fPedestalRms/TMath::Sqrt((Float_t)fNumEvents*2) : 0;
95}
96
97void MPedestalPix::Print(Option_t *) const
98{
99 *fLog << all << "P=" << fPedestal;
100 if (fPedestalRms>=0)
101 *fLog << " RMS=" << fPedestalRms;
102 if (fPedestalABoffset>=0)
103 *fLog << " AB=" << fPedestalABoffset;
104 if (fNumEvents>0)
105 *fLog << " (N=" << fNumEvents << ")";
106 *fLog << endl;
107}
108
109// ------------------------------------------------------------------------
110//
111// Invalidate values
112//
113void MPedestalPix::Clear(Option_t *o)
114{
115 fPedestal = -1;
116 fPedestalRms = -1;
117 fPedestalABoffset = -1;
118 fNumEvents = 0;
119}
120
121// --------------------------------------------------------------------------
122//
123// Copy 'constructor'
124//
125void MPedestalPix::Copy(TObject &object) const
126{
127
128 MPedestalPix &pix = (MPedestalPix&)object;
129
130 pix.fPedestal = fPedestal ;
131 pix.fPedestalRms = fPedestalRms ;
132 pix.fPedestalABoffset = fPedestalABoffset ;
133 pix.fNumEvents = fNumEvents;
134}
135
136// ------------------------------------------------------------------------
137//
138// Set all values to 0
139//
140void MPedestalPix::InitUseHists()
141{
142 fPedestal = 0;
143 fPedestalRms = 0;
144 fPedestalABoffset = 0;
145 fNumEvents = 0;
146}
147
148// ------------------------------------------------------------------------
149//
150// Set fPedestal=m, fPedestalRms=r, fPedestalABoffset=offs, fNumEvents=n
151//
152void MPedestalPix::Set(Float_t m, Float_t r, Float_t offs, UInt_t n)
153{
154 fPedestal = m;
155 fPedestalRms = r;
156 fPedestalABoffset = offs;
157 fNumEvents = n;
158}
159
160// ------------------------------------------------------------------------
161//
162// Return kTRUE if pedestal rms is valid (>=0)
163//
164Bool_t MPedestalPix::IsValid() const
165{
166 return fPedestalRms>=0;
167}
Note: See TracBrowser for help on using the repository browser.