| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

chkIBD::__init__::plotIbdBasics Class Reference

Inheritance diagram for chkIBD::__init__::plotIbdBasics:
[legend]
Collaboration diagram for chkIBD::__init__::plotIbdBasics:
[legend]
List of all members.

Public Member Functions

def __init__
def initialize
def execute
def finalize

Public Attributes

 hist
 outputstat
 nInGdLS
 nInIAV
 nInLSO
 nInOAV
 nInMO
 nCap
 nGen
 SpillIn_onGd
 IavSpillIn_onGd
 SpillOut
 SpillIn_onH
 OavSpillIn_onH
 SpillOut_onH
 onGdCap
 onGdGdsCap
 onGdCapPassCut
 onGdGdsCapPassCut
 nPassGdCut
 onGdCapCutUncertain
 nGdCutUncertain
 onGdGdsCapCutUncertain
 nonGdPassGdCut
 onHCap
 onHCapWithinLS
 onHCapWithinLSPassCut
 onHCapWithinLSCutUncertainL
 onHCapWithinLSCutUncertainU
 nonHCapWithinLSPassHCut
 nonHCapWithinLSHCutUncertainL
 nonHCapWithinLSHCutUncertainU
 onHCapBeyondLS
 onHCapBeyondLSPassCut
 onHCapBeyondLSCutUncertainL
 onHCapBeyondLSCutUncertainU
 nonHCapBeyondLSPassHCut
 nonHCapBeyondLSHCutUncertainL
 nonHCapBeyondLSHCutUncertainU
 onHCapOavMoPassCut
 onHCapOavMoCutUncertainL
 onHCapOavMoCutUncertainU
 onHCapLS
 onHCapMO
 onHCapOAV
 onHCapPassCut
 onHCapCutUncertainL
 onHCapCutUncertainU
 nPassHCut
 nHCutUncertainL
 nHCutUncertainU
 nGdPassHCut
 nGdHCutUncertainL
 nGdHCutUncertainU
 target_de_name
 gds_de_name
 lso_de_name
 coorSvc
 histSvc
 statsSvc

Detailed Description

Definition at line 22 of file __init__.py.


Member Function Documentation

def chkIBD::__init__::plotIbdBasics::__init__ (   self,
  name 
)

Definition at line 24 of file __init__.py.

00024                            :
00025         GaudiAlgo.__init__(self,name)
00026         self.hist = {}
00027         # output file
00028         self.outputstat = open('IbdStat.txt', 'w')
00029         
00030         # Counters
00031         self.nInGdLS = 0
00032         self.nInIAV = 0
00033         self.nInLSO = 0
00034         self.nInOAV = 0
00035         self.nInMO = 0
00036         
00037         self.nCap = 0
00038         self.nGen = 0
00039         
00040         self.SpillIn_onGd = 0
00041         self.IavSpillIn_onGd = 0
00042         self.SpillOut = 0        
00043         self.SpillIn_onH = 0
00044         self.OavSpillIn_onH = 0
00045         self.SpillOut_onH = 0
00046         
00047         self.onGdCap = 0           # total on-Gd cap
00048         self.onGdGdsCap = 0        # total on-Gd cap in GDS
00049         
00050         self.onGdCapPassCut = 0    # total on-Gd cap pass Gd cut
00051         self.onGdGdsCapPassCut = 0 # total on-Gd cap in GDS pass Gd cut
00052         self.nPassGdCut = 0        # total pass Gd cut
00053 
00054         self.onGdCapCutUncertain = 0        
00055         self.nGdCutUncertain = 0
00056         self.onGdGdsCapCutUncertain = 0        
00057         
00058         self.nonGdPassGdCut = 0
00059 
00060         self.onHCap = 0
00061         self.onHCapWithinLS = 0
00062         self.onHCapWithinLSPassCut = 0
00063         self.onHCapWithinLSCutUncertainL = 0
00064         self.onHCapWithinLSCutUncertainU = 0
00065 
00066         self.nonHCapWithinLSPassHCut = 0
00067         self.nonHCapWithinLSHCutUncertainL = 0
00068         self.nonHCapWithinLSHCutUncertainU = 0
00069 
00070         self.onHCapBeyondLS = 0
00071         self.onHCapBeyondLSPassCut = 0
00072         self.onHCapBeyondLSCutUncertainL = 0
00073         self.onHCapBeyondLSCutUncertainU = 0
00074 
00075         self.nonHCapBeyondLSPassHCut = 0
00076         self.nonHCapBeyondLSHCutUncertainL = 0
00077         self.nonHCapBeyondLSHCutUncertainU = 0
00078 
00079         self.onHCapOavMoPassCut = 0
00080         self.onHCapOavMoCutUncertainL = 0
00081         self.onHCapOavMoCutUncertainU = 0
00082         self.onHCapLS = 0
00083         self.onHCapMO = 0
00084         self.onHCapOAV = 0
00085         
00086         self.onHCapPassCut = 0
00087         self.onHCapCutUncertainL = 0
00088         self.onHCapCutUncertainU = 0
00089         
00090         self.nPassHCut = 0
00091         self.nHCutUncertainL = 0
00092         self.nHCutUncertainU = 0
00093 
00094         self.nGdPassHCut = 0
00095         self.nGdHCutUncertainL = 0
00096         self.nGdHCutUncertainU = 0
00097 
00098         return
00099     
    def initialize(self):

