Transcript pptx

Root and muon calibration at
Daya Bay
Deb Mohapatra
Daya Bay Framework: NuWa
Nuwa is installed at “/home/dayabay/nuwa”
externals
• CMT, Boost
• AIDA, GSL, clhep, XercesC
Geant4, OpenMotif,
OpenScientist
• Python, Cmake, mysql
• ROOT
Nuwa-release
• lcgcmt, ldm, relax
• Gaudi
• lhcb
• dybgaudi
#!/bin/tcsh
pushd /home/dayabay/nuwa/NuWa-trunk
source setup.csh
popd
pushd /home/dayabay/nuwa/NuWa-trunk/dybgaudi/DybRelease/cmt
source setup.csh
popd
LED Diffuser Ball in Water Pool
• LEDs are placed in the positions specified in the Near Pool and
Far Pool Diagram (inside the red squire) above for this
simulation
• We simulate 2000 events with only one LED flashing at a time
How to generate LED Diffuser Ball MC
import GenTools
from GenTools.Helpers import DiffuserBall
ball = DiffuserBall()
ball.setVolume(myVolume)
ball.setPosition( [xpos*units.cm, ypos*units.cm, zpos*units.cm] )
ball.ball.PhotonsPerEvent = intensity
gtc = GenTools.Configure()
# GEANT4
import DetSim
detsim = DetSim.Configure(physlist = DetSim.physics_list_basic)
# Next do the electronic simulation and trigger simulation
# At the end you will get a ROOT file with EVENT and RUNHEAD info
The MC Root File Structure
How to write Analysis module
from DybPython.DybPythonAlg import DybPythonAlg
from GaudiPython import SUCCESS, FAILURE
from GaudiPython import gbl
from DybPython.Util import irange
# Make shortcuts to any ROOT classes you want to use
TTree = gbl.TTree
def configure():
from StatisticsSvc.StatisticsSvcConf import StatisticsSvc
statsSvc = StatisticsSvc()
statsSvc.Output ={"file0":"simHitStats.root"}
return
def run(app):
'''
Configure and add an algorithm to job
'''
app.ExtSvc += ["StatisticsSvc"]
example = TreeAlg("MyTreeExample")
app.addAlgorithm(example)
pass
# Define the algorithm
class TreeAlg(DybPythonAlg):
"Tree-writing Python Algorithm"
def __init__(self,name):
DybPythonAlg.__init__(self,name)
return
def initialize(self)
# Initialize services
# Statistics Service: Use for histograms, graphs, trees
# Make a tree
return SUCCESS
def execute(self):
# Access current data
# Set Branch values
# Loop over hits in each detector
# Fill the tree with current branch values
return SUCCESS
def finalize(self):
return status
/home/dayabay/nuwa/NuWa-trunk/tutorial/DivingIn/python/DivingIn
Analysis Root File
Number of Hits per Diffuser Ball
Hit time
Tutorial files
/home/dmohapat/tutorial/root101
/home/dmohapat/tutorial/mucal