ROOT logo
///////////////////////////////////////////////////////////////////////////
//                                                                       //
// AliFemtoManager: main class managing femtoscopic analysis             //
// The Manager is the top-level object that coordinates activities       //
// and performs event, particle, and pair loops, and checks the          //
// various Cuts of the Analyses in its AnalysisCollection                //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOMANAGER_H
#define ALIFEMTOMANAGER_H


#include "AliFemtoTypes.h"
#include "AliFemtoAnalysisCollection.h"
#include "AliFemtoEventWriterCollection.h"
#include "AliFemtoEvent.h"
#include "AliFemtoAnalysis.h"
#include "AliFemtoEventReader.h"
#include "AliFemtoEventWriter.h"

class AliFemtoManager{

private:
  AliFemtoAnalysisCollection* fAnalysisCollection;       // Collection of analyzes
  AliFemtoEventReader*        fEventReader;              // Event reader
  AliFemtoEventWriterCollection* fEventWriterCollection; // Event writer collection

public:
  AliFemtoManager();
  AliFemtoManager(const AliFemtoManager& aManager);
  virtual ~AliFemtoManager();

  AliFemtoManager& operator=(const AliFemtoManager& aManager);

  // Gets and Sets...
  AliFemtoAnalysisCollection* AnalysisCollection();
  AliFemtoAnalysis* Analysis(int n);  // Access to Analysis within Collection
  void AddAnalysis(AliFemtoAnalysis* a);

  AliFemtoEventWriterCollection* EventWriterCollection();
  AliFemtoEventWriter* EventWriter(int n);// Access to EventWriter within Collection
  void SetEventWriter(AliFemtoEventWriter* w);  // just for historic reasons
  void AddEventWriter(AliFemtoEventWriter* w);

  AliFemtoEventReader* EventReader();
  void SetEventReader(AliFemtoEventReader* r);

  int Init();
  int ProcessEvent();   // a "0" return value means success - otherwise quit
  void Finish();

  AliFemtoString Report(); //!
#ifdef __ROOT__
  ClassDef(AliFemtoManager, 0)
#endif
};

inline AliFemtoAnalysisCollection* AliFemtoManager::AnalysisCollection(){return fAnalysisCollection;}
inline void AliFemtoManager::AddAnalysis(AliFemtoAnalysis* anal){fAnalysisCollection->push_back(anal);}

inline AliFemtoEventWriterCollection* AliFemtoManager::EventWriterCollection(){return fEventWriterCollection;}
inline void AliFemtoManager::AddEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}
inline void AliFemtoManager::SetEventWriter(AliFemtoEventWriter* writer){fEventWriterCollection->push_back(writer);}

inline AliFemtoEventReader* AliFemtoManager::EventReader(){return fEventReader;}
inline void AliFemtoManager::SetEventReader(AliFemtoEventReader* reader){fEventReader = reader;}


#endif

 AliFemtoManager.h:1
 AliFemtoManager.h:2
 AliFemtoManager.h:3
 AliFemtoManager.h:4
 AliFemtoManager.h:5
 AliFemtoManager.h:6
 AliFemtoManager.h:7
 AliFemtoManager.h:8
 AliFemtoManager.h:9
 AliFemtoManager.h:10
 AliFemtoManager.h:11
 AliFemtoManager.h:12
 AliFemtoManager.h:13
 AliFemtoManager.h:14
 AliFemtoManager.h:15
 AliFemtoManager.h:16
 AliFemtoManager.h:17
 AliFemtoManager.h:18
 AliFemtoManager.h:19
 AliFemtoManager.h:20
 AliFemtoManager.h:21
 AliFemtoManager.h:22
 AliFemtoManager.h:23
 AliFemtoManager.h:24
 AliFemtoManager.h:25
 AliFemtoManager.h:26
 AliFemtoManager.h:27
 AliFemtoManager.h:28
 AliFemtoManager.h:29
 AliFemtoManager.h:30
 AliFemtoManager.h:31
 AliFemtoManager.h:32
 AliFemtoManager.h:33
 AliFemtoManager.h:34
 AliFemtoManager.h:35
 AliFemtoManager.h:36
 AliFemtoManager.h:37
 AliFemtoManager.h:38
 AliFemtoManager.h:39
 AliFemtoManager.h:40
 AliFemtoManager.h:41
 AliFemtoManager.h:42
 AliFemtoManager.h:43
 AliFemtoManager.h:44
 AliFemtoManager.h:45
 AliFemtoManager.h:46
 AliFemtoManager.h:47
 AliFemtoManager.h:48
 AliFemtoManager.h:49
 AliFemtoManager.h:50
 AliFemtoManager.h:51
 AliFemtoManager.h:52
 AliFemtoManager.h:53
 AliFemtoManager.h:54
 AliFemtoManager.h:55
 AliFemtoManager.h:56
 AliFemtoManager.h:57
 AliFemtoManager.h:58
 AliFemtoManager.h:59
 AliFemtoManager.h:60
 AliFemtoManager.h:61
 AliFemtoManager.h:62
 AliFemtoManager.h:63
 AliFemtoManager.h:64
 AliFemtoManager.h:65
 AliFemtoManager.h:66
 AliFemtoManager.h:67
 AliFemtoManager.h:68
 AliFemtoManager.h:69
 AliFemtoManager.h:70
 AliFemtoManager.h:71