def chkIBD::__init__::plotIbdBasics::initialize (   self  ) 

Definition at line 100 of file __init__.py.

00100                         :
00101         print "Initializing the IBD basic ploter", self.name()
00102         status = GaudiAlgo.initialize(self)
00103         if status.isFailure(): return status
00104         self.target_de_name = '/dd/Structure/AD/db-ade1/db-sst1/db-oil1'
00105         self.gds_de_name = '/dd/Structure/AD/db-gds1'
00106         self.lso_de_name = '/dd/Structure/AD/db-lso1'
00107 
00108         # What services do you need?
00109         self.coorSvc = self.svc('ICoordSysSvc', 'CoordSysSvc')
00110         if not self.coorSvc:
00111             print 'Failed to get CoordSysSvc'
00112             return FAILURE
00113 
00114 #        self.histSvc = self.svc('ITHistSvc', 'THistSvc')
00115 
00116         self.statsSvc = self.svc('IStatisticsSvc','StatisticsSvc')
00117         if self.statsSvc == None:
00118             self.error("Failed to initialize IStat service.")
00119             return FAILURE        
00120 
00121         self.hist["genRZ"] = TH2F("genRZ", "Generation Vertex R-Z",
00122                                   100, 0.0, 6.190144, 100, -2.48, 2.48)
00123         status = self.statsSvc.put('/file1/basics/genRZ', 
00124                                       self.hist["genRZ"])
00125         if status.isFailure(): return status
00126         
00127         self.hist["genXY"] = TH2F("genXY", "Generation Vertex X-Y", 
00128                                   100, -2.48, 2.48, 100, -2.48, 2.48)
00129         status = self.statsSvc.put('/file1/basics/genXY', 
00130                                       self.hist["genXY"])
00131         if status.isFailure(): return status
00132         
00133         self.hist["HitTime"] = TH1F("HitTime", "Hit Time [#mus]",
00134                                     500, 0.0, 2000)
00135         status = self.statsSvc.put('/file1/basics/HitTime', 
00136                                       self.hist["HitTime"])
00137         if status.isFailure(): return status
00138 
00139         self.hist["GdCapHitTime"] = TH1F("GdCapHitTime",
00140                                          "Gd Capture Hit Time [#mus]",
00141                                          500, 0.0, 2000)
00142         status = self.statsSvc.put('/file1/basics/GdCapHitTime', 
00143                                       self.hist["GdCapHitTime"])
00144         if status.isFailure(): return status
00145         
00146         self.hist["HCapHitTime"] = TH1F("HCapHitTime",
00147                                         "H Capture Hit Time [#mus]",
00148                                         500, 0.0, 2000)
00149         status = self.statsSvc.put('/file1/basics/HCapHitTime', 
00150                                       self.hist["HCapHitTime"])
00151         if status.isFailure(): return status
00152         
00153         self.hist["pe_E"] = TH2F("pe_E", "PE vs visible E (e+ within GdLS)",
00154                                  100, 0, 10, 700, 0, 1400)
00155         status = self.statsSvc.put('/file1/basics/pe_E', 
00156                                       self.hist["pe_E"])
00157         if status.isFailure(): return status
00158         
00159         self.hist["pe_E_inLS"] = TH2F("pe_E_inLS",
00160                                       "PE vs visible E (e+ within LS)", 
00161                                       100, 0, 10, 700, 0, 1400)
00162         status = self.statsSvc.put('/file1/basics/pe_E_inLS', 
00163                                       self.hist["pe_E_inLS"])
00164         if status.isFailure(): return status
00165 
00166         self.hist["pe_E_LS"] = TH2F("pe_E_LS",
00167                                     "PE vs visible E (e+ in LS)",
00168                                     100, 0, 10, 700, 0, 1400)
00169         status = self.statsSvc.put('/file1/basics/pe_E_LS', 
00170                                       self.hist["pe_E_LS"])
00171         if status.isFailure(): return status
00172 
00173         self.hist["pe_E_all"] = TH2F("pe_E_all", "PE vs visible E (all e+)",
00174                                      100, 0, 10, 700, 0, 1400)
00175         status = self.statsSvc.put('/file1/basics/pe_E_all', 
00176                                       self.hist["pe_E_all"])
00177         if status.isFailure(): return status
00178         
00179         self.hist["nHits_LS"] = TH1F("nHits_LS", 
00180                                      "nCap Hits in LS",
00181                                      100, 0, 1400)
00182         status = self.statsSvc.put('/file1/basics/nHits_LS', 
00183                                       self.hist["nHits_LS"])
00184         if status.isFailure(): return status
00185         
00186         self.hist["nHits_MO"] = TH1F("nHits_MO", 
00187                                      "nCap Hits in MO",
00188                                      100, 0, 1400)
00189         status = self.statsSvc.put('/file1/basics/nHits_MO', 
00190                                       self.hist["nHits_MO"])
00191         if status.isFailure(): return status
00192         
00193         self.hist["nHits_onGd"] = TH1F("nHits_onGd",
00194                                        "on-Gd nCap Hits",
00195                                        100, 0, 1400)
00196         status = self.statsSvc.put('/file1/basics/nHits_onGd', 
00197                                       self.hist["nHits_onGd"])
00198         if status.isFailure(): return status
00199         
00200         self.hist["nHits_onH"] = TH1F("nHits_onH", 
00201                                       "on-H nCap Hits", 
00202                                       100, 0, 1400)
00203         status = self.statsSvc.put('/file1/basics/nHits_onH', 
00204                                       self.hist["nHits_onH"])
00205         if status.isFailure(): return status
00206         
00207         self.hist["nHits"] = TH1F("nHits", "Neutron Capture Hits in GdLS",
00208                                   100, 0, 1400)
00209         status = self.statsSvc.put('/file1/basics/nHits', 
00210                                       self.hist["nHits"])
00211         if status.isFailure(): return status
00212         
00213         self.hist["nHits_all"] = TH1F("nHits_all", "Neutron Capture Hits",
00214                                   100, 0, 1400)
00215         status = self.statsSvc.put('/file1/basics/nHits_all', 
00216                                       self.hist["nHits_all"])
00217         if status.isFailure(): return status
00218 
00219         self.hist["nGdCapGenPos"] = TH1F("nGdCapGenPos",
00220                                          "Neutron Gd Capture Generation Position",
00221                                          310, 0, 6.190144)
00222         status = self.statsSvc.put('/file1/basics/nGdCapGenPos',
00223                                       self.hist["nGdCapGenPos"])
00224         if status.isFailure(): return status
00225         
00226         self.hist["nGdGdsCapGenPos"] = TH1F("nGdGdsCapGenPos",
00227                                             "Neutron Gd Capture in Gds Generation Position",
00228                                             310, 0, 6.190144)
00229         status = self.statsSvc.put('/file1/basics/nGdGdsCapGenPos',
00230                                       self.hist["nGdGdsCapGenPos"])
00231         if status.isFailure(): return status
00232         
00233         self.hist["nGdCapPos"] = TH3F("nGdCapPos",
00234                                       "Neutron Gd Capture Position",
00235                                       100, -2.5, 2.5,
00236                                       100, -2.5, 2.5,
00237                                       100, -2.5, 2.5)
00238         status = self.statsSvc.put('/file1/basics/nGdCapPos',
00239                                       self.hist["nGdCapPos"])
00240         if status.isFailure(): return status
00241 
00242         self.hist["nHCapGenPos"] = TH1F("nHCapGenPos",
00243                                         "Neutron H Capture Generation Position",
00244                                         310, 0, 6.190144)
00245         status = self.statsSvc.put('/file1/basics/nHCapGenPos',
00246                                       self.hist["nHCapGenPos"])
00247         if status.isFailure(): return status
00248 
00249 
00250         self.hist["nHOilCapGenPos"] = TH1F("nHOilCapGenPos",
00251                                            "Neutron H Capture Generation Position",
00252                                            310, 0, 6.190144)
00253         status = self.statsSvc.put('/file1/basics/nHOilCapGenPos',
00254                                       self.hist["nHOilCapGenPos"])
00255         if status.isFailure(): return status
00256 
00257         self.hist["nHLsoCapGenPos"] = TH1F("nHLsoCapGenPos",
00258                                            "Neutron H Capture Generation Position",
00259                                            310, 0, 6.190144)
00260         status = self.statsSvc.put('/file1/basics/nHLsoCapGenPos',
00261                                       self.hist["nHLsoCapGenPos"])
00262         if status.isFailure(): return status
00263 
00264 
00265         self.hist["eDepInGdLS"] = TH1F("eDepInGdLS", "Deposited Energy [MeV]",
00266                                        20, 0, 20)
00267         status = self.statsSvc.put('/file1/basics/eDepInGdLS', 
00268                                       self.hist["eDepInGdLS"])
00269         if status.isFailure(): return status
00270 
00271         self.hist["eDepInLS"] = TH1F("eDepInLS", "Deposited Energy [MeV]",
00272                                        20, 0, 20)
00273         status = self.statsSvc.put('/file1/basics/eDepInLS', 
00274                                       self.hist["eDepInLS"])
00275         if status.isFailure(): return status
00276 
00277         self.hist["drift_GdLS"] = TH1F("drift_GdLS",
00278                                       "Neutron Drift Distance in GdLS [cm]",
00279                                        200, 0, 50)
00280         status = self.statsSvc.put('/file1/basics/drift_GdLS', 
00281                                       self.hist["drift_GdLS"])
00282         if status.isFailure(): return status
00283 
00284         self.hist["drift_LS"] = TH1F("drift_LS",
00285                                       "Neutron Drift Distance in LS [cm]",
00286                                        200, 0, 50)
00287         status = self.statsSvc.put('/file1/basics/drift_LS', 
00288                                       self.hist["drift_LS"])
00289         if status.isFailure(): return status
00290         
00291         self.hist["time_GdLS"] = TH1F("time_GdLS",
00292                                       "Neutron Capture time in GdLS [#mus]",
00293                                        400, 0, 400)
00294         status = self.statsSvc.put('/file1/basics/time_GdLS', 
00295                                    self.hist["time_GdLS"])
00296         if status.isFailure(): return status
00297 
00298         self.hist["time_LS"] = TH1F("time_LS",
00299                                       "Neutron Capture Time in LS [#mus]",
00300                                        400, 0, 2000)
00301         status = self.statsSvc.put('/file1/basics/time_LS', 
00302                                    self.hist["time_LS"])
00303         if status.isFailure(): return status
00304 
00305         return SUCCESS
00306 
    def execute(self):

