目次
0章

初めに・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ｐ２

1章

宇宙線
１．１

宇宙線とは・・・・・・・・・・・・・・・・・・・・・・・ｐ２

１．２

空気シャワー・・・・・・・・・・・・・・・・・・・・・・ｐ３

2章

宇宙線観測の歴史・・・・・・・・・・・・・・・・・・・・・・・・ｐ４

3章

先行研究・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ｐ４

4章

宇宙線観測に用いられる装置・・・・・・・・・・・・・・・・・・・ｐ５

5章

４．１

霧箱・・・・・・・・・・・・・・・・・・・・・・・・・・ｐ５

４．２

シンチレーション検出器・・・・・・・・・・・・・・・・・ｐ５

今回の実験で用いる器具
５．１

観測に使う道具・・・・・・・・・・・・・・・・・・・・・ｐ６

５．２

観測手順・・・・・・・・・・・・・・・・・・・・・・・・ｐ６

6章

仮説・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ｐ８

7章

解析方法・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ｐ８

8章

結果・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ｐ１０

9章

考察・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・ｐ１５

10 章

今後の展望・・・・・・・・・・・・・・・・・・・・・・・・・・・ｐ２０

11 章

謝辞・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・・ｐ２１
1

0章

初めに

私たちの体には絶えず宇宙線と呼ばれる放射線が降り注いでいる。これらの宇宙線は手のひらに一秒間に一個ほど降ってきており、光速とほとんど同じ速さであるため一瞬にして地球に入射し、地球を通過する。宇宙線は１ｍｍの１兆分の１程度の大きさであり、目視することは出来ない。この宇宙線をシンチレーターなどの器具を用いて観測し、解析することで宇宙線がどこで作られ、どのようにして高いエネルギーを得たのか、そして宇宙の起源をも解き明かすことができる。今回の実験では、早稲田本庄と広尾学園（直線距離でおよそ７９ｋｍ）と共同して実験を行うことで、距離の離れた 2 点間で、同一の起源をも つ 超 高 エ ネ ル ギ ー 宇 宙 線 の 探 索 を 行 う 。【 ３ 】

1章

宇宙線

１．１

宇宙線とは

宇宙線とは地球外からやってくる高いエネルギーを持った素粒子であり、物質を構成す
る陽子、電子、原子核など電荷をもつ粒子が太陽表面やその他高エネルギー天体においてほぼ光速の速さまで電磁場により加速されることで高いエネルギーを得ている。その発生源は銀河宇宙線や太陽放射線にあると考えられている。宇宙線と呼ぶときには、通常 1 ギ
ガ 電 子 ボ ル ト （ １ ０ ９ eV） 以 上 を 指 す が 、 銀 河 宇 宙 線 の 約 9 割 が 陽 子 で 1 割 が ヘ リ ウ ム である。他にも炭素や酸素などもあり、鉄までもの元素が確認されている。一方で太陽宇宙
線も陽子は 9 割であるが、ヘリウム原子核はわずか数パーセントしか含まれていない。宇宙から地球に入射する宇宙線は一般に一次宇宙線と呼ばれる。一次宇宙線のエネルギーの分 布 は さ ま ざ ま で あ り 、 １ ０ ９ eV～ １ ０ ２ ０ eV 以 上 ま で と 範 囲 が 広 い 。 １ ０ １ ５ eV 以 上 の エ
ネ ル ギ ー を 持 っ た 宇 宙 線 は 銀 河 系 内 で 加 速 さ れ て い る と 考 え ら れ て お り 、一 般 に １ ０ １ ５ eV
以上のエネルギーを持った宇宙線は超高エネルギー宇宙線と呼ばれる。超高エネルギー宇宙線は主に超新星爆発によって高いエネルギーを得ていると考えられている。宇宙から地球に降り注ぐ宇宙線は荷電粒子であるため太陽風の磁場や地球の磁場により、曲げられる性質があるため、磁場を通り抜けることのできる高いエネルギーを持った宇宙線のみが地
球 に 入 射 す る 。【 １ 】【 ２ 】【 ５ 】

2

１．２空気シャワー
太陽や地球の磁場を抜けたエネルギーの高い一次宇宙線は地球大気内に入射すると酸素分子や窒素分子と相互作用を起こすと中間子を生成する。その後生成された中間子も周りの原子核に衝突しさらに多数の中間子が放出される。このような現象が繰り返し発生することで増幅した中間子は地表にシャワーのように降り注いでいる。そのためこのような現象は空気シャワーと呼ばれる。空気シャワーは 1 次宇宙線のエネル（図１：空気シャワー現象）

ギーが高ければ高いほど範囲が広がる。人類が今まで観測した、最大のエネルギーは１０２０eV を 超 え て お り 、こ れ は 人 工 的 に 粒 子 加 速 器 を 使 っ て 到 達 で き る 6.5×10 1 2 eV を は る かに 上 回 っ て い る 。エ ネ ル ギ ー が １ 桁 増 え る と 、宇 宙 線 の 飛 来 す る 数 の 頻 度 は 1/1000 に な ると い わ れ 、10 2 0 eV の 宇 宙 線 は 1 年 間 で 100km 2 に １ 個 の 頻 度 と い う 限 り な く 少 な い 頻 度 で 飛来する。この空気シャワーで形成される中間子はパイオン、ミュオン、ケイオン、ニュートリノなどが存在する。パイオンやケイオンは安定に存在することができず、非常に短い時間で崩壊する。荷電パイオン、荷電ケイオンはどちらも崩壊するときにミュオンを放出する。
荷電パイオン

π + → μ + +ｖ μ （ ｖ μ ）（ ～ １ ０ ０ ％ ）荷電ケイオン

Ｋ ± → μ + +ｖ μ （ ｖ μ ）（ ～ ６ ３ ． ５ ％ ）他にもミュオンを放出しないが、γ線を放出する 中性パイオンや荷電パイオンなどを放出する中性ケイオンなども存在する。ミュオンは透過性が高いため大気中に吸収されることはほとんどない。また、パイオン、ケイオンなどは崩壊、大気中に吸収されてしまうため地表で観測できる 2 次宇宙線はほぼミュオン、ニュートリノのみである。しかしニュート
リノは透過力が非常に高いため、シンチレーター内で反応を起こすことなく透過する 。そのため、シンチレーターで観測することができる宇宙線はほとんどがミュオンである。 地
上 で 簡 単 に 観 測 が 可 能 で あ る ミ ュ オ ン は 、50 万 分 の １ 秒 と い う と て も 短 い 寿 命 で あ る の にもかかわらず地表に到達することができる。もし光速でとんでいるならミュオンはほんの
６００ｍ進んだだけで崩壊することになる。しかし、アインシュタイン は相対性理論において物体は光速に近ければ近いほど時間がゆっくりと流れると予言した。この相対性理論に よ れ ば ミ ュ オ ン は 本 来 の ６ ０ ０ ｍ よ り も 10 倍 多 い ６ ｋ ｍ を 進 む こ と が で き 、 ま た コ ン
クリートなども透過する透過力を持ち合わせているため他の原子と衝突することもなく、
地 表 に 到 達 す る こ と に な る 。【 １ 】【 ２ 】【 ３ 】
3

第 2章

宇宙線観測の歴史

オーストラリアの科学者ヘスの気球実験によってはじめて宇宙線の存在が知られた。当時岩石や鉱物から放射線が放出されているということは知られていた。そこでヘスは気球に 乗 り 高 度 を 高 く す る に つ れ 放 射 線 の 量 が 低 く な る と 仮 定 し た 。 ヘ ス は 1912 年 か ら 1919
年ころにかけて気球を飛ばし、高空での電離の様子を調べた結果、電離は高空に行くほど増加することがわかり、放射線は気球の上からやってきているものであり、それによって電離が起こっていると解釈された。その後、鉛を使った実験が行われた。鉛の厚さ１０ｃｍくらいでは電離は急速に減るが、それ以降厚さを増しても電離は減らなかった。このことから宇宙線には大気に吸収されやすい軟成分と比較的大気に吸収されにくい硬成分があることがわかった。またウィルソン霧箱の写真により、空気シャワーという現象も示された。その後もさまざまな観測により、宇宙線が大気の中で次々に二次的な効果によってい ろ い ろ な 粒 子 を 生 み 出 す こ と が 分 か っ て い る 。【 １ 】

第３章

先行研究

