ROOT logo
////////////////////////////////////////////////////////////////////////////
//                                                                        //
// AliFemtoAnalysisReactionPlane - Femtoscopic analysis which mixes event //
// with respect to the z position of the primary vertex and event total   //
// multiplicity and uses only events in certain reaction plane angle bin  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOANALYSISAZIMUTHAL_H
#define ALIFEMTOANALYSISAZIMUTHAL_H

#include "AliFemtoSimpleAnalysis.h"        // base analysis class

class TVector2;

class AliFemtoAnalysisAzimuthal : public AliFemtoSimpleAnalysis {

public:

  AliFemtoAnalysisAzimuthal(unsigned int binsVertex=10, double minVertex=-100., double maxVertex=+100., unsigned int binsMult=10, double minMult=-1.e9, double maxMult=+1.e9, unsigned short binsRP=10);
  AliFemtoAnalysisAzimuthal(const AliFemtoAnalysisAzimuthal& TheOriginalAnalysis);  // copy constructor

  AliFemtoAnalysisAzimuthal& operator=(const AliFemtoAnalysisAzimuthal& aAna);

  virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
  virtual ~AliFemtoAnalysisAzimuthal();
  virtual unsigned int OverflowVertexZ() const { return fOverFlowVertexZ;}
  virtual unsigned int UnderflowVertexZ() const { return fUnderFlowVertexZ;}
  virtual unsigned int OverflowMult() const { return fOverFlowMult;}
  virtual unsigned int UnderflowMult() const { return fUnderFlowMult;}
  double GetCurrentReactionPlane();
  TVector2 GetQVector(AliFemtoParticleCollection* particlecollection);
  virtual void MakePairs(const char* typeIn, AliFemtoParticleCollection *partCollection1, AliFemtoParticleCollection *partCollection2=0);
  virtual TList* GetOutputList();

 // Get the particle cuts
  virtual AliFemtoParticleCut*   FemtoParticleCut() {return fFemtoParticleCut;}
  virtual AliFemtoParticleCut*   FlowParticleCut() {return fFlowParticleCut;}
 // Set the cuts
  void SetFemtoParticleCut(AliFemtoParticleCut* x) {fFemtoParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
  void SetFlowParticleCut(AliFemtoParticleCut* x) {fFlowParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
  void SetEventCut(AliFemtoEventCut* x) {fEventCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
  void SetPairCut(AliFemtoPairCut* x) {fPairCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}

protected:

  AliFemtoParticleCut*         	fFemtoParticleCut;    //  select particles of type #1 
  AliFemtoParticleCut*  	fFlowParticleCut;   //  select particles of type #2 

  double fVertexZ[2];                 /* min/max z-vertex position allowed to be processed */
  unsigned int fVertexZBins;          /* number of VERTEX mixing bins in z-vertex in EventMixing Buffer */
  unsigned int fOverFlowVertexZ;      /* number of events encountered which had too large z-vertex */
  unsigned int fUnderFlowVertexZ;     /* number of events encountered which had too small z-vertex */
  double fMult[2];                    /* min/max multiplicity allowed for event to be processed */
  unsigned int fMultBins;             /* number of MULTIPLICITY mixing bins in z-vertex in EventMixing Buffer */
  unsigned int fOverFlowMult;         /* number of events encountered which had too large multiplicity */
  unsigned int fUnderFlowMult;        /* number of events encountered which had too small multiplicity */
  unsigned short fRPBins;             // Number of reaction plane angle orientation bins
  double fPsi;                		// Reaction plane angle of the current event

#ifdef __ROOT__
  ClassDef(AliFemtoAnalysisAzimuthal, 0)
#endif
    
};

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