12 #include <TLorentzVector.h>
16 #include <eicsmear/erhic/EventPythia.h>
17 #include <eicsmear/erhic/Kinematics.h>
25 : mEvent(new erhic::EventPythia()) {
47 mEvent->SetProcess(
msti(1));
48 mEvent->SetNucleon(
msti(12));
49 mEvent->SetTargetParton(
msti(16));
50 mEvent->SetBeamParton(
msti(15));
51 mEvent->SetTargetPartonX(
pari(34));
52 mEvent->SetBeamPartonX(
pari(33));
53 mEvent->SetBeamPartonTheta(
pari(53));
54 mEvent->SetLeptonPhi(
vint(313));
58 mEvent->SetHardS(
pari(14));
59 mEvent->SetHardT(
pari(15));
60 mEvent->SetHardU(
pari(16));
61 mEvent->SetHardQ2(
pari(22));
62 mEvent->SetHardPt2(
pari(18));
65 mEvent->SetPhotonFlux(
vint(319));
66 mEvent->SetTrueY(
vint(309));
67 mEvent->SetTrueQ2(
vint(307));
72 static std::stringstream stream;
78 erhic::ParticleMC* track =
new erhic::ParticleMC;
80 track->SetStatus(
k(
i, 1));
81 track->SetId(
k(
i, 2));
82 track->SetParentIndex(
k(
i, 3));
83 track->SetChild1Index(
k(
i, 4));
84 track->SetChildNIndex(
k(
i, 5));
85 track->Set4Vector(TLorentzVector(
p(
i, 1),
p(
i, 2),
88 track->SetVertex(TVector3(
v(
i, 1),
v(
i, 2),
v(
i, 3)));
89 track->SetEvent(mEvent);
90 mEvent->AddLast(track);
94 erhic::ParticleMC* track =
new erhic::ParticleMC;
95 track->SetIndex(mEvent->GetNTracks() + 1);
98 track->SetParentIndex(1);
99 track->SetChild1Index(0);
100 track->SetChildNIndex(0);
105 track->SetVertex(TVector3(0., 0., 0.));
106 track->SetEvent(mEvent);
107 mEvent->AddLast(track);
112 erhic::DisKinematics*
nm =
113 erhic::LeptonKinematicsComputer(*mEvent).Calculate();
114 erhic::DisKinematics* jb =
115 erhic::JacquetBlondelComputer(*mEvent).Calculate();
116 erhic::DisKinematics* da =
117 erhic::DoubleAngleComputer(*mEvent).Calculate();
119 mEvent->SetLeptonKinematics(*nm);
123 mEvent->SetJacquetBlondelKinematics(*jb);
127 mEvent->SetDoubleAngleKinematics(*da);
133 for(
unsigned i(0);
i < mEvent->GetNTracks(); ++
i) {
134 mEvent->GetTrack(
i)->ComputeEventDependentQuantities(*mEvent);
146 return mEvent->Class()->GetName();
155 return tree.Branch(name.c_str(), &mEvent);