空 気 シ ャ ワ ー の 研 究 は AGASA（広域空気シャワー観 測 装 置 ）に よ っ て 行 わ れ て い る 。AGASA は 世 界 最
大 の 宇 宙 線 観 測 装 置 で あ り 、 1991 年 よ り 稼 働 し て
い る 。AGASA は １ ０ ０ ｋ ｍ ２ の 面 積 を 占 め 、合 計 138
台の検出器を使用して広域シャワー現象の観測を行 っ て い る 。１ ０ ２ ０ eV を 超 え る 極 高 エ ネ ル ギ ー 宇
宙線は長距離を移動するうちに、宇宙背景放射のマイクロ波との相互作用によって速度が減衰し、
４ ×１ ０ １ ９ eV 程 度 に ま で エ ネ ル ギ ー が 減 衰 す る 。
こ れ を GZK 限 界 と 呼 ぶ 。１ ０ ２ ０ 電 子 ボ ル ト 以 上 の
高 エ ネ ル ギ ー 宇 宙 線 は 、地 球 に 到 達 す る 前 に 、ビ ッ
グバン名残の光子と衝突をし、エネルギーを失い
低エネルギーになるため、理論的には１０２０電子（ 図 ２ ： AGASA）

ボルト以上の宇宙線は地上では観測することができないと考えられていた。しかし、 8 年に 及 ぶ AGASA の 観 測 で １ ０ ２ ０ 電 子 ボ ル ト を 超 え る 高 エ ネ ル ギ ー 宇 宙 線 が 8 例 も 観 測 さ れた 。ま た 、1991 年 に も ア メ リ カ で ３ ×１ ０ ２ ０ 電 子 ボ ル ト の『 オ ー マ イ ゴ ッ ド 粒 子 』も 観 測さ れ て い る 。 様 々 な 実 験 に よ り 、 GZK 限 界 を 超 え る エ ネ ル ギ ー を も っ た 宇 宙 線 が 何 例 も 確
認 さ れ た こ と に よ り 、 GZK カ ッ ト オ フ の 理 論 が 本 当 に 正 し い の か 、 宇 宙 線 の 最 大 の エ ネ ル
ギ ー は ど れ ほ ど な の か な ど の 研 究 が 現 在 で も さ れ て い る 。【 ４ 】【 ５ 】【 ８ 】
4第４章

宇宙線観測に使われる主な装置

４ .１ 霧 箱
霧 箱 （ 図 １ ） は CTR ウ ィ ル ソ ン が 発 明 した、荷電粒子が通った跡に残されるイオン
をたねに霧を作り、粒子の飛跡を肉眼で見ることを可能にしている装置である。ピストンによって体積を膨張することのできる箱を用意する。その箱の中に水、あるいは（図３：霧箱）アルコールの蒸気を飽和状態にしておき、この状態でピストンを使い体積を膨張させることで、気体の温度は低下（断熱膨張）するため、箱の中の蒸気は過飽和状態となる。 箱の中に塵がある状態で行うと塵を核にして水滴が成長し気体全体に霧がかかる。塵のないき
れいな気体では霧は発生しないが膨張比を適当に選ぶとイオンを核にして水滴が成長する。この状態を暗い背景で強く照明すると輝いた点が観測できる。この状態で荷電粒子が霧 箱 内 を 通 過 す る と 荷 電 粒 子 の 飛 跡 が 輝 い た 点 の 連 な り に よ っ て 線 に 見 え る 。【 1】４．２シンチレーション検出器
シンチレーション検出器の内部には光電子増倍管とプラスチックシンチレータ－と呼ばれるものが内蔵されており、高い時間分解能とイベントの数え落としがほとんどない。プ
ラスチックシンチレーターは形状や大きさが自由に変えられるため測定が様々な条件で行うことができる。シンチレーターとは、電子やミュオンなどの荷電粒子がシンチレータ
ーを通過するときに発光がおきる材料である。しかし、この光は肉眼でも見ることができないほどの弱い光であるため、プラスチックシンチレーターを完全に遮光 し、外部からの光が入らないようにする必要がある。また、シンチレーターに鏡、アルミ箔など光を反射するものをつけることで、光は反射を繰り返し、シンチレーター中に光がいきわたるようになる。シンチレーターの端に光信号を電気信号に変える光電子増倍管をつけ る。シンチ
レーター内を宇宙線が通過し、発生した光子が光電子増倍管の内部の光電面という場所に当たると光電子がはじき出される。光電子は－の電荷をもつため、＋に荷電したダイノードに引き付けられ、ぶつかる。するとダイノードの中の電子が数個放出され る 。こ こ で 発 生 し た 電 子 は 、＋ に 帯 電 し て い る ダ イ オードと衝突を繰り返すことにより、鼠算式に電子の個数が増加し、最終的にはある程度の電流になるほどの電 子 が は じ き 出 さ れ 、 電 気 信 号 と な る 。【 ２ 】

5（図４：光電子増倍管）

第５章

観測

５．１観測に使う装置
・プラスチックシンチレーター

２台

・光電子増倍管２台

・ BNC シ グ ナ ル エ ク ス テ ン シ ョ ン ケ ー ブ ル・ DAQ ボ ー ド

２本

１台

・ GPS モ ジ ュ ー ル

１台

・ GPS ア ン テ ナ

１台

・温度センサー１台

・ PDU パ ワ ー ケ ー ブ ル

１本・パワーエクステンションケーブル
・ USB ケ ー ブ ル
・５V

直流電源

・ PC

１台

・ PDU

１台

１本

１本
１台

５．２観測手順① 上記の各器具を図５のように適切な位置でつなぎ合わせる。

（図５：各機器の接続方法）② シンチレーターをセッティングする。今回の実験ではシンチレーターを重ね た場合（図６）と、シンチレーターとシンチレーターの間の距離を１ｍ、２ｍ、３ｍと離して観測（図７）を行った。図６は１ｍ離した状態の様子であり、２ｍ、３ｍは図７のシンチレーターとシンチレーターの間の距離を広げて観測を行った。

6

１ｍ（図６：シンチレーターの重ね方）（ 図 ７ ： シ ン チ レ ー タ ー の 離 し 方 （ １ ｍ ））③ パ ソ コ ン を 起 動 さ せ 、 equip プ ロ グ ラ ム を 起 動 す る④ テスタを用い、電源装置のつまみをひねりながら、電圧の大きさを調節する。プラトーと呼ばれ電圧を上げてもカウント数があまり変わらない領域がある。電圧はそのプラトー内に調節すると観測が安定する。
⑤ パ ソ コ ン で 、コ イ ン シ デ ン ス レ ベ ル ＊ １ や 、ス レ ッ シ ョ ル ド ＊ ２ な ど 各 種 設 定 を 行 い 、観測を開始する⑥ 目的の日数が経過したら、観測中止ボタンを押し、観測を中断する。プログラムを
閉 じ る 前 に 必 ず save を ク リ ッ ク し 、 プ ロ グ ラ ム を 閉 じ る 。
⑦ 観測を終了したら、電源のつまみを０にする。
⑧ 観 測 し た デ ー タ を quarknet に ア ッ プ ロ ー ド す る 。 し か し 今 回 の 観 測 デ ー タ を ア ッ
プロードしようとすると、エラーが発生しアップロードすることができなかったので 、 USB な ど に デ ー タ を 移 し た 。

＊ １：コ イ ン シ デ ン ス レ ベ ル：シ ン チ レ ー タ ー a、ｂ の 2 枚 で 観 測 を 開 始 し た と す る 。コ イ
ン シ デ ン ス レ ベ ル １ に 設 定 す る と 、そ の シ ン チ レ ー タ ー a、ｂ の ど ち ら か 片 方 に 宇 宙 線 が 入射すると、その信号は１カウントとして記録される。コインシデンスレベル２に設定した場合、例えばシンチレーターを重ねて観測した場合、ミュオンなど２枚のシンチレーター
内で発光する荷電粒子が通過した時、重ねている上のシンチレーターの方が、下にあるシンチレーターよりも早く観測される。また、距離を離した場合だと、１枚目のシンチレー
ターに入った後、２枚目のシンチレーターで観測されるまでに少しの時間差が生じる。この時間差を解消するために、ゲート幅（どのくらいの時間差を同時とみなすか）とパイプ
7

ラ イ ン デ ィ レ イ （ ケ ー ブ ル 通 過 の 際 の 遅 延 ） を 設 定 す る 。 ゲ ー ト 幅 は 100ns、 パ イ プ ラ イ
ン デ ィ レ イ は 30ns に 設 定 し た 。

＊２スレッショルド：光電子増倍管の内部ではミュオンが入ってこなくても、確率的に熱電子が飛び出す場合がある。この熱電子と光電子を区別するために設定する値。熱電子は確率的に飛び出す電子である。そのため飛び出す電子は 1 つである。しかし、ミュオンがシンチレーター内を通過すると、何千個もの光子が発生するため、光電子増倍管から出力される電気量が数千倍違ってくるため、熱電子のほうは波高が低くなる。それに対し、ミュオンが通過した際の波高は高くなる。この差を用いて閾値を設定し、それ以上の電気量を 持 つ も の の み を 観 測 す る こ と で 、 熱 電 子 と ミ ュ オ ン と を 区 別 す る こ と が で き る 。【 ２ 】

第６章

