]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnCut.cxx
fix for Coverity (B.Hippolyte)
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCut.cxx
CommitLineData
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
5eb970a4 16#include "AliRsnCut.h"
06351446 17
aec0ec32 18ClassImp(AliRsnCut)
06351446 19
32992791 20//______________________________________________________________________________
21AliRsnCut::AliRsnCut(const char *name, RSNTARGET target) :
2a1c7696 22 AliRsnTarget(name, target),
23 fMinI(0),
24 fMaxI(0),
25 fMinD(0.),
26 fMaxD(0.),
27 fCutValueI(0),
28 fCutValueD(0.0),
29 fCutResult(kTRUE)
06351446 30{
31//
5eb970a4 32// Default constructor.
06351446 33//
34}
35
32992791 36//______________________________________________________________________________
5eb970a4 37AliRsnCut::AliRsnCut
32992791 38(const char *name, RSNTARGET target, Int_t imin, Int_t imax, Double_t dmin, Double_t dmax) :
2a1c7696 39 AliRsnTarget(name, target),
40 fMinI(imin),
41 fMaxI(imax),
42 fMinD(dmin),
43 fMaxD(dmax),
44 fCutValueI(0),
45 fCutValueD(0.0),
46 fCutResult(kTRUE)
06351446 47{
48//
32992791 49// Constructor with arguments.
50// This is provided to allow a quick setting of all data members.
06351446 51//
52}
53
32992791 54//______________________________________________________________________________
5eb970a4 55AliRsnCut::AliRsnCut
32992791 56(const char *name, RSNTARGET target, Double_t dmin, Double_t dmax, Int_t imin, Int_t imax) :
2a1c7696 57 AliRsnTarget(name, target),
58 fMinI(imin),
59 fMaxI(imax),
60 fMinD(dmin),
61 fMaxD(dmax),
62 fCutValueI(0),
63 fCutValueD(0.0),
64 fCutResult(kTRUE)
06351446 65{
66//
32992791 67// Constructor with arguments.
68// This is provided to allow a quick setting of all data members.
06351446 69//
70}
71
32992791 72//______________________________________________________________________________
73AliRsnCut::AliRsnCut(const AliRsnCut& copy) :
2a1c7696 74 AliRsnTarget(copy),
75 fMinI(copy.fMinI),
76 fMaxI(copy.fMaxI),
77 fMinD(copy.fMinD),
78 fMaxD(copy.fMaxD),
79 fCutValueI(copy.fCutValueI),
80 fCutValueD(copy.fCutValueD),
81 fCutResult(copy.fCutResult)
32992791 82{
83//
84// Copy constructor.
85// Don't duplicate memory occupancy for pointer
86//
87}
88
89//______________________________________________________________________________
413bbf44 90AliRsnCut& AliRsnCut::operator=(const AliRsnCut& copy)
91{
92//
32992791 93// Assignment operator.
94// Don't duplicate memory occupancy for pointer
413bbf44 95//
96
2a1c7696 97 AliRsnTarget::operator=(copy);
413bbf44 98
2a1c7696 99 fMinI = copy.fMinI;
100 fMaxI = copy.fMaxI;
101 fMinD = copy.fMinD;
102 fMaxD = copy.fMaxD;
103 fCutValueI = copy.fCutValueI;
104 fCutValueD = copy.fCutValueD;
eaa44581 105 fCutResult = copy.fCutResult;
2a1c7696 106
107 return (*this);
413bbf44 108}
109
32992791 110//______________________________________________________________________________
111Bool_t AliRsnCut::IsSelected(TObject* /*object*/)
aec0ec32 112{
113//
32992791 114// Virtual cut-checking method.
115// In this implementation, it does nothing, and all classes
116// inheriting from this, should provide a proper implementation
117// which must return kTRUE if the cut is passed, and kFALSE otherwise.
aec0ec32 118//
aec0ec32 119
2a1c7696 120 AliWarning("This virtual function must be implemented properly");
121 return kTRUE;
06351446 122}
123
32992791 124//______________________________________________________________________________
2dab9030 125Bool_t AliRsnCut::OkValueI()
06351446 126{
127//
eaa44581 128// This method is used to compare a value with a reference.
129// In the case of integers, the equality must be exact.
06351446 130//
aec0ec32 131
2a1c7696 132 // eval result
133 fCutResult = (fCutValueI == fMinI);
134
135 // print debug message
eaa44581 136 AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ========================================================");
2a1c7696 137 AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName()));
138 AliDebug(AliLog::kDebug + 2, Form("Checked value: %d", fCutValueI));
139 AliDebug(AliLog::kDebug + 2, Form("Cut value : %d", fMinI));
140 AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED")));
eaa44581 141 AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ====================================================");
2a1c7696 142
143 return fCutResult;
2dab9030 144}
aec0ec32 145
32992791 146//______________________________________________________________________________
2dab9030 147Bool_t AliRsnCut::OkValueD()
148{
149//
eaa44581 150// This method is used to compare a value with a reference.
151// In the case of doubles, the equality consists in being very close.
2dab9030 152//
153
2a1c7696 154 // eval result
eaa44581 155 fCutResult = (TMath::Abs(fCutValueD - fMinD) < fgkVerySmall);
2a1c7696 156
157 // print debug message
eaa44581 158 AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG =======================================================");
2a1c7696 159 AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName()));
160 AliDebug(AliLog::kDebug + 2, Form("Checked value: %f", fCutValueD));
161 AliDebug(AliLog::kDebug + 2, Form("Cut value : %f", fMinD));
162 AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED")));
eaa44581 163 AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ===================================================");
2a1c7696 164
165 return fCutResult;
06351446 166}
167
32992791 168//______________________________________________________________________________
2dab9030 169Bool_t AliRsnCut::OkRangeI()
e0baff8c 170{
5eb970a4 171//
eaa44581 172// This method is used to compare a value with an integer range.
5eb970a4 173//
e0baff8c 174
2a1c7696 175 // eval result
176 fCutResult = ((fCutValueI >= fMinI) && (fCutValueI <= fMaxI));
177
178 // print debug message
eaa44581 179 AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ========================================================");
2a1c7696 180 AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName()));
181 AliDebug(AliLog::kDebug + 2, Form("Checked value: %d", fCutValueI));
182 AliDebug(AliLog::kDebug + 2, Form("Cut range : %d , %d", fMinI, fMaxI));
183 AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED")));
eaa44581 184 AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ====================================================");
2a1c7696 185
186 return fCutResult;
2dab9030 187}
188
32992791 189//______________________________________________________________________________
2dab9030 190Bool_t AliRsnCut::OkRangeD()
191{
192//
eaa44581 193// This method is used to compare a value with a double-float range.
2dab9030 194//
195
2a1c7696 196 // eval result
197 fCutResult = ((fCutValueD >= fMinD) && (fCutValueD <= fMaxD));
198
199 // print debug message
eaa44581 200 AliDebug(AliLog::kDebug + 2, "=== CUT DEBUG ========================================================");
2a1c7696 201 AliDebug(AliLog::kDebug + 2, Form("Cut name : %s", GetName()));
202 AliDebug(AliLog::kDebug + 2, Form("Checked value: %f", fCutValueD));
203 AliDebug(AliLog::kDebug + 2, Form("Cut range : %f , %f", fMinD, fMaxD));
204 AliDebug(AliLog::kDebug + 2, Form("Cut result : %s", (fCutResult ? "PASSED" : "NOT PASSED")));
eaa44581 205 AliDebug(AliLog::kDebug + 2, "=== END CUT DEBUG ====================================================");
e0baff8c 206
2a1c7696 207 return fCutResult;
e0baff8c 208}
209
32992791 210//______________________________________________________________________________
2dab9030 211void AliRsnCut::Print(Option_t*) const
212{
213//
32992791 214// Override TObject::Print() method,
215// and print some useful info about the cut general parameters.
2dab9030 216//
217
2a1c7696 218 AliInfo("=== CUT DETAILS ====================================");
219 AliInfo(Form("Cut name : [%s]", GetName()));
220 AliInfo(Form("Cut target : [%s]", GetTargetTypeName()));
221 AliInfo(Form("Cut edges [D]: [%f - %f]", fMinD, fMaxD));
222 AliInfo(Form("Cut edges [I]: [%d - %d]", fMinI, fMaxI));
223 AliInfo("====================================================");
2dab9030 224}