GammaWare  Head Version for release 0.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CSFilter.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2004 by Olivier Stezowski *
3  * Copyright (C) 2010 by Christian Finck *
4  * stezow(AT)ipnl.in2p3.fr *
5  * *
6  * This program is free software; you can redistribute it and/or modify *
7  * it under the terms of the GNU General Public License as published by *
8  * the Free Software Foundation; either version 2 of the License, or *
9  * (at your option) any later version. *
10  * *
11  * This program is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14  * GNU General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU General Public License *
17  * along with this program; if not, write to the *
18  * Free Software Foundation, Inc., *
19  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
20  ***************************************************************************/
21 
25 #ifndef Gw_CSFilter
26 #define Gw_CSFilter
27 
28 #include "GwLogMessage.h"
29 
30 #ifndef Gw_BasePeak
31 #include "BasePeak.h"
32 #endif
33 
34 #ifndef ROOT_TNamed
35 #include "TNamed.h"
36 #endif
37 
38 #ifndef ROOT_TArrayD
39 #include "TArrayD.h"
40 #endif
41 
42 #ifndef ROOT_TList
43 #include "TList.h"
44 #endif
45 
46 #ifndef ROOT_TString
47 #include "TString.h"
48 #endif
49 
50 
51 namespace Gw {
52 
56 class CSFilter : public TNamed
57 {
58 
59 protected:
60 
61  Short_t fCondition;
62  Short_t fDimension;
63 
64  TList* fPeakList;
65  Bool_t IsBkg;
66 
67  mutable LogMessage fLog;
68 
69 
70 private:
71 
72  static TString fgFolderName;
73 
74 public:
75 
77  static void SetFolderName(const Char_t* name) { fgFolderName = name; }
78 
80  static const Char_t* GetFolderName() { return fgFolderName.Data(); }
81 
82 public:
83  CSFilter();
84  CSFilter(const char* name, const char* title);
85  virtual ~CSFilter();
86 
88  virtual Int_t IsInside(Double_t* /*energies*/, Int_t /*mult*/, Short_t* /*inGate*/, Int_t /*iGate*/ = 0) { return 0; }
89 
91  virtual Bool_t IsCombined() { return false; }
92 
94  virtual Bool_t IsListFilled(Int_t /*idx*/) { return false; }
95 
97  void AddPeak(BasePeak* peak, Option_t* opt = "update");
98 
100  void Reset();
101 
103  void Draw(Option_t* opt);
104 
106  Short_t GetCondition() const { return fCondition; }
107 
109  void SetCondition(Short_t cond) { fCondition = cond; }
110 
112  Short_t GetDimension() const { return fDimension; }
113 
115  void SetDimension(Short_t dim) { fDimension = dim; }
116 
118  Bool_t IsForBkg() { return IsBkg; }
119 
121  Int_t GetNofPeaks() const { return fPeakList->GetEntries(); }
122 
124  BasePeak* GetPeak(Int_t idx) const { return (idx >= 0 && idx < fPeakList->GetEntries()) ? (BasePeak*)fPeakList->At(idx) : 0x0; }
125 
126  ClassDef(CSFilter,1) // Correlated Space Filter
127 };
128 
129 } // end namespace
130 
131 #endif
void AddPeak(BasePeak *peak, Option_t *opt="update")
Add Peak.
Definition: CSFilter.cpp:90
Int_t GetNofPeaks() const
Get number of peaks.
Definition: CSFilter.h:121
Bool_t IsForBkg()
Is for bkg gates.
Definition: CSFilter.h:118
Short_t GetCondition() const
Get condition for gating.
Definition: CSFilter.h:106
virtual Int_t IsInside(Double_t *, Int_t, Short_t *, Int_t=0)
Get the pattern of energies inside the gates.
Definition: CSFilter.h:88
virtual Bool_t IsCombined()
Flag for combined.
Definition: CSFilter.h:91
Short_t fDimension
number of conditions for gating
Definition: CSFilter.h:62
TList * fPeakList
dimension for projection
Definition: CSFilter.h:64
Bool_t IsBkg
list of peaks
Definition: CSFilter.h:65
BasePeak * GetPeak(Int_t idx) const
Get peak.
Definition: CSFilter.h:124
static const Char_t * GetFolderName()
Get Folder name.
Definition: CSFilter.h:80
Base class for a Log message.
Definition: GwLogMessage.h:94
LogMessage fLog
flag to know whether gate are made with bkg
Definition: CSFilter.h:67
static void SetFolderName(const Char_t *name)
name of the filter folder
Definition: CSFilter.h:77
header file for GwLogMessage.cpp
void Draw(Option_t *opt)
Draw peaks.
Definition: CSFilter.cpp:76
CSFilter base class for filter.
Definition: CSFilter.h:56
virtual Bool_t IsListFilled(Int_t)
Check if gate filled.
Definition: CSFilter.h:94
Short_t GetDimension() const
Get dimension for projected space.
Definition: CSFilter.h:112
A BasePeak is defined by a height, intensity and a dimension of the peak.
Definition: BasePeak.h:19
virtual ~CSFilter()
Definition: CSFilter.cpp:63
void SetCondition(Short_t cond)
Set dimension for gating.
Definition: CSFilter.h:109
Short_t fCondition
Definition: CSFilter.h:61
void Reset()
Reset peak.
Definition: CSFilter.cpp:70
void SetDimension(Short_t dim)
Set dimension for projected space.
Definition: CSFilter.h:115
Int_t dim
Definition: ReadMiniTree3.C:34