]>
Commit | Line | Data |
---|---|---|
e2bafbbc | 1 | // |
32992791 | 2 | // *** Class AliRsnCut *** |
06351446 | 3 | // |
32992791 | 4 | // Cut base class: all other cuts inherit from it. |
5 | // The 'core' of the class is the method "IsSelected()" which | |
6 | // must be overloaded by any specific cut implementation. | |
e2bafbbc | 7 | // |
32992791 | 8 | // This class provides some default instruments to check values |
9 | // agains a reference or an allowed range, in order to permit | |
10 | // a unique way to execute such kind of checks. | |
06351446 | 11 | // |
32992791 | 12 | // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it) |
13 | // Martin Vala (martin.vala@cern.ch) | |
e2bafbbc | 14 | // |
06351446 | 15 | |
2dab9030 | 16 | #include "AliRsnDaughter.h" |
17 | #include "AliRsnMother.h" | |
18 | #include "AliRsnEvent.h" | |
19 | ||
5eb970a4 | 20 | #include "AliRsnCut.h" |
06351446 | 21 | |
aec0ec32 | 22 | ClassImp(AliRsnCut) |
06351446 | 23 | |
32992791 | 24 | //______________________________________________________________________________ |
25 | AliRsnCut::AliRsnCut(const char *name, RSNTARGET target) : | |
26 | AliRsnTarget(name, target), | |
2dab9030 | 27 | fMinI(0), |
28 | fMaxI(0), | |
32992791 | 29 | fMinD(0.), |
30 | fMaxD(0.), | |
2dab9030 | 31 | fCutValueI(0), |
32 | fCutValueD(0.0), | |
fec82aba | 33 | fCutResult(kTRUE) |
06351446 | 34 | { |
35 | // | |
5eb970a4 | 36 | // Default constructor. |
06351446 | 37 | // |
38 | } | |
39 | ||
32992791 | 40 | //______________________________________________________________________________ |
5eb970a4 | 41 | AliRsnCut::AliRsnCut |
32992791 | 42 | (const char *name, RSNTARGET target, Int_t imin, Int_t imax, Double_t dmin, Double_t dmax) : |
43 | AliRsnTarget(name, target), | |
44 | fMinI(imin), | |
45 | fMaxI(imax), | |
46 | fMinD(dmin), | |
47 | fMaxD(dmax), | |
2dab9030 | 48 | fCutValueI(0), |
49 | fCutValueD(0.0), | |
fec82aba | 50 | fCutResult(kTRUE) |
06351446 | 51 | { |
52 | // | |
32992791 | 53 | // Constructor with arguments. |
54 | // This is provided to allow a quick setting of all data members. | |
06351446 | 55 | // |
56 | } | |
57 | ||
32992791 | 58 | //______________________________________________________________________________ |
5eb970a4 | 59 | AliRsnCut::AliRsnCut |
32992791 | 60 | (const char *name, RSNTARGET target, Double_t dmin, Double_t dmax, Int_t imin, Int_t imax) : |
61 | AliRsnTarget(name, target), | |
62 | fMinI(imin), | |
63 | fMaxI(imax), | |
64 | fMinD(dmin), | |
65 | fMaxD(dmax), | |
2dab9030 | 66 | fCutValueI(0), |
67 | fCutValueD(0.0), | |
fec82aba | 68 | fCutResult(kTRUE) |
06351446 | 69 | { |
70 | // | |
32992791 | 71 | // Constructor with arguments. |
72 | // This is provided to allow a quick setting of all data members. | |
06351446 | 73 | // |
74 | } | |
75 | ||
32992791 | 76 | //______________________________________________________________________________ |
77 | AliRsnCut::AliRsnCut(const AliRsnCut& copy) : | |
78 | AliRsnTarget(copy), | |
79 | fMinI(copy.fMinI), | |
80 | fMaxI(copy.fMaxI), | |
81 | fMinD(copy.fMinD), | |
82 | fMaxD(copy.fMaxD), | |
83 | fCutValueI(copy.fCutValueI), | |
84 | fCutValueD(copy.fCutValueD), | |
fec82aba | 85 | fCutResult(copy.fCutResult) |
32992791 | 86 | { |
87 | // | |
88 | // Copy constructor. | |
89 | // Don't duplicate memory occupancy for pointer | |
90 | // | |
91 | } | |
92 | ||
93 | //______________________________________________________________________________ | |
413bbf44 | 94 | AliRsnCut& AliRsnCut::operator=(const AliRsnCut& copy) |
95 | { | |
96 | // | |
32992791 | 97 | // Assignment operator. |
98 | // Don't duplicate memory occupancy for pointer | |
413bbf44 | 99 | // |
100 | ||
32992791 | 101 | AliRsnTarget::operator=(copy); |
102 | ||
413bbf44 | 103 | fMinI = copy.fMinI; |
104 | fMaxI = copy.fMaxI; | |
105 | fMinD = copy.fMinD; | |
106 | fMaxD = copy.fMaxD; | |
413bbf44 | 107 | fCutValueI = copy.fCutValueI; |
108 | fCutValueD = copy.fCutValueD; | |
413bbf44 | 109 | |
110 | return (*this); | |
111 | } | |
112 | ||
32992791 | 113 | //______________________________________________________________________________ |
114 | Bool_t AliRsnCut::IsSelected(TObject* /*object*/) | |
aec0ec32 | 115 | { |
116 | // | |
32992791 | 117 | // Virtual cut-checking method. |
118 | // In this implementation, it does nothing, and all classes | |
119 | // inheriting from this, should provide a proper implementation | |
120 | // which must return kTRUE if the cut is passed, and kFALSE otherwise. | |
aec0ec32 | 121 | // |
aec0ec32 | 122 | |
32992791 | 123 | AliWarning("This virtual function must be implemented properly"); |
5eb970a4 | 124 | return kTRUE; |
06351446 | 125 | } |
126 | ||
32992791 | 127 | //______________________________________________________________________________ |
2dab9030 | 128 | Bool_t AliRsnCut::OkValueI() |
06351446 | 129 | { |
130 | // | |
5eb970a4 | 131 | // This method is used when the cut consists in comparing the cut value |
2dab9030 | 132 | // with a reference integer value to which it must be equal. |
06351446 | 133 | // |
aec0ec32 | 134 | |
2dab9030 | 135 | // eval result |
136 | fCutResult = (fCutValueI == fMinI); | |
137 | ||
138 | // print debug message | |
2e521c29 | 139 | AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ===================================="); |
140 | AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName())); | |
141 | AliDebug(AliLog::kDebug + 2, Form("Checked value: %d", fCutValueI)); | |
142 | AliDebug(AliLog::kDebug + 2, Form("Cut value : %d", fMinI)); | |
143 | AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED"))); | |
144 | AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ================================"); | |
2dab9030 | 145 | |
146 | return fCutResult; | |
147 | } | |
aec0ec32 | 148 | |
32992791 | 149 | //______________________________________________________________________________ |
2dab9030 | 150 | Bool_t AliRsnCut::OkValueD() |
151 | { | |
152 | // | |
153 | // This method is used when the cut consists in comparing the cut value | |
154 | // with a reference double value to which it must be equal (or at least, almost). | |
155 | // | |
156 | ||
157 | // eval result | |
158 | fCutResult = (TMath::Abs(fCutValueD - fMinD) < 1E-6); | |
159 | ||
160 | // print debug message | |
2e521c29 | 161 | AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ===================================="); |
162 | AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName())); | |
163 | AliDebug(AliLog::kDebug + 2, Form("Checked value: %f", fCutValueD)); | |
164 | AliDebug(AliLog::kDebug + 2, Form("Cut value : %f", fMinD)); | |
165 | AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED"))); | |
166 | AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ================================"); | |
2dab9030 | 167 | |
5eb970a4 | 168 | return fCutResult; |
06351446 | 169 | } |
170 | ||
32992791 | 171 | //______________________________________________________________________________ |
2dab9030 | 172 | Bool_t AliRsnCut::OkRangeI() |
e0baff8c | 173 | { |
5eb970a4 | 174 | // |
175 | // This method is used when the cut consists in an allowed range | |
176 | // where the cut value must be included to pass the cut. | |
177 | // Then, the cut result is kTRUE if the cut value is inside this range. | |
178 | // | |
e0baff8c | 179 | |
2dab9030 | 180 | // eval result |
5faf5a07 | 181 | fCutResult = ((fCutValueI >= fMinI) && (fCutValueI <= fMaxI)); |
2dab9030 | 182 | |
183 | // print debug message | |
2e521c29 | 184 | AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ===================================="); |
2dab9030 | 185 | AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName())); |
186 | AliDebug(AliLog::kDebug + 2, Form("Checked value: %d", fCutValueI)); | |
187 | AliDebug(AliLog::kDebug + 2, Form("Cut range : %d , %d", fMinI, fMaxI)); | |
188 | AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED"))); | |
2e521c29 | 189 | AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ================================"); |
2dab9030 | 190 | |
191 | return fCutResult; | |
192 | } | |
193 | ||
32992791 | 194 | //______________________________________________________________________________ |
2dab9030 | 195 | Bool_t AliRsnCut::OkRangeD() |
196 | { | |
197 | // | |
198 | // This method is used when the cut consists in an allowed range | |
199 | // where the cut value must be included to pass the cut. | |
200 | // Then, the cut result is kTRUE if the cut value is inside this range. | |
201 | // | |
202 | ||
203 | // eval result | |
5faf5a07 | 204 | fCutResult = ((fCutValueD >= fMinD) && (fCutValueD <= fMaxD)); |
2dab9030 | 205 | |
206 | // print debug message | |
2e521c29 | 207 | AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ===================================="); |
2dab9030 | 208 | AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName())); |
209 | AliDebug(AliLog::kDebug + 2, Form("Checked value: %f", fCutValueD)); | |
210 | AliDebug(AliLog::kDebug + 2, Form("Cut range : %f , %f", fMinD, fMaxD)); | |
211 | AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED"))); | |
2e521c29 | 212 | AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ================================"); |
e0baff8c | 213 | |
5eb970a4 | 214 | return fCutResult; |
e0baff8c | 215 | } |
216 | ||
32992791 | 217 | //______________________________________________________________________________ |
2dab9030 | 218 | void AliRsnCut::Print(Option_t*) const |
219 | { | |
220 | // | |
32992791 | 221 | // Override TObject::Print() method, |
222 | // and print some useful info about the cut general parameters. | |
2dab9030 | 223 | // |
224 | ||
2dab9030 | 225 | AliInfo("=== CUT DETAILS ===================================="); |
226 | AliInfo(Form("Cut name : [%s]", GetName())); | |
32992791 | 227 | AliInfo(Form("Cut target : [%s]", GetTargetTypeName())); |
2dab9030 | 228 | AliInfo(Form("Cut edges [D]: [%f - %f]", fMinD, fMaxD)); |
229 | AliInfo(Form("Cut edges [I]: [%d - %d]", fMinI, fMaxI)); | |
230 | AliInfo("===================================================="); | |
231 | } |