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++)