def create_converter(device, use_cuda=False): return clsim.initializeOpenCL(device, RandomService, geometry, mediumProperties, wavelengthGenerationBias, clsim.I3CLSimRandomValuePtrSeries(wavelengthGenerators), pancakeFactor=DetectorParams['DOMPancakeFactor'], enableDoubleBuffering=EnableDoubleBuffering, doublePrecision=DoublePrecision )
def create_converter(device): return clsim.initializeOpenCL( device, RandomService, geometry, mediumProperties, wavelengthGenerationBias, clsim.I3CLSimRandomValuePtrSeries(wavelengthGenerators), pancakeFactor=DetectorParams['DOMPancakeFactor'], )
def create_converter(device): converter = StepToPhotonConverter(RandomService, True) converter.SetDevice(device) converter.SetWlenGenerators(clsim.I3CLSimRandomValuePtrSeries(wavelengthGenerators)) converter.SetWlenBias(wavelengthGenerationBias) converter.SetMediumProperties(mediumProperties) converter.SetGeometry(geometry) converter.SetEnableDoubleBuffering(EnableDoubleBuffering) converter.SetDoublePrecision(EnableDoubleBuffering) converter.SetDOMPancakeFactor(DetectorParams['DOMPancakeFactor']) converter.Initialize() return converter
def getDetectorParameters( IceModel="spice_lea", DisableTilt=False, UnshadowedFraction=0.95, #1.,match the clsim setting UseHoleIceParameterization=True, DOMOversizeFactor=5., UnWeightedPhotons=False): DOMRadius = 0.16510 * icetray.I3Units.m # 13" diameter # ice properties if isinstance(IceModel, str): mediumProperties = parseIceModel(os.path.expandvars( '$I3_BUILD/clsim/resources/ice/%s' % IceModel), disableTilt=DisableTilt) else: # get ice model directly if not a string mediumProperties = IceModel # detector properties if UseHoleIceParameterization: print "calculating DOM efficiency correction using hole ice" # the hole ice acceptance curve peaks at 0.75 instead of 1 domEfficiencyCorrection = UnshadowedFraction * 0.75 * 1.35 * 1.01 # DeepCore DOMs have a relative efficiency of 1.35 plus security margin of +1% else: domEfficiencyCorrection = UnshadowedFraction * 1.35 * 1.01 # security margin of +1% print "from tray segment: domEfficiencyCorrection is ", domEfficiencyCorrection domAcceptance = clsim.GetIceCubeDOMAcceptance( domRadius=DOMRadius * DOMOversizeFactor, efficiency=domEfficiencyCorrection) print "from tray segment: domAcceptance NumEntries is ", domAcceptance.GetNumEntries( ) print "from tray segment: domAcceptance MinWlen is ", domAcceptance.GetMinWlen( ) print "from tray segment: domAcceptance MaxWlen is ", domAcceptance.GetMaxWlen( ) print "from tray segment: domAcceptance FirstWlen is ", domAcceptance.GetFirstWavelength( ) print "from tray segment: domAcceptance WlenStepping is ", domAcceptance.GetWavelengthStepping( ) print "from tray segment: domAcceptance 4th entry value is ", domAcceptance.GetEntryValue( 4) print "from tray segment: domAcceptance 4th entry wlen is ", domAcceptance.GetEntryWavelength( 4) domAngularSensitivity = clsim.GetIceCubeDOMAngularSensitivity( holeIce=UseHoleIceParameterization) print "from tray segment: domAngularSensitivity coefficients are ", domAngularSensitivity.GetCoefficients( ) print "from tray segment: with hole ice ", UseHoleIceParameterization if not UnWeightedPhotons: wavelengthGenerationBias = domAcceptance else: wavelengthGenerationBias = None print "from tray segment: wavelengthGenerationBias is ", wavelengthGenerationBias wavelengthGenerators = clsim.I3CLSimRandomValuePtrSeries() wavelengthGenerators.append( clsim.makeCherenkovWavelengthGenerator(wavelengthGenerationBias, False, mediumProperties)) print "from tray segment: wavelengthGenerators is ", wavelengthGenerators #[0].NumberOfParameters() #no pybindings? return mediumProperties, wavelengthGenerationBias, wavelengthGenerators, domAcceptance, domAngularSensitivity, DOMOversizeFactor