return totpart;
}
//______________________________________________________________________________
+TObjArray * TMevSim::ImportParticles(Option_t */*option*/)
+{
+// Read in particles created by MevSim into the TClonesArray(). The Initialize()
+// and GenrateEvent() functions must be called prior to calling this funtion.
+// The particles are read from the COMMON POUT. Right now the only provided
+// information is Geant PID, 3 momentum components and the energy of the particle.
+
+ fParticles->Clear();
+
+ for (Int_t nrpidtype=0; nrpidtype < (fParticleTypeParameters->GetLast() + 1); nrpidtype++) {
+ Int_t nrpart = 0;
+ Int_t pidcode = ((TMevSimPartTypeParams *) (*fParticleTypeParameters)[nrpidtype])->GetGPid();
+ while ((TRACK.pout[(4*nrpart+3)*NPID+nrpidtype] > 0.0) || (TRACK.pout[(4*nrpart)*NPID+nrpidtype] != 0.0)) {
+ int poffset = 4*nrpart*NPID+nrpidtype;
+ Float_t px = TRACK.pout[poffset];
+ poffset += NPID;
+ Float_t py = TRACK.pout[poffset];
+ poffset += NPID;
+ Float_t pz = TRACK.pout[poffset];
+ poffset += NPID;
+ Float_t mass = TRACK.pout[poffset];
+ TParticle * p = new TParticle(
+ PDGFromId(pidcode), // Get the PDG ID from GEANT ID
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ px,
+ py,
+ pz,
+ sqrt(mass*mass+px*px+py*py+pz*pz),
+ 0,
+ 0,
+ 0,
+ 0);
+ fParticles->Add(p);
+ nrpart++;
+ }
+ }
+ return fParticles;
+}
+//______________________________________________________________________________
void TMevSim::SetNEvents(Int_t nEvents ) {
// Sets the number of events to be generated by MevSim.
// Caution: Setting nEvents > 1 will have no effect, since only the last generated
virtual void GenerateEvent();
+ TObjArray * ImportParticles(Option_t * option);
+
virtual Int_t ImportParticles(TClonesArray *particles, Option_t *option="");
//Parameters for the generation:
// Copy and assignment operators;
TMevSimPartTypeParams (const TMevSimPartTypeParams& pars); // copy constructor
- virtual TMevSimPartTypeParams& operator=(const TMevSimPartTypeParams& pars); // assignment operator
+ TMevSimPartTypeParams& operator=(const TMevSimPartTypeParams& pars); // assignment operator
// Parameters of the particle type