仮説

実験①早稲田本庄内で１ｍ、２ｍ、３ｍと離して行う実験
宇宙線の量は距離を離すにつれ同一の起源をもつ宇宙線が同時に観測される個数が減少すると予想する。これは一次宇宙線が入射し、空気シャワーを形成する際、その二次宇宙線の一部分は大気中に吸収され、地表まで降ってこなくなる。シンチレーターの 間の距離を広げていくにつれて、その範囲を覆う空気シャワーを発生させるには、より高いエネ
ルギーを持った一次宇宙線が入射し、よりエネルギーの高い二次宇宙線を発生させる必要がある。しかし、一次宇宙線はエネルギーが高ければ高いほど一次宇宙線の飛来数は減少するため、本実験において距離を離していくにつれて宇宙線が同時に観測される個数は減少していくと考えた。
実験②広尾学園，早稲田本庄間での観測
広尾、早稲田本庄間での測定において、同一の起源をもった宇宙線が観測される可能性はほぼ０であると予想する。宇宙線はエネルギーが高くなれば高くなるほどその飛来数は減少し、１０２０電子ボルトになると、1 年間で１００ｋｍ２あたり 1 個しか降ってこないと い う 結 果 が 確 認 さ れ て い る 。 広 尾 学 園 と 早 稲 田 本 庄 間 は 直 線 距 離 に し て 約 79km も 離 れていて、この 2 点間を覆うにはとてもエネルギーの高い超高エネルギー宇宙線が飛来してくる必要があり、短い期間での観測において、もともと飛来数の少ない超高エネルギー宇宙線が観測される可能性は極めて低いと予想される。

第７章

解析方法

観測したデータは
F70BFD91 00 00 00 00 38 00 3A 00 F5E8DDEA 041405.010 220999 A 07 0 +0052
こ の よ う に 宇 宙 線 が 観 測 さ れ る た び こ の よ う な 16 進 法 の 数 列 に よ っ て 表 さ れ る 。 こ の デー タ は 入 射 し た 宇 宙 線 の 時 間 な ど を ns の 単 位 で 観 測 し 、数 値 化 し た も の で あ る 。こ の デ ー
8

タが 1 日の観測で何十万行にも及ぶため、そのままではデータ化、分析することができな
い 。そ こ で sublime

text と python を 使 い 、解 析 を 行 っ た 。東 北 大 学 サ イ ク ロ ト ロ ン・ラ

ジオアイソトープセンター測定器研究部助助教授の田中香津生先生にプログラム（後述）
を 提 供 い た だ き 、そ の プ ロ グ ラ ム を sublime text 上 に 書 き 込 み 、書 き 込 ん だ フ ァ イ ル を 保
存 す る 際 に 、 名 前 の 後 ろ に .py と 入 力 す る こ と で そ の フ ァ イ ル で は パ イ ソ ン が 実 行 可 能 になる。新しいファイルを作成し観測したデータを張り付け、そのファイルも名前を付けて保 存 す る 。プ ロ グ ラ ム に 観 測 し た デ ー タ の フ ァ イ ル 名 を 入 力 し 、CTRL キ ー と B を 同 時 に 押すことでプログラムを実行させることができ、自動で解析し、同時に入射した宇宙線の個数のヒストグラムと累積グラフを表示することができる。
も し 宇 宙 線 が 一 様 に 降 っ て く る と 仮 定 し た と き 、宇 宙 線 が 同 一 の 起 源 を も た ず（ 偶 然 に ）、
2 枚のシンチレータ－に一秒間に同時に入射する個数を R とする。すると R はR＝ ２ ×r a × r b ×ｔ （ 以 後 数 式 ① と 表 記 ）【 ９ 】の 式 で 定 義 す る こ と が で き る 。r a 、r b は 仮 に 二 枚 の 検 出 器 を a、ｂ と し た と き に 各 シ ン チ レ
ー タ － に 1 秒 間 に 宇 宙 線 の 信 号 が 何 回 カ ウ ン ト さ れ た か を 表 す 数 で あ る 。r a 、r b は 、a と bのそれぞれにおいて観測された宇宙線のカウント数を観測時間（秒）で割ることによって求めることができる。ｔは同時とみなす時間を表す数であり、a のシンチレーターで観測された宇宙線の到達時間に対して、ｂのシンチレータ－で観測された直近の到達時間を比較 し 、そ の 差 を 表 し て い る 。こ の ｔ は 今 回 の 累 積 グ ラ フ の 横 軸（ x 軸 ）に 対 応 し て い る 。Ｒ
は 一 秒 間 に 観 測 さ れ る 同 時 個 数 で あ る の で 、数 式 ① に 観 測 し た 時 間（ 秒 ）を か け る こ と で 、ある観測時間内で、もし宇宙線が一様に降ってくると仮定したとき、偶然に同時に入ってきた宇宙線の累積個数を表す関数となる。
今 回 の 解 析 で は 同 時 と み な す 時 間（ ｔ ）を 実 験 １ は １ ０ － ８ ｓ 、実 験 ２ で は １ ｓ と 広 く 取って解析した。この差は 2 点間の距離の差から生まれる宇宙線が進む距離によるものであ
る。

ｗ
シンチ A

シンチ B

ｗをシンチレーターの２点間の距離とする。もし天頂角θ度で宇宙線が入射した時、１
枚 目 の シ ン チ レ ー タ ー（ B）に 入 る た め に は ｚ ｍ 進 む 必 要 が あ る 。こ の 間 に ２ 枚 目 の シ ン チ
レ ー タ ー（ A）に 向 か っ て 、ｚ ｍ 進 ん で い る 状 況 に な る 。す る と 、２ 枚 目 の シ ン チ レ ー タ ーに入射するためにはあとｘｍ進む必要があり、このｘはｗの値が大きくなるほど、大きく9なる。そのため、距離の広い広尾学園と早稲田本庄での共同実験の方は早稲田本庄内での観測よりも、ｔの値を大きくとる必要がある。
プ ロ グ ラ ム 内 に r a 、 r b 、 観 測 時 間 を 代 入 す る こ と で 数 式 ① ×観 測 時 間 を グ ラ フ に 描 く ことができる。もし実際に観測した宇宙線の結果の累積グラフとこの理論線に有意な差がみられたならば、観測地点の 2 点間を覆うような空気シャワーを発生させる超高エネルギー
宇宙線が降ってきた可能性が高いといえる。しかし、１ｍ、２ｍ、３ｍ離した測定では距離が近すぎるため、超高エネルギー宇宙線のようなエネルギーの非常に高い宇宙線でなくとも同時に観測される可能性が高いため、早稲田本庄内での観測のみでは観測された宇宙線が超高エネルギー宇宙線であるかの判断が難しい。
今回使用したプログラムは３種類ある。
（１）各チャンネルのカウント数の測定

REFE・ ｃ ｈ ３ 、 ｃ ｈ ４ で 観 測 さ れ た RE（ ラ イ ジ ン グ エ ッ ジ ）を カ ウ ン ト す る 。 RE は 設 定 し た 閾 値 を 超 え る 宇 宙 線が来た場合、その波が閾値の値を超えた時間である。
(２ )ｃ ｈ ３ （ ｃ ｈ １ 、 ２ 、 ４ ）、 ｃ ｈ ４ （ ｃ ｈ １ ， ２ ， ３ ） で同時に観測された数のヒストグラムと累積グラフの描画
・ ｃ ｈ ３ で 観 測 さ れ た 宇 宙 線 と 直 近 の ｃ ｈ ４ で 観 測 さ れ た （ 図 ８ ： 波 形 、 RE、 閾 値 ）宇 宙 線 を 比 較 し 、そ の 時 間 差 が １ ０ － ８ 以 内 で あ れ ば 、同 時 と み な し 、グ ラ フ に 描 画 する。
（３）早稲田本庄、広尾学園の２つのデータのヒストグラムと累積グラフの描画
・早稲田本庄の各ｃｈで観測された宇宙線に対して広尾学園の各ｃｈで観測された直近の宇宙線を比較し、その時間差が１ｓ以内であれば同時とみなし、その数をグラフに描画する
これら３つのプログラムを利用し、観測データを解析、考察した。

第８章

結果

実験①早稲田本庄内でシンチレーターを重ねる、１ｍ、２ｍ、３ｍ、離す 4 種類の測定を行い、各観測の条件をグラフに示した。

日付

ｃｈ３

4/15

７５０V

４ /25

７５０V

電圧

ｃｈ４

電圧

離した距離

観測日数

６７０V

１ｍ

２日間

６７０V

２ｍ

1 日間

10

4/26

７５０V

６７０V

３ｍ

1 日間

5/7

７５０V

６７０V

０ ｍ（ 重 ね る ） 1 日 間

5/8（ ｃ ２ ）

７５０V

６７０V

０ ｍ（ 重 ね る ） １ 日 間

