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

In This Package:

runIBD15::FullChain::ConfigureFullChain Class Reference

List of all members.

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

Detailed Description

Configure a Full Chain of pull simulations.

Definition at line 21 of file FullChain.py.


Member Function Documentation

def runIBD15::FullChain::ConfigureFullChain::__init__ (   self,
  argv 
)

Definition at line 25 of file FullChain.py.

00027                            :
00028         self.parse_args(argv)
        return

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


Member Data Documentation

runIBD15::FullChain::ConfigureFullChain::opts

Definition at line 53 of file FullChain.py.

runIBD15::FullChain::ConfigureFullChain::args

Definition at line 54 of file FullChain.py.

runIBD15::FullChain::ConfigureFullChain::start_time_seconds

Definition at line 62 of file FullChain.py.

runIBD15::FullChain::ConfigureFullChain::stage_cfg

Definition at line 259 of file FullChain.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:57 2011 for MDC09a by doxygen 1.4.7