New classes plus some renamed for a better user friendly interface
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnSimpleAnalyzer.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * See cxx source for full Copyright notice                               *
4  **************************************************************************/
5
6 //=========================================================================
7 // Class AliRsnSimpleAnalyzer
8 //
9 // Implementation of the event processing which returns histograms of
10 // invariant mass for resonances and backgrounds evaluation.
11 //
12 // author: A. Pulvirenti             (email: alberto.pulvirenti@ct.infn.it)
13 //=========================================================================
14
15 #ifndef AliRsnSimpleAnalyzer_H
16 #define AliRsnSimpleAnalyzer_H
17
18 #include <TNamed.h>
19
20 class TObjArray;
21 class AliRsnSimpleFunction;
22 class AliRsnEventBuffer;
23
24 class AliRsnSimpleAnalyzer : public TNamed
25 {
26 public:
27
28     AliRsnSimpleAnalyzer(Int_t bufferSize = 1000);
29     virtual ~AliRsnSimpleAnalyzer() {Clear();}
30
31     // setters
32     void    SetBufferSize(Int_t value) {fBufferSize = value;}
33     void    SetMixMultiplicityCut(Int_t cut) {fMixMultCut = cut;}
34     void    SetMixVzCut(Double_t cut) {fMixVzCut = cut;}
35     void    SetNMix(Int_t value) {fNMix = value;}
36
37     // getters
38     TObjArray*   GetSingle() {return fSingle;}
39     TObjArray*   GetMix()    {return fMix;}
40
41     // working routines
42     void         Init();
43     virtual void Clear(Option_t *option = "C");
44     void         Add(AliRsnSimpleFunction *pair);
45     void         Process(AliRsnEvent *event);
46
47 private:
48
49     AliRsnSimpleAnalyzer(const AliRsnSimpleAnalyzer &copy) :
50       TNamed(copy),fBufferSize(1000),
51       fMixMultCut(10),fMixVzCut(0.5),fNMix(10),
52       fSingle(0x0),fMix(0x0),fBuffer(0x0) { }
53     AliRsnSimpleAnalyzer& operator=(const AliRsnSimpleAnalyzer & /*copy*/) { return (*this); }
54     void ProcessEvents(TObjArray *pairs, AliRsnEvent *event1, AliRsnEvent *event2 = 0x0);
55
56     Int_t              fBufferSize;  // size of buffer
57     Int_t              fMixMultCut;  // multiplicity cut for event mixing
58     Double_t           fMixVzCut;    // difference in VZ cut for event mixing
59     Int_t              fNMix;        // number of events for mixing
60
61     TObjArray         *fSingle;      // collection of particle pairs to be read for 1-event analysis
62     TObjArray         *fMix;         // collection of particle pairs to be read for event-mixing
63     AliRsnEventBuffer *fBuffer;      // buffer for event mixing
64
65     // Rsn analyzer implementation
66     ClassDef(AliRsnSimpleAnalyzer,1)
67 };
68
69 #endif