５ /１ ０ （ ｃ

７５０V

６７０V

１ｍ

１日間

２）
コインシデンスレベル２で観測した日は日付の後にｃ２と記述した。

日付

4/15

ｃｈ３

ｃｈ４

観測時間

ｒ ａ（ ｃ ｈｒ ｂ（ ｃ ｈ

カ ウ ン トカ ウ ン ト

【秒】

3）

4）

数

数

49168

49168

．

0.285450.2365172244
995

4/25

24854

20048

84965.334

0.292520.23596

4/26

24944

19674

85702.991

0.29105

0.22956

5/7

31376

22612

85845.997

0.36549

0.2634

5/8

4573

4587

87252.09

0.052410.05257

5/10

89

79

83848.006

0.00106

0.00094

上のグラフは各観測における、ｃｈ３のカウント数、ｃｈ４のカウント数、観測時間、カウント数を観測時間で割ったｒａ、ｒｂの値である。観測開始時間は観測データの一番
初 め に 観 測 さ れ た も の を 基 準 に し た 。 こ の 時 刻 は UTC 時 刻 で あ り 、 こ の 時 刻 に ９ 時 間 を 足
す と 日 本 時 間 に 変 換 で き る 。 例 え ば 4 月 15 日 の 42615.008 は UTC 時 刻 で あ り 、 こ の 場 合
は 4 時 26 分 15 秒 008 を 観 測 開 始 日 時 と な る 。 ま た 、 観 測 終 了 時 間 も 同 様 に 、 観 測 結 果 の
最後の行の時間を利用する。観測時間は観測開始時間と観測終了時間の差を取り、観測した秒数を書いた。ｃｈ３、ｃｈ４の各シンチレーターで観測された宇宙線のカ ウント数を
観 測 時 間 (秒 )で 割 る こ と で １ 秒 間 に 観 測 さ れ る カ ウ ン ト 数 が 分 か る た め 、 こ れ を 数 式 ① に代入することができ、ここにさらに観測時間をかけることで、偶然に 2 枚のシンチレータ
ーに宇宙線が入ってくる個数が求められる。

解析を行い次のグラフが得られた。

11

４ /１ ５１ｍ離して 2 日間観測

（図９）

（コインシデンスレベル１）

オ レ ン ジ 線 ： 2×0.28545×0.2365×172244． 995×⒳

左 の グ ラ フ は 時 間 差 が x・ １ ０ － ８ ｓ の 時 の カ ウ ン ト 数 を 表 す ヒ ス ト グ ラ ム で あ る 。
右 の 累 積 グ ラ フ は ｘ・１ ０ － ８ ｓ の 時 、０ か ら x・１ ０ － ８ ｓ ま で の す べ て の カ ウ ン ト 数 を 表した累積グラフである。
左のグラフｘ：時間幅（ｓ）

ｙ：同時に観測された宇宙線の数

右のグラフｘ：時間幅（ｓ）

ｙ：同時に観測された宇宙線の数の総数

４ /２ ５２ｍ離して１日間観測（コインシデンスレベル１）（図１０）

オ レ ン ジ 線 ： 2×0.29252×0.23596×84965.334×⒳12

４ /２ ６３ ｍ 離 し て 1 日 間 観 測 (コ イ ン シ デ ン ス レ ベ ル １ )（ 図 １ １ ） オ レ ン ジ 線 2×0.29105×0.22956×85702.991×⒳５ /７

シンチレーターを重ねて測定（コインシデンスレベル１）

（図１２）

５ /８

オレンジ線

2×0.36549×0.2634×85845.997×⒳５ /７ と 同 様 の 観 測 方 法 （ コ イ ン シ デ ン ス レ ベ ル は ２ に 設 定 ）

（図１３）

オレンジ線

2×0.05241×0.05257×87252.09×⒳13

５ /１ ０１ｍ離してコインシデンスレベル２で観測

（図１４）

オレンジ線

2×0.00106×0.00094×83848.006×⒳実 験 ② .早 稲 田 本 庄 と 広 尾 学 園 で の 共 同 実 験
本 解 析 に 使 用 す る デ ー タ は 、 quarknet 上 に ア ッ プ ロ ー ド さ れ て い る ２ ０ １ ８ 年 １ １ /１
９ ～ １ １ /２ ６ の 間 に 観 測 さ れ た デ ー タ を 利 用 し た 。
以下のグラフが２つのデータを解析し、得られたグラフである。

（ 図 １ ５ ） オ レ ン ジ 線 ： ２ ×0.0183×0.0638×607832.992（ 同 時 に 測 っ た 時 間 ） ×⒳

こ の 観 測 で は r a ＝ 0.0183（ 早 稲 田 本 庄 ）、r b ＝ 0.0638（ 広 尾 学 園 ）と い う 結 果 が 得 ら れ た ため、この値を代入した。
左のグラフは時間差が⒳ｓの時のカウント数を表すヒストグラムである。
右の累積グラフは⒳ｓの時、０から⒳ｓまでのすべてのカウント数を表した累積グラフで
ある。

14

第９章

考察

１．観測、解析結果
シンチレーターを重ねた場合と、シンチレーターの間の距離を１ｍ離した場合の観測において、コインシデンスレベル 1 にした場合と２にした場合では、検出器の総カウント数
はコインシデンスレベル２で観測した方が少なくなると予想されるが、本実験はゲート幅
を 100ns に 設 定 し 、 そ れ 以 外 の 条 件 を 変 え て い な い た め 、 グ ラ フ に 差 異 が あ ま り 見 ら れ な
い と 思 わ れ る 。パ イ ソ ン に よ る 解 析 で は 、10 － ８ ｓ（ ＝ 10ns）以 内 に 入 っ た 宇 宙 線 を 同 時 と
み な し た 。コ イ ン シ デ ン ス レ ベ ル ２ で の 観 測 は 100ns 以 内 を 同 時 と み な し た た め 、10 － ８ ｓ
以内に同時に入った宇宙線も全てデータ化し、記録している。コインシデンスレベル 1 で
観 測 し た 場 合 は 入 射 し た 全 て の 宇 宙 線 を デ ー タ 化 し て い る た め 、10 － ８ 以 内 に 同 時 に 観 測 され た も の を 含 ん で い る 。 こ の 2 つ の デ ー タ は ど ち ら も 10 － ８ 以 内 に 同 時 に 入 射 し た 宇 宙 線の 情 報 を 全 て 含 ん で い る の で 、同 距 離 の 観 測 か つ 同 じ 時 間 幅（ 10ns 以 下 ）と い う 条 件 で 解析を行った場合、グラフの変化は小さいと考えられる。もしグラフの形状に大きな差異が見られれば、観測方法、または解析方法に不備がある可能性がある。
図９と図１４、図１２と図１３を比較する。図９は 2 日間、図１４は 1 日間の観測であったため、図９を約半数と考えることにする。どちらも観測数はほぼ同じであり、またグ
ラフの形状も似ている。図１２と図１３を比較すると、観測数も、グラフの形もほぼ同じであり、差異は極めて少なかったため、観測結果、解析方法ともに妥当であると考えることができる。

２．同時に検出されたと思われる宇宙線
２．１早稲田本庄内でシンチレーターを１ｍ、２ｍ、３ｍと離して行った実験
各 計 測 結 果 の グ ラ フ （ 図 ９ ）（ 図 １ ０ ）（ 図 １ １ ） を 見 る と 、 １ ， ２ ， ３ ｍ 、 重 ね て 測 定
し た す べ て の 観 測 結 果 に お い て 累 積 グ ラ フ は 数 式 ① ×観 測 時 間 を 大 幅 に 上 回 っ て い た た め 、各測定において、偶然に同時に入った宇宙線ではない、同一の起源をもつ宇宙線が観測されていることが分かった。
１ ｍ （ 4/15）、 ２ ｍ （ 4/25）、 ３ ｍ （ 4/26） の 各 測 定 結 果 に お い て 、 時 間 幅 10 － 8 ｓ 以 下 の
時 の 宇 宙 線 の 累 積 個 数 （ 縦 軸 ） を 見 る と １ ｍ （ 2 日 間 の 測 定 ） で は 約 130 個 、 ２ ｍ の 観 測では４４個、３ｍでは３３個という結果になった。１ｍは 2 日間測定したデータであるので、1 日に換算すると約６５となる。この結果を見ると、１ｍは２ｍよりも累積個数が多
くなり、また、２ｍは３ｍよりも累積個数が多くなるという結果が得られた。これらの減少率を求めると
１ － ２ ｍ ／ １ ｍ ＝ １ － ４ ４ /約 ６ ５ ＝ １ － ０ ． ６ ８ ＝ ０ ． ３ ２ ＝ ３ ２ ％１ － ３ ｍ ／ ２ ｍ ＝ １ － ３ ３ /４ ４ ＝ １ － ０ ． ７ ５ ＝ ０ ． ２ ５ ＝ ２ ５ ％となった。２ｍと３ｍの観測個数の差はわずかに１１個であるが減少率でみると、２５％15

