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

Last change on this file since 4774 was 4411, checked in by paneque, 21 years ago
*** empty log message ***
File size: 4.7 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 fDistLowerLimit;
97 Double_t fLengthLowerLimit;
98 Double_t fWidthLowerLimit;
99
100 // tmp
101
102 Double_t fLeakage1UpperLimit;
103
104 Double_t fLengthOverWidthUpperLimit;
105
106 //endtemp
107
108 Int_t PreProcess(MParList *pList);
109 Int_t Process();
110
111 Double_t GetVal(Int_t i) const;
112
113 Double_t CtsMCut(const Double_t* a, Double_t ls, Double_t ct,
114 Double_t ls2, Double_t dd2) const;
115 /*
116 Bool_t StoreSupercutsAppliedToThisEvent(Double_t lengthup, Double_t lengthlow,
117 Double_t widthup, Double_t widthlow,
118 Double_t distup, Double_t distlow);
119 */
120public:
121 MSupercutsCalcONOFF(const char *hilname="MHillas",
122 const char *hilsrcname="MHillasSrc",
123 const char *name=NULL, const char *title=NULL);
124
125 void SetHadronnessName(const TString name) { fHadronnessName = name; }
126 TString GetHadronnessName() const { return fHadronnessName; }
127
128 void SetSupercutsAppliedName(const TString name) { fSupercutsAppliedName = name; }
129 TString GetSupercutsAppliedName() const { return fSupercutsAppliedName; }
130
131
132 void SetStoreAppliedSupercuts(Bool_t b);
133 Bool_t GetStoreAppliedSupercuts() {return fStoreAppliedSupercuts;}
134
135
136 void SetVariableNotUseTheta(Bool_t b);
137 Bool_t GetVariableNotUseTheta() { return fNotUseTheta;}
138
139 void SetVariableUseStaticCuts(Bool_t b);
140 Bool_t GetVariableUseStaticCuts() { return fUseStaticCuts;}
141
142
143
144 void SetHillasDistLengthWidthUpperLowerLimits(Double_t distup,
145 Double_t lengthup,
146 Double_t widthup,
147 Double_t distlow,
148 Double_t lengthlow,
149 Double_t widthlow);
150
151 void InitMapping(MHMatrix *mat); // use quantity ThetaOrig.fVal at theta
152
153 void StopMapping() { InitMapping(NULL); }
154
155
156
157
158 ClassDef(MSupercutsCalcONOFF, 0) // A class to evaluate the Supercuts
159};
160
161#endif
162
163
164
165
166
167
168
169
170
171
172
173
Note: See TracBrowser for help on using the repository browser.