Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 09:38:17

0001 """
0002    Subtest using LHeD showing how to setup the random number generator
0003 
0004    @author  M.Frank
0005    @version 1.0
0006 
0007 """
0008 from __future__ import absolute_import, unicode_literals
0009 from ROOT import gRandom
0010 import logging
0011 
0012 logging.basicConfig(format='%(levelname)s: %(message)s', level=logging.INFO)
0013 logger = logging.getLogger(__name__)
0014 
0015 if __name__ == "__main__":
0016   import LHeD
0017   import DDG4
0018   lhed = LHeD.LHeD()
0019 
0020   # <<-- See this function to know how it's done....
0021   logger.info('DEFAULT Engine: %s', DDG4.CLHEP.HepRandom.getTheEngine().name())
0022   rndm1 = lhed.setupRandom('R1', seed=987654321, type='RunluxEngine')
0023   logger.info('R1: %s Default instance: %s', rndm1.name, rndm1.instance().name())
0024   logger.info('   Engine:  %s', rndm1.engine().name())
0025   logger.info('   DEFAULT: %s', DDG4.CLHEP.HepRandom.getTheEngine().name())
0026   rndm1.showStatus()
0027 
0028   rndm2 = lhed.setupRandom('R2', seed=1234321, type='MTwistEngine')
0029   logger.info('R2: %s Default instance: %s', rndm2.name, rndm2.instance().name())
0030   logger.info('   Engine:  %s', rndm2.engine().name())
0031   logger.info('   DEFAULT: %s', DDG4.CLHEP.HepRandom.getTheEngine().name())
0032   # rndm2.showStatus()
0033 
0034   DDG4.Geant4Random.setMainInstance(rndm1.get())
0035   rndm1.showStatus()
0036 
0037   # Move main geant random instance from rndm1 to rndm2:
0038   # See how gRandom and HepRandom instances move
0039   DDG4.Geant4Random.setMainInstance(rndm1.get())
0040   logger.info('DEFAULT Engine: %s', DDG4.CLHEP.HepRandom.getTheEngine().name())
0041   logger.info('DDG4   DEFAULT: %s', DDG4.Geant4Random.instance().engine().name())
0042   rndm = DDG4.Geant4Random.instance()
0043 
0044   rndm.setSeed(1234)
0045   rndm.showStatus()
0046   for i in range(10):
0047     logger.info("%s  -- 0 gRandome.Rndm()        -- Shoot random[[%d]= %f", rndm.name(), i, gRandom.Rndm())
0048 
0049   rndm.setSeed(1234)
0050   for i in range(10):
0051     logger.info("%s  -- 1 gRandome.Rndm()        -- Shoot random[[%d]= %f", rndm.name(), i, gRandom.Rndm())
0052 
0053   rndm.setSeed(1234)
0054   for i in range(10):
0055     logger.info("%s  -- 2 Geant4Random(CLHEP)    -- Shoot random[[%d]= %f", rndm.name(), i, rndm.rndm_clhep())
0056 
0057   rndm.setSeed(1234)
0058   for i in range(10):
0059     logger.info("%s  -- 3 Geant4Random(CLHEP)    -- Shoot random[[%d]= %f", rndm.name(), i, rndm.rndm_clhep())
0060 
0061   rndm.setSeed(1234)
0062   for i in range(10):
0063     logger.info("%s  -- 4 HepRandomEngine(CLHEP) -- Shoot random[%d]= %f", rndm.name(), i, rndm.engine().flat())
0064 
0065   lhed.test_run(have_geo=False)