コード例 #1
0
ファイル: common.py プロジェクト: hschwane/offline_production
 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
         )
コード例 #2
0
 def create_converter(device):
     return clsim.initializeOpenCL(
         device,
         RandomService,
         geometry,
         mediumProperties,
         wavelengthGenerationBias,
         clsim.I3CLSimRandomValuePtrSeries(wavelengthGenerators),
         pancakeFactor=DetectorParams['DOMPancakeFactor'],
     )
コード例 #3
0
ファイル: common.py プロジェクト: hschwane/offline_production
 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
コード例 #4
0
    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