]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoManager.h
Migration of PWG2/FEMTOSCOPY to PWGCF/FEMTOSCOPY
[u/mrichter/AliRoot.git] / PWGCF / 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 "AliFemtoAnalysis.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   AliFemtoAnalysis* Analysis(int n);  // Access to Analysis within Collection
39   void AddAnalysis(AliFemtoAnalysis* 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   int Init();
50   int ProcessEvent();   // a "0" return value means success - otherwise quit
51   void Finish();
52
53   AliFemtoString Report(); //!
54 #ifdef __ROOT__
55   ClassDef(AliFemtoManager, 0)
56 #endif
57 };
58
59 inline AliFemtoAnalysisCollection* AliFemtoManager::AnalysisCollection(){return fAnalysisCollection;}
60 inline void AliFemtoManager::AddAnalysis(AliFemtoAnalysis* anal){fAnalysisCollection->push_back(anal);}
61
62 inline AliFemtoEventWriterCollection* AliFemtoManager::EventWriterCollection(){return fEventWriterCollection;}
63 inline void AliFemtoManager::AddEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
64 inline void AliFemtoManager::SetEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
65
66 inline AliFemtoEventReader* AliFemtoManager::EventReader(){return fEventReader;}
67 inline void AliFemtoManager::SetEventReader(AliFemtoEventReader* reader){fEventReader = reader;}
68
69
70 #endif
71