の 減 少 が 見 ら れ る 。ｒ a、ｒ ｂ と も に ほ と ん ど 同 じ カ ウ ン ト 数 で あ り な が ら 、２ ５ ％ も の 減少が見られたので、この観測では、１ｍよりも２ｍ、２ｍよりも３ｍシンチレーターの間の距離を離していくと、同時に観測される宇宙線の個数も減っていくことが確認できた。
これらのことから、さらにシンチレーターの間の距離を伸ばしていくと、シンチレーター
2 枚を覆う空気シャワーが発生している数も減少していくと考えられる。

２．２早稲田本庄、広尾学園での共同実験
早稲田本庄、広尾学園の解析では、早稲田本庄内での観測よりｔの値を広くとった。しか し 、ｘ が 0.0001s、0.001ｓ 以 下 の 時 間 幅 で あ る と 、同 時 に 観 測 さ れ る 宇 宙 線 が １ ，２ 個
しか見つからなかったため、時間幅の範囲を１ｓと広くとり、解析をした。解析によって得られたグラフ（図１５）を見ると、宇宙線の累積個数と、理論線にはほとんど差異が見られないので、広尾学園と早稲田本庄を覆うような巨大な空気シャワーは発生していないと考えることができ、超高エネルギー宇宙線は飛来していないといえる。グラフを見ると0s～ 0.4s 間 で 理 論 線 よ り 累 積 グ ラ フ の 値 が 上 回 っ た 。 し か し 、 こ の 誤 差 は 非 常 に 小 さ く 、
観測時間を長くすることによって、より理論線に近づいていくと考えら れる。また、グラ
フ は 、 0.4ｓ ～ 0.6s の 間 が く ぼ ん で い た 。 そ の 理 由 と し て 観 測 日 数 が 少 な い こ と 、 ま た 、観 測 方 法 に 原 因 が あ る と 考 え た 。同 一 の 起 源 を も つ 宇 宙 線 が 観 測 さ れ な い 限 り 、（もしそのような宇宙線がある場合は累積グラフが理論線を上回る）観測期間が多ければ多いほど、理論値に近づいていくと考えることができる。本解析は 6 日間のデータを利用したため、もっと長い期間観測を行うと、このくぼみが小さくなる可能性があると考えた。観測方法
も 1 つ の 原 因 で あ る と 考 え る 。 早 稲 田 本 庄 の ra（ 一 秒 間 に 観 測 さ れ る 個 数 ） は 0.0183 に対 し て 、 広 尾 学 園 の rb は 0.0638 と 早 稲 田 本 庄 の 観 測 に 比 べ て 約 ３ .５ 倍 高 い 数 値 と な っている。宇宙線はランダムに降ってくるので、距離の離れた 2 点間において観測数に多少の 差 が 生 ま れ る こ と は あ る が 、 約 3.5 倍 も 変 わ っ て し ま っ た 。 そ こ で ど ち ら か の 電 圧 を 調
整し、カウント数をなるべく同じにそろえることでくぼみが小さくなると考えた。

３．カウントレートの違いについて
4/15、４ /25、4/26 は 毎 秒 の カ ウ ン ト 数 が ほ ぼ 同 じ で あ る の に 対 し 、5/7 は 同 じ 条 件 で 観測を行っているのにもかかわらず、カウント数がｃｈ３、ｃｈ４ともに大きく上回っている 。宇 宙 線 は 常 に 等 し く 地 球 に 降 り 注 い で い る わ け で は 無 い た め 、他 の 特 別 な 要 因 が な く 、
偶 然 に ５ /７ に 多 く な っ た 可 能 性 も 十 分 に あ り 得 る が 、 私 は こ の 日 に 多 く な っ た 原 因 が あると考え、その原因を考察した。

３．１

気温の変化によるもの

私はこの原因が気温によるものと考え、気象庁のホームページ【７】を参考に気温、天気16と宇宙線との相関関係を考察した。気象庁のホームページ上には本庄市のデータがなかったため、本庄に一番近い熊谷のデータを利用した。

4/15 13:00~4/17 13:00までの気温
25
20
15
10
5
0

30

4/25 12:00~4/26 13:00までの気温

25
20
15
10
5
0

4/26 12:00～4/27 13:00
18
16
14
12
10
8
6
4
2
0

17

5/7 12:00~5/8 13:00
25
20
15
10
5

13:00

12:00

11:00

10:00

9:00

8:00

7:00

6:00

5:00

4:00

3:00

2:00

1:00

24:00:00

23:00

22:00

21:00

20:00

19:00

18:00

17:00

16:00

15:00

14:00

13:00

12:00

0

上 の ４ つ の グ ラ フ は １ 時 間 ご と の 気 象 庁 の 気 温 デ ー タ を 利 用 し excel で 作 成 し た も の である。これらの 4 つのグラフを比較すると、この 4 つのグラフのすべてにおいて気温の変化 、時 間 に よ る 気 温 の 変 動 と も に 相 関 が な い の は 明 ら か で あ る 。５ /７ 以 外 の 宇 宙 線 の 観 測
数 は 同 じ で あ っ た こ と か ら 、５ /７ 以 外 の 気 温 を み る と 、気 温 の 高 さ や 時 間 に よ る 気 温 の 変化に相関がないため、気温が宇宙線の個数に変化を生じさせるということは考えにくい。
また、同様に宇宙線が気温に与える影響もないと考えることができる。

３ .２

大気圧によって変化が生じた

大気圧が高ければ高いほど地表に宇宙線が到達するまでにその宇宙線が大気と相互作用を起こす可能性も高くなるはずである。これは空気の層が厚いことで、入射した宇宙線がより多くの大気を通過しなくてはいけないため、より多くのエネルギーが大気に吸収されてしまう宇宙線も多くなり、結果として地表まで到達する宇宙線の量も減少すると 考え
た か ら で あ る 。そ こ で ,こ ち ら も 気 象 庁 の ホ ー ム ペ ー ジ【 ７ 】よ り 、熊 谷 の 大 気 圧 の 情 報 を
引 用 し て excel で グ ラ フ を 作 成 し た 。

４/１５ 12:00~ 4/17 13:00 までの気圧
1020
1015
1010
1005
1000

18

12:00

10:00

8:00

6:00

4:00

2:00

24:00:00

22:00

20:00

18:00

16:00

14:00

12:00

10:00

8:00

6:00

4:00

2:00

24:00:00

22:00

20:00

18:00

16:00

14:00

12:00

995

４/25 12：00～4/26 13:00までの気圧
1003
1002
1001

1000
999
998
997
996
995

7:00

8:00

9:00

10:00

11:00

12:00

13:00

7:00

8:00

9:00

10:00

11:00

12:00

13:00

7:00

8:00

9:00

10:00

11:00

12:00

13:00

6:00

5:00

4:00

3:00

2:00

1:00

24:00:00

23:00

22:00

21:00

20:00

19:00

18:00

17:00

16:00

15:00

14:00

13:00

12:00

994

4/26 12:00~4/27 13:00までの気圧
1005
1004
1003
1002
1001
1000
999

6:00

5:00

4:00

3:00

2:00

1:00

24:00:00

23:00

22:00

21:00

20:00

19:00

18:00

17:00

16:00

15:00

14:00

13:00

12:00

998

5/7 12:00~5/8 13:00までの気圧
1012
1010
1008
1006
1004

6:00

5:00

4:00

3:00

2:00

1:00

24:00:00

23:00

22:00

21:00

20:00

19:00

18:00

17:00

16:00

15:00

14:00

13:00

12:00

1002

も し 、 気 圧 が 宇 宙 線 の 個 数 を 左 右 す る の で あ れ ば 、 一 番 カ ウ ン ト 数 が 多 く な っ た 5/7～ 5/8 の 観 測 に お い て 、 大 気 と 相 互 作 用 を 起 こ す 確 率 を 少 な く な る た め に は 、 大 気 圧 が
4 回 の 観 測 の 中 で 一 番 低 く な っ て い る は ず で あ る 。4 つ の グ ラ フ を 比 較 す る と 、ま ず 、グラ フ の 形 状 は 日 に よ っ て 異 な っ て い る 。 大 気 圧 が 一 番 低 い の は 、 ４ /25～ 4/26 の 間 で の
19

