2 evgenConfig.description = 
"Single particle gun for FastCaloSim event generation" 
    3 evgenConfig.keywords = [
"singleParticle",]
 
    4 evgenConfig.generators = [
"ParticleGun"]
 
    5 evgenConfig.contact = [
"david.sosa@cern.ch"]
 
    7 import ParticleGun 
as PG
 
   14         pdg_table = ROOT.TDatabasePDG.Instance() 
 
   15         mass = pdg_table.GetParticle(self.
pid()).Mass()*1000.
 
   16         self.
mom1 = PG.EEtaMPhiSampler(energy=energy,eta=eta,mass=mass)
 
   24         pos_temp = mom.Vect().Unit()
 
   27         if abs(pos_temp.Z())/3550.<pos_temp.Perp()/1148.: 
 
   28             pos_temp *= 1148./pos_temp.Perp()
 
   30             pos_temp *= 3550./abs(pos_temp.Z())
 
   33         pos_temp_2 = ROOT.TVector3()
 
   34         pos_temp_2.SetXYZ(pos_temp.X(), pos_temp.Y(), pos_temp.Z()+shift_z)
 
   35         pos_temp_2 *= 1. / pos_temp_2.Mag(); 
 
   38         if abs(pos_temp_2.Z())/3550.<pos_temp_2.Perp()/1148.:
 
   39             pos_temp_2 *= 1148./pos_temp_2.Perp()
 
   41             pos_temp_2 *= 3550./abs(pos_temp_2.Z())
 
   43         pos = ROOT.TLorentzVector(pos_temp_2.X(),pos_temp_2.Y(),pos_temp_2.Z(), pos_temp_2.Mag())
 
   47         return [ PG.SampledParticle( pid , mom , pos ) ]
 
   62     eta_li.extend([myLowEta1,myLowEta2,myHighEta1,myHighEta2])
 
   67     eta_li.extend([myLowEta,myHighEta])
 
   70 print "================ SETTTINGS =================" 
   71 print (
"energy = ", myE)
 
   72 print (
"eta = ", eta_li)
 
   73 print (
"pid = ", myPDGID)
 
   74 print (
"shift_z = ", myZV)
 
   75 print "============================================" 
   77 genSeq += PG.ParticleGun()
 
   78 genSeq.ParticleGun.sampler = 
MyParticleSampler(energy=myE,eta=eta_li,pid=(myPDGID,myPDGID),shift_z=myZV)