def chkIBD::__init__::plotIbdBasics::execute (   self  ) 

Definition at line 307 of file __init__.py.

00307                      :
00308         print "Executing plotIbdBasics", self.name()
00309         evt = self.evtSvc()
00310         simhdr = evt['/Event/Sim/SimHeader']
00311 #        print "SimHeader: ", simhdr
00312         if simhdr == None:
00313             print "No SimHeader in this ReadOut"
00314             return SUCCESS
00315 
00316         det = self.detSvc(self.target_de_name)
00317         det_gds = self.detSvc(self.gds_de_name)
00318         det_lso = self.detSvc(self.lso_de_name)
00319 
00320         # Unobservables
00321         statshdr = simhdr.unobservableStatistics()
00322         stats = statshdr.stats()
00323 
00324         PID_trk1 = stats["pdgId_Trk1"].sum()
00325         PID_trk2 = stats["pdgId_Trk2"].sum()
00326 
00327         if PID_trk1 != -11 or PID_trk2 != 2112:
00328             print "PID of track 1 is", PID_trk1
00329             print "PID of track 2 is", PID_trk2
00330             print "Not an IBD event."
00331             return SUCCESS
00332 
00333         tGen = stats["t_Trk2"].sum()
00334         xGen = stats["x_Trk2"].sum()
00335         yGen = stats["y_Trk2"].sum()
00336         zGen = stats["z_Trk2"].sum()
00337         
00338         tCap = stats["tEnd_Trk2"].sum()
00339         xCap = stats["xEnd_Trk2"].sum()
00340         yCap = stats["yEnd_Trk2"].sum()
00341         zCap = stats["zEnd_Trk2"].sum()
00342         
00343         # Get underlying DE object
00344         de = self.getDet(self.target_de_name)
00345         de_lso = self.getDet(self.lso_de_name)
00346         de_gds = self.getDet(self.gds_de_name)
00347         if not de:
00348             print 'Failed to get DE',self.target_de_name
00349             return FAILURE
00350         
00351         if not de_lso:
00352             print 'Failed to get DE',self.lso_de_name
00353             return FAILURE
00354         
00355         if not de_gds:
00356             print 'Failed to get DE',self.gds_de_name
00357             return FAILURE
00358         
00359         # Get the AD coordinates of the vertexes
00360         import PyCintex
00361         Gaudi = PyCintex.makeNamespace('Gaudi')
00362         genGlbPoint = Gaudi.XYZPoint(xGen, yGen, zGen)
00363         capGlbPoint = Gaudi.XYZPoint(xCap, yCap, zCap)
00364 #        point = de.geometry().toGlobal(point)
00365         genLclPoint = de.geometry().toLocal(genGlbPoint)
00366         capLclPoint = de.geometry().toLocal(capGlbPoint)
00367         genLclPointLso = de_lso.geometry().toLocal(genGlbPoint)
00368         capLclPointLso = de_lso.geometry().toLocal(capGlbPoint)
00369         genLclPointGds = de_gds.geometry().toLocal(genGlbPoint)
00370         capLclPointGds = de_gds.geometry().toLocal(capGlbPoint)
00371 #        print 'In global coordinate [',gpoint.x(),gpoint.y(),gpoint.z(),']'
00372 
00373         ndrift = ROOT.TVector3(xCap-xGen, yCap-yGen, zCap-zGen)
00374         
00375         capTime = tCap - tGen
00376         capDis = ndrift.Mag()
00377 
00378         R2 = genLclPoint.x()/units.meter * genLclPoint.x()/units.meter + \
00379             genLclPoint.y()/units.meter * genLclPoint.y()/units.meter
00380         
00381         self.hist["genRZ"].Fill(R2, genLclPoint.z()/units.meter)
00382 
00383         self.hist["genXY"].Fill(genLclPoint.x()/units.meter,genLclPoint.y()/units.meter)
00384 
00385         # Find the interesting volumes
00386         genDE = self.coorSvc.coordSysDE(genGlbPoint)
00387         capDE = self.coorSvc.coordSysDE(capGlbPoint)
00388         if not genDE:
00389             print 'Failed to find coordinate system DE for generation'\
00390                 '[',genGlbPoint.x(),genGlbPoint.y(),genGlbPoint.z(),']'
00391             print 'Local: [',genLclPoint.x(),genLclPoint.y(),genLclPoint.z(),']'
00392             return FAILURE
00393         else:
00394             self.nGen += 1
00395             gendmvol = genDE.geometry().belongsToPath(genGlbPoint,-1)
00396 
00397         if not capDE:
00398             print 'Failed to find coordinate system DE for capture'\
00399                 '[',capGlbPoint.x(),capGlbPoint.y(),capGlbPoint.z(),']'
00400             return FAILURE
00401         else:
00402             self.nCap += 1
00403             capdmvol = capDE.geometry().belongsToPath(capGlbPoint,-1)
00404 
00405         import re
00406         genDM = re.split('/', gendmvol).pop()
00407         capDM = re.split('/', capdmvol).pop()
00408         print "Generated in ", genDM
00409         print "Captured in ", capDM
00410         
00411         positronHits = 0
00412         neutronHits = 0
00413         positronTimeCut = 500.
00414 
00415         positronCut = 126.5  # 1 MeV
00416         positronCutL = 124.0 # 1 MeV
00417         positronCutR = 129.0 # 1 MeV
00418 
00419         onHLowerCut = 194.   # 1.5 MeV
00420         onHLowerCutL = 190.1 # 194 (1 - 2%)
00421         onHLowerCutR = 197.9 # 194 (1 + 2%)
00422                 
00423         onHUpperCut = 453.  # 3.5 MeV
00424         onHUpperCutL = 443.9 # 453 (1 - 2%)
00425         onHUpperCutR = 462.1 # 453 (1 + 2%)
00426 
00427         onGdCut = 811.9  # 6MeV
00428         onGdCutL = 803.8 # 811.9 (1 - 1%)
00429         onGdCutR = 820.0 # 811.9 (1 + 1%)
00430 
00431         # Visible energy
00432         vis_trk1 = 1.022 + stats['ke_Trk1'].sum()/units.MeV
00433         self.hist["pe_E_all"].Fill(vis_trk1, positronHits)
00434 
00435         # Capture target
00436         capTarget = stats["capTarget"].sum()
00437         print "The capture target is ", capTarget
00438 
00439         # Deposit energy
00440         eDepInGdLS = stats["EDepInGdLS"].sum()
00441         self.hist["eDepInGdLS"].Fill(eDepInGdLS/units.MeV)
00442         eDepInLS = stats["EDepInLS"].sum()
00443         self.hist["eDepInLS"].Fill(eDepInLS/units.MeV)
00444         
00445         simhits = simhdr.hits()
00446         for detector in simhits.hitDetectors():
00447             hitCollection = simhits.hitsByDetector(detector)
00448             if hitCollection == None:
00449                 print "No hits in ", detector
00450             hits = hitCollection.collection()
00451             for hit in hits:
00452 #                print " PMT", hit.sensDetId(), "hit @ time: ", hit.hitTime()
00453                 self.hist["HitTime"].Fill(hit.hitTime()/units.microsecond)
00454                 if capTarget == 1:
00455                     self.hist["HCapHitTime"].Fill(hit.hitTime()/units.microsecond)
00456                 if capTarget == 64:
00457                     self.hist["GdCapHitTime"].Fill(hit.hitTime()/units.microsecond)
00458                 if hit.hitTime()/units.nanosecond<positronTimeCut and \
00459                         hit.hitTime()/units.nanosecond<capTime/units.nanosecond:
00460                     positronHits += 1
00461                 else:
00462                     neutronHits += 1
00463 
00464         self.hist["nHits_all"].Fill(neutronHits)
00465 
00466         if genDM == 'db-gds1':
00467             self.nInGdLS += 1
00468             self.hist["pe_E"].Fill(vis_trk1, positronHits)
00469             if capDM == 'db-gds1':
00470                 self.hist["nHits"].Fill(neutronHits)
00471                 self.hist["time_GdLS"].Fill(capTime/units.microsecond)
00472                 self.hist["drift_GdLS"].Fill(capDis/units.cm)
00473             else:
00474                 self.SpillOut += 1
00475                 
00476         if genDM == 'db-iav1':
00477             self.nInIAV += 1
00478             if capTarget == 64:
00479                 self.IavSpillIn_onGd += 1
00480 
00481         if genDM == 'db-lso1':
00482             self.nInLSO += 1
00483             self.hist["pe_E_LS"].Fill(vis_trk1, positronHits)
00484             if capDM == 'db-lso1':
00485                 self.hist["time_LS"].Fill(capTime/units.microsecond)
00486                 self.hist["drift_LS"].Fill(capDis/units.cm)
00487             if capDM == 'db-oil1' or capDM == 'db-oav1':
00488                 self.SpillOut_onH += 1
00489             if capTarget == 64:
00490                 self.SpillIn_onGd += 1
00491 
00492         if genDM == 'db-oav1':
00493             self.nInOAV += 1
00494             if re.search('db-lso1', capdmvol) and capTarget == 1:
00495                 self.OavSpillIn_onH += 1
00496                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00497                     self.onHCapOavMoPassCut += 1
00498                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00499                     self.onHCapOavMoCutUncertainL += 1
00500                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00501                     self.onHCapOavMoCutUncertainU += 1
00502 
00503         if genDM == 'db-oil1':
00504             self.nInMO  += 1
00505             if re.search('db-lso1', capdmvol) and capTarget == 1:
00506                 self.SpillIn_onH += 1
00507                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00508                     self.onHCapOavMoPassCut += 1
00509                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00510                     self.onHCapOavMoCutUncertainL += 1
00511                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00512                     self.onHCapOavMoCutUncertainU += 1
00513 
00514         if re.search('db-lso1',gendmvol):
00515             self.hist["pe_E_inLS"].Fill(vis_trk1, positronHits)
00516 
00517         if re.search('db-lso1',capdmvol):
00518             if capTarget == 1:
00519                 self.onHCapWithinLS += 1
00520                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00521                     self.onHCapWithinLSPassCut += 1
00522                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00523                     self.onHCapWithinLSCutUncertainL += 1
00524                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00525                     self.onHCapWithinLSCutUncertainU += 1
00526             else:
00527                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00528                     self.nonHCapWithinLSPassHCut += 1
00529                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00530                     self.nonHCapWithinLSHCutUncertainL += 1
00531                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00532                     self.nonHCapWithinLSHCutUncertainU += 1
00533                 
00534         else:
00535             if capTarget == 1:
00536                 self.onHCapBeyondLS += 1
00537                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00538                     self.onHCapBeyondLSPassCut += 1
00539                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00540                     self.onHCapBeyondLSCutUncertainL += 1
00541                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00542                     self.onHCapBeyondLSCutUncertainU += 1
00543             else:
00544                 if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00545                     self.nonHCapBeyondLSPassHCut += 1
00546                 if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00547                     self.nonHCapBeyondLSHCutUncertainL += 1
00548                 if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00549                     self.nonHCapBeyondLSHCutUncertainU += 1
00550             
00551         # Passing on-Gd neutron cuts
00552         if neutronHits > onGdCut:
00553             self.nPassGdCut += 1
00554             if capTarget != 64:
00555                 print "non-Gd capture pass Gd cut: ", capTarget
00556                 self.nonGdPassGdCut += 1
00557                 value = ('Non-Gd capTarget: ', capTarget)
00558                 theline = str(value)
00559                 self.outputstat.write(theline)
00560                 self.outputstat.write('\n')
00561                 
00562         if neutronHits > onGdCutL and neutronHits < onGdCutR:
00563             self.nGdCutUncertain += 1
00564 
00565         # Passing on-H neutron cuts
00566         if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00567             self.nPassHCut += 1
00568             if capTarget == 64:
00569                 self.nGdPassHCut += 1
00570         if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00571             self.nHCutUncertainL += 1
00572             if capTarget == 64:
00573                 self.nGdHCutUncertainL += 1                
00574         if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00575             self.nHCutUncertainU += 1
00576             if capTarget == 64:
00577                 self.nGdHCutUncertainU += 1
00578         
00579         if capTarget == 64:
00580             self.onGdCap += 1
00581             self.hist["nHits_onGd"].Fill(neutronHits)
00582             self.hist["nGdCapPos"].Fill(capLclPoint.x()/units.meter,capLclPoint.y()/units.meter,capLclPoint.z()/units.meter)            
00583             if capDM == 'db-gds1':
00584                 self.onGdGdsCap += 1
00585                 if neutronHits > onGdCut:
00586                     self.onGdGdsCapPassCut += 1
00587                 if neutronHits > onGdCutL and neutronHits < onGdCutR:
00588                     self.onGdGdsCapCutUncertain += 1
00589 
00590             if genLclPoint.z()/units.m < 1. and genLclPoint.z()/units.m > -1.:
00591                 self.hist["nGdCapGenPos"].Fill(R2)
00592                 if capDM == 'db-gds1':
00593                     self.hist["nGdGdsCapGenPos"].Fill(R2)
00594                     
00595             if neutronHits > onGdCut:
00596                 self.onGdCapPassCut += 1
00597             if neutronHits > onGdCutL and neutronHits < onGdCutR:
00598                 self.onGdCapCutUncertain += 1
00599             
00600         if capTarget == 1:
00601             self.onHCap += 1
00602             self.hist["nHits_onH"].Fill(neutronHits)
00603             
00604             if genLclPoint.z()/units.m < 1. and genLclPoint.z()/units.m > -1.:
00605                 self.hist["nHCapGenPos"].Fill(R2)
00606                 if capDM == 'db-lso1':
00607                     self.hist["nHLsoCapGenPos"].Fill(R2)
00608                 if capDM == 'db-oil1' or capDM == 'db-oav1':
00609                     self.hist["nHOilCapGenPos"].Fill(R2)
00610                     
00611             if neutronHits > onHLowerCut and neutronHits < onHUpperCut:
00612                 self.onHCapPassCut += 1
00613             if neutronHits > onHLowerCutL and neutronHits < onHLowerCutR:
00614                 self.onHCapCutUncertainL += 1
00615             if neutronHits > onHUpperCutL and neutronHits < onHUpperCutR:
00616                 self.onHCapCutUncertainU += 1
00617 
00618         if capDM == 'db-lso1':
00619             self.hist["nHits_LS"].Fill(neutronHits)
00620             if capTarget == 1:
00621                 self.onHCapLS += 1
00622                 
00623         if capDM == 'db-oav1':
00624             if capTarget == 1:
00625                 self.onHCapOAV += 1
00626                 
00627         if capDM == 'db-oil1':
00628             self.hist["nHits_MO"].Fill(neutronHits)
00629             if capTarget == 1:
00630                 self.onHCapMO += 1
00631 
00632         return SUCCESS
00633     
    def finalize(self):

