]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenPairFlat.h
Pair generator
[u/mrichter/AliRoot.git] / EVGEN / AliGenPairFlat.h
diff --git a/EVGEN/AliGenPairFlat.h b/EVGEN/AliGenPairFlat.h
new file mode 100644 (file)
index 0000000..2bd9abe
--- /dev/null
@@ -0,0 +1,61 @@
+#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
+
+  Bool_t Decay(TLorentzVector mother, TLorentzVector &dau1, TLorentzVector &dau2 , TF1 fPol);
+
+  ClassDef(AliGenPairFlat,1) // Flat random pair generator
+};
+
+#endif