17 #include <TProcessID.h>
37 #include <TParticlePDG.h>
38 #include <TLorentzVector.h>
39 #include <TDatabasePDG.h>
53 && mLine.find(
"finished") != std::string::npos;
60 count = TProcessID::GetObjectCount();
67 TProcessID::SetObjectCount(
count);
88 throw std::runtime_error(error);
90 finished = FinishEvent();
98 if (!mEvent->Parse(mLine)) {
103 error =
"Bad event input: " + mLine;
109 if (!AddParticle()) {
110 error =
"Bad particle input in event";
119 throw std::runtime_error(
"Ended mid-event");
128 return mEvent.release();
146 mEvent->SetLeptonKinematics(*
nm);
148 for (
unsigned n(0);
n < mEvent->GetNTracks(); ++
n) {
149 mEvent->GetTrack(
n)->ComputeEventDependentQuantities(*mEvent);
152 mEvent->SetJacquetBlondelKinematics(*jb);
155 mEvent->SetDoubleAngleKinematics(*da);
163 TVector3 boost = -h.BoostVector();
166 mEvent->SetELeptonInNuclearFrame(l.E());
167 mEvent->SetEScatteredInNuclearFrame(s.E());
186 catch(std::exception& error) {
187 std::cerr <<
"Exception building particle: " << error.what() << std::endl;
194 return T::Class()->GetName();
199 for (
int i=0; i<5; i++)