]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/AliFemtoManager.h
Making the directory structure of AliFemto flat. All files go into one common directory
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoManager.h
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 // AliFemtoManager: main class managing femtoscopic analysis             //
4 // The Manager is the top-level object that coordinates activities       //
5 // and performs event, particle, and pair loops, and checks the          //
6 // various Cuts of the Analyses in its AnalysisCollection                //
7 //                                                                       //
8 ///////////////////////////////////////////////////////////////////////////
9
10 #ifndef ALIFEMTOMANAGER_H
11 #define ALIFEMTOMANAGER_H
12
13
14 #include "AliFemtoTypes.h"
15 #include "AliFemtoAnalysisCollection.h"
16 #include "AliFemtoEventWriterCollection.h"
17 #include "AliFemtoEvent.h"
18 #include "AliFemtoBaseAnalysis.h"
19 #include "AliFemtoEventReader.h"
20 #include "AliFemtoEventWriter.h"
21
22 class AliFemtoManager{
23
24 private:
25   AliFemtoAnalysisCollection* fAnalysisCollection;       // Collection of analyzes
26   AliFemtoEventReader*        fEventReader;              // Event reader
27   AliFemtoEventWriterCollection* fEventWriterCollection; // Event writer collection
28
29 public:
30   AliFemtoManager();
31   AliFemtoManager(const AliFemtoManager& aManager);
32   virtual ~AliFemtoManager();
33
34   AliFemtoManager& operator=(const AliFemtoManager& aManager);
35
36   // Gets and Sets...
37   AliFemtoAnalysisCollection* AnalysisCollection();
38   AliFemtoBaseAnalysis* Analysis(int n);  // Access to Analysis within Collection
39   void AddAnalysis(AliFemtoBaseAnalysis* a);
40
41   AliFemtoEventWriterCollection* EventWriterCollection();
42   AliFemtoEventWriter* EventWriter(int n);// Access to EventWriter within Collection
43   void SetEventWriter(AliFemtoEventWriter* w);  // just for historic reasons
44   void AddEventWriter(AliFemtoEventWriter* w);
45
46   AliFemtoEventReader* EventReader();
47   void SetEventReader(AliFemtoEventReader* r);
48
49
50   int Init();
51   int ProcessEvent();   // a "0" return value means success - otherwise quit
52   void Finish();
53
54   AliFemtoString Report(); //!
55 #ifdef __ROOT__
56   ClassDef(AliFemtoManager, 0)
57 #endif
58 };
59
60 inline AliFemtoAnalysisCollection* AliFemtoManager::AnalysisCollection(){return fAnalysisCollection;}
61 inline void AliFemtoManager::AddAnalysis(AliFemtoBaseAnalysis* anal){fAnalysisCollection->push_back(anal);}
62
63 inline AliFemtoEventWriterCollection* AliFemtoManager::EventWriterCollection(){return fEventWriterCollection;}
64 inline void AliFemtoManager::AddEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
65 inline void AliFemtoManager::SetEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
66
67 inline AliFemtoEventReader* AliFemtoManager::EventReader(){return fEventReader;}
68 inline void AliFemtoManager::SetEventReader(AliFemtoEventReader* reader){fEventReader = reader;}
69
70
71 #endif
72