]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoManager.h
3693e9a2df6070ed7c892f5a52d0e2790f26a71c
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFemtoManager.h
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu
6  ***************************************************************************
7  *
8  * Description: part of STAR HBT Framework: AliFemtoMaker package
9  *   The Manager is the top-level object that coordinates activities
10  *   and performs event, particle, and pair loops, and checks the
11  *   various Cuts of the Analyses in its AnalysisCollection
12  *
13  ***************************************************************************
14  *
15  * $Log$
16  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
17  * First version on CVS
18  *
19  * Revision 1.10  2000/03/17 17:23:05  laue
20  * Roberts new three particle correlations implemented.
21  *
22  * Revision 1.9  2000/02/18 21:32:24  laue
23  * franksTrackCut changed. If mCharge is set to '0' there will be no cut
24  * on charge. This is important for front-loaded cuts.
25  *
26  * copy constructor implemented for AliFemtoEvent, AliFemtoTrack and AliFemtoV0.
27  *
28  * franks1HistoD.cxx franks1HistoD.h franks2HistoD.cxx franks2HistoD.h
29  * removed. We can now (CC5 on Solaris) use the versions (no D)
30  *
31  * Revision 1.8  2000/01/25 17:35:17  laue
32  * I. In order to run the stand alone version of the AliFemtoMaker the following
33  * changes have been done:
34  * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
35  * b) unnecessary includes of StMaker.h have been removed
36  * c) the subdirectory AliFemtoMaker/doc/Make has been created including everything
37  * needed for the stand alone version
38  *
39  * II. To reduce the amount of compiler warning
40  * a) some variables have been type casted
41  * b) some destructors have been declared as virtual
42  *
43  * Revision 1.7  1999/10/04 15:38:58  lisa
44  * include Franks new accessor methods AliFemtoAnalysis::CorrFctn and AliFemtoManager::Analysis as well as McEvent example macro
45  *
46  * Revision 1.6  1999/09/24 01:23:12  fisyak
47  * Reduced Include Path
48  *
49  * Revision 1.5  1999/09/08 04:15:52  lisa
50  * persistent microDST implementation tweaked to please fickle solaris details
51  *
52  * Revision 1.4  1999/09/05 02:58:12  lisa
53  * add ASCII microDST reader/writer AND franksParticle cuts
54  *
55  * Revision 1.3  1999/09/04 04:41:02  lisa
56  * AliFemtoEvent IO   --and--  AliFemtoEventWriter (microDST) method added to framework
57  *
58  * Revision 1.2  1999/07/06 22:33:22  lisa
59  * Adjusted all to work in pro and new - dev itself is broken
60  *
61  * Revision 1.1.1.1  1999/06/29 16:02:57  lisa
62  * Installation of AliFemtoMaker
63  *
64  **************************************************************************/
65
66 #ifndef AliFemtoManager_hh
67 #define AliFemtoManager_hh
68
69
70 #include "Infrastructure/AliFemtoTypes.h"
71 #include "Infrastructure/AliFemtoAnalysisCollection.h"
72 #include "Infrastructure/AliFemtoEventWriterCollection.h"
73 #include "Infrastructure/AliFemtoEvent.h"
74 #include "Base/AliFemtoBaseAnalysis.h"
75 #include "Base/AliFemtoEventReader.h"
76 #include "Base/AliFemtoEventWriter.h"
77
78 class AliFemtoManager{
79
80 private:
81   AliFemtoAnalysisCollection* fAnalysisCollection;
82   AliFemtoEventReader*        fEventReader;
83   AliFemtoEventWriterCollection* fEventWriterCollection;
84
85 public:
86   AliFemtoManager();
87   virtual ~AliFemtoManager();
88
89   // Gets and Sets...
90   AliFemtoAnalysisCollection* AnalysisCollection();
91   AliFemtoBaseAnalysis* Analysis(int n);  // Access to Analysis within Collection
92   void AddAnalysis(AliFemtoBaseAnalysis*);
93
94   AliFemtoEventWriterCollection* EventWriterCollection();
95   AliFemtoEventWriter* EventWriter(int n);// Access to EventWriter within Collection
96   void SetEventWriter(AliFemtoEventWriter*);  // just for historic reasons
97   void AddEventWriter(AliFemtoEventWriter*);
98
99   AliFemtoEventReader* EventReader();
100   void SetEventReader(AliFemtoEventReader*);
101
102
103   int Init();
104   int ProcessEvent();   // a "0" return value means success - otherwise quit
105   void Finish();
106
107   AliFemtoString Report(); //!
108 #ifdef __ROOT__
109   ClassDef(AliFemtoManager, 0)
110 #endif
111 };
112
113 inline AliFemtoAnalysisCollection* AliFemtoManager::AnalysisCollection(){return fAnalysisCollection;}
114 inline void AliFemtoManager::AddAnalysis(AliFemtoBaseAnalysis* anal){fAnalysisCollection->push_back(anal);}
115
116 inline AliFemtoEventWriterCollection* AliFemtoManager::EventWriterCollection(){return fEventWriterCollection;}
117 inline void AliFemtoManager::AddEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
118 inline void AliFemtoManager::SetEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
119
120 inline AliFemtoEventReader* AliFemtoManager::EventReader(){return fEventReader;}
121 inline void AliFemtoManager::SetEventReader(AliFemtoEventReader* reader){fEventReader = reader;}
122
123
124 #endif
125