/*
$Log$
+Revision 1.4 2003/01/06 10:09:57 morsch
+Use AliGrayParticleModel.
+
Revision 1.3 2002/12/02 10:02:40 morsch
Corrections introduced by F. Silker:
- SetBetaSource
*/
#include "AliGenGrayParticles.h"
#include "AliGrayParticleModel.h"
+#include "AliCollisionGeometry.h"
#include "AliPDG.h"
#include <TDatabasePDG.h>
AliGenGrayParticles::AliGenGrayParticles():AliGenerator(-1)
{
// Default constructor
+ fGrayParticleModel = 0;
+ fCollisionGeometry = 0;
}
AliGenGrayParticles::AliGenGrayParticles(Int_t npart)
SetCharge();
SetTemperature();
SetBetaSource();
+ fGrayParticleModel = new AliGrayParticleModel();
+ fCollisionGeometry = 0;
}
//____________________________________________________________
AliGenGrayParticles::~AliGenGrayParticles()
{
// Destructor
+ delete fGrayParticleModel;
}
//
// Generate one event
//
+ //
+ // Communication with Gray Particle Model
+ //
+ Int_t np, nn;
+
+ Float_t b = fCollisionGeometry->ImpactParameter();
+ printf("AliGenGrayParticles: Impact parameter from Collision Geometry %f \n", b);
+
+ fGrayParticleModel->GetNumberOfGrayNucleons(fCollisionGeometry, np, nn);
+
+ //
Float_t p[3];
Float_t origin[3] = {0., 0., 0.};
Float_t polar [3] = {0., 0., 0.};
Int_t nt, i;
- for(i = 0;i < fNpart; i++) {
+ for(i = 0;i < fNpart; i++) {
Int_t kf;
if(fCharge==1) kf = kProton;
else kf = kNeutron;
//
virtual void SetGrayParticleModel(AliGrayParticleModel* model)
{fGrayParticleModel = model;}
+ virtual Bool_t NeedsCollisionGeometry() {return kTRUE;}
+ virtual void SetCollisionGeometry(AliCollisionGeometry* geom)
+ {fCollisionGeometry = geom;}
protected:
void GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q);