Latest Version: 1.1 (21/Aug/2003)

Monte Carlo Simulation for Large Prototype of LXe Scintillation Detector



The Monte Carlo simulation 'lproto' is written in FORTRAN with GEANT3 library. We have two version of the simulation codes for large prototype of LXe photon detector. The one branch, 'lproto' is supported and developed by MEG-Japan group. It is still in progress. If you find bugs or have some questions, contact us.


too many for words...(under construction.)

Quick Start

The lproto is always updated by developers. You had better check out the latest version with CVS from lxsv0.icepp.s.u-tokyo.ac.jp.

0. Get your account on lxsv0.icepp.s.u-tokyo.ac.jp.

1. Create CVS repository.

In case of csh,
% setenv CVS_RSH ssh
% setenv CVSROOT :ext:username@lxsv0.icepp.s.u-tokyo.ac.jp:/meg/cvsroot
In case of bash and zsh,
% export CVS_RSH=ssh
% export CVSROOT=:ext:username@lxsv0.icepp.s.u-tokyo.ac.jp:/meg/cvsroot
2. cd to your working directory to checkout the latest version of lproto.

% cd ~/work
% cvs checkout lproto
3. Compile them.

% cd lproto
% make
4. First of all, try an example in 'examples' directory.
% cd examples
% ./lp3rd >& lp3rd.log
5. Edit them as you like to have some fun!

CARD keys

