source: trunk/MagicSoft/Mars/manalysis/MCerPhotPix.cc@ 6447

Last change on this file since 6447 was 6078, checked in by tbretz, 20 years ago
*** empty log message ***
File size: 3.9 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@astro.uni-wuerzburg.de>
19! Author(s): Harald Kornmayer 1/2001
20!
21! Copyright: MAGIC Software Development, 2000-2004
22!
23!
24\* ======================================================================== */
25
26
27/////////////////////////////////////////////////////////////////////////////
28//
29// MCerPhotPix
30//
31// Storage container for the signal in a pixel in number of photons.
32//
33// NOTE: This container is NOT ment for I/O. Write it to a file on your
34// own risk!
35//
36// fIsSaturated: boolean variable set to kTRUE whenever one or more of
37// the low gain FADC slices of the pixel is in saturation.
38//
39// Version 2:
40// ----------
41// - added fIsSaturated
42//
43// Version 4:
44// ----------
45// - added fIsHGSaturated
46//
47// Version 5:
48// ----------
49// - added fIdxIsland
50//
51// Version 6:
52// ----------
53// - put the '!' into the comment line for
54// Bool_t fIsCore; //! the pixel is a Core pixel -> kTRUE
55// Short_t fRing; //! NT: number of analyzed rings around the core pixels, fRing>0 means: used, fRing= 0 means: unused, fRing= -1 means: unmapped (no possible to use in the calculation of the image parameters)
56// Short_t fIdxIsland; //! the pixel is a Core pixel -> kTRUE
57// Bool_t fIsHGSaturated; //! the pixel's high gain is saturated
58// This is a queick hack to gain storage space - the structure of
59// the container for calibrated data will change soon.
60//
61////////////////////////////////////////////////////////////////////////////
62#include "MCerPhotPix.h"
63
64#include "MLog.h"
65
66ClassImp(MCerPhotPix);
67
68using namespace std;
69
70// --------------------------------------------------------------------------
71//
72// Default constructor. The pixel is assumed as used and not a core pixel.
73// NT 29/04/2003: A pixel is considered used when fRing > 0.
74//
75MCerPhotPix::MCerPhotPix(Int_t pix, Float_t phot, Float_t errphot) :
76 fPixId(pix), fIsCore(kFALSE), fRing(1), fIdxIsland(-1),
77 fPhot(phot), fErrPhot(errphot),
78 fIsSaturated(kFALSE), fIsHGSaturated(kFALSE)
79{
80 MMath::ReducePrecision(fPhot);
81 MMath::ReducePrecision(fErrPhot);
82}
83
84// --------------------------------------------------------------------------
85//
86// From TObject:
87// Compare abstract method. Must be overridden if a class wants to be able
88// to compare itself with other objects. Must return -1 if this is smaller
89// than obj, 0 if objects are equal and 1 if this is larger than obj.
90//
91// Here:
92// Index numbers are compared --> This allows sorting by index
93//
94Int_t MCerPhotPix::Compare(const TObject *o) const
95{
96 const Int_t diff = fPixId - static_cast<const MCerPhotPix*>(o)->fPixId;
97 return diff==0 ? 0 : TMath::Sign(1, diff);
98}
99
100// --------------------------------------------------------------------------
101//
102// Print information to gLog.
103//
104void MCerPhotPix::Print(Option_t *) const
105{
106 gLog << GetDescriptor() <<" Pixel: "<< fPixId;
107 gLog << (fRing>0?" Used ":" Unused ");
108 gLog << (fIsCore?" Core ":" ");
109 gLog << (fIsSaturated?" ":"not") << " saturated ";
110 gLog << "High gain " << (fIsHGSaturated?" ":"not") << " saturated ";
111 gLog << "Nphot= " << fPhot << " Error(Nphot)=" << fErrPhot << endl;
112}
Note: See TracBrowser for help on using the repository browser.