ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoCutMonitorEventMult - the cut monitor for events to study        ///
/// the multiplicity distribution of events                                  ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////
#ifndef AliFemtoCutMonitorEventMult_hh
#define AliFemtoCutMonitorEventMult_hh

class AliFemtoEvent;
class AliFemtoTrack;
class AliFemtoV0;
class AliFemtoKink;
class AliFemtoPair; 
class TH1D;
class TH2D;
class TList;
#include "AliFemtoString.h"
#include "AliFemtoParticleCollection.h"
#include "AliFemtoCutMonitor.h"

class AliFemtoCutMonitorEventMult : public AliFemtoCutMonitor{
  
 public:
  AliFemtoCutMonitorEventMult();
  AliFemtoCutMonitorEventMult(const char *aName, int nBins=5000);
  AliFemtoCutMonitorEventMult(const AliFemtoCutMonitorEventMult &aCut);
  virtual ~AliFemtoCutMonitorEventMult();

  AliFemtoCutMonitorEventMult& operator=(const AliFemtoCutMonitorEventMult& aCut);

  virtual AliFemtoString Report();
  virtual void Fill(const AliFemtoEvent* aEvent);
  virtual void Fill(const AliFemtoTrack* aTrack) {AliFemtoCutMonitor::Fill(aTrack);}
  virtual void Fill(const AliFemtoV0* aV0) {AliFemtoCutMonitor::Fill(aV0);}
  virtual void Fill(const AliFemtoKink* aKink) {AliFemtoCutMonitor::Fill(aKink);}
  virtual void Fill(const AliFemtoPair* aPair) {AliFemtoCutMonitor::Fill(aPair);}
  virtual void Fill(const AliFemtoParticleCollection* aCollection) {AliFemtoCutMonitor::Fill(aCollection);}
  virtual void Fill(const AliFemtoEvent* aEvent,const AliFemtoParticleCollection* aCollection) {AliFemtoCutMonitor::Fill(aEvent, aCollection);}
  virtual void Fill(const AliFemtoParticleCollection* aCollection1,const AliFemtoParticleCollection* aCollection2) {AliFemtoCutMonitor::Fill(aCollection1, aCollection2);}

  void SetReadMC(Bool_t mc);
  void AdditionalMultHistsOn(Bool_t addhists);
  void Write();

  virtual TList *GetOutputList();

 private:
  TH1D *fEvMult;     // Multiplicity distribution
  TH1D *fNormEvMult; // Normalized event multiplicity distribution
  TH1D *fSPDMult;    // SPD tracklet multiplicity
  TH2D *fMultSumPt;  // Event total pT vs. multiplicity

  Bool_t freadMC;     // If true - add only one histogram to the output
  Bool_t faddhists;   // If true - add only additional multiplicity histograms
  
  TH1D *fEstimateITSTPC;     // Multiplicity estimate ITS+TPC
  TH1D *fEstimateTracklets;  // Multiplicity estimate Tracklets
  TH1D *fEstimateITSPure;    // Multiplicity estimate ITS Pure

  TH2D *fEst1Est2;           // ITS+TPC vs Tracklets
  TH2D *fEst1Est3;           // ITS+TPC vs ITS Pure
  TH2D *fEst2Est3;           // Tracklets vs ITS Pure
  TH2D *fEst1Norm;           // ITS+TPC vs Normalized
  TH2D *fEst2Norm;           // Tracklets vs Normalized
  TH2D *fEst3Norm;           // ITS Pure vs Normalized

  TH1D *fPsiVZERO;    // psi from vzero

};

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