Added AliRsnCutEventUtils class: interface to /Users/bellini/alisoft/aliroot/last_tru...
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutValue.cxx
CommitLineData
69fbb331 1//
32992791 2// *** Class AliRsnCutValue ***
69fbb331 3//
2a1c7696 4// This cut implementation can be used to cut generically on
32992791 5// any value which can be computed from AliRsnValue class.
6// Since that value is implemented always as a Double_t one,
7// then this cut operates only with the Double_t data members
8// of the AliRsnCut base class.
9// It allows to cusomize the reference AliRsnValue object by
10// means of a getter that returns a pointer to it.
11// This cut can apply to any kind of object, but the type of
12// target must be one of those for which the chosen value type
13// makes sense to be computed
69fbb331 14//
32992791 15// author: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
69fbb331 16//
69fbb331 17
b63357a0 18#include "AliRsnValue.h"
69fbb331 19#include "AliRsnDaughter.h"
20#include "AliRsnMother.h"
21#include "AliRsnEvent.h"
32992791 22#include "AliRsnPairDef.h"
69fbb331 23
24#include "AliRsnCutValue.h"
25
26ClassImp(AliRsnCutValue)
27
28//_________________________________________________________________________________________________
29AliRsnCutValue::AliRsnCutValue() :
2a1c7696 30 AliRsnCut(),
c865cb1d 31 fValue(0x0)
69fbb331 32{
33//
34// Default constructor.
35//
36}
37
38//_________________________________________________________________________________________________
39AliRsnCutValue::AliRsnCutValue
f34f960b 40(const char *name, Double_t min, Double_t max) :
c865cb1d 41 AliRsnCut(name, AliRsnTarget::kTargetTypes, min, max),
c865cb1d 42 fValue(0x0)
69fbb331 43{
44//
45// Main constructor.
07d7c31d 46// Sets the AliRsnValue data member accordingly to arguments passed here.
47// NOTE: if the value needs a support object, it must be passed separately
48// using the GetValueObje() of this class
69fbb331 49//
50}
51
52//_________________________________________________________________________________________________
61f275d1 53AliRsnCutValue::AliRsnCutValue(const AliRsnCutValue &copy) :
2a1c7696 54 AliRsnCut(copy),
07d7c31d 55 fValue(copy.fValue)
69fbb331 56{
57//
32992791 58// Copy constructor.
59// Does not duplicate memory allocation.
69fbb331 60//
61}
62
63//_________________________________________________________________________________________________
61f275d1 64AliRsnCutValue &AliRsnCutValue::operator=(const AliRsnCutValue &copy)
69fbb331 65{
66//
32992791 67// Assignment operator.
68// Does not duplicate memory allocation.
69fbb331 69//
70
61f275d1 71 AliRsnCut::operator=(copy);
72 if (this == &copy)
73 return *this;
74
75 fValue = copy.fValue;
76
77 return (*this);
69fbb331 78}
79
80//_________________________________________________________________________________________________
32992791 81Bool_t AliRsnCutValue::IsSelected(TObject *object)
69fbb331 82{
83//
84// Checks the cut.
32992791 85// Calls the AliRsnValue::Eval() method and then checks its output.
69fbb331 86//
87
c865cb1d 88 // skip cut if value is not initialized
89 if (!fValue) return kTRUE;
61f275d1 90
c865cb1d 91 // match target types
92 SetTargetType(fValue->GetTargetType());
93
2a1c7696 94 // try to compute values
f34f960b 95 Bool_t success = fValue->Eval(object);
2a1c7696 96
97 // check success
98 if (!success) {
99 AliWarning(Form("[%s] Failed to compute value", GetName()));
100 return kFALSE;
101 }
102
103 // check in range
c865cb1d 104 fCutValueD = fValue->GetComputedValue();
2a1c7696 105 return OkRangeD();
69fbb331 106}
aa24e021 107
108//_________________________________________________________________________________________________
109void AliRsnCutValue::Print(const Option_t *) const
110{
111//
112// Print information on this cut
113//
114
2a1c7696 115 AliInfo(Form("Cut name : %s", GetName()));
c865cb1d 116 AliInfo(Form("Cut value : %s", fValue->GetName()));
2a1c7696 117 AliInfo(Form("Cut range : %f - %f", fMinD, fMaxD));
aa24e021 118}