KEY Args Type Defaults Description COMMON Var
NPMT nx ny nz INTEGER 6 6 8 Number of PMTs along X, Y, Z axis, respectively. XECGEO NXPMT
PMTINT distance REAL 6.2 Distance between PMTs. Unit is cm. XECEGO PMTINT
HCRLON iflag INTEGER 0 If 0, honeycomb substitute uniform low-density SUS for real SUS core. If 1, honeycomb structure available. LPFLAG HCRLON
HCX length REAL 0.0 The whole honeycomb is shifted by HCX along X axis. Unit is cm. (See here.) N.B. # right-handed coordinate system. That is, +X is leftward facing the front face. XECGEO HCX
HCY length REAL 0.0 The whole honeycomb is shifted by HCY along Y axis. Unit is cm. (See here.) XECGEO HCY
ZXEEXP length REAL 0.0 Distance between honeycomb plate and acrylic holder of front face. The space is filled with LXe. (See here.) XECGEO ZXEEXP
GASXEON iflag INTEGER 0 GXe mode switch. ON=1, OFF=0. LPFLAG GASXEON
GASTEMP temperature REAL -80.0 In GXe mode (GASXENON=1), the temperatire of xenon. It affects the xenon density. The unit is Celsius. XECGEO GASTEMP
GASPRES pressure REAL 1.70 In GXe mode (GASXENON=1), the pressure of xenon. It affects the xenon density. The unit is atm, absolute pressure. XECGEO GASPRES
FILLON iflag INTEGER 0 whether the space around the tip tube of PMTs on the front face is filled with filler. The filler is G10(1) or LXe(0). In fact stycast will be used instead of G10. LPFLAG FILLON
RCATH radius REAL 2.25 Photocathode radius of PMT. Normally it is 2.25. But it was 2.3 in MC simulation for small prototype. This value is the radius of effective region on PMT photocathode. Also if UNIFON=1, it means the width of the uniformity function. XECPMT RCATH
Event kinematics
KEY Args Type Defaults Description COMMON Var
KINE ptype x1 x2 y1 y2 z1 z2 t1 t2 p1 p2 REAL Not specified 'ptype' stands for particle number. See here. In lproto, ptype has to be negative. Basically the other arguments are ranges of incdent position (x,y,z) and incident angular (theta, phi). However these meanings depend on DSTSW. If DSTSW is 1, the corresponding arguments are mean and sigma of Gaussian, respectively. When DSTSW(1) and DSTSW(2) are 3, it obtain an oval distribution whose radius is (x2,y2) and center is at (x1,y1). It is useful for a simulation with collimator. GCBANK IKINE,PKINE
MOMTM p1 p2 REAL Not specified Momentum range. LPFLAG MOMTM
DSTSW x y z t p m INTEGER 0 0 0 0 0 0 x,y,z,theta,phi,momentumに対する分布の型を定義する。 0は一様分布、2はGaussian、1はDSTHIDと{X,Y,Z,T,H,P}HNAMで与えられた hbook形式のhistogramの分布に従う。 2(Gaussian)の時はKINEで指定する最初の項(例えばx1)がmeanで次の項(例えばx2)がsigmaとなる。 1の時はKINEでの範囲指定は無効となる。 (本当は2でも範囲指定できれば何かと便利だが。) 第6項の m は特別で、3を指定するとTERAS beamをシミュレートできる。 その場合、AIST でprofileの変更が可能であり、MOMTMでの範囲指定は無視される。 LPFLAG DSTSW
DSTHID xhid yhid zhid thid phid mhid INTEGER 0 0 0 0 0 0 Histogram ID for each of distribution histograms when DSTSW=1. Histogram ID of x, y, z, theta, phi, and momentum, respectively. LPFLAG DSTHID
{X,Y,Z,T,P,M}HNAM filename CHARACTERS NULL File name of histogram for {x, y, z, theta, phi, momentum} distribution. File name has to be quoted by singleqotes('). LPFLAG {X,Y,Z,T,P,M}HNAM
AIST Ee dAe dbx dby n L Rcol dx dy REAL*8 764D0 0.115D-3 1.0D-3 4.0D0 11.4D0 1.0D-3 0.0D0 0.0D0 When DSTSW(m)=3, these determine the beam property. Average of electron beam energy(Ee[MeV]), angular divergence(dAe[rad]), horizontal/vertical bunch size of electron beam(dbx, dby[m]), n倍波のLASER(n), distance from collision point to 2nd collimator(L[m]), radius of 2nd collimator(Rcol[m]), horizontal/vertical displacement of 2nd collimator(dx, dy[m]). AIST EELEC, DTHELE, DXELE, DYELE, NTIME, DCOLL, RCOLL, DSPLX, DSPLY
RUNMODE iflag INTEGER 0 0:普通のイベントモード。 KINE や DSTSW などで指定してください。 1:cosmic-ray muon モード。 LP実験と同じトリガーカウンターでシミュレートする。 KINE と MOMTM は自動的に設定される。 2:α粒子モード。 LP実験と同じ位置に241Amが4つ配置され、 の順にα粒子が生成される。 ソース・カバーの厚みも考慮されているため、カバーに阻止されるイベントもあ るので注意せよ。 なお、KINE と MOMTM は自動的に設定される。 3:π0 decay モード。 NaI トリガーカウンターを置いて、 π0 decay からの γ 線によるイベントを simulate する。 まだ、改良の余地がある。 LPFLAG RUNMODE
Xe scintillation light tracking
KEY Args Type Defaults Description COMMON Var
CUTDES cutoff REAL 0.0 Cut-off energy of Xe scintillation photons[GeV] XECINT CUTDES
XESCTRACK iflag INTEGER 1 Switch of Xe scintillation photon tracking. Enable(1/2) or Disable(0). If it is 1, scintillation photons are transported by the original raytracing codes. If this value is 2, built-in raytrace routine in GEANT3 for Cerenkov photons is used. It takes longer than Tokyo-raytrace. XECSCI ISCTRK
XESCENERGY Wph REAL 21.6 W value, which means energy [eV] to generate a single scintillation photon in xenon (See here). W is recommended to be 18.1 eV for α particle in LXe. and 18.1 eV for α particle in LXe. LXe 中のα粒子なら 18.1 eV、 GXe 中のα粒子の場合は 49.6 eV が妥当。 今のところ、エネルギー依存性は考えていない。 XECSCI ESCINT
XESCPOISSON iflag INTEGER 1 scintillation photon 生成数の誤差を Poisson 分布に従わせたい場合は 1 にする。無効にするには 0 。 XECSCI IPOISN
XESCRFRIDX index REAL 1.62 Xe の屈折率。PMT quartz window で photon が反射する時に効いてくる。 XENDSTが有効(1)な時は波長に依るため無効となる。 XECSCI RFRIDX
XESCRAYL iflag INTEGER 3 1 だと等方的に散乱され少し計算量が減るが、 2 だとより現実的に 1+(cos(theta))^2 に従う。 3 だと更に 2 に加え波長の 4 乗に比例するようになる。 0 を指定すると Rayleigh 散乱しなくなる。 XECSCI IRAYL
XESCDRAYL length REAL 40.0 Rayleigh 散乱の散乱長。単位は cm。 XECSCI DRAYL
XESCABSO iflag INTEGER 0 Whether enable(1) or disable(0) absorption of scintillation photons in xenon. XECSCI IABSO
XESCDABSO length REAL 100.0 Absorption length of scintillation photons in xenon. The unit is cm. XECSCI DABSO
XESCREFL iflag INTEGER 0 Whether enable(1) or disable(0) reflection on PMT holders. XECSCI IREFL
XESCDEREFL iflag INTEGER 0 Whether specular reflection(0) or diffuse reflection on PMT holders. XECGEO IDEREFL
XESCEREFL eff REAL 0.6 Absorption coefficient on PMT holders. XECSCI EREFL
QREFON iflag INTEGER 1 Whether enable(1) or disable(0) reflection on PMT quartz. XECGEO QREFON
QRFIDX index REAL 1.58 Refraction index of quartz window. If XENDST = 1, ignored. XECGEO QRFIDX
QABSON iflag INTEGER 1 Whether enable(1) or disable(0) absorption on PMT quartz window. XECGEO QABSON
XESDRAW iflag INTEGER 0 Draw scintillation photons' tracks(1) or not(0) XECGEO ixsdraw
XEWLDST iflag INTEGER 2 It gives a wave distribution of scintillation photons. If it is 1, the distribution is Gaussian with mean = XEMEAN and σ = XESIGM. If it is 2, If it is 3, a handwritten(?) distribution (N.G.Bosov et al, Journal of Luminescence 1,2(1970)834-841) is used. 0 gives a constant wavelength (= XEMEAN). 2 の時は寺沢氏からもらったどこぞの分布に従う。 3 の時は Basov氏の手書き(?)の分布に従う予定。 0 の時には屈折率は XEMEAN で指定されたものとなる XECGEO XEWLDST
XEMEAN mean REAL 175.0 XEWLDST が 1 または 0 の時に Xe scintillation light の中心波長となる。 その他の場合は無効。 QEFUNC=1の時は重要な値となるので注意せよ。 単位は nm. XECGEO XEMEAN
XESIGM sigma REAL 2.128 XEWLDST が 1 の時に Xe scintillation light の sigma となる。 その他の場合は無効。 1 の時 Xe の屈折率に波長依存性を与える。 Default value は FWHM で 5 nm という値を 2.35 で割ったものを使用。 単位は nm. XECGEO QABSON
XENDST iflag INTEGER 1 1 の時 Xe とquartzの屈折率に波長依存性を与える。 屈折率はMEG-TN20-fig6の関数(fitした近似関数)に従う。 0 の時には屈折率は XESCRFRIDX で指定されたものとなる XECGEO QABSON
PMTQEF qe REAL 0.0631/0.05 Average of the PMT quantum efficiency. The default value is two kinds. When QABSON = 1, qe should be 0.0631 because transparency of 2.5-mm quartz is 79.2%. In this case, observed nember of photoelectrons is 79.2% of number of hit photons. If QABSON = 0, qe is automatically set to 0.05. If QEFUNC = 1 and QETABL = 0, this value has no meanings. If QETABL = 1, this value is used for QE of PMTs which is not installed in the real detector, that is, 32 PMTs at the 8th row on side faces and 4 PMTs at the corner of the back face. XECGEO PMTQEF
QETABL iflag INTEGER 0 通常、raytrace する光子数は最初の生成光子数に PMTQEF をかけた数であるため計算時間が抑えられている。 これを 1 にするとシンチ光は 10 倍以上になるため計算量はちょっと増える(10 倍ではない。QEFUNCの項を参照)。 QEは得られるスペクトルの幅に影響を与えるため、 現実的な simulation を望むなら有効にしたいところである。 QE を求めるための alpha paricle run や energy resolution の評価には是非有効にしてもらいたい。 また、table は 228 行であるため、他の(実際には取りつけられてない) PMT には PMTQEF が使われる。 LPFLAG QETABL
QEFILE filename CHARACTERS NULL File name of QE table if QETABL = 1. This file must has 228 columns and 3 rows. In a line, ADC number, QE for XEMEAN-nm photons, and error(1sigma) of QE come. For the moment the errors are not used. LPFLAG QEFILE
QEFUNC iflag INTEGER 0 QE の波長依存性を考慮するかどうか。 1 にすると有効になり QE は QDFILE で指定された分布に従う。 PMTQEF が指定されていないと QDFILE で指定された分布通りに従うが、 PMTQEF を指定すると、QDFILE の QE-波長 分布全体に XEMEAN での QE の比が 乗じられる。 QETABL が有効の場合も同様で、PMTQEF を各々の QE に置き換えたものと考えれば良い。 これを有効にすると、QETABL と同様に計算量は増えるが、QETABL=1 の時よりは 時間がかからない。 lproto ではシンチレーション光子の数を決め、波長を決める。 そして QETALBL=0 ならこの時点でQEがmeanのPoisson分布に従って光子が生成さ れるかどうかを決定する。 もし生成されないならこの光子に対するraytraceの時間が稼げる。 一方、QETABL=1だと全生成光子に対して波長決定と raytrace を行い、 PMT の当たり判定後に QE を求めなければならない。 それでは10倍も時間がかかるため計算量を減らす策として、 最初の生成光子数の10分の1についてraytraceを行い、 光電子生成時にQEを便宜上10倍にすることで全光子raytracingと同じ状況を作り出している。 LPFLAG QEFUNC
QDFILE filename CHARACTERS NULL QEFUNCが1の場合に読むファイルを指定する。 データは14行2列で、1列目に波長、2列目にQEを指定する。 今まで測定された QDFILE は examples/data/ ディレクトリに置いてある。 これらのデータは Al strip のものであるので注意せよ。 我々は古いPMT(R6041Q with Mn-layer photocathode) に関しては 200nm 以上のデータしか持っていなく、 Mn-layer Rb-Cs-Sb と Al strip K-Cs-Sb でどのような違いがあるかは分からない。 LPFLAG QDFILE
XESCRNDM s1 s2 INTEGER 0 0 Scintillation photon tracking routine では乱数生成 routine が別に用意されており、 どのような条件でも RNDM で決めた種さえ同じであれば photon tracking までの物理過程は全く同じものとなる。 ここではその種を決める。 XECGEO QABSON
UNIFON iflag INTEGER 0 small prototype の EGS4 simulation で使っていた PMT の uniformity の関数 を適用するスイッチ。 初代MEG COEの田中秀治さんが作成、三原さんが修正適用したもの。 r=0付近ではへこみ、|r|=RCATH付近から急激に減少するM字形関数である。 残念ながら今のところ機能はしていない。 LPFLAG UNIFON
KEY Args Type Defaults Description COMMON Var
HIST filename CHARACTERS NULL File name output in HBOOK format. LPFLAG CHBNAM
NTUPLE iflag INTEGER 1 Switch for output in CWN ntuple. If set to 0, no outputs. LPFLAG NTUPON
SUMOUT switch INTEGER 1 有効(1)にするとNtupleに総放出光量NTOTPE,総光電子数NSUM,各面での総光電子数NPEW(i) (ここで i は 1:right, 2:left, 3:bottom, 4:top, 5:front, 6:back)を加える。 不要であれば0にする。 LPFLAG SUMOUT
NPEOUT switch INTEGER 1 If set to 1, it adds NPE, which means a number of photoelectrons observed by eact PMT to ntuple. 1にするとNtupleに各PMTの光量NPEを加える。 普通は無効(0)にはしない。 LPFLAG NPEOUT
EXPOUT switch INTEGER 0 Ntuple に LP実験の analyzer と同じ CADC や QSUM,Q_{FRONT,BACK,RIGHT,LEFT,TOP,BOTTOM}, SIGMA2, X_AVERAGE, Y_AVERAGE を追加するときはこれを有効(1)にする。 CADC は NPE の配列のindexをLP実験と同じにしたものであり、要素数も228である。 なお、NPMT が 6 6 8 でない時は自動的に無効になる。 LPFLAG EXPOUT
DEPOUT switch INTEGER 0 Ntuple に NDEPO,XDEPOS(0,3000)を追加する。 MXDEPOSは可変配列のため実際には3000個もないが、 有効(1)にすると file size が巨大化するので注意。 普通は無効(0)に。 LPFLAG DEPOUT
DPTMON switch INTEGER 0 Ntuple に XDEPTS を追加する。 これらには各エネルギー損失の時刻が入る。 LPFLAG DPTMON
TDC simulation
KEY Args Type Defaults Description COMMON Var
TDCOUT switch INTEGER 0 Ntuple に TDC を追加する(1)。 TDCPAR に応じて tdc を simulate する。 ノイズや帯域など細かいことはまだ考慮されていない。 LPFLAG TDCOUT
TDCPAR tr td gain Vth Tcut Tlc REAL 2.5e-9 1e-8 5e6 -10.0 3e-8 2.5e-11 TDC simulation に対するパラメータ。 single photoelectron に対する rise time (tr[sec]), decay time (td[sec]), PMT の gain, leading-edge discriminator の threshold(Vth[mV]), pulse が peak に達する時間の上限(Tcut[sec]), TDC の least count(Tlc[sec]). TDCPAR TDCPARS
π0 decay simulation
KEY Args Type Defaults Description COMMON Var
PI0OUT switch INTEGER 0 RUNMODE が 3 の時にこの値が 1 だと ntuple に π0 から生じたガンマ線 の位置情報を ntuple に加える。 NTUPLE PI0OUT
NAIOUT switch INTEGER 0 RUNMODE が 3 の時にこの値が 1 だと ntuple に π0 から生じたガンマ線 が NaI 上で落としたエネルギーを ntuple に加える事ができる。 NaI は 64 個用意されている。 NTUPLE PI0OUT
LNAI switch REAL -200.0 When RUNODE=3, Z position of NaI trigger counter array (See herefor position: z=0.) The unit is cm. LPCGEO LNAI
KSR beam test
KEY Args Type Defaults Description COMMON Var
KSRETC switch INTEGER 0 If enabled(1), A pair of electron trigger counters made of BC404 are located at 15cm upstream of the front frange. No readouts and informations for these counters are utilized. Just for checking energy loss. KAKEN KSRETC
KEY Args Type Defaults Description COMMON Var
META filename CHARACTERS NULL Postscript file name for event output. LPFLAG CPSNAM
PLOT evt1 evt2 INTEGER Not specified Range of events to be plotted out into Postscript. GCLIST LPLOT
CUTXYZ cut REAL 0.0 Momentum threshold for event outputs. It does not affect the number of generated scintillation photons. The unit is MeV/c。 LPFLAG CUTXYZ

This table shows particle number to specify the number of incident particles. These are detailed in GEANT manual, CONS300, P 58.
No. Particle
1 γ
2 e+
3 e-
5 μ+
6 μ-
7 π0
13 Neutron
47 α particle

This table shows recommendations of Wph value.
phase Particle Wph value
liquid α particle 21.6x10-9
liquid γ 21.6x10-9
gaseous α particle 21.6x10-9
gaseous γ 21.6x10-9



HCRLON を 1 にしてHoneycomb を有効にする時は注意しなくてはならない。 下図のようにdefaultでは原点(0,0)にコアがあるため、 中心入射の時はもろにハニカムの影響が出るため、 efficiencyが落ち、低エネルギー側に大きくtailを引く。



この絵が書かれた際のversionでは実際のgeometryより各軸6mmほど大きい。 新しい絵を書くのでそれまで待たれよ。


MEG collaborationに入っていれば誰でも開発に参加できる。

Coding Policy



lproto-1.1 21-Aug-2003 K.Ozone R. Sawada
lproto-1.0 18-Aug-2003 K.Ozone R. Sawada
lproto-0.04 24-Jul-2002 K. ozone, R. Sawada
lproto-0.03e 20-Mar-2002 Kenji Ozone lproto-0.03d 08-Mar-2002 W. Ootani, K. Ozone, R. Sawada lproto-0.03a,b,c summer-2001 to spring-2002 K. Ozone lproto-0.01,2,3 08-May-2000,17-Jan-2001,02-Feb-2001 T. Mashimo

Old Version

These arvhives are obsolete. We don't recommend using them. You should check out latest version with CVS. See
MEG Home Page
K.Ozone, 22 Jan. 2004