Public Member Functions | |
def | __apply_configuration__ |
Static Public Attributes | |
list | KnownDigiTypes = ['Minimal','Default','Extended'] |
Private Member Functions | |
def | _doWrite |
def | _defineOutputData |
def | _doWritePOOL |
Static Private Attributes | |
dictionary | __slots__ |
dictionary | _propertyDocDct |
Definition at line 10 of file DigiConf.py.
def DigiConf::DigiConf::_doWrite | ( | self | ) | [private] |
Define the file content and write it out
Definition at line 29 of file DigiConf.py.
00029 : 00030 """ 00031 Define the file content and write it out 00032 """ 00033 if self.getProp( "Writer" ) == "NONE": 00034 log.info( "No Writer defined for DIGI" ) 00035 return 00036 00037 dType = self.getProp( "DigiType" ).capitalize() 00038 if dType not in self.KnownDigiTypes: 00039 raise TypeError( "Unknown DIGI type '%s'"%dType ) 00040 00041 items = [] 00042 optItems = [] 00043 self._defineOutputData( dType, items, optItems ) 00044 00045 self._doWritePOOL( dType, items, optItems ) 00046 00047 def _defineOutputData( self, dType, items, optItems ):
def DigiConf::DigiConf::_defineOutputData | ( | self, | ||
dType, | ||||
items, | ||||
optItems | ||||
) | [private] |
Define content of the output dataset
Definition at line 48 of file DigiConf.py.
00048 : 00049 """ 00050 Define content of the output dataset 00051 """ 00052 # Pack pSim containers for the output if not on the input file 00053 DataOnDemandSvc().AlgMap["pSim/MCParticles"] = "PackMCParticle" 00054 DataOnDemandSvc().AlgMap["pSim/MCVertices"] = "PackMCVertex" 00055 00056 # Start with minimal content (real data plus pileup info) 00057 items += [ 00058 # Objects propagated from Gauss 00059 "/Event/Gen/Header#1" 00060 , "/Event/MC/Header#1" 00061 00062 # Boole header 00063 , "/Event/MC/DigiHeader#1" 00064 00065 # Real data simulation 00066 , "/Event/DAQ/RawEvent#1" ] 00067 00068 if dType == "Minimal": 00069 items += [ "/Event/MC/Vertices#1" ] # Filtered, only primary vertices with no daughters 00070 00071 else: 00072 # Standard DIGI content 00073 items += [ 00074 # Objects propagated from Gauss 00075 "/Event/Gen/Collisions#1" 00076 , "/Event/Gen/HepMCEvents#1" 00077 , "/Event/pSim/MCParticles#1" 00078 , "/Event/pSim/MCVertices#1" 00079 00080 # Digitization summaries 00081 , "/Event/MC/Rich/DigitSummaries#1" 00082 , "/Event/MC/Muon/DigitsInfo#1" 00083 00084 # Links to MCParticles 00085 , "/Event/Link/Trig/L0/Calo#1" 00086 , "/Event/Link/Trig/L0/FullCalo#1" 00087 , "/Event/Link/Raw/Velo/Clusters#1" 00088 , "/Event/Link/Raw/TT/Clusters#1" 00089 , "/Event/Link/Raw/IT/Clusters#1" 00090 , "/Event/Link/Raw/OT/Times#1" 00091 , "/Event/Link/Raw/Ecal/Digits#1" 00092 , "/Event/Link/Raw/Hcal/Digits#1" 00093 , "/Event/Link/Raw/Muon/Digits#1" 00094 , "/Event/MC/TrackInfo#1" 00095 00096 # Links to MCHits 00097 , "/Event/Link/Raw/Velo/Clusters2MCHits#1" 00098 , "/Event/Link/Raw/TT/Clusters2MCHits#1" 00099 , "/Event/Link/Raw/IT/Clusters2MCHits#1" 00100 , "/Event/Link/Raw/OT/Times2MCHits#1" ] 00101 00102 # Spillover event structure, copied from .sim if present 00103 for spill in self.getProp("SpilloverPaths"): 00104 optItems += [ "/Event/%s/MC/Header#1"%spill ] 00105 00106 # Add TAE RawEvents when enabled 00107 taePrev = self.getProp("TAEPrev") 00108 while taePrev > 0: 00109 items += ["/Event/Prev%s/DAQ/RawEvent#1"%taePrev] 00110 taePrev -= 1 00111 taeNext = self.getProp("TAENext") 00112 while taeNext>0: 00113 items += ["/Event/Next%s/DAQ/RawEvent#1"%taeNext] 00114 taeNext -= 1 00115 00116 if dType == "Extended": 00117 # Add the MCHits 00118 items += [ 00119 "/Event/MC/PuVeto/Hits#1" 00120 , "/Event/MC/Velo/Hits#1" 00121 , "/Event/MC/TT/Hits#1" 00122 , "/Event/MC/IT/Hits#1" 00123 , "/Event/MC/OT/Hits#1" 00124 , "/Event/MC/Rich/Hits#1" 00125 , "/Event/MC/Prs/Hits#1" 00126 , "/Event/MC/Spd/Hits#1" 00127 , "/Event/MC/Ecal/Hits#1" 00128 , "/Event/MC/Hcal/Hits#1" 00129 , "/Event/MC/Muon/Hits#1" ] 00130 00131 def _doWritePOOL( self, dType, items, optItems ):
def DigiConf::DigiConf::_doWritePOOL | ( | self, | ||
dType, | ||||
items, | ||||
optItems | ||||
) | [private] |
Write a file in POOL format
Definition at line 132 of file DigiConf.py.
00132 : 00133 """ 00134 Write a file in POOL format 00135 """ 00136 writer = OutputStream( self.getProp("Writer") ) 00137 ApplicationMgr().OutStream.insert( 0, writer ) 00138 writer.Preload = False 00139 writer.ItemList += items 00140 writer.OptItemList += optItems 00141 log.info( "%s.ItemList=%s"%(self.getProp("Writer"),items) ) 00142 log.info( "%s.OptItemList=%s"%(self.getProp("Writer"),optItems) ) 00143 00144 # In Minimal case, need to kill some nodes 00145 if dType == "Minimal": 00146 from Configurables import EventNodeKiller 00147 nodeKiller = EventNodeKiller("POOLNodeKiller") 00148 ApplicationMgr().OutStream.insert( 0, nodeKiller ) 00149 nodeKiller.Nodes += [ "Link", "pSim" ] 00150 nodeKiller.Nodes += [ "MC/Velo", "MC/PuVeto", "MC/TT", "MC/IT", "MC/OT", "MC/Rich", "MC/Prs", "MC/Spd", "MC/Ecal", "MC/Hcal", "MC/Muon" ] 00151 nodeKiller.Nodes += self.getProp("SpilloverPaths") 00152 def __apply_configuration__(self):
def DigiConf::DigiConf::__apply_configuration__ | ( | self | ) |
Definition at line 153 of file DigiConf.py.
00153 : 00154 GaudiKernel.ProcessJobOptions.PrintOn() 00155 self._doWrite() 00156 GaudiKernel.ProcessJobOptions.PrintOff() GaudiKernel.ProcessJobOptions.PrintOff()
dictionary DigiConf::DigiConf::__slots__ [static, private] |
Initial value:
{ "DigiType" : "Default" , "Writer" : "NONE" , "TAEPrev" : 0 , "TAENext" : 0 , "SpilloverPaths" : [] }
Definition at line 11 of file DigiConf.py.
dictionary DigiConf::DigiConf::_propertyDocDct [static, private] |
Initial value:
{ 'DigiType' : ,'Writer' : """ Name of OutputStream writing the Digi file, if any """ ,'TAEPrev' : """ Number of Prev Time Alignment Events to write """ ,'TAENext' : """ Number of Next Time Alignment Events to write """ ,'SpilloverPaths': """ Paths to write out when spillover is enabled """ }
Definition at line 19 of file DigiConf.py.
list DigiConf::DigiConf::KnownDigiTypes = ['Minimal','Default','Extended'] [static] |
Definition at line 27 of file DigiConf.py.