ROOT logo
#ifndef ALIGENPAIRFLAT_H
#define ALIGENPAIRFLAT_H


// Generator for particle pairs in a preset
// kinematic range 
// ranges can be set for invariant mass, pair pT, pair rapidity
// and pair azimuth

// Comments and suggestions: markus.konrad.kohler@cern.ch


#include "AliGenerator.h"

class TF1;

class AliGenPairFlat : public AliGenerator
{
 public:
  AliGenPairFlat();
  virtual ~AliGenPairFlat();
  virtual void Generate();
  virtual void Init();

  virtual void SetPairNPart(Int_t npart) {fPairNpart=npart;}
  virtual void SetPairYRange(Float_t Ymin, Float_t Ymax)
      {fPairYMin = Ymin; fPairYMax = Ymax;}
  virtual void SetPairPhiRange(Float_t phimin, Float_t phimax)
      {fPairPhiMin = phimin; fPairPhiMax = phimax;}
  virtual void SetPairPtRange(Float_t ptmin, Float_t ptmax)
      {fPairPtMin = ptmin; fPairPtMax = ptmax;}
  virtual void SetPairMassRange(Float_t massmin, Float_t massmax)
      {fPairMassMin = massmin; fPairMassMax = massmax;}
  virtual void SetLegPdg(Int_t pdg1, Int_t pdg2)
      {fLegPdg1 = pdg1; fLegPdg2 = pdg2;}
  virtual void SetPolarization(Float_t Alpha)
      {fAlpha = Alpha;}
  void SetDebug(Int_t debug) {fDebug=debug;}

protected:

  Int_t   fPairNpart;  		//Number of generated pairs
  Float_t fPairYMin;  		// Minimum eta 
  Float_t fPairYMax;  		// Maximum eta
  Float_t fPairPhiMin;  	// Minimum phi 
  Float_t fPairPhiMax;  	// Maximum phi
  Float_t fPairPtMin;  		// Minimum pt 
  Float_t fPairPtMax;  		// Maximum pt
  Float_t fPairMassMin;		// Minimum mass 
  Float_t fPairMassMax;   	// Maximum mass
  Int_t   fLegPdg1;		// pdg code of first daughter
  Int_t   fLegPdg2;		// pdg code of second daughter
  Float_t fAlpha;		// Polarization factor
  Int_t   fDebug;   		// debug level
  TF1    *fPol;			// Polarization function

  Bool_t Decay(const TLorentzVector& mother, TLorentzVector &dau1, TLorentzVector &dau2 , TF1* fPol);


  private:
  AliGenPairFlat(const AliGenPairFlat &pair);
  AliGenPairFlat & operator=(const AliGenPairFlat & pair);

  ClassDef(AliGenPairFlat,1) // Flat random pair generator
};

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