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  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////
/***************************************************************************
 *
 * Author: Johanna Gramling, University of Heidelberg, jgramlin@cern.ch
 *         Jorge Mercado, University of Heidelberg, jmercado@cern.ch
 *         Vera Loggins, Wayne State University, veraloggins@wayne.edu
 *
 **************************************************************************/

#ifndef ALIFEMTOANALYSISAZIMUTHALPB_H
#define ALIFEMTOANALYSISAZIMUTHALPB_H

#include "AliFemtoSimpleAnalysis.h"        // base analysis class
#include "TH1.h"
#include "TVector2.h"
#include "AliAODEvent.h"
#include "AliFemtoPicoEventRP.h"
#include "AliFemtoPairCutRadialDistanceLM.h"

class TVector2;
class AliFemtoPicoEventRP;

class AliFemtoAnalysisAzimuthalPbPb : public AliFemtoSimpleAnalysis {

public:

  AliFemtoAnalysisAzimuthalPbPb(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);
  AliFemtoAnalysisAzimuthalPbPb(const AliFemtoAnalysisAzimuthalPbPb& TheOriginalAnalysis);  // copy constructor

  AliFemtoAnalysisAzimuthalPbPb& operator=(const AliFemtoAnalysisAzimuthalPbPb& aAna);

//   virtual void FillHBTParticleCollectionRP(AliFemtoParticleCut* partCut, AliFemtoEvent* hbtEvent, AliFemtoPicoEventRP* picoevent);
  virtual void ProcessEvent(const AliFemtoEvent* ProcessThisEvent);
  virtual ~AliFemtoAnalysisAzimuthalPbPb();
  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, AliFemtoPicoEventRP *coll1, AliFemtoPicoEventRP *coll2=0);
  virtual TList* GetOutputList();
  virtual void Finish() {;}
	
 // Get the particle cuts
  virtual AliFemtoParticleCut*   FirstParticleCut() {return fFirstParticleCut;}
  virtual AliFemtoParticleCut*   SecondParticleCut() {return fSecondParticleCut;}
 // Set the cuts
  void SetFirstParticleCut(AliFemtoParticleCut* x) {fFirstParticleCut = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
  void SetSecondParticleCut(AliFemtoParticleCut* x) {fSecondParticleCut = 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);}
  void SetPairCutRD(AliFemtoPairCutRadialDistanceLM* x) {fPairCutRD = x; x->SetAnalysis((AliFemtoAnalysis*)this);}
  void SetEPhistname(char* histname);

protected:

  AliFemtoParticleCut*         	fFirstParticleCut;    //  select particles of type #1 
  AliFemtoParticleCut*  	fSecondParticleCut;   //  select particles of type #2 
  AliFemtoPairCutRadialDistanceLM* fPairCutRD;
  AliFemtoPicoEventRP*		fPicoEventRP;

  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 fRP;                		// Reaction plane angle of the current event
  TH1F* fphidist;			// Phi distribution as control histogram
  TH1F* fpairphi;			// Phi distribution as control histogram
  TH1F* fRPdist;			// RP distribution as control histogram
  TH1F* fsubRPdist;
  TH1F* frealpsi;			// Psi distribution for real pairs as control histogram
  TH1F* fmixedpsi;			// Psi distribution for mixed pairs as control histogram

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