def chkIBD::__init__::plotIbdBasics::finalize (   self  ) 

Definition at line 634 of file __init__.py.

00634                       :
00635         self.outputstat.close()
00636 
00637         print "Total n generation: ", self.nGen
00638         print "Total n gen in GdLS: ", self.nInGdLS
00639         print "Total n gen in IAV: ", self.nInIAV
00640         print "Total n gen in LSO: ", self.nInLSO
00641         print "Total n gen in OAV: ", self.nInOAV
00642         print "Total n gen in MO: ", self.nInMO
00643         print "Total n capture: ", self.nCap
00644         print ""
00645         
00646         print "Total n-capture on Gd: ", self.onGdCap
00647         print "Total n-capture on Gd in Gds: ", self.onGdGdsCap
00648         print "Spill-In on Gd n from LS: ", self.SpillIn_onGd
00649         print "Spill-In on Gd from IAV: ", self.IavSpillIn_onGd
00650         print "Spill-Out of n from Gd-LS: ", self.SpillOut
00651         print ""
00652         
00653         print "On Gd capture pass on-Gd cut: ", self.onGdCapPassCut
00654         print "On Gd capture on-Gd cut uncertainty: ", self.onGdCapCutUncertain
00655         print "On Gd capture in GDS pass on-Gd cut: ", self.onGdGdsCapPassCut
00656         print "On Gd capture in GDS on-Gd cut uncertainty: ", self.onGdGdsCapCutUncertain
00657         print "Total non-Gd capture pass Gd cut: ", self.nonGdPassGdCut
00658         print "Total pass Gd cut: ", self.nPassGdCut
00659         print "Overall Gd cut uncertainty: ", self.nGdCutUncertain
00660         print ""
00661         
00662         print "Total n-capture on H: ", self.onHCap
00663         print "Total n-capture on H in LS: ", self.onHCapLS
00664         print "Total n-capture on H within LS: ", self.onHCapWithinLS
00665         print ""
00666         
00667         print "Spill-In of n from OIL to LSO: ", self.SpillIn_onH
00668         print "Spill-In of n from OAV to LSO: ", self.OavSpillIn_onH
00669         print "Spill-Out of n from LSO to OAV or OIL: ", self.SpillOut_onH
00670         print ""
00671         
00672         print "n capture pass on-H cut: ", self.nPassHCut
00673         print "n capture pass lower on-H cut uncertainty: ", self.nHCutUncertainL
00674         print "n capture pass upper on-H cut uncertainty: ", self.nHCutUncertainU
00675         print ""
00676 
00677         print "On H capture pass on-H cut: ", self.onHCapPassCut
00678         print "On H capture lower on-H cut uncertainty: ", self.onHCapCutUncertainL
00679         print "On H capture upper on-H cut uncertainty: ", self.onHCapCutUncertainU
00680         print ""
00681         
00682         print "on H nCap within LS pass H cut: ", self.onHCapWithinLSPassCut
00683         print "on H nCap within LS pass lower H cut uncertainty: ", self.onHCapWithinLSCutUncertainL
00684         print "on H nCap within LS pass upper H cut uncertainty: ", self.onHCapWithinLSCutUncertainU
00685         print ""
00686 
00687         print "non H nCap within LS pass H cut: ", self.nonHCapWithinLSPassHCut
00688         print "non H nCap within LS pass lower H cut uncertainty: ", self.nonHCapWithinLSHCutUncertainL
00689         print "non H nCap within LS pass upper H cut uncertainty: ", self.nonHCapWithinLSHCutUncertainU
00690         print ""
00691 
00692         print "on H nCap beyond LS pass on-H cut: ", self.onHCapBeyondLSPassCut
00693         print "on H nCap beyond LS pass lower on-H cut uncertainty: ", self.onHCapBeyondLSCutUncertainL
00694         print "on H nCap bdyond LS pass upper on-H cut uncertainty: ", self.onHCapBeyondLSCutUncertainU
00695         print ""
00696 
00697         print "non H nCap beyond LS pass H cut: ", self.nonHCapBeyondLSPassHCut
00698         print "non H nCap beyond LS pass lower H cut uncertainty: ", self.nonHCapBeyondLSHCutUncertainL
00699         print "non H nCap beyond LS pass upper H cut uncertainty: ", self.nonHCapBeyondLSHCutUncertainU
00700         print ""
00701 
00702         print "On Gd capture pass on-H cut: ", self.nGdPassHCut
00703         print "On Gd capture pass lower on-H cut uncertainty: ", self.nGdHCutUncertainL
00704         print "On Gd capture pass upper on-H cut uncertainty: ", self.nGdHCutUncertainU
00705         print ""
00706 
00707         print "Total n-capture on H in MO: ", self.onHCapMO
00708         print "Total n-capture on H in OAV: ", self.onHCapOAV
00709         print "on H nCap in OAV&MO pass on-H cut: ", self.onHCapOavMoPassCut
00710         print "on H nCap in OAV&MO pass lower on-H cut uncertainty: ", self.onHCapOavMoCutUncertainL
00711         print "on H nCap in OAV&MO pass upper on-H cut uncertainty: ", self.onHCapOavMoCutUncertainU
00712         print ""
00713 
00714         print "Finalizing ", self.name()
00715         status = GaudiAlgo.finalize(self)
00716         return status
00717 
def configure():


