ROMEO:
the Root-based Optical Module EmulatOr



Update record:  
20040812   ROMEO ver. 0.91 released
20040507   The original ROMEO page uploaded
       

Introduction

What is ROMEO?

  • Class Structures
  • DOMPhotoCathode
  • DOMChargeResponse
  • DOMWaveForm

Source code and usage (alpha version)


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

  1. Install ROOT in your computer
  2. 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`"

  1. 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

  2. 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

  3. Compile the ROMEO

    $ cd $ROMEOROOT/src
    $ make install

    See doc/README to get more informations.

  4. 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]


 

 

Will you visit JULIeT ?

 


Photon Propagator
(Toy Monte-Carlo)

Ray trace&BG sim
(DOMINANT)

PMT Handy c++ sim
(ROMEO)

Back to the
Chiba Icecube Home

 


hoshina@hepburn.s.chiba-u.ac.jp