- Class Structures
- DOMPhotoCathode
- DOMChargeResponse
- DOMWaveForm
Introduction
A fast and reliable detector simulator is indispensable as well as
full Monte-Carlo simulator, especially for the phase of physics analysis.
While the development of the full Monte-Carlo ray trace simulator for
DOMs(DOMINANT) is underway, we started to develop more handy simulator
(ROMEO -
Root-based Optical Module EmulatOr)
which simulates the photon propagation inside the DOM sphere and the
PMT response. It would have tables of photon acceptance vs angle of
incidence and timing
fluctuation
of
radio
active
noise
optimized
by DOMINANT(but
have not be implemented yet).
The PMT response is simulated by our analytical model describing our
PMT calibration data. Our
measurement of the PMT SPE response indicates that the charge
response function would be represented by combination of gaussian
and exponential.
It is scaling with gain and universal without tube to tube variance,
which benefits the ROMEO architecture.

[top]
What
is ROMEO?
ROMEO is the handy (D)OM simulator based on ROOT/C++ especially tuned
to the AMANDA/IceCube (D)OMs. Current version equips only the PMT response
module which comprises three sub-modules:DOMPhotoCathode, DOMChargeResponse,
and DOMWaveForm.

(fig.1)
Class Structures
The current class structure is shown in fig.2. We made
a base class for modules named "DOMVModule", currently based
on TTask/ROOT.
This class would be a wrapper for integration to the IceTray framework. 
(fig.2)
DOMPMTPhotoCathode
DOMPMTPhotoCathode
module simulates the fluctuation of the collection efficiency. The imput
data are generated by DOMINANT as a injection point on the PMT surface.
We also measured uniformity of the relative collection efficiency as
shown in the central panel of fig.3. The right panel of fig.3 shows an
example of resultant photo electron distribution sumpled by Monte-Carlo
in ROMEO.

(fig.3)
DOMPMTChargeResponse
DOMPMTChargeResponse module is based on the charge response functions
as shown in fig.4. From our
analysis of charge response using single photo electrons, we have
learnt that it is PMT gain-scaling and exhibits no variance from tube
to tube. For example, relative contribution of the exponential-type component
to the main gaussian part, which is parameterized by P_ex, is independent
on HV and almost universally same between different tubes as ploted in
fig.5. Fig.6 shows a sumpled charge distribution of SPE in the simulation
using this model which shows good agreement with our calibration data.
(fig.4)  
(left: fig5, right: fig6)
DOMPMTWaveForm DOMPMTWaveForm module
simulates the wave form function with a simple gaussian model. Gained
charge received from the DOMPMTChargeResponse is converted to the normalization
factor of the gaussian assuming the 50 ohm impedance. Fig.7 shows superimposed
pulse waves simulated by this module.

(fig.7)
[top] Source
code and usage (alpha version)
Test environment
- SuSE Linux 7.3 with gcc 3.3
- MacOSX 10.3 with gcc 3.3
Prerequisit
- Install ROOT in your computer
- Download tgz file of ROMEO from here
How to install the ROMEO
Following procedures assuming bash environment. If you prefer tcsh,
change all "export" command to "setenv", i.e.
$ export ROMEOROOT=`pwd`
% setenv ROMEOROOT "`pwd`"
- Expand the Romeo_v1.0.tgz file in your convenient directory
(<somewhere>).
$
mv Romeo_v1.0.tgz <somewhere>
$
cd <somewhere>
$ tar -zxvf Romeo_v1.0.tgz
$ mv Romeo Romeo_v1.0
$ ln -s Romeo_v1.0 pro
$ cd pro
- Define environment valiables
$
export ROMEOROOT=`pwd`
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROMEOROOT/lib
$ export SOSYMLINK=ture
If you are MacOSX user, type more three lines:
$ export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$ROMEOROOT/lib
$ export PATH=$PATH:$ROMEOROOT/bin
- Compile the ROMEO
$ cd $ROMEOROOT/src
$ make install
See doc/README to get more informations.
- If you have trouble at xmkmf -a command...
ROMEO automatically find cxx dependency by bin/cxxdepends command, however,
it may not work on your environment. If you have dependency trouble, try following
procedue.
1) Chech your alias. If you define alias on "which" command, remove the alias.
2) If you cannot fix the problem by 1), try
$ cd /usr
$ find . -name typeinfo
./g++-v3/typeinfo
$ find . -name iostream
./g++-3/iostream
./g++-v3/iostream
$ find . -name float.h
./usr/lib/gcc-lib/i585-pc-linux/2.96/include/float.h
then modify your $ROMEOROOT/conf/Imake.root file
CXXDEPENDS += -I/usr/include/g++-v3
CXXDEPENDS += -I/usr/include/g++-v3/i586-pc-linux
CXXDEPENDS += -I/usr/lib/gcc-lib/i586-pc-linux/2.96/include
How to run the ROMEO
$ cd $ROMEOROOT/analysis
$ root -l RomeoDemo.C
See doc/README to get more informations.
[top]
|