Member Data Documentation

chkIBD::__init__::plotIbdBasics::hist

Definition at line 26 of file __init__.py.

chkIBD::__init__::plotIbdBasics::outputstat

Definition at line 28 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nInGdLS

Definition at line 31 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nInIAV

Definition at line 32 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nInLSO

Definition at line 33 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nInOAV

Definition at line 34 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nInMO

Definition at line 35 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nCap

Definition at line 37 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nGen

Definition at line 38 of file __init__.py.

chkIBD::__init__::plotIbdBasics::SpillIn_onGd

Definition at line 40 of file __init__.py.

chkIBD::__init__::plotIbdBasics::IavSpillIn_onGd

Definition at line 41 of file __init__.py.

chkIBD::__init__::plotIbdBasics::SpillOut

Definition at line 42 of file __init__.py.

chkIBD::__init__::plotIbdBasics::SpillIn_onH

Definition at line 43 of file __init__.py.

chkIBD::__init__::plotIbdBasics::OavSpillIn_onH

Definition at line 44 of file __init__.py.

chkIBD::__init__::plotIbdBasics::SpillOut_onH

Definition at line 45 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdCap

Definition at line 47 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdGdsCap

Definition at line 48 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdCapPassCut

Definition at line 50 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdGdsCapPassCut

