ROOT logo
///////////////////////////////////////////////////////////////////////////
//                                                                       //
// AliFemtoCutMonitorHandler: a handler for cut monitors                 //
//                                                                       //
///////////////////////////////////////////////////////////////////////////
#ifndef AliFemtoCutMonitorHandler_hh
#define AliFemtoCutMonitorHandler_hh


#include "AliFemtoTypes.h"
#include "AliFemtoEvent.h"
#include "AliFemtoTrack.h"
#include "AliFemtoV0.h"
#include "AliFemtoKink.h"
#include "AliFemtoPair.h" //Gael 12/04/02
#include "AliFemtoParticleCollection.h" // Gael 19/06/02
#include "AliFemtoCutMonitorCollection.h"
#include "AliFemtoCutMonitor.h"

class AliFemtoCutMonitorHandler{
  
 public:
  
  AliFemtoCutMonitorHandler();
  AliFemtoCutMonitorHandler(const AliFemtoCutMonitorHandler& aHan);
  virtual ~AliFemtoCutMonitorHandler();
  AliFemtoCutMonitorHandler& operator=(const AliFemtoCutMonitorHandler& aHan);

  AliFemtoCutMonitorCollection* PassMonitorColl(); 
  AliFemtoCutMonitorCollection* FailMonitorColl(); 
  AliFemtoCutMonitor* PassMonitor(int n); 
  AliFemtoCutMonitor* FailMonitor(int n); 
  void AddCutMonitor(AliFemtoCutMonitor* cutMoni1, AliFemtoCutMonitor* cutMoni2); 
  void AddCutMonitor(AliFemtoCutMonitor* cutMoni); 
  void AddCutMonitorPass(AliFemtoCutMonitor* cutMoni); 
  void AddCutMonitorFail(AliFemtoCutMonitor* cutMoni); 
  void FillCutMonitor(const AliFemtoEvent* event, bool pass); 
  void FillCutMonitor(const AliFemtoTrack* track, bool pass); 
  void FillCutMonitor(const AliFemtoV0* v0, bool pass); 
  void FillCutMonitor(const AliFemtoKink* kink, bool pass);
  void FillCutMonitor(const AliFemtoPair* pair, bool pass);//Gael 11/04/02
  void FillCutMonitor(const AliFemtoParticleCollection* partColl);// Gael 19/06/02
  void FillCutMonitor(const AliFemtoEvent* event, const AliFemtoParticleCollection* partColl);// Gael 19/06/02
  void FillCutMonitor(const AliFemtoParticleCollection* partColl1, const AliFemtoParticleCollection* partColl2);
  void Finish();

  virtual TList *GetOutputList();

  virtual void EventBegin(const AliFemtoEvent* aEvent);
  virtual void EventEnd(const AliFemtoEvent* aEvent);
  
 private:
  bool fCollectionsEmpty;                  // Are the collections empty?
  AliFemtoCutMonitorCollection* fPassColl; // Collection of cut monitors for passed entities
  AliFemtoCutMonitorCollection* fFailColl; // Collection of cut monitors for failed entities
#ifdef __ROOT__  
  ClassDef(AliFemtoCutMonitorHandler, 0)
#endif  
  
};

inline AliFemtoCutMonitorCollection* AliFemtoCutMonitorHandler::PassMonitorColl() { return fPassColl;}
inline AliFemtoCutMonitorCollection* AliFemtoCutMonitorHandler::FailMonitorColl() { return fFailColl;}

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