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

In This Package:

RawEventTree::TesToTreeAlg Class Reference

List of all members.

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

Detailed Description

Definition at line 27 of file RawEventTree.py.


Member Function Documentation

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 


Member Data Documentation

RawEventTree::TesToTreeAlg::HeaderList

Definition at line 32 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::cableSvc

Definition at line 42 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::firstEntry

Definition at line 47 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::tesTree

Definition at line 49 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::hasRo

Definition at line 58 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTimeSec

Definition at line 59 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTimeNanoSec

Definition at line 60 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::hasReadout

Definition at line 61 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roSite

Definition at line 62 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roDetector

Definition at line 63 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTriggerNumber

Definition at line 64 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTriggerTimeSec

Definition at line 65 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTriggerTimeNanoSec

Definition at line 66 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::nRoChannels

Definition at line 67 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::nRoTdcs

Definition at line 68 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::nRoAdcs

Definition at line 69 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::maxRoTdcs

Definition at line 70 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roBoard

Definition at line 71 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roConnector

Definition at line 72 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roTdc

Definition at line 73 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::maxRoAdcs

Definition at line 74 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roAdcClock

Definition at line 75 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roAdc

Definition at line 76 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roPed

Definition at line 77 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roAdcGain

Definition at line 78 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roRing

Definition at line 79 of file RawEventTree.py.

RawEventTree::TesToTreeAlg::roColumn

Definition at line 80 of file RawEventTree.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:14 2011 for Quickstart by doxygen 1.4.7