// Simple particle gun.
// Momentum, phi and theta of the partice as well as the particle type can be set.
+// If fExplicit is true the user set momentum vector is used,
+// otherwise it is calculated.
// andreas.morsch@cern.ch
-//Begin_Html
-/*
-<img src="picts/AliGeneratorClass.gif">
-</pre>
-<br clear=left>
-<font size=+2 color=red>
-<p>The responsible person for this module is
-<a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
-</font>
-<pre>
-*/
-//End_Html
-// //
-///////////////////////////////////////////////////////////////////
#include "TPDGCode.h"
//_____________________________________________________________________________
AliGenFixed::AliGenFixed()
- :AliGenerator()
+ :AliGenerator(),
+ fIpart(0),
+ fExplicit(kFALSE)
{
//
// Default constructor
//
- fIpart = 0;
- fExplicit = kFALSE;
+ for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
+
}
//_____________________________________________________________________________
AliGenFixed::AliGenFixed(Int_t npart)
- :AliGenerator(npart)
+ :AliGenerator(npart),
+ fIpart(kProton),
+ fExplicit(kFALSE)
{
//
// Standard constructor
//
fName="Fixed";
fTitle="Fixed Particle Generator";
- // Generate Proton by default
- fIpart=kProton;
- fExplicit = kFALSE;
+ for (Int_t i = 0; i < 3; i++) fP[i] = 0.;
}
//_____________________________________________________________________________
//
Float_t polar[3]= {0,0,0};
if(!fExplicit) {
- fP[0] = fPMin*TMath::Cos(fPhiMin)*TMath::Sin(fThetaMin);
- fP[1] = fPMin*TMath::Sin(fPhiMin)*TMath::Sin(fThetaMin);
- fP[2] = fPMin*TMath::Cos(fThetaMin);
+ fP[0] = fPMin * TMath::Cos(fPhiMin) * TMath::Sin(fThetaMin);
+ fP[1] = fPMin * TMath::Sin(fPhiMin) * TMath::Sin(fThetaMin);
+ fP[2] = fPMin * TMath::Cos(fThetaMin);
}
- Int_t i, nt;
+ Int_t i, j, nt;
//
- for(i=0;i<fNpart;i++)
- PushTrack(fTrackIt,-1,fIpart,fP,fOrigin.GetArray(),polar,0,kPPrimary,nt);
-}
+ Float_t o[3] = {0., 0., 0.};
+ Float_t time = 0.;
+ if(fVertexSmear == kPerEvent) {
+ Vertex();
+ for (j = 0;j < 3; j++) o[j] = fVertex[j];
+ time = fTime;
+ }
-//_____________________________________________________________________________
-void AliGenFixed::SetSigma(Float_t sx, Float_t sy, Float_t sz)
-{
- //
- // Set the interaction point sigma
- //
- printf("Vertex smearing not implemented for fixed generator\n");
+ for(i = 0; i < fNpart; i++)
+ PushTrack(fTrackIt, -1, fIpart, fP, o , polar, time, kPPrimary, nt);
}
+