観測であり、この観測では、観測時間の半分程度は気圧が１０００ｈＰａを下回ってい
た 。そ れ に 対 し 、5/7～ 5/8 の 観 測 で は 大 気 圧 が １ ０ ０ ０ ｈ Pa を 下 回 る こ と は な く 、観 測
時 間 内 の す べ て の 時 間 に お い て 、１ ０ ０ ５ ｈ Pa を 上 回 っ て い た 。気 圧 が 低 い ほ ど カ ウ ン
ト 数 が 多 く な る と す る な ら ば 、 カ ウ ン ト 数 が 5/7～ 5/8 に か け て 最 大 に な っ た こ と に 矛盾するので、大気圧の高いほどカウント数は少なくなり、大気圧が低いほど 宇宙線の観測数は多くなることはないと考えることができる。また、同様に宇宙線が大気圧の高低を左右することはないと考える。

３ .３

地球に近い太陽放射線の影響によるもの

宇宙線は宇宙からランダムに降ってくるため、天候が宇宙線量を左右しないとすると、近くで宇宙線を放射している太陽の活動と関係があるのではないかと考え、調べた。すると NASA の 太 陽 観 測 衛 星 に よ る と 、 ５ 月 2 日 の 時 点 で 太 陽 に は 黒 点 が 無 か っ た が 、 4 日 に
新しい黒点が太陽の端から出現した。黒点の出現にともなって C クラスのフレアがあい
つ い で 発 生 し 、 6 日 午 後 2 時 に フ レ ア の 階 級 分 類 （ A、 B、 C、 M、 X の 5 つ に 階 級 が 分 け ら
れ て お り 、 A が 最 も 低 く 、 X が 最 も X 線 強 度 が 高 い ） の う ち C９ ． ９ フ レ ア が 観 測 さ れ た 。
ま た 、午 後 10 時 半 に も C7.3 の 小 規 模 フ レ ア が 発 生 し て い る こ と が 分 か っ た 。太 陽 フ レ アは太陽風（太陽表面からのプラズマ粒子の放出）に比べ、高エネルギーの粒子が地球に飛来 し 、 地 球 に 多 大 な 影 響 を 与 え る 。 私 は こ れ ら の 理 由 か ら ５ /７ に ch３ 、 ch４ と も に 観 測数が多くなったのは、この大規模な太陽フレアによって地球に飛来する宇宙線量が増加した た め で あ る と 考 え た 。【 ５ 】【 ６ 】

第１０章

今後の展望

今回の観測において実験①では検出器 2 台のみしか使っていないため、ミュオンの選別ができなかった。検出器を 4 台使い、2 台ずつ重ねて観測を行うなどの方法をとり、ミュオンの選別をしっかりと行い、ノイズや不必要なカウントをさけることができればよいと思った。
ｃｈ３とｃｈ４の観測結果において、ｃｈ３とｃｈ４のレートが違っていた。宇宙線は一様に降っていて、さらに距離の近い 2 点間であると個数もあまり変わらないはずである
ため、オシロスコープなどを用いて適当な電圧になるように調整し、観測するとよいと思った。
また短い期間での観測であったため、もっと長い期間観測を行えばデータの数も増え、偶然に起こってしまう回数も減り、またもっと多くの比較（日毎によっての変化や違いなど）が可能であったと考える。

20

第１１章

謝辞

本論文を執筆するにあたってご指導してくださった早稲田大学本条高等学院物理化教
諭の大塚未来先生、プログラムの提供、データ解析にご協力していただいた広尾学園高等部の伊勢千沙子さん、広尾学園高等部の秋田悠児先生、プログラムの提供やデータ解析の指導をしてくださった東北大学サイクロトロン・ラジオアイソトープセンター測定器研究部助助教授の田中香津生先生に感謝の意をここに表します。

参考文献
本論文文章中の【】付数字はその文章を執筆するにあたっていて参照した文献である。

【１】 小田稔 、 2010 年 、『 物 理 学 選 書【２】 田中宏幸

竹内

５

宇 宙 線 ［ 改 訂 版 ］』． 裳 華 房 、 412ｐ

薫 、 ２ ０ １ ４ 年 、『 素 粒 子 で 地 球 を 測 る

高エネルギー地球科

学 入 門 』． 東 京 大 学 出 版 会 、 186p
【３】名古屋大学『宇宙線

50 の な ぜ 』（ 最 終 閲 覧

9/６ ）（ http://www.isee.nagoya-u.ac.jp/50naze/cosmicray/index.html）【４】ＩＣＲＲ

東京大学宇宙線研究所

（最終閲覧

9/６ ）

（ http://www.icrr.u-tokyo.ac.jp/~okada/icrr/intro/p_agasa_ta.html ）【５】山﨑耕 造 、 ２ ０ １ ８ 年 、『 ト コ ト ン や さ し い 宇 宙 線 と 素 粒 子 の 本 』． 日 刊 工 業 新 聞

社 、 160p【 ６ 】excite ニ ュ ー ス ,2019

5/7、『 太 陽 に 新 た な 黒 点 出 現「 M ク ラ ス ま で あ と 一 歩 」C9.9

