New classes plus some renamed for a better user friendly interface
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnSimpleFcnInvMass.h
1 //
2 // Class AliRsnSimpleFcnInvMass
3 //
4 // This is the most fundamental AliRsnSimpleFunction,
5 // which computes the invariant mass spectrum of a resonance,
6 // by correlating pairs of tracks from an event (or mixing, for BG)
7 //
8
9 #ifndef AliRsnSimpleFcnInvMass_H
10 #define AliRsnSimpleFcnInvMass_H
11
12 #include "AliRsnDaughter.h"
13 #include "AliRsnSimpleFunction.h"
14
15 class AliRsnSimpleFcnInvMass : public AliRsnSimpleFunction
16 {
17 public:
18
19     AliRsnSimpleFcnInvMass();
20     AliRsnSimpleFcnInvMass
21       (const char* name, AliRsnDaughter::EPIDMethod method, AliRsnPairDef *pd, 
22        AliRsnHistoDef *hd, AliRsnCutMgr *cuts=0, Option_t *option="");
23
24     void               SetUseMCValues(Bool_t value) {fUseMCValues = value;}
25     Bool_t             UseMCValues() {return fUseMCValues;}
26
27     // virtual working routines
28     virtual Bool_t ProcessOne(AliRsnEvent *event);
29     virtual Bool_t ProcessTwo(AliRsnEvent *event1, AliRsnEvent *event2);
30
31 private:
32
33     // dummy required methods
34     AliRsnSimpleFcnInvMass(const AliRsnSimpleFcnInvMass &copy) :
35       AliRsnSimpleFunction(copy),fUseMCValues(kFALSE),fPIDMethod(AliRsnDaughter::kNoPID)
36       { /*nothing */ }
37     AliRsnSimpleFcnInvMass& operator=(const AliRsnSimpleFcnInvMass& /*copy*/)
38       { /* nothing */ return (*this); }
39
40     // utility methods
41     Bool_t Add(AliRsnDaughter *t1, AliRsnDaughter *t2);
42
43     Bool_t                     fUseMCValues;  // flag to switch between MC/rec values
44     AliRsnDaughter::EPIDMethod fPIDMethod;    // flag to PID method used
45
46     ClassDef(AliRsnSimpleFcnInvMass, 1); // dictionary
47 };
48
49 #endif