Warning, /analysis/SiCalo/SiliconSeedAna/doc/README_full_JP.md is written in an unsupported language. File is not indexed.
0001 # 📘 SiliconCaloMatching README(完全版・日本語)
0002
0003 ## ■概要
0004
0005 `SiliconCaloMatching` は、sPHENIX解析フレームワークにおいて
0006 以下の2種類の検出器情報を統合するモジュールである:
0007
0008 - シリコントラッカーで再構成された飛跡(SvtxTrack)
0009 - 電磁カロリメータによるエネルギークラスタ(RawCluster)
0010
0011 本モジュールはこれらを対応付けるだけでなく、
0012 👉 **トラックの横運動量(pT)を再構成するアルゴリズム**も実装している。
0013
0014 ---
0015
0016 ## ■入力データ
0017
0018 ### ● SvtxTrack(トラック)
0019
0020 粒子の飛跡情報を持つオブジェクト。
0021
0022 #### 主なパラメータ
0023 - 横運動量:`pT`
0024 - 方位角:`φ`
0025 - 空間座標:`(x, y, z)`
0026 - 電荷:`charge`
0027
0028 ---
0029
0030 ### ● RawCluster(EMCalクラスタ)
0031
0032 電磁カロリメータにおけるエネルギー沈着を表す。
0033
0034 ```cpp
0035 (x, y, z)
0036 ```
0037
0038 👉 ηやφではなく、**デカルト座標で取得される**
0039
0040 ---
0041
0042 ## ■アルゴリズム全体
0043
0044 ```
0045 SvtxTrack
0046 ↓
0047 EMCal面へ外挿
0048 ↓
0049 クラスタ探索
0050 ↓
0051 Δφ, Δz 計算
0052 ↓
0053 距離最小クラスタ選択
0054 ↓
0055 pT再構成
0056 ↓
0057 SiliconCaloTrack 出力
0058 ```
0059
0060 ---
0061
0062 # ■トラック情報の扱い(重要)
0063
0064 本アルゴリズムでは、通常のトラックフィットではなく:
0065
0066 👉 **シリコンクラスタ2点から方向を決定する**
0067
0068 ---
0069
0070 ## ● クラスタ取得
0071
0072 ```cpp
0073 TrackSeed* si_seed = track->get_silicon_seed();
0074 ```
0075
0076 ---
0077
0078 ## ● 外層・内層クラスタ
0079
0080 ```cpp
0081 ckey_outer
0082 ckey_inner
0083 ```
0084
0085 ```cpp
0086 Acts::Vector3 oCpos;
0087 Acts::Vector3 iCpos;
0088 ```
0089
0090 ---
0091
0092 ## ● トラック方向(φ_intt)
0093
0094 ```cpp
0095 phi_intt = atan2(
0096 oCpos.y() - iCpos.y(),
0097 oCpos.x() - iCpos.x()
0098 );
0099 ```
0100
0101 👉 シリコン内での粒子の進行方向
0102
0103 ---
0104
0105 ## ● EMCal方向(φ_calo)
0106
0107 ```cpp
0108 phi_calo = atan2(
0109 emc_y - oCpos.y(),
0110 emc_x - oCpos.x()
0111 );
0112 ```
0113
0114 👉 シリコン外層クラスタから見た EMCal 方向
0115
0116 ---
0117
0118 # ■Δφの定義(コア)
0119
0120 ```
0121 Δφ = φ_calo − φ_intt
0122 ```
0123
0124 👉 粒子の曲がり角(磁場の影響)
0125
0126 ---
0127
0128 # ■マッチング
0129
0130 ## ● マッチング変数
0131
0132 ```
0133 Δφ = φ_track − φ_cluster
0134 Δz = z_track − z_cluster
0135 ```
0136
0137 ---
0138
0139 ## ● 距離評価
0140
0141 ```
0142 r² = (Δφ × R)² + (Δz)²
0143 ```
0144
0145 - R ≈ 93.5 cm(EMCal半径)
0146
0147 ---
0148
0149 ## ● 意味
0150
0151 - φ差 → 円弧距離に変換
0152 - z差 → そのまま使用
0153
0154 👉 **実空間距離で最も近いクラスタを選択**
0155
0156 ---
0157
0158 # 🚀 ■運動量再構成(最重要)
0159
0160 ## ■実装コード(完全一致)
0161
0162 ```cpp
0163 float phi_intt = atan2(oCpos.y()-iCpos.y(), oCpos.x()-iCpos.x());
0164 float phi_calo = atan2(emc_y - oCpos.y(), emc_x - oCpos.x());
0165
0166 float dphi = phi_calo - phi_intt;
0167
0168 float pt_calo = 0.21 * pow(fabs(dphi), -0.986);
0169 ```
0170
0171 ---
0172
0173 ## ■数式
0174
0175 \[
0176 p_T = 0.21 \cdot |\Delta \phi|^{-0.986}
0177 \]
0178
0179 ---
0180
0181 ## ■物理的意味
0182
0183 磁場中では粒子は曲がるため:
0184
0185 \[
0186 \Delta \phi \propto rac{1}{p_T}
0187 \]
0188
0189 したがって:
0190
0191 \[
0192 p_T \propto rac{1}{\Delta \phi}
0193 \]
0194
0195 ---
0196
0197 ## ■なぜ指数が -1 ではないのか
0198
0199 理想的な関係:
0200
0201 ```
0202 pT ∝ 1 / Δφ
0203 ```
0204
0205 実装では:
0206
0207 ```
0208 pT ∝ |Δφ|^-0.986
0209 ```
0210
0211 理由:
0212
0213 - 磁場の非一様性
0214 - 検出器幾何
0215 - 分解能効果
0216
0217 👉 実データ/シミュレーションでフィットされた結果
0218
0219 ---
0220
0221 ## ■一般形
0222
0223 \[
0224 p_T = A \cdot |\Delta \phi|^lpha
0225 \]
0226
0227 | パラメータ | 値 |
0228 |------|------|
0229 | A | 0.21 |
0230 | α | -0.986 |
0231
0232 ---
0233
0234 # ■このアルゴリズムの本質
0235
0236 👉 **最小情報による運動量再構成**
0237
0238 ```
0239 シリコン(2点) + EMCal(1点) → pT
0240 ```
0241
0242 ---
0243
0244 # ■特徴
0245
0246 ✅ 計算が軽量
0247 ✅ TPCなしでも動作
0248 ✅ 実験データでキャリブレーション済み
0249
0250 ---
0251
0252 # ■制限
0253
0254 - 高pTでは精度低下(Δφが小さい)
0255 - アライメントに敏感
0256 - 高多重度環境で誤マッチ
0257
0258 ---
0259
0260 # ■まとめ
0261
0262 - φは atan2 で計算
0263 - マッチングは Δφ・Δz
0264 - クラスタは (x, y, z) で扱う
0265 - pTは以下で再構成:
0266
0267 \[
0268 p_T = 0.21 \cdot |\Delta \phi|^{-0.986}
0269 \]
0270
0271 ---
0272
0273 # ■一言でいうと
0274
0275 👉 トラックの曲がり角(Δφ)から経験式でpTを再構成するアルゴリズム
0276
0277 ---
0278
0279
0280 ## ■出力(SiliconCaloTrack)
0281
0282 - トラック情報(pT, φ, z, charge)
0283 - クラスタ情報(x, y, z, energy)
0284 - dphi, dz
0285 - pt_calo
0286
0287 - 加えて、 SvtxTrackのpx, pyも更新する