Public Member Functions | |
def | __init__ |
def | parse_args |
def | configureKinematic |
def | configureDetector |
def | configureElectronic |
def | configureTrigRead |
def | configureSingleLoader |
def | configureSim15 |
def | configure |
Public Attributes | |
opts | |
args | |
start_time_seconds | |
stage_cfg |
Configure a Full Chain of pull simulations.
Definition at line 21 of file FullChain.py.
def runIBD15::FullChain::ConfigureFullChain::__init__ | ( | self, | ||
argv | ||||
) |
def runIBD15::FullChain::ConfigureFullChain::parse_args | ( | self, | ||
argv | ||||
) |
Definition at line 29 of file FullChain.py.
00031 : 00032 from optparse import OptionParser 00033 import time 00034 parser = OptionParser(usage=self.__doc__) 00035 default_time_format = '%Y-%m-%dT%H:%M:%S' 00036 parser.add_option("-w","--start-time", 00037 help="Date string to set simulation start, assumed UTC", 00038 default=time.strftime(default_time_format,time.gmtime(0))) 00039 parser.add_option("-F","--time-format", 00040 help="Format for parsing time (see man date), " \ 00041 + "default is '%s'"%default_time_format \ 00042 + " ('[YYYY]-[MM]-[DD]T[HH]:[MM]:[SS]')", 00043 default=default_time_format) 00044 parser.add_option("-T","--top-stage", 00045 help="Kinematic, Detector, Electronic, TrigRead or SingleLoader", 00046 default="SingleLoader") 00047 parser.add_option("-s","--seed", 00048 help="Random seed for generators", 00049 default=1234567) 00050 parser.add_option("-v","--volume", 00051 help="A way to set volume parameter", 00052 default="/dd/Structure/AD/db-oil1") 00053 00054 (options,args) = parser.parse_args(args=argv) 00055 self.opts = options 00056 self.args = args 00057 00058 timeformat = self.opts.time_format 00059 print "Using time format =",timeformat 00060 00061 try: 00062 datestring = self.opts.start_time 00063 except AttributeError: 00064 self.start_time_seconds = 0 00065 else: 00066 # This may raise ValueError if string and format don't 00067 # match. Just let it get thrown. 00068 t = time.strptime(datestring,timeformat) 00069 self.start_time_seconds = time.mktime(t) - time.timezone 00070 print 'Start time in human readable format',self.opts.start_time 00071 print 'Start time in seconds UTC =',self.start_time_seconds 00072 print 'Top stage =',self.opts.top_stage 00073 return
def runIBD15::FullChain::ConfigureFullChain::configureKinematic | ( | self | ) |
Definition at line 74 of file FullChain.py.
00076 : 00077 #from Stage.gun import gun 00078 #gun=gun(stage=self.stage_cfg,start_time=self.start_time_seconds) 00079 00080 #from Stage.Muon import Muon 00081 #muon=Muon(stage=self.stage_cfg,start_time=self.start_time_seconds) 00082 00083 from MDC09a.runIBD15.IBD import IBD 00084 ibd=IBD(stage=self.stage_cfg, 00085 name='IBD', 00086 volume=self.opts.volume, 00087 start_time=self.start_time_seconds, 00088 seed=self.opts.seed) 00089 00090 #from Stage.K40 import K40 00091 #k40=K40(stage=self.stage_cfg,start_time=self.start_time_seconds) 00092 00093 #from Stage.U import Uranium 00094 #u=Uranium(stage=self.stage_cfg,start_time=self.start_time_seconds) 00095 00096 #from Stage.Th import Thorium 00097 #th=Thorium(stage=self.stage_cfg,start_time=self.start_time_seconds) 00098 return
def runIBD15::FullChain::ConfigureFullChain::configureDetector | ( | self | ) |
Configure the Detector stage
Definition at line 99 of file FullChain.py.
00101 : 00102 '''Configure the Detector stage''' 00103 00104 import DetSim 00105 ds = DetSim.Configure(physlist=DetSim.physics_list_basic+DetSim.physics_list_nuclear,site="dayabay", 00106 use_push_algs = False) 00107 00108 from DetSimProc.DetSimProcConf import DetSimProc 00109 dsp = DetSimProc() 00110 dsp.ThisStageName = "Detector" 00111 dsp.LowerStageName = "Kinematic" 00112 #dsp.OutputLevel = 2 00113 self.stage_cfg.DetectorSequence.Members.append(dsp) 00114 00115 ds.historian(trackSelection="(pdg == 2112)",vertexSelection="(pdg == 2112)") 00116 params = { 00117 'start' :"(start > 0)", 00118 'track1':"(id==1)", 00119 'track2':"(id==2)", 00120 'inGdLS':"DetectorElementName == 'db-gds1'", 00121 'inLS': "DetectorElementName == 'db-lso1'", 00122 'GD': "MaterialName == '/dd/Materials/GdDopedLS'", 00123 'LS': "MaterialName == '/dd/Materials/LiquidScintillator'", 00124 'MO': "MaterialName == '/dd/Materials/MineralOil'", 00125 'IAV': "DetectorElementName == 'db-iav1'", 00126 'OAV': "DetectorElementName == 'db-oav1'", 00127 'IWS': "MaterialName == '/dd/Materials/IwsWater'", 00128 'OWS': "MaterialName == '/dd/Materials/OwsWater'", 00129 'lastvtx': "IsStopping == 1", 00130 'firstvtx': "IsStarting == 1", 00131 'NeutronTrk': "pdg == 2112", 00132 'NeutronMom': "creator == 2112", 00133 'NCap': "ProcessName == 'nCapture'", 00134 'Gamma': "pdg == 22", 00135 'Muon': "(pdg == 13 or pdg == -13)" 00136 } 00137 00138 ds.unobserver(stats=[ 00139 ["EDepInGdLS", "dE", "%(GD)s"%params], 00140 ["EDepInLS", "dE", "%(LS)s"%params], 00141 ["EDepInIAV", "dE", "%(IAV)s"%params], 00142 ["EDepInOAV", "dE", "%(OAV)s"%params], 00143 ["EDepInOIL", "dE", "%(MO)s"%params], 00144 00145 ["QEDepInGdLS", "qdE", "%(GD)s"%params], 00146 ["QEDepInLS", "qdE", "%(LS)s"%params], 00147 ["QEDepInIAV", "qdE", "%(IAV)s"%params], 00148 ["QEDepInOAV", "qdE", "%(OAV)s"%params], 00149 ["QEDepInOIL", "qdE", "%(MO)s"%params], 00150 00151 ["tQESumGdLS", "qEt", "%(GD)s"%params], 00152 ["xQESumGdLS", "qEx", "%(GD)s"%params], 00153 ["yQESumGdLS", "qEy", "%(GD)s"%params], 00154 ["zQESumGdLS", "qEz", "%(GD)s"%params], 00155 00156 ["tQESumLS", "qEt", "%(LS)s"%params], 00157 ["xQESumLS", "qEx", "%(LS)s"%params], 00158 ["yQESumLS", "qEy", "%(LS)s"%params], 00159 ["zQESumLS", "qEz", "%(LS)s"%params], 00160 00161 ["tQESumMO", "qEt", "%(MO)s"%params], 00162 ["xQESumMO", "qEx", "%(MO)s"%params], 00163 ["yQESumMO", "qEy", "%(MO)s"%params], 00164 ["zQESumMO", "qEz", "%(MO)s"%params], 00165 00166 ["capTarget", "capTargetZ","%(track2)s and %(NCap)s"%params], 00167 00168 # track 1 00169 ["pdgId_Trk1","pdg","%(track1)s and %(start)s"%params], 00170 ["t_Trk1", "t" , "%(track1)s and %(start)s"%params], 00171 ["x_Trk1", "x", "%(track1)s and %(start)s"%params], 00172 ["y_Trk1", "y", "%(track1)s and %(start)s"%params], 00173 ["z_Trk1", "z", "%(track1)s and %(start)s"%params], 00174 ["tEnd_Trk1", "t" , "%(track1)s and %(lastvtx)s"%params], 00175 ["xEnd_Trk1", "x", "%(track1)s and %(lastvtx)s"%params], 00176 ["yEnd_Trk1", "y", "%(track1)s and %(lastvtx)s"%params], 00177 ["zEnd_Trk1", "z", "%(track1)s and %(lastvtx)s"%params], 00178 ["e_Trk1", "E", "%(track1)s and %(start)s"%params], 00179 ["p_Trk1", "p", "%(track1)s and %(start)s"%params], 00180 ["ke_Trk1", "KE", "%(track1)s and %(start)s"%params], 00181 ["vx_Trk1", "lvx","%(track1)s and %(start)s"%params], 00182 ["vy_Trk1", "lvy","%(track1)s and %(start)s"%params], 00183 ["vz_Trk1", "lvz","%(track1)s and %(start)s"%params], 00184 ["TrkLength_GD_Trk1", "dx","%(track1)s and %(GD)s"%params], 00185 ["TrkLength_iAV_Trk1", "dx","%(track1)s and %(IAV)s"%params], 00186 ["TrkLength_LS_Trk1", "dx","%(track1)s and %(LS)s"%params], 00187 ["TrkLength_oAV_Trk1", "dx","%(track1)s and %(OAV)s"%params], 00188 ["TrkLength_Oil_Trk1", "dx","%(track1)s and %(MO)s"%params], 00189 # track 2 00190 ["pdgId_Trk2","pdg","%(track2)s and %(start)s"%params], 00191 ["t_Trk2", "t" , "%(track2)s and %(start)s"%params], 00192 ["x_Trk2", "x", "%(track2)s and %(start)s"%params], 00193 ["y_Trk2", "y", "%(track2)s and %(start)s"%params], 00194 ["z_Trk2", "z", "%(track2)s and %(start)s"%params], 00195 ["tEnd_Trk2", "t" , "%(track2)s and %(lastvtx)s"%params], 00196 ["xEnd_Trk2", "x", "%(track2)s and %(lastvtx)s"%params], 00197 ["yEnd_Trk2", "y", "%(track2)s and %(lastvtx)s"%params], 00198 ["zEnd_Trk2", "z", "%(track2)s and %(lastvtx)s"%params], 00199 ["e_Trk2", "E", "%(track2)s and %(start)s"%params], 00200 ["p_Trk2", "p", "%(track2)s and %(start)s"%params], 00201 ["ke_Trk2", "KE", "%(track2)s and %(start)s"%params], 00202 ["vx_Trk2", "lvx","%(track2)s and %(start)s"%params], 00203 ["vy_Trk2", "lvy","%(track2)s and %(start)s"%params], 00204 ["vz_Trk2", "lvz","%(track2)s and %(start)s"%params], 00205 ["TrkLength_GD_Trk2", "dx","%(track2)s and %(GD)s"%params], 00206 ["TrkLength_iAV_Trk2", "dx","%(track2)s and %(IAV)s"%params], 00207 ["TrkLength_LS_Trk2", "dx","%(track2)s and %(LS)s"%params], 00208 ["TrkLength_oAV_Trk2", "dx","%(track2)s and %(OAV)s"%params], 00209 ["TrkLength_Oil_Trk2", "dx","%(track2)s and %(MO)s"%params] 00210 ]) 00211 return
def runIBD15::FullChain::ConfigureFullChain::configureElectronic | ( | self | ) |
Configure the Electronics stage
Definition at line 212 of file FullChain.py.
00214 : 00215 '''Configure the Electronics stage''' 00216 00217 import ElecSim 00218 es = ElecSim.Configure(use_push_algs = False) 00219 00220 from ElecSimProc.ElecSimProcConf import ElecSimProc 00221 esp = ElecSimProc() 00222 esp.ThisStageName = "Electronic" 00223 esp.LowerStageName = "Detector" 00224 #esp.OutputLevel = 2 00225 self.stage_cfg.ElectronicSequence.Members.append(esp) return
def runIBD15::FullChain::ConfigureFullChain::configureTrigRead | ( | self | ) |
Configure the Trigger and Readout stage
Definition at line 226 of file FullChain.py.
00228 : 00229 '''Configure the Trigger and Readout stage''' 00230 from TrigReadProc.TrigReadProcConf import TrigReadProc 00231 tsp = TrigReadProc() 00232 tsp.ThisStageName = "TrigRead" 00233 tsp.LowerStageName = "Electronic" 00234 #tsp.TrigTools = [...] 00235 #tsp.RoTools = [...] 00236 #tsp.OutputLevel = 2 00237 self.stage_cfg.TrigReadSequence.Members.append(tsp) return
def runIBD15::FullChain::ConfigureFullChain::configureSingleLoader | ( | self | ) |
Configure the SingleLoader stage
Definition at line 238 of file FullChain.py.
00240 : 00241 '''Configure the SingleLoader stage''' 00242 from SingleLoader.SingleLoaderConf import SingleLoader 00243 sll = SingleLoader() 00244 sll.ThisStageName = "SingleLoader" 00245 sll.LowerStageName = "TrigRead" 00246 #sll.OutputLevel = 2 self.stage_cfg.SingleLoaderSequence.Members.append(sll)
def runIBD15::FullChain::ConfigureFullChain::configureSim15 | ( | self | ) |
Definition at line 247 of file FullChain.py.
00249 : 00250 from Stage.StageConf import Sim15 00251 sim15=Sim15() 00252 sim15.TopStage=self.opts.top_stage 00253 00254 from Gaudi.Configuration import ApplicationMgr 00255 theApp = ApplicationMgr() theApp.TopAlg.append(sim15)
def runIBD15::FullChain::ConfigureFullChain::configure | ( | self | ) |
Definition at line 256 of file FullChain.py.
00258 : 00259 00260 from Stage import Configure as StageConfigure 00261 self.stage_cfg = StageConfigure() 00262 00263 stagedic={'Kinematic':1,'Detector':2,'Electronic':3,'TrigRead':4,'SingleLoader':5} 00264 00265 if not self.opts.top_stage in stagedic: 00266 print 'Error, wrong top stage parameter', self.opts.top_stage 00267 00268 for stg,idx in stagedic.iteritems(): 00269 if idx <= stagedic[self.opts.top_stage]: 00270 self.stage_cfg.addStages([stg]) ## stage tools are configured here. 00271 00272 for stg in self.stage_cfg.stages: 00273 #self.stage_cfg.__dict__[stg].OutputLevel = 2 00274 pass 00275 00276 if stagedic[self.opts.top_stage]>=1: 00277 self.configureKinematic() 00278 if stagedic[self.opts.top_stage]>=2: 00279 self.configureDetector() 00280 if stagedic[self.opts.top_stage]>=3: 00281 self.configureElectronic() 00282 if stagedic[self.opts.top_stage]>=4: 00283 self.configureTrigRead() 00284 if stagedic[self.opts.top_stage]>=5: 00285 self.configureSingleLoader() 00286 00287 self.configureSim15() 00288 return
Definition at line 53 of file FullChain.py.
Definition at line 54 of file FullChain.py.
Definition at line 62 of file FullChain.py.
Definition at line 259 of file FullChain.py.