Functions | |
def | makePmtProperties |
def | getProperties |
def | printPmtProperties |
def pmtSimData::makePmtProperties | ( | ) |
Definition at line 10 of file pmtSimData.py.
00010 : 00011 "Return a list of PMTs and their properties" 00012 properties = [] 00013 pmtIds = makeFeeCableMap.getAllPmtIds() 00014 #print "nDetectors = ",len(pmtIds) 00015 detectors = pmtIds.keys() 00016 detectors.sort() 00017 for detector in detectors: 00018 #print "Detector",detector.detName(),"nPmts = ",len(pmtIds[detector]) 00019 for pmtId in pmtIds[detector]: 00020 properties.append( getProperties(pmtId) ) 00021 return properties 00022 def getProperties(pmtId):
def pmtSimData::getProperties | ( | pmtId | ) |
Definition at line 23 of file pmtSimData.py.
00023 : 00024 "Generate simulation properties for this PMT" 00025 gain = -1 00026 sigmaGain = -1 00027 efficiency = -1 00028 timeSpread = -1 00029 timeOffset = -1 00030 prePulseProb = -1 00031 afterPulseProb = -1 00032 darkRate = -1 00033 00034 if pmtId.detName().find("AD") > 0 or pmtId.detName().find("WS") > 0: 00035 # Add PMT variation in AD 00036 while gain <= 0: 00037 gain = random.gauss(1, 0.06) 00038 00039 while sigmaGain <= 0: 00040 sigmaGain = random.gauss(0.30, 0.02) 00041 00042 while timeOffset <= 0: 00043 timeOffset = random.gauss(40.0, 3.0) 00044 00045 while timeSpread <= 0: 00046 timeSpread = random.gauss(2.0, 0.2) 00047 00048 while efficiency <= 0 or efficiency > 1.0: 00049 efficiency = random.gauss(0.90, 0.05) 00050 00051 while prePulseProb <= 0 or prePulseProb >=1.0: 00052 prePulseProb = random.gauss(0.004, 0.0004) 00053 00054 while afterPulseProb <= 0 or afterPulseProb >=1.0: 00055 afterPulseProb = random.gauss(0.016, 0.0016) 00056 00057 while darkRate <= 0: 00058 darkRate = random.gauss(3000., 1000.) 00059 00060 description = makeFeeCableMap.pmtDescription(pmtId) 00061 format = "%-2d %30s %-4.3f %-4.3f %-4.2f %-4.2f %-4.3f %-4.5f %-4.4f %-4.1f" 00062 line = format % (pmtId.fullPackedData(), 00063 description, 00064 gain, 00065 sigmaGain, 00066 timeOffset, 00067 timeSpread, 00068 efficiency, 00069 prePulseProb, 00070 afterPulseProb, 00071 darkRate) 00072 #print line 00073 return line 00074 else: 00075 return "" 00076 def printPmtProperties():
def pmtSimData::printPmtProperties | ( | ) |
Definition at line 77 of file pmtSimData.py.
00077 : 00078 "Print table of PMT properties" 00079 print "# Simulation input data for pmt properties" 00080 print "# PmtId description gain sigmaGain tOffset tSpread effic prePuls afterPuls darkRate" 00081 lines = makePmtProperties() 00082 for line in lines: 00083 print line 00084 if __name__ == "__main__":