EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EicProtoGenerator.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EicProtoGenerator.h
1 
2 #include <FairGenerator.h>
3 #include <FairPrimaryGenerator.h>
4 
5 #ifndef _EIC_PROTO_GENERATOR_
6 #define _EIC_PROTO_GENERATOR_
7 
9 {
10  public:
13  memset(mCoord, 0x00, sizeof(mCoord));
14  memset(mCoordSigma, 0x00, sizeof(mCoordSigma));
15  memset(mCoordRange, 0x00, sizeof(mCoordRange));
16 
18  };
20 
21  // This stuff is only good for rough forward proton modeling estimates;
22  // a random 3D rotation with these parameters in [rad] will be applied to the
23  // outgoing particles;
26 
28 
29  // Well, do I need more intelligent access methods here?; FIXME: should be moved
30  // to EicProtoGenerator at some point;
31  void SetVertex(double x, double y, double z = 0.0) {
32  mCoord[0] = x; mCoord[1] = y; mCoord[2] = z;
33  };
34  double GetVx() const { return mCoord[0]; };
35  double GetVy() const { return mCoord[1]; };
36  double GetVz() const { return mCoord[2]; };
37  void SetVertexSmearing(double sx, double sy, double sz = 0.0) {
38  mCoordSigma[0] = sx; mCoordSigma[1] = sy; mCoordSigma[2] = sz;
40  };
41  void SetVertexRange(double rx, double ry, double rz = 0.0) {
42  mCoordRange[0] = rx; mCoordRange[1] = ry; mCoordRange[2] = rz;
44  };
45 
46  double GetVxSmearing() const { return mCoordSigma[0]; };
47  double GetVySmearing() const { return mCoordSigma[1]; };
48  double GetVzSmearing() const { return mCoordSigma[2]; };
49 
50  TVector3 GetSimulatedPrimaryVertex( void );
51 
52  TVector3 GetModifiedTrack(const TVector3 track);
53 
55 
56  Double_t mCoord[3]; // (average) vertex coordinates in [cm]; default: (0,0,0)
57  Double_t mCoordSigma[3]; // gaussian vertex smearing (if any) in [cm]; default: (0,0,0)
58  Double_t mCoordRange[3]; // uniform vertex range (if any) in [cm]; default: (0,0,0)
59  Bool_t mGaussianCoordinateSmearing; // use gaussian coordinate smearing (default);
60 
62 };
63 
64 #endif