フ レ ア 発 生 ！ （ 動 画 ）』 ,(最 終 閲 覧 １ ０ ／ ２ １ )(https://www.excite.co.jp/news/article/Hazardlab_29117/ )【７】気象庁過 去 の 気 象 デ ー タ 検 索 （ 最 終 閲 覧 11/19）（ https://www.data.jma.go.jp/obd/stats/etrn/index.php?prec_no=43&block_no=4
7626&year=&month=&day=&view= ）【８】

吉野滋 、竹 田成 宏 、２ ０ ０ ３ 年 、「 AGASA (明 野 広 域 空 気 シ ャ ワ ー 観 測 装 置 )」．

東大宇宙線研究所（ 最 終 閲 覧 12/12）（ http://www-akeno.icrr.u-tokyo.ac.jp/AGASA/index -j.html）【 ９ 】 Pengra.D,2008, Counting statistics of random events: A tutorial （ 最 終 閲 覧日１２月１３日）
http://courses.washington.edu/phys433/muon_counting/counting_stats_tutor
ial_b.pdf

図 １ ： 東 京 大 学 宇 宙 線 研 究 所 （ 最 終 閲 覧 11/16）（ http://www.icrr.u-tokyo.ac.jp/about/cosmicray.html）
21

図２：吉野滋、竹田成宏

東大宇宙線研究所「 AGASA (明 野 広 域 空 気 シ ャ ワ ー 観 測 装 置 )」２００３年７月２３日更新（ 最 終 閲 覧 12/7）（ http://www-akeno.icrr.u-tokyo.ac.jp/AGASA/index-j.html）
図 3： 有 限 会 社

ラ ド ,（ 最 終 閲 覧

12/7）（ http://kiribako-rado.co.jp/）

図 4： 浜 松 ホ ト ニ ク ス 株 式 会 社「 光 電 子 増 倍 管 （ PMT）

PMT に つ い て 」 （ 最 終 閲 覧

12/12） 、 (https://www.hamamatsu.com/jp/ja/product/optical sensors/pmt/about_pmts/index.html )図 ５ ： quarknet,（ 最 終 閲 覧 11/16）（ https://quarknet.org/sites/default/files/cf_6000crmdusermanual -small.pdf ）図 ８ :quarknet、 （ 最 終 閲 覧 12/12）(http://www.i2u2.org/elab/cosmic/references/showAll.jsp?t=glossary )解析に使用したプログラム
１． あるチャンネルのカウント数を求めるプログラム# -*- coding: utf-8 -*#########################################################################################################################import########################################################################################################################
from __future__ import unicode_literals
from unicodecsv import DictReader
import os, csv, time, sys, mathimport matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
import datetime
import matplotlib.dates as mdates
import scipy.stats as ss
from scipy.optimize import curve_fit

22import re#########################################################################################################################function####################################################################### ##################################################edgeTime (edge の 直 前 の Clock か ら の 時 間 を 返 す )def edgeTime(edge):
return(edge& 0b00011111)*24e-9/32#judgeEdge (valid な Edge で あ れ ば 1 を 返 す 、 そ う で な け れ ば 0 を 返 す )def judgeEdge(edge):
return(edge >> 4) & 0b1#judgeTrigger (新 し い trigger な ら 1、 そ う で な け れ ば 0 を 返 す )def judgeTrigger(edge):
return(edge >> 6) & 0b1#getEdgeTime (任 意 の ch の 立 ち 上 が り 時 間 を 返 す ) datetime 型
def getEdgeTime(data,ch):return getTime(data)+datetime.timedelta(seconds = edgeTime(data[ch]) )#getTime (時 間 を 返 す ) datetime 型
def getTime(data):
returndata[11]+data[10]-datetime.timedelta(seconds=data[15]/1000) + datetime.timedelta(seconds=(data[0] data[9])/CLOCKFREQ)#getEdgeTime (任 意 の ch の 立 ち 上 が り 時 間 を 返 す ) float 型
def getEdgeTimeFloat(data,ch):return getTimeFloat(data)+edgeTime(data[ch])#getTime (時 間 を 返 す ) float 型
def getTimeFloat(data):
return (data[0]-data[9])/CLOCKFREQ-data[15]/1000

23

#loadData (デ ー タ を 読 み 込 み array に 流 し 込 む )def loadData(filename):data =[[]]
print ("load files...",filename)i= 0
reg = re.compile("[0-9A-F]{8}")#1 つ め の 要 素 が ８ 桁 の １ ６ 進 数 か を チ ェ ックする正規表現with open(filename, 'r') as f:reader = csv.reader(f, delimiter=' ')next(reader)for row in reader:
if len(row) == 16 and reg.match(row[0]): # 要 素 の 数 が １ ６ 個
で１つ目が８桁の１６進数であれば読み込む
for j in range(0,10):
data[len(data)-1].append(int(row[j],16))
data[len(data)1].append(datetime.datetime.strptime(row[10], '%H%M%S.%f') -time_zero)
try:
data[len(data)1].append(datetime.datetime.strptime(row[11], "%y%m%d"))except:#時 刻 設 定 を し て い な い 場 合 は 2018 年 1 月

1 日にするdata[len(data)1].append(datetime.datetime.strptime("010118", "%y%m%d"))data[len(data)-1].append(row[12])data[len(data)-1].append(row[13])data[len(data)-1].append(row[14])data[len(data)-1].append(int(row[15]))
i+=1
data.append([])
data.pop()
return data#timeArrayGen(data か ら 時 間 の リ ス ト を 返 す )24

def timeArrayGen(data):
time_array = []for i in range(len(data)):time_array.append(getTime(data[i]))return time_array#coincidenceSearch (time_array の 中 か ら 最 も time に 近 い も の を 抜 き 出 す )def coincidenceSearch(time_array,time):
idx = np.abs(np.asarray(time_array) - time).argmin()return abs(time_array[idx] - time)class Measurement:
def __init__(self,filename):
self.data = loadData(filename)#フ ァ イ ル を 読 み 込 む

self.time_array = timeArrayGen(self.data)
print(filename + " is loaded.")#########################################################################################################################initialize#########################################################################################################################declare variables
CLOCKFREQ = 41666667
data =[[]]
ana_data =[]time_zero = datetime.datetime.strptime("000000.000", '%H%M%S.%f')

Ch1Row = 1#検 出 器 １ の RE

Ch2Row = 3#検 出 器 2 の RE

Ch3Row = 5#検 出 器 3 の RE

Ch4Row = 7#検 出 器 4 の RE

trigger1 = 0#ト リ ガ ー 1

trigger2 = 0#ト リ ガ ー 2

trigger_time = 0#ト リ ガ ー 時 間 の 初 期 化
25time_window = 1e-5

#gate の 時 間 幅 （ s）

gate_start = 5e-8

#gate の 開 始 時 間 （ s）###################################################### ###################################################################main########################################################################################################################
measurement = Measurement("wasedahonjo")

print("622")
time_diff = []measurement_time_temp = 0
j = 0
count = 1
allcount = 1
for i in range(len(measurement.time_array)):
if judgeEdge(measurement.data[i][Ch3Row]):
allcount+=1
if measurement.time_array[i] == measurement.time_array[i -1]:
None
else:
count +=1

print (count,allcount)

２．２つのチャンネルの時間差を比較し、グラフに描画するプログラム# -*- coding: utf-8 -*#########################################################################################################################import########################################################################################################################
from __future__ import unicode_literals
26

from unicodecsv import DictReader
import os, csv, time, sys, mathimport matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
import datetime
import matplotlib.dates as mdates
import scipy.stats as ss
from scipy.optimize import curve_fit
import re#########################################################################################################################function#########################################################################################################################edgeTime (edge の 直 前 の Clock か ら の 時 間 を 返 す )def edgeTime(edge):
return(edge& 0b00011111)*24e-9/32#judgeEdge (valid な Edge で あ れ ば 1 を 返 す 、 そ う で な け れ ば 0 を 返 す )def judgeEdge(edge):
return(edge >> 4) & 0b1#judgeTrigger (新 し い trigger な ら 1、 そ う で な け れ ば 0 を 返 す )def judgeTrigger(edge):
return(edge >> 6) & 0b1#getEdgeTime (任 意 の ch の 立 ち 上 が り 時 間 を 返 す ) datetime 型
def getEdgeTime(data,ch):return getTime(data)+datetime.timedelta(seconds = edgeTime(data[ch]) )#getTime (時 間 を 返 す ) datetime 型
def getTime(data):
returndata[11]+data[10]-datetime.timedelta(seconds=data[15]/1000) + datetime.timedelta(seconds=(data[0] 27

data[9])/CLOCKFREQ)#getEdgeTime (任 意 の ch の 立 ち 上 が り 時 間 を 返 す ) float 型
def getEdgeTimeFloat(data,ch):return getTimeFloat(data)+edgeTime(data[ch])#getTime (時 間 を 返 す ) float 型
def getTimeFloat(data):
return (data[0]-data[9])/CLOCKFREQ-data[15]/1000#loadData (デ ー タ を 読 み 込 み array に 流 し 込 む )def loadData(filename):data =[[]]
print ("load files...",filename)i= 0
reg = re.compile("[0-9A-F]{8}")#1 つ め の 要 素 が ８ 桁 の １ ６ 進 数 か を チ ェ ックする正規表現with open(filename, 'r') as f:reader = csv.reader(f, delimiter=' ')next(reader)for row in reader:
if len(row) == 16 and reg.match(row[0]): # 要 素 の 数 が １ ６ 個
で１つ目が８桁の１６進数であれば読み込む
for j in range(0,10):
data[len(data)-1].append(int(row[j],16))
data[len(data)1].append(datetime.datetime.strptime(row[10], '%H%M%S.%f') -time_zero)
try:
data[len(data)1].append(datetime.datetime.strptime(row[11], "%y%m%d"))except:#時 刻 設 定 を し て い な い 場 合 は 2018 年 1 月

1 日にするdata[len(data)1].append(datetime.datetime.strptime("010118", "%y%m% d"))data[len(data)-1].append(row[12])data[len(data)-1].append(row[13])28data[len(data)-1].append(row[14])data[len(data)-1].append(int(row[15]))
i+=1
data.append([])
data.pop()
return data#timeArrayGen(data か ら 時 間 の リ ス ト を 返 す )def timeArrayGen(data):
time_array = []for i in range(len(data)):time_array.append(getTime(data[i]))return time_array#coincidenceSearch (time_array の 中 か ら 最 も time に 近 い も の を 抜 き 出 す )def coincidenceSearch(time_array,time):
idx = np.abs(np.asarray(time_array) - time).argmin()return abs(time_array[idx] - time)class Measurement:
def __init__(self,filename):
self.data = loadData(filename)#フ ァ イ ル を 読 み 込 む

self.time_array = timeArrayGen(self.data)
print(filename + " is loaded.")#########################################################################################################################initialize#########################################################################################################################declare variables
CLOCKFREQ = 41666667
data =[[]]
ana_data =[]29

time_zero = datetime.datetime.strptime("000000.000", '%H%M%S.%f')

Ch1Row = 1#検 出 器 １ の RE

Ch2Row = 3#検 出 器 2 の RE

Ch3Row = 5#検 出 器 3 の RE

Ch4Row = 7#検 出 器 4 の RE

trigger1 = 0#ト リ ガ ー 1

trigger2 = 0#ト リ ガ ー 2

trigger_time = 0#ト リ ガ ー 時 間 の 初 期 化

time_window = 1e-5

#gate の 時 間 幅 （ s）

gate_start = 5e-8

#gate の 開 始 時 間 （ s）#########################################################################################################################main########################################################################################################################
measurement1 = Measurement("")
print("analyze the data...")
time_diff_arr = []sequence_array = [-3,-2,-1,0,1,2,3]
sequence_size = int(len(sequence_a rray)/2)+1
for i in range(sequence_size,len(measurement1.time_array) -sequence_size):
time_diff_temp_arr = []for sequence in sequence_array:time_diff=abs(getEdgeTimeFloat(measurement1.data[i],Ch3Row)-

getEdgeTimeFloat(measurement1.data[ i+sequence],Ch4Row))
ifjudgeEdge(measurement1.data[i][Ch3Row])

judgeEdge(measurement1.data[i+sequence][Ch4Row]) and

time_diff <andtime_window:

time_diff_temp_arr.append(time_diff)print(time_diff,getEdgeTime(measurement 1.data[i],Ch3Row),getEdgeTime(measurement
1.data[i+sequence],Ch4Row))
if len(time_diff_temp_arr) != 0:30

time_diff_arr.append(min(time_diff_temp_arr))
print(time_diff_arr)#########################################################################################################################visualize########################################################################################################################
Xmax = 10-8

#２ つ の グ ラ フ の ス ペ ー ス を 確 保
fig = plt.figure(figsize=(18,7))
fig.subplots_adjust(hspace=.4)
suptitle = plt.suptitle("simultaneous measurement analysis", x = 0.5, y = 0.97,
fontsize=24)# サブプロットを追加
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)#ヒ ス ト グ ラ ム を 生 成
accum_n, accum_bins, accum_patches = ax1.hist(time_diff_arr, bins=20,range=(0,Xmax))#累 積 グ ラ フ の 生 成
accum_y = np.add.accumulate(accum_n)#y 軸 を 定 義

accum_x = np.convolve(accum_bins, np.ones(2) / 2, mode="same")[1:]
accum_err = np.power(accum_y, 1/2 ) #エ ラ ー バ ー を 定 義

ax2.plot(accum_x, accum_y,"bo")ax2.errorbar(accum_x, accum_y, yerr=accum_err)#fit 用 関 数
def expfunc_for_fit(x, a, b):
result = a*(1 - np.exp( (-1) * b * x ) )return result#累 積 グ ラ フ に フ ィ ッ ト
31#x 軸 を 定 義

#param, cov= curve_fit(expfunc_for_fit, accum_x, accum_y)#fit_x = np.linspace(0, 1, 100)
#fit_y = expfunc_for_fit(fit_x, *param)#ax2.plot(fit_x, fit_y)#print(param,cov)#累 計 グ ラ フ に 関 数 の グ ラ フ を 重 ね る
ra = 0.0182
rb = 0.254
t =0.1*24*3600 #二 日 間

x = np.linspace(0,Xmax,100)
y = t * (ra*(1-np.exp(-1*rb*x)) +rb*(1-np.exp(-1*ra*x)))
print("x:",x,"y:",y)ax2.plot(x,y)#軸 ラ ベ ル 設 定
ax1.set_xlabel("A")
ax1.set_ylabel("B")
ax2.set_xlabel("C")
ax2.set_ylabel("D")#グ ラ フ を 表 示
plt.show()

３．早稲田本庄、広尾学園同時観測に用いたプログラム# -*- coding: utf-8 -*#########################################################################################################################import########################################################################################################################
from __future__ import unicode_literals
from unicodecsv import DictReader
32

import os, csv, time, sys, mathimport matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np
import datetime
import matplotlib.dates as mdates
import scipy.stats as ss
from scipy.optimize import curve_fit#########################################################################################################################function#########################################################################################################################edgeTime (edge の 直 前 の Clock か ら の 時 間 を 返 す )def edgeTime(edge):
return(edge& 0b00011111)*24e-9/32#judgeEdge (valid な Edge で あ れ ば 1 を 返 す 、 そ う で な け れ ば 0 を 返 す )def judgeEdge(edge):
return(edge >> 4) & 0b1#judgeTrigger (新 し い trigger な ら 1、 そ う で な け れ ば 0 を 返 す )def judgeTrigger(edge):
return(edge >> 6) & 0b1#getEdgeTime (任 意 の ch の 立 ち 上 が り 時 間 を 返 す )def getEdgeTime(data,ch):return getTime(data)+datetime.timedelta(seconds = edgeTime(data[ch]) )#getTime (時 間 を 返 す )def getTime(data):
returndata[11]+data[10]-datetime.timedelta(seconds=data[15]/1000)

datetime.timedelta(seconds=(data[0] -data[9])/CLOCKFREQ)#loadData (デ ー タ を 読 み 込 み array に 流 し 込 む )33+

def loadData(filename):data =[[]]
print ("load files...",filename)i= 0with open(filename, 'r') as f :reader = csv.reader(f, delimiter=' ')next(reader)for row in reader:for j in range(0,10):
data[len(data)-1].append(int(row[j],16))
data[len(data)-1].append(datetime.datetime.strptime(row[10],'%H%M%S.%f')-time_zero)
data[len(data)-1].append(datetime.datetime.strptime(row[11],"%y%m%d"))data[len(data)-1].append(row[12])data[len(data)-1].append(row[13])data[len(data)-1].append(row[14])data[len(data)-1].append(int(row[15]))
i+=1
data.append([])
data.pop()
return data#timeArrayGen(data か ら 時 間 の リ ス ト を 返 す )def timeArrayGen(data):
time_array = []for i in range(len(data)):time_array.append(getTime(data[i]))return time_array#coincidenceSearch (time_array の 中 か ら 最 も time に 近 い も の を 抜 き 出 す )def coincidenceSearch(time_array,time):
idx = np.abs(np.asarray(time_array) - time).argmin()34

return abs(time_array[idx] - time)class Measurement:
def __init__(self,filename):
self.data = loadData(filename)#フ ァ イ ル を 読 み 込 む

self.time_array = timeArrayGen(self.data)
print(filename + " is loaded.")#########################################################################################################################initialize#################################################### #####################################################################declare variables
CLOCKFREQ = 41666667
data =[[]]
ana_data =[]time_zero = datetime.datetime.strptime("000000.000", '%H%M%S.%f')

Ch1Row = 1#検 出 器 １ の RE

Ch2Row = 3#検 出 器 2 の RE

Ch3Row = 5#検 出 器 3 の RE

Ch4Row = 7#検 出 器 4 の RE

trigger1 = 0#ト リ ガ ー 1

trigger2 = 0#ト リ ガ ー 2

trigger_time = 0#ト リ ガ ー 時 間 の 初 期 化

time_window = 1e-5

#gate の 時 間 幅 （ s）

gate_start = 5e-8

#gate の 開 始 時 間 （ s）#########################################################################################################################main########################################################################################################################
measurement1 = Measurement("6861-2018-10-all")35

measurement2 = Measurement("6423-2018-10-all.2")

print("analyze the data...")
time_diff = []measurement1_time_temp = 0
j = 0
for i in range(len(measurement1.time_array)):
if i % 1000 == 0: # 1000 行 処 理 す る ご と に 出 力
print("load " +str(i)+ " lines.")while j < len(measurement2.time_array):if

measurement2.time_array[j]-measurement1.time_array[i]>datetime.timedelta(seconds=0):
if measurement1_time_temp == measurement1.time_array[i]: break # 前
回と同じ値ならスキップ
time_diff_temp=

min(abs(measurement2.time_array[j]measurement1.time_array[i]).total_seconds(),abs(measurement2.time_array[j -1]-

measurement1.time_array[i]).total_seconds())
time_diff.append(time_diff_temp)
measurement1_time_temp = measurement1.time_array[i]if time_diff_temp < 0.1:

print(i,getEdgeTime(measurement1.data[i],0),j,getEdgeTime(measurement2.data[j],0),time_diff_temp)
break
else:
j += 1#少 な い デ ー タ 量 用 の シ ン プ ル な コ ー ド#for i in range(len(measurement1.time_array)):#

if i % 10000 == 0:#

print("load " +str(i)+ " lines.")#time_diff.append(coincidenceSearch(measurement2.time_array,measurement1.time_arr
ay[i]))36

