AliRsnCutManager:
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisManager.h
1 //
2 // Class AliRsnAnalysisManager
3 //
4 // This is the uppermost level of analysis objects collection.
5 // It contains a list of pair managers, which all will process
6 // a pool of events passed to this object, and fill their histograms.
7 //
8 // The utility of this object is to define a unique implementation
9 // of the whole processing, which can then be included in the different
10 // designs of AnalysisTask provided for SE and ME analysis.
11 //
12 // The base architecture is still AliRsnVManager, but in this case
13 // all the objects in the list will be AliRsnPairManager's.
14 //
15 // author     : M. Vala       [martin.vala@cern.ch]
16 // revised by : A. Pulvirenti [alberto.pulvirenti@ct.infn.it]
17 //
18
19 #ifndef ALIRSNANALYSISMANAGER_H
20 #define ALIRSNANALYSISMANAGER_H
21
22 #include <TObjArray.h>
23
24 #include "AliRsnCutSet.h"
25
26 class AliRsnEvent;
27 class AliRsnPair;
28
29 class AliRsnAnalysisManager : public TNamed
30 {
31   public:
32
33     AliRsnAnalysisManager(const char*name = "RSN");
34     AliRsnAnalysisManager(const AliRsnAnalysisManager& copy);
35     AliRsnAnalysisManager& operator=(const AliRsnAnalysisManager& copy);
36     virtual ~AliRsnAnalysisManager() { }
37
38     virtual void   Add(AliRsnPair *pair);
39     virtual void   PrintArray() const;
40     virtual void   Print(Option_t *option = "") const;
41
42     void           InitAllPairs(TList*list);
43     void           ProcessAllPairs();
44     void           ProcessAllPairsMC();
45     AliRsnCutSet*  GetGlobalTrackCuts() {return &fGlobalTrackCuts;}
46
47   private:
48   
49     TList        *fList;             // container for output histograms (external object)
50     TObjArray     fPairs;            // collection of pair objects for the different outputs
51     AliRsnCutSet  fGlobalTrackCuts;  // a set of cuts which are applied to all tracks for all analysis
52
53     ClassDef(AliRsnAnalysisManager, 1)
54 };
55
56 #endif