source: trunk/MagicSoft/Mars/mtemp/mmpi/SupercutsONOFFClasses/MSupercutsCalcONOFF.h@ 6723

Last change on this file since 6723 was 6232, checked in by mazin, 20 years ago
*** empty log message ***
File size: 4.9 KB
Line 
1#ifndef MARS_MSupercutsCalcONOFF
2#define MARS_MSupercutsCalcONOFF
3
4#ifndef MARS_MTask
5#include "MTask.h"
6#endif
7
8#ifndef ROOT_TArrayD
9#include <TArrayD.h>
10#endif
11
12class MParList;
13class MHillas;
14class MHillasSrc;
15class MHillasExt;
16class MNewImagePar;
17class MPointingPos;
18class MCerPhotEvt;
19class MGeomCam;
20class MHadronness;
21class MHMatrix;
22class MSupercuts;
23class MTSupercutsApplied;
24
25class MSupercutsCalcONOFF : public MTask
26{
27private:
28 MHillas *fHil;
29 MHillasSrc *fHilSrc;
30 MHillasExt *fHilExt;
31 MNewImagePar *fNewPar;
32 MPointingPos *fPointPos;
33 MHadronness *fHadronness; //! output container for hadronness
34 MTSupercutsApplied *fSupercutsApplied; // output container for applied supercuts
35 MSupercuts *fSuper; // container for supercut parameters
36
37 TString fHadronnessName; // name of container to store hadronness
38 TString fSupercutsAppliedName; // name of the container to store applied supercuts
39 TString fHilName;
40 TString fHilSrcName;
41 TString fHilExtName;
42 TString fNewParName;
43 TString fSuperName; // name of container for supercut parameters
44
45 Double_t fMm2Deg; //!
46
47 Int_t fMap[11]; //!
48 MHMatrix *fMatrix; //!
49
50 Bool_t fStoreAppliedSupercuts; // Boolean variable used to decided wether to store (kTRUE) or not (kFALSE) the supercuts applied
51
52
53 // Boolean variable used to control decide wether to use theta information
54 // in the computation of teh dynamical cuts.
55 Bool_t fNotUseTheta;
56
57 // Boolean variable used to decide wether to use dynamical cuts or static cuts
58 // kTRUE means that static cuts are used
59 Bool_t fUseStaticCuts;
60
61
62 // Boolean variable that allows to use/not use the dist info in the cuts parameterization
63 // kTRUE for use it.
64 // For the time being this variable is set in the constructor
65
66 Bool_t fUseDist;
67
68
69
70 // OFFSETS FOR THE DYNAMICAL CUTS
71 // Values of Size (photons), Dist (degrees) and Theta (degrees)
72 // for which the value of the dynamical cut is equal to the
73 // non dependent parameter; i.e. to the static cut.
74 // By adjusting these offsets the user can set the value in size,
75 // dist and theta for which the dynamical cuts will be given by
76 // the term that DOES not depend on size, dist and theta.
77
78 // For the time being, these quantities are set in the constructor.
79 // In future, if they show to be useful, I will make them available
80 // as external variables.
81
82 Double_t fSizeOffset; // photons
83 Double_t fDistOffset; // degrees NOT USED FOR THE TIME BEING
84 Double_t fThetaOffset; // degrees NOT USED FOR THE TIME BEING
85
86
87
88
89 // Variables defining upper/lower limits for some of the hillas params
90 // Variables in degrees !!
91
92 Double_t fDistUpperLimit;
93 Double_t fLengthUpperLimit;
94 Double_t fWidthUpperLimit;
95
96 Double_t fLog10ConcUpperLimit;
97
98 Double_t fDistLowerLimit;
99 Double_t fLengthLowerLimit;
100 Double_t fWidthLowerLimit;
101
102 // tmp
103
104 Double_t fLeakage1UpperLimit;
105
106 Double_t fLengthOverWidthUpperLimit;
107
108 //endtemp
109
110 Int_t PreProcess(MParList *pList);
111 Int_t Process();
112
113 Double_t GetVal(Int_t i) const;
114
115 Double_t CtsMCut(const Double_t* a, Double_t ls, Double_t ct,
116 Double_t ls2, Double_t dd2) const;
117 /*
118 Bool_t StoreSupercutsAppliedToThisEvent(Double_t lengthup, Double_t lengthlow,
119 Double_t widthup, Double_t widthlow,
120 Double_t distup, Double_t distlow);
121 */
122public:
123 MSupercutsCalcONOFF(const char *hilname="MHillas",
124 const char *hilsrcname="MHillasSrc",
125 const char *name=NULL, const char *title=NULL);
126
127 void SetHadronnessName(const TString name) { fHadronnessName = name; }
128 TString GetHadronnessName() const { return fHadronnessName; }
129
130 void SetSupercutsAppliedName(const TString name) { fSupercutsAppliedName = name; }
131 TString GetSupercutsAppliedName() const { return fSupercutsAppliedName; }
132
133
134 void SetStoreAppliedSupercuts(Bool_t b);
135 Bool_t GetStoreAppliedSupercuts() {return fStoreAppliedSupercuts;}
136
137
138 void SetVariableNotUseTheta(Bool_t b);
139 Bool_t GetVariableNotUseTheta() { return fNotUseTheta;}
140
141 void SetVariableUseStaticCuts(Bool_t b);
142 Bool_t GetVariableUseStaticCuts() { return fUseStaticCuts;}
143
144
145
146 void SetHillasDistLengthWidthUpperLowerLimits(Double_t distup,
147 Double_t lengthup,
148 Double_t widthup,
149 Double_t distlow,
150 Double_t lengthlow,
151 Double_t widthlow);
152
153 // Function implementing a filter for muon induced images
154// (Keichi cuts October 18th 2004)
155
156 Bool_t MuonFilter (Double_t Size,
157 Double_t Length);
158
159
160
161 void InitMapping(MHMatrix *mat); // use quantity ThetaOrig.fVal at theta
162
163 void StopMapping() { InitMapping(NULL); }
164
165
166
167
168 ClassDef(MSupercutsCalcONOFF, 0) // A class to evaluate the Supercuts
169};
170
171#endif
172
173
174
175
176
177
178
179
180
181
182
183
Note: See TracBrowser for help on using the repository browser.