]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnCutManager.h
Implemented a static AliRsnEvent pointer to point to the current event being analyzed...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutManager.h
1 //
2 // *** Class AliRsnCutManager ***
3 //
4 // This class is used both in normal analysis and efficiency computation
5 // as a collection of all cuts which could be needed in a single job.
6 // It allocates an AliRsnCutSet for each possible target:
7 //  - one with all cuts common to all tracks
8 //  - one with all cuts for first candidate daughter (definition #1 in pairDef)
9 //  - one with all cuts for second candidate daughter (definition #2 in pairDef)
10 //  - one with all cuts on the pair
11 // -----
12 // This object is used to define a step in efficiency CORRFW container
13 // and also is contained in all AliRsnPair objects to decide if two candidates
14 // can be accepted or not.
15 //
16 // authors: Martin Vala (martin.vala@cern.ch)
17 //          Alberto Pulvirenti (alberto.pulvirenti@cern.ch)
18 //
19
20 #ifndef ALIRSNCUTMANAGER_H
21 #define ALIRSNCUTMANAGER_H
22
23 #include <TNamed.h>
24
25 #include "AliRsnDaughter.h"
26 #include "AliRsnMother.h"
27 #include "AliRsnCutSet.h"
28
29 class AliRsnCut;
30
31 class AliRsnCutManager : public TNamed
32 {
33   public:
34
35     AliRsnCutManager();
36     AliRsnCutManager(const char *name, const char* title = "");
37     AliRsnCutManager(const AliRsnCutManager &cut);
38     AliRsnCutManager& operator=(const AliRsnCutManager& cut);
39     ~AliRsnCutManager();
40     
41     AliRsnCutSet*  GetCommonDaughterCuts() {return &fDaughterCutsCommon;}
42     AliRsnCutSet*  GetDaughter1Cuts()      {return &fDaughterCuts1;}
43     AliRsnCutSet*  GetDaughter2Cuts()      {return &fDaughterCuts2;}
44     AliRsnCutSet*  GetMotherCuts()         {return &fMotherCuts;}
45     
46     Bool_t         PassCommonDaughterCuts(AliRsnDaughter *daughter) {return fDaughterCutsCommon.IsSelected(daughter);}
47     Bool_t         PassDaughter1Cuts(AliRsnDaughter *daughter)      {return fDaughterCuts2.IsSelected(daughter);}
48     Bool_t         PassDaughter2Cuts(AliRsnDaughter *daughter)      {return fDaughterCuts2.IsSelected(daughter);}
49     Bool_t         PassMotherCuts(AliRsnMother *mother)             {return fMotherCuts.IsSelected(mother);}
50     Bool_t         PassSpecificDaughterCuts(Bool_t first, AliRsnDaughter *daughter)
51                      {if (first) return PassDaughter1Cuts(daughter); else return PassDaughter2Cuts(daughter);}
52
53   private:
54
55     AliRsnCutSet  fDaughterCutsCommon; // single-track cuts common to both daughters
56     AliRsnCutSet  fDaughterCuts1;      // single-track cuts for only first daughter
57     AliRsnCutSet  fDaughterCuts2;      // single-track cuts for only second daughter
58     AliRsnCutSet  fMotherCuts;         // mother cuts (on relations between daughters)
59
60     ClassDef(AliRsnCutManager, 2)      // dictionary
61 };
62
63 #endif