Public Member Functions | |
def | __init__ |
def | initialize |
def | initReadoutHeader |
def | execute |
def | writeReadoutHeader |
def | finalize |
Public Attributes | |
HeaderList | |
cableSvc | |
firstEntry | |
tesTree | |
hasRo | |
roTimeSec | |
roTimeNanoSec | |
hasReadout | |
roSite | |
roDetector | |
roTriggerNumber | |
roTriggerTimeSec | |
roTriggerTimeNanoSec | |
nRoChannels | |
nRoTdcs | |
nRoAdcs | |
maxRoTdcs | |
roBoard | |
roConnector | |
roTdc | |
maxRoAdcs | |
roAdcClock | |
roAdc | |
roPed | |
roAdcGain | |
roRing | |
roColumn |
Definition at line 27 of file RawEventTree.py.
def RawEventTree::TesToTreeAlg::__init__ | ( | self, | ||
name | ||||
) |
Definition at line 29 of file RawEventTree.py.
00029 : 00030 DybPythonAlg.__init__(self,name) 00031 # List of headers in output tree 00032 self.HeaderList = ["Readout"] 00033 return 00034 def initialize(self):
def RawEventTree::TesToTreeAlg::initialize | ( | self | ) |
Definition at line 35 of file RawEventTree.py.
00035 : 00036 status = DybPythonAlg.initialize(self) 00037 if status.isFailure(): return status 00038 self.info("initialize") 00039 00040 # Cable Service: This service provides a mapping between 00041 # electronics channels and pmts in the detector. 00042 self.cableSvc = self.svc('ICableSvc','StaticCableSvc') 00043 if self.cableSvc == None: 00044 self.error("Failed to get StaticCableSvc") 00045 return FAILURE 00046 00047 self.firstEntry = True 00048 00049 self.tesTree= TTree("eventTree","Event data converted to ROOT Tree") 00050 00051 self.initReadoutHeader() 00052 00053 self.stats['/file0/event/eventTree'] = self.tesTree 00054 return SUCCESS 00055 def initReadoutHeader(self):
def RawEventTree::TesToTreeAlg::initReadoutHeader | ( | self | ) |
Definition at line 56 of file RawEventTree.py.
00056 : 00057 # ReadoutEvent Data 00058 self.hasRo = array('i',[0]) 00059 self.roTimeSec = array('i',[0]) 00060 self.roTimeNanoSec = array('i',[0]) 00061 self.hasReadout = array('i',[0]) 00062 self.roSite = array('i',[0]) 00063 self.roDetector = array('i',[0]) 00064 self.roTriggerNumber = array('i',[0]) 00065 self.roTriggerTimeSec = array('i',[0]) 00066 self.roTriggerTimeNanoSec = array('i',[0]) 00067 self.nRoChannels = array('i',[0]) 00068 self.nRoTdcs = array('i',[0]) 00069 self.nRoAdcs = array('i',[0]) 00070 self.maxRoTdcs = 4096 00071 self.roBoard = array('i',self.maxRoTdcs*[0]) 00072 self.roConnector = array('i',self.maxRoTdcs*[0]) 00073 self.roTdc = array('i',self.maxRoTdcs*[0]) 00074 self.maxRoAdcs = 4096 00075 self.roAdcClock = array('i',self.maxRoAdcs*[0]) 00076 self.roAdc = array('i',self.maxRoAdcs*[0]) 00077 self.roPed = array('i',self.maxRoAdcs*[0]) 00078 self.roAdcGain = array('i',self.maxRoAdcs*[0]) 00079 self.roRing = array('i',self.maxRoTdcs*[0]) 00080 self.roColumn = array('i',self.maxRoTdcs*[0]) 00081 00082 self.tesTree.Branch('hasReadoutHeader',self.hasRo,'hasReadoutHeader/I') 00083 self.tesTree.Branch('roTimeSec',self.roTimeSec,'roTimeSec/I') 00084 self.tesTree.Branch('roTimeNanoSec',self.roTimeNanoSec, 00085 'roTimeNanoSec/I') 00086 self.tesTree.Branch('hasReadout',self.hasReadout,'hasReadout/I') 00087 self.tesTree.Branch('site',self.roSite,'site/I') 00088 self.tesTree.Branch('detector',self.roDetector,'detector/I') 00089 self.tesTree.Branch('triggerNumber',self.roTriggerNumber, 00090 'triggerNumber/I') 00091 self.tesTree.Branch('triggerTimeSec',self.roTriggerTimeSec, 00092 'triggerTimeSec/I') 00093 self.tesTree.Branch('triggerTimeNanoSec',self.roTriggerTimeNanoSec, 00094 'triggerTimeNanoSec/I') 00095 self.tesTree.Branch('nChannels',self.nRoChannels,'nChannels/I') 00096 self.tesTree.Branch('nTdcs',self.nRoTdcs,'nTdcs/I') 00097 self.tesTree.Branch('nAdcs',self.nRoAdcs,'nAdcs/I') 00098 self.tesTree.Branch('board',self.roBoard,'board[nTdcs]/I') 00099 self.tesTree.Branch('connector',self.roConnector, 00100 'connector[nTdcs]/I') 00101 self.tesTree.Branch('tdc',self.roTdc,'tdc[nTdcs]/I') 00102 self.tesTree.Branch('adcClock',self.roAdcClock, 00103 'adcClock[nAdcs]/I') 00104 self.tesTree.Branch('adcGain',self.roAdcGain, 00105 'adcGain[nAdcs]/I') 00106 self.tesTree.Branch('adc',self.roAdc,'adc[nAdcs]/I') 00107 self.tesTree.Branch('ped',self.roPed,'ped[nAdcs]/I') 00108 self.tesTree.Branch('ring',self.roRing,'ring[nTdcs]/I') 00109 self.tesTree.Branch('column',self.roColumn, 00110 'column[nTdcs]/I') 00111 def execute(self):
def RawEventTree::TesToTreeAlg::execute | ( | self | ) |
Definition at line 112 of file RawEventTree.py.
00112 : 00113 self.info("executing") 00114 00115 self.writeReadoutHeader() 00116 00117 self.tesTree.Fill() 00118 self.firstEntry = False 00119 return SUCCESS 00120 def writeReadoutHeader(self):
def RawEventTree::TesToTreeAlg::writeReadoutHeader | ( | self | ) |
Definition at line 121 of file RawEventTree.py.
00121 : 00122 # ReadoutEvent Data 00123 self.hasRo[0] = 0 00124 self.roTimeSec[0] = 0 00125 self.roTimeNanoSec[0] = 0 00126 self.hasReadout[0] = 0 00127 self.roSite[0] = 0 00128 self.roDetector[0] = 0 00129 self.roTriggerNumber[0] = 0 00130 self.roTriggerTimeSec[0] = 0 00131 self.roTriggerTimeNanoSec[0] = 0 00132 self.nRoChannels[0] = 0 00133 self.nRoTdcs[0] = 0 00134 self.nRoAdcs[0] = 0 00135 00136 evt = self.evtSvc() 00137 # ReadoutEvent Data 00138 roHdr = evt["/Event/Readout/ReadoutHeader"] 00139 if roHdr != None: 00140 self.hasRo[0] = 1 00141 self.roTimeSec[0] = roHdr.timeStamp().GetSec() 00142 self.roTimeNanoSec[0] = roHdr.timeStamp().GetNanoSec() 00143 svcMode = ServiceMode( roHdr.context(), 0 ) 00144 readout = roHdr.readout() 00145 if readout != None: 00146 self.hasReadout[0] = 1 00147 self.roSite[0] = readout.detector().site() 00148 detId = readout.detector().detectorId() 00149 self.roDetector[0] = detId 00150 self.roTriggerNumber[0] = readout.triggerNumber() 00151 trigTime = readout.triggerTime() 00152 self.roTriggerTimeSec[0] = trigTime.GetSec() 00153 self.roTriggerTimeNanoSec[0] = trigTime.GetNanoSec() 00154 if (detId == DetectorId.kAD1 or 00155 detId == DetectorId.kAD2 or 00156 detId == DetectorId.kAD3 or 00157 detId == DetectorId.kAD4): 00158 nRoChannels = 0 00159 nRoTdcs = 0 00160 nRoAdcs = 0 00161 for channelPair in readout.channelReadout(): 00162 channel = channelPair.second 00163 chanId = channel.channelId() 00164 for tdcIdx in range( channel.size() ): 00165 self.roBoard[nRoTdcs] = chanId.board() 00166 self.roConnector[nRoTdcs] = chanId.connector() 00167 self.roTdc[nRoTdcs] = channel.tdc( tdcIdx ) 00168 self.roAdc[nRoAdcs] = channel.adc( tdcIdx ) 00169 self.roPed[nRoAdcs] = channel.pedestal( tdcIdx ) 00170 self.roAdcGain[nRoAdcs] = channel.adcRange( tdcIdx ) 00171 self.roAdcClock[nRoAdcs] = channel.adcCycle( tdcIdx ) 00172 # PMT Ring and Column 00173 pmtId = self.cableSvc.adPmtSensor(chanId, svcMode) 00174 self.roRing[nRoTdcs] = pmtId.ring() 00175 self.roColumn[nRoTdcs] = pmtId.column() 00176 nRoTdcs += 1 00177 nRoAdcs += 1 00178 nRoChannels += 1 00179 self.nRoChannels[0] = nRoChannels 00180 self.nRoTdcs[0] = nRoTdcs 00181 self.nRoAdcs[0] = nRoAdcs 00182 return 00183 def finalize(self):
def RawEventTree::TesToTreeAlg::finalize | ( | self | ) |
Definition at line 184 of file RawEventTree.py.
00184 : 00185 self.info("finalizing") 00186 status = DybPythonAlg.finalize(self) 00187 return status 00188
Definition at line 32 of file RawEventTree.py.
Definition at line 42 of file RawEventTree.py.
Definition at line 47 of file RawEventTree.py.
Definition at line 49 of file RawEventTree.py.
Definition at line 58 of file RawEventTree.py.
Definition at line 59 of file RawEventTree.py.
Definition at line 60 of file RawEventTree.py.
Definition at line 61 of file RawEventTree.py.
Definition at line 62 of file RawEventTree.py.
Definition at line 63 of file RawEventTree.py.
Definition at line 64 of file RawEventTree.py.
Definition at line 65 of file RawEventTree.py.
Definition at line 66 of file RawEventTree.py.
Definition at line 67 of file RawEventTree.py.
Definition at line 68 of file RawEventTree.py.
Definition at line 69 of file RawEventTree.py.
Definition at line 70 of file RawEventTree.py.
Definition at line 71 of file RawEventTree.py.
Definition at line 72 of file RawEventTree.py.
Definition at line 73 of file RawEventTree.py.
Definition at line 74 of file RawEventTree.py.
Definition at line 75 of file RawEventTree.py.
Definition at line 76 of file RawEventTree.py.
Definition at line 77 of file RawEventTree.py.
Definition at line 78 of file RawEventTree.py.
Definition at line 79 of file RawEventTree.py.
Definition at line 80 of file RawEventTree.py.