Public Member Functions | |
def | __init__ |
def | initialize |
def | execute |
def | finalize |
Public Attributes | |
cableSvc |
Definition at line 25 of file ACUNeutronCapturePosition.py.
def ACUNeutronCapturePosition::CapturePositionAlg::__init__ | ( | self, | ||
name | ||||
) |
Definition at line 26 of file ACUNeutronCapturePosition.py.
00026 : 00027 DybPythonAlg.__init__(self,name) 00028 return 00029 def initialize(self):
def ACUNeutronCapturePosition::CapturePositionAlg::initialize | ( | self | ) |
Definition at line 30 of file ACUNeutronCapturePosition.py.
00030 : 00031 status = DybPythonAlg.initialize(self) 00032 if status.isFailure(): return status 00033 self.info("initializing") 00034 00035 self.cableSvc = self.svc('ICableSvc','StaticCableSvc') 00036 if self.cableSvc == None: 00037 self.error("Failed to get StaticCableSvc") 00038 return FAILURE 00039 00040 # Make position histograms 00041 hist = TH2F("CapturePosition","Captured Particle z vs x", 00042 500,-2500.0,2500.0, 500, 1500.0, 4500.0) 00043 hist.GetXaxis().SetTitle("x [mm]") 00044 hist.GetYaxis().SetTitle("z [mm]") 00045 self.stats["/file0/position/CapturePositionAll"] = hist 00046 00047 00048 hist = TH2F("CapturePosition","Captured Particle z vs x", 00049 500,-2500.0,2500.0, 500, 1500.0 , 4500.0) 00050 hist.GetXaxis().SetTitle("x [mm]") 00051 hist.GetYaxis().SetTitle("z [mm]") 00052 self.stats["/file0/position/CapturePosition"] = hist 00053 00054 hist = TH2F("CapturePosition","Capture Position for particles with E > 6MeV " 00055 ,500,-2500.0,2500.0, 500, 1500.0 , 4500.0) 00056 hist.GetXaxis().SetTitle("x [mm]") 00057 hist.GetYaxis().SetTitle("z [mm]") 00058 self.stats["/file0/position/CapturePosition6MeV"] = hist 00059 00060 hist = TH2F("Reconstructed Position","Energy range 0~2MeV" 00061 ,500, -2500.0, 2500.0, 500, -500.0, 3500.0) 00062 hist.GetXaxis().SetTitle("x [mm]") 00063 hist.GetYaxis().SetTitle("z [mm]") 00064 self.stats["/file0/position/ReconPosition1"] = hist 00065 00066 hist = TH2F("Reconstructed Position","Energy range 2~4MeV" 00067 ,500, -2500.0, 2500.0, 500, -500.0, 3500.0) 00068 hist.GetXaxis().SetTitle("x [mm]") 00069 hist.GetYaxis().SetTitle("z [mm]") 00070 self.stats["/file0/position/ReconPosition2"] = hist 00071 00072 hist = TH2F("Reconstructed Position","Energy range 4~6MeV" 00073 ,500, -2500.0, 2500.0, 500, -500.0, 3500.0) 00074 hist.GetXaxis().SetTitle("x [mm]") 00075 hist.GetYaxis().SetTitle("z [mm]") 00076 self.stats["/file0/position/ReconPosition3"] = hist 00077 00078 hist = TH2F("Reconstructed Position","Energy range 6~8MeV" 00079 ,500, -2500.0, 2500.0, 500, -500.0, 3500.0) 00080 hist.GetXaxis().SetTitle("x [mm]") 00081 hist.GetYaxis().SetTitle("z [mm]") 00082 self.stats["/file0/position/ReconPosition4"] = hist 00083 00084 hist = TH2F("Reconstructed Position","Energy range > 8 MeV" 00085 ,500, -2500.0, 2500.0, 500, -500.0, 3500.0) 00086 hist.GetXaxis().SetTitle("x [mm]") 00087 hist.GetYaxis().SetTitle("z [mm]") 00088 self.stats["/file0/position/ReconPosition5"] = hist 00089 00090 hist = TH1F("reconEnergy", "Reconstructed Energy",500,0.0,10.0) 00091 hist.GetXaxis().SetTitle("E (MeV)") 00092 hist.GetYaxis().SetTitle("Events") 00093 self.stats["/file0/energy/ReconEnergy"] = hist 00094 00095 return SUCCESS 00096 def execute(self):
def ACUNeutronCapturePosition::CapturePositionAlg::execute | ( | self | ) |
Definition at line 97 of file ACUNeutronCapturePosition.py.
00097 : 00098 self.info("executing") 00099 evt = self.evtSvc() 00100 00101 #The Capture Position of the Particles that Generate Signals in AD 00102 simHdr = evt["/Event/Sim/SimHeader"] 00103 if simHdr == None: 00104 self.error("Failed to get SimHeader") 00105 return FAILURE 00106 statsHdr = simHdr.unobservableStatistics() 00107 simStats = statsHdr.stats() 00108 00109 x1 = simStats["xEnd_Trk1"].sum() 00110 y1 = simStats["yEnd_Trk1"].sum() 00111 z1 = simStats["zEnd_Trk1"].sum() 00112 00113 globalPos1 = XYZPoint(x1, y1, z1) 00114 ad1 = self.detSvc("/dd/Structure/AD/db-oil1") 00115 localPos1 = ad1.geometry().toLocal(globalPos1) 00116 cx = localPos1.x() 00117 cz = localPos1.z() 00118 self.stats["/file0/position/CapturePositionAll"].Fill(cx,cz) 00119 00120 recHdr = evt["/Event/Rec/RecHeader"] 00121 if recHdr == None: 00122 self.error("Failed to get RecHeader") 00123 return FAILURE 00124 recResults = recHdr.recResults() 00125 recTrigger = recResults["AdSimple"] 00126 if recTrigger.positionStatus() == ReconStatus.kGood: 00127 reconPos = recTrigger.position() 00128 rx = reconPos.x() 00129 rz = reconPos.z() 00130 self.stats["/file0/position/CapturePosition"].Fill(cx,cz) 00131 00132 if recTrigger.energyStatus() == ReconStatus.kGood: 00133 reconEnergy = recTrigger.energy() 00134 self.stats["/file0/energy/ReconEnergy"].Fill(reconEnergy) 00135 if ((reconEnergy >= 0) & (reconEnergy < 2)): 00136 self.stats["/file0/position/ReconPosition1"].Fill(rx,rz) 00137 00138 if ((reconEnergy >= 2) & (reconEnergy < 4)) : 00139 self.stats["/file0/position/ReconPosition2"].Fill(rx,rz) 00140 00141 if ((reconEnergy >= 4) & (reconEnergy < 6)) : 00142 self.stats["/file0/position/ReconPosition3"].Fill(rx,rz) 00143 00144 if ((reconEnergy >= 6) & (reconEnergy < 8)) : 00145 self.stats["/file0/position/ReconPosition4"].Fill(rx,rz) 00146 self.stats["/file0/position/CapturePosition6MeV"].Fill(cx,cz) 00147 if reconEnergy >= 8 : 00148 self.stats["/file0/position/ReconPosition5"].Fill(rx,rz) 00149 self.stats["/file0/position/CapturePosition6MeV"].Fill(cx,cz) 00150 00151 return SUCCESS 00152 def finalize(self):
def ACUNeutronCapturePosition::CapturePositionAlg::finalize | ( | self | ) |
Definition at line 153 of file ACUNeutronCapturePosition.py.
00153 : 00154 self.info("finalizing") 00155 status = DybPythonAlg.finalize(self) 00156 return status 00157 00158 ##### Job Configuration for nuwa.py ########################################
Definition at line 35 of file ACUNeutronCapturePosition.py.