Definition at line 51 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nPassGdCut

Definition at line 52 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdCapCutUncertain

Definition at line 54 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nGdCutUncertain

Definition at line 55 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onGdGdsCapCutUncertain

Definition at line 56 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonGdPassGdCut

Definition at line 58 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCap

Definition at line 60 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapWithinLS

Definition at line 61 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapWithinLSPassCut

Definition at line 62 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapWithinLSCutUncertainL

Definition at line 63 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapWithinLSCutUncertainU

Definition at line 64 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapWithinLSPassHCut

Definition at line 66 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapWithinLSHCutUncertainL

Definition at line 67 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapWithinLSHCutUncertainU

Definition at line 68 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapBeyondLS

Definition at line 70 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapBeyondLSPassCut

Definition at line 71 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapBeyondLSCutUncertainL

Definition at line 72 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapBeyondLSCutUncertainU

Definition at line 73 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapBeyondLSPassHCut

Definition at line 75 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapBeyondLSHCutUncertainL

Definition at line 76 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nonHCapBeyondLSHCutUncertainU

Definition at line 77 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapOavMoPassCut

Definition at line 79 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapOavMoCutUncertainL

Definition at line 80 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapOavMoCutUncertainU

Definition at line 81 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapLS

Definition at line 82 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapMO

