]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnCutStd.h
Modifications in analysis tasks for train
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutStd.h
1 //
2 // Class AliRsnCutRange
3 //
4 // General implementation of cuts which check a value inside a range.
5 // This range can be defined by two integers or two doubles.
6 // A user-friendly enumeration allows to define what is checked.
7 //
8 // authors: Martin Vala (martin.vala@cern.ch)
9 //          Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
10 //
11
12 #ifndef ALIRSNCUTSTD_H
13 #define ALIRSNCUTSTD_H
14
15 #include "AliRsnCut.h"
16
17 class AliRsnCutStd : public AliRsnCut
18 {
19   public:
20
21     // available cut types
22     // some ones work both for pairs and single tracks
23     enum EType {
24       kP = 0,
25       kPt,
26       kEta,
27       kThetaDeg,
28       kDr,
29       kDz,
30       kTPCsignal,
31       kMult,
32       kMultDiff,
33       kMultDiffRel,
34       kVzDiff,
35       // value cuts
36       kStatus,
37       kKink,
38       kKinkMother,
39       kAssignedPID,
40       kTruePID,
41       kRequiredPID,
42       kRealisticPID,
43       // cut without reference values
44       kCharge,
45       kSameLabel,
46       kTruePair,
47       kTruePIDMatch,
48       kRealisticPIDMatch,
49       // last
50       kLastType
51     };
52
53     AliRsnCutStd();
54     AliRsnCutStd(const char *name, EType type, Int_t val1, Int_t val2 = 0, Bool_t useMC = kFALSE);
55     AliRsnCutStd(const char *name, EType type, ULong_t val1, ULong_t val2 = 0, Bool_t useMC = kFALSE);
56     AliRsnCutStd(const char *name, EType type, Double_t val1, Double_t val2 = 0.0, Bool_t useMC = kFALSE);
57     virtual ~AliRsnCutStd() { }
58
59     virtual Bool_t IsSelected(AliRsnCut::ETarget tgt, AliRsnDaughter*const daughter);
60     virtual Bool_t IsSelected(AliRsnCut::ETarget tgt, AliRsnPairParticle*const pair);
61     virtual Bool_t IsSelected(AliRsnCut::ETarget tgt, AliRsnEvent*const event);
62     virtual Bool_t IsSelected(AliRsnCut::ETarget tgt, AliRsnEvent*const ev1, AliRsnEvent*const ev2);
63
64   protected:
65
66     EType     fType;       // cut type
67     Bool_t    fUseMC;      // use or not MC values (when applicable)
68
69     ClassDef(AliRsnCutStd, 1)
70 };
71
72 #endif