#endif
 AliFemtoAnalysisAzimuthalPbPb.h:1
 AliFemtoAnalysisAzimuthalPbPb.h:2
 AliFemtoAnalysisAzimuthalPbPb.h:3
 AliFemtoAnalysisAzimuthalPbPb.h:4
 AliFemtoAnalysisAzimuthalPbPb.h:5
 AliFemtoAnalysisAzimuthalPbPb.h:6
 AliFemtoAnalysisAzimuthalPbPb.h:7
 AliFemtoAnalysisAzimuthalPbPb.h:8
 AliFemtoAnalysisAzimuthalPbPb.h:9
 AliFemtoAnalysisAzimuthalPbPb.h:10
 AliFemtoAnalysisAzimuthalPbPb.h:11
 AliFemtoAnalysisAzimuthalPbPb.h:12
 AliFemtoAnalysisAzimuthalPbPb.h:13
 AliFemtoAnalysisAzimuthalPbPb.h:14
 AliFemtoAnalysisAzimuthalPbPb.h:15
 AliFemtoAnalysisAzimuthalPbPb.h:16
 AliFemtoAnalysisAzimuthalPbPb.h:17
 AliFemtoAnalysisAzimuthalPbPb.h:18
 AliFemtoAnalysisAzimuthalPbPb.h:19
 AliFemtoAnalysisAzimuthalPbPb.h:20
 AliFemtoAnalysisAzimuthalPbPb.h:21
 AliFemtoAnalysisAzimuthalPbPb.h:22
 AliFemtoAnalysisAzimuthalPbPb.h:23
 AliFemtoAnalysisAzimuthalPbPb.h:24
 AliFemtoAnalysisAzimuthalPbPb.h:25
 AliFemtoAnalysisAzimuthalPbPb.h:26
 AliFemtoAnalysisAzimuthalPbPb.h:27
 AliFemtoAnalysisAzimuthalPbPb.h:28
 AliFemtoAnalysisAzimuthalPbPb.h:29
 AliFemtoAnalysisAzimuthalPbPb.h:30
 AliFemtoAnalysisAzimuthalPbPb.h:31
 AliFemtoAnalysisAzimuthalPbPb.h:32
 AliFemtoAnalysisAzimuthalPbPb.h:33
 AliFemtoAnalysisAzimuthalPbPb.h:34
 AliFemtoAnalysisAzimuthalPbPb.h:35
 AliFemtoAnalysisAzimuthalPbPb.h:36
 AliFemtoAnalysisAzimuthalPbPb.h:37
 AliFemtoAnalysisAzimuthalPbPb.h:38
 AliFemtoAnalysisAzimuthalPbPb.h:39
 AliFemtoAnalysisAzimuthalPbPb.h:40
 AliFemtoAnalysisAzimuthalPbPb.h:41
 AliFemtoAnalysisAzimuthalPbPb.h:42
 AliFemtoAnalysisAzimuthalPbPb.h:43
 AliFemtoAnalysisAzimuthalPbPb.h:44
 AliFemtoAnalysisAzimuthalPbPb.h:45
 AliFemtoAnalysisAzimuthalPbPb.h:46
 AliFemtoAnalysisAzimuthalPbPb.h:47
 AliFemtoAnalysisAzimuthalPbPb.h:48
 AliFemtoAnalysisAzimuthalPbPb.h:49
 AliFemtoAnalysisAzimuthalPbPb.h:50
 AliFemtoAnalysisAzimuthalPbPb.h:51
 AliFemtoAnalysisAzimuthalPbPb.h:52
 AliFemtoAnalysisAzimuthalPbPb.h:53
 AliFemtoAnalysisAzimuthalPbPb.h:54
 AliFemtoAnalysisAzimuthalPbPb.h:55
 AliFemtoAnalysisAzimuthalPbPb.h:56
 AliFemtoAnalysisAzimuthalPbPb.h:57
 AliFemtoAnalysisAzimuthalPbPb.h:58
 AliFemtoAnalysisAzimuthalPbPb.h:59
 AliFemtoAnalysisAzimuthalPbPb.h:60
 AliFemtoAnalysisAzimuthalPbPb.h:61
 AliFemtoAnalysisAzimuthalPbPb.h:62
 AliFemtoAnalysisAzimuthalPbPb.h:63
 AliFemtoAnalysisAzimuthalPbPb.h:64
 AliFemtoAnalysisAzimuthalPbPb.h:65
 AliFemtoAnalysisAzimuthalPbPb.h:66
 AliFemtoAnalysisAzimuthalPbPb.h:67
 AliFemtoAnalysisAzimuthalPbPb.h:68
 AliFemtoAnalysisAzimuthalPbPb.h:69
 AliFemtoAnalysisAzimuthalPbPb.h:70
 AliFemtoAnalysisAzimuthalPbPb.h:71
 AliFemtoAnalysisAzimuthalPbPb.h:72
 AliFemtoAnalysisAzimuthalPbPb.h:73
 AliFemtoAnalysisAzimuthalPbPb.h:74
 AliFemtoAnalysisAzimuthalPbPb.h:75
 AliFemtoAnalysisAzimuthalPbPb.h:76
 AliFemtoAnalysisAzimuthalPbPb.h:77
 AliFemtoAnalysisAzimuthalPbPb.h:78
 AliFemtoAnalysisAzimuthalPbPb.h:79
 AliFemtoAnalysisAzimuthalPbPb.h:80
 AliFemtoAnalysisAzimuthalPbPb.h:81
 AliFemtoAnalysisAzimuthalPbPb.h:82
 AliFemtoAnalysisAzimuthalPbPb.h:83
 AliFemtoAnalysisAzimuthalPbPb.h:84
 AliFemtoAnalysisAzimuthalPbPb.h:85
 AliFemtoAnalysisAzimuthalPbPb.h:86
 AliFemtoAnalysisAzimuthalPbPb.h:87
 AliFemtoAnalysisAzimuthalPbPb.h:88
 AliFemtoAnalysisAzimuthalPbPb.h:89
 AliFemtoAnalysisAzimuthalPbPb.h:90
 AliFemtoAnalysisAzimuthalPbPb.h:91
 AliFemtoAnalysisAzimuthalPbPb.h:92