Definition at line 83 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapOAV

Definition at line 84 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapPassCut

Definition at line 86 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapCutUncertainL

Definition at line 87 of file __init__.py.

chkIBD::__init__::plotIbdBasics::onHCapCutUncertainU

Definition at line 88 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nPassHCut

Definition at line 90 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nHCutUncertainL

Definition at line 91 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nHCutUncertainU

Definition at line 92 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nGdPassHCut

Definition at line 94 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nGdHCutUncertainL

Definition at line 95 of file __init__.py.

chkIBD::__init__::plotIbdBasics::nGdHCutUncertainU

Definition at line 96 of file __init__.py.

chkIBD::__init__::plotIbdBasics::target_de_name

Definition at line 104 of file __init__.py.

chkIBD::__init__::plotIbdBasics::gds_de_name

Definition at line 105 of file __init__.py.

chkIBD::__init__::plotIbdBasics::lso_de_name

Definition at line 106 of file __init__.py.

chkIBD::__init__::plotIbdBasics::coorSvc

Definition at line 109 of file __init__.py.

chkIBD::__init__::plotIbdBasics::histSvc

Definition at line 114 of file __init__.py.

chkIBD::__init__::plotIbdBasics::statsSvc

Definition at line 116 of file __init__.py.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:11:56 2011 for MDC09a by doxygen 1.4.7