#########################################################################################################################visualize########################################################################################################################
Xmax = 1#２ つ の グ ラ フ の ス ペ ー ス を 確 保
fig = plt.figure(figsize=(18,7))
fig.subplots_adjust(hspace=.4)
suptitle = plt.suptitle("simultaneous measurement analysis", x = 0.5, y = 0.97,
fontsize=24)# サブプロットを追加
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)#ヒ ス ト グ ラ ム を 生 成
accum_n, accum_bins, accum_patches = ax1.hist(time_diff, bins=20,range=(0, Xmax))#累 積 グ ラ フ の 生 成
accum_y = np.add.accumulate(accum_n)#y 軸 を 定 義

accum_x = np.convolve(accum_bins, np.ones(2) / 2, mode="same")[1:]
accum_err = np.power(accum_y, 1/2) #エ ラ ー バ ー を 定 義

ax2.plot(accum_x, accum_y,"bo")ax2.errorbar(accum_x, accum_y, yerr=accum_err)#fit 用 関 数
def expfunc_for_fit(x, a, b):
result = a*(1 - np.exp( (-1) * b * x ) )return result#累 積 グ ラ フ に フ ィ ッ ト#param, cov= curve_fit(expfunc_for_fit, accum_x, accum_y)#fit_x = np.linspace(0, 1, 100)37#x 軸 を 定 義

#fit_y = expfunc_for_fit(fit_x, *param)#ax2.plot(fit_x, fit_y)#print(param,cov)#累 計 グ ラ フ に 関 数 の グ ラ フ を 重 ね る
ra = 0.0018
rb = 0.2541
t =3*24*3600 #二 日 間

x = np.linspace(0,Xmax,100)
y = t * (ra*(1-np.exp(-1*rb*x)) +rb*(1-np.exp(-1*ra*x)))ax2.plot(x,y)#軸 ラ ベ ル 設 定
ax1.set_xlabel("Time ")ax1.set_ylabel("Signals")
ax2.set_xlabel("Time")
ax2.set_ylabel("Total Signals")#グ ラ フ を 表 示
plt.show()38