fLegPdg1(11),
fLegPdg2(-11),
fAlpha(0.),
- fDebug(0)
+ fDebug(0),
+ fPol(0)
{
//
// Default constructor
//
}
+
+//_____________________________________________________________________________
+AliGenPairFlat::~AliGenPairFlat()
+{
+ //
+ // Destructor
+ //
+ delete fPol;
+
+}
+
//_____________________________________________________________________________
void AliGenPairFlat::Generate()
{
Int_t i, j, nt;
Double_t phi, y, mass, mt, e, pt;
Float_t weight = 1.;
- Double_t pt1, pt2, y1, y2;
+ Double_t pt1, pt2;
TLorentzVector mother, dau1, dau2;
Float_t random[6];
-// TF1* fPol = new TF1("fPol","1.+[0]*x*x",-1.,1.);
- TF1 fPol("fPol","1.+[0]*x*x",-1.,1.);
- fPol.SetParameter(0,fAlpha);
+ fPol = new TF1("fPol","1.+[0]*x*x",-1.,1.);
+ fPol->SetParameter(0, fAlpha);
for (j=0;j<3;j++) origin[j]=fOrigin[j];
time = fTime;
}
+ if(fDebug == 2){
printf("\n\n------------------GENERATOR SETTINGS------------------\n\n");
printf("You choosed for the mother the Mass range %f - %f \n",fPairMassMin,fPairMassMax);
printf("You choosed for the mother the transverse Momentum range %f - %f \n",fPairPtMin,fPairPtMax);
printf("polarization factor is alpha == %lf \n",fAlpha);
printf("vertex is at x == %f || y == %f || z == %f \n",origin[0],origin[1],origin[2]);
printf("\n----------------------------------------------------------\n");
-
+ }
for(i=0;i<fPairNpart;i++) {
pt1 = dau1.Pt();
pt2 = dau2.Pt();
- y1 = dau1.Rapidity();
- y2 = dau2.Rapidity();
+ // y1 = dau1.Rapidity();
+ // y2 = dau2.Rapidity();
//first daughter
p[0] = dau1.Px();
}
//_____________________________________________________________________________
-
void AliGenPairFlat::Init()
{
//
//_____________________________________________________________________________
-
-
-Bool_t AliGenPairFlat::Decay(TLorentzVector mother, TLorentzVector &dau1, TLorentzVector &dau2, TF1 polfactor)
+Bool_t AliGenPairFlat::Decay(const TLorentzVector& mother, TLorentzVector &dau1, TLorentzVector &dau2, TF1* polfactor)
{
//
// decay procedure
//
- Double_t mp, md1, md2, ed1, ed2, pd1, pd2;
+ Double_t mp, md1, md2, ed1, ed2, pd1;
Double_t costheta, sintheta, phi;
mp = mother.M();
ed1 = (mp*mp + md1*md1 - md2*md2)/(2.*mp);
ed2 = mp-ed1;
pd1 = TMath::Sqrt((ed1+md1)*(ed1-md1));
- pd2 = TMath::Sqrt((mp*mp-(md1+md2)*(md1+md2))*(mp*mp -(md1-md2)*(md1-md2)))/(2.*mp);
+ // pd2 = TMath::Sqrt((mp*mp-(md1+md2)*(md1+md2))*(mp*mp -(md1-md2)*(md1-md2)))/(2.*mp);
- costheta = polfactor.GetRandom(); //polarization
+ costheta = polfactor->GetRandom(); //polarization
sintheta = TMath::Sqrt((1.+costheta)*(1.-costheta));
phi = 2.0*TMath::Pi()*gRandom->Rndm();