Warning, /analysis/SiCalo/SiliconSeedAna/doc/README_full_EN.md is written in an unsupported language. File is not indexed.
0001 # 📘 SiliconCaloMatching README (Complete Version / English)
0002
0003 ---
0004
0005 ## ■ Overview
0006
0007 `SiliconCaloMatching` is a module in the sPHENIX analysis framework that integrates two detector subsystems:
0008
0009 - Silicon tracker reconstructed tracks (`SvtxTrack`)
0010 - Electromagnetic calorimeter clusters (`RawCluster`)
0011
0012 The module not only performs matching between these objects but also:
0013
0014 👉 **reconstructs the transverse momentum (pT) of particles using detector geometry and bending information.**
0015
0016 ---
0017
0018 ## ■ Input Data
0019
0020 ### ● SvtxTrack (Track)
0021
0022 Represents reconstructed charged particle trajectories.
0023
0024 #### Main parameters
0025 - Transverse momentum: `pT`
0026 - Azimuthal angle: `φ`
0027 - Position: `(x, y, z)`
0028 - Charge: `charge`
0029
0030 ---
0031
0032 ### ● RawCluster (EMCal Cluster)
0033
0034 Represents energy deposits in the electromagnetic calorimeter.
0035
0036 ```cpp
0037 (x, y, z)
0038 ```
0039
0040 👉 Stored in Cartesian coordinates (NOT η–φ representation)
0041
0042 ---
0043
0044 ## ■ Overall Algorithm
0045
0046 ```
0047 SvtxTrack
0048 ↓
0049 Projection to EMCal surface
0050 ↓
0051 Cluster search
0052 ↓
0053 Compute Δφ, Δz
0054 ↓
0055 Select closest cluster
0056 ↓
0057 pT reconstruction
0058 ↓
0059 SiliconCaloTrack output
0060 ```
0061
0062 ---
0063
0064 # ■ Track Representation (Important)
0065
0066 This algorithm does NOT use full track fitting.
0067
0068 👉 Instead, the track direction is approximated using **two silicon clusters**.
0069
0070 ---
0071
0072 ## ● Cluster Retrieval
0073
0074 ```cpp
0075 TrackSeed* si_seed = track->get_silicon_seed();
0076 ```
0077
0078 ---
0079
0080 ## ● Inner and Outer Clusters
0081
0082 ```cpp
0083 ckey_outer
0084 ckey_inner
0085 ```
0086
0087 ```cpp
0088 Acts::Vector3 oCpos;
0089 Acts::Vector3 iCpos;
0090 ```
0091
0092 ---
0093
0094 ## ● Track Direction (φ_intt)
0095
0096 ```cpp
0097 phi_intt = atan2(
0098 oCpos.y() - iCpos.y(),
0099 oCpos.x() - iCpos.x()
0100 );
0101 ```
0102
0103 👉 Direction of the track inside the silicon detector
0104
0105 ---
0106
0107 ## ● Direction toward EMCal (φ_calo)
0108
0109 ```cpp
0110 phi_calo = atan2(
0111 emc_y - oCpos.y(),
0112 emc_x - oCpos.x()
0113 );
0114 ```
0115
0116 👉 Direction from outer silicon cluster to EMCal cluster
0117
0118 ---
0119
0120 # ■ Definition of Δφ (Core Quantity)
0121
0122 ```
0123 Δφ = φ_calo − φ_intt
0124 ```
0125
0126 👉 Represents the **bending angle** of the particle in the magnetic field
0127
0128 ---
0129
0130 # ■ Matching
0131
0132 ## ● Matching Variables
0133
0134 ```
0135 Δφ = φ_track − φ_cluster
0136 Δz = z_track − z_cluster
0137 ```
0138
0139 ---
0140
0141 ## ● Distance Metric
0142
0143 ```
0144 r² = (Δφ × R)² + (Δz)²
0145 ```
0146
0147 - R ≈ 93.5 cm (EMCal radius)
0148
0149 ---
0150
0151 ## ● Interpretation
0152
0153 - φ difference is converted into arc length
0154 - z difference is directly used
0155
0156 👉 Matching is performed in **real spatial coordinates**
0157
0158 ---
0159
0160 # 🚀 ■ Momentum Reconstruction (Core Part)
0161
0162 ## ■ Implementation (Exact Code)
0163
0164 ```cpp
0165 float phi_intt = atan2(oCpos.y()-iCpos.y(), oCpos.x()-iCpos.x());
0166 float phi_calo = atan2(emc_y - oCpos.y(), emc_x - oCpos.x());
0167
0168 float dphi = phi_calo - phi_intt;
0169
0170 float pt_calo = 0.21 * pow(fabs(dphi), -0.986);
0171 ```
0172
0173 ---
0174
0175 ## ■ Formula
0176
0177 pT = 0.21 × |Δφ|^-0.986
0178
0179 ---
0180
0181 ## ■ Physical Interpretation
0182
0183 In a magnetic field:
0184
0185 Δφ ∝ 1 / pT
0186
0187 Therefore:
0188
0189 pT ∝ 1 / Δφ
0190
0191 ---
0192
0193 ## ■ Why exponent ≠ -1
0194
0195 Expected ideal relation:
0196
0197 pT ∝ 1 / Δφ
0198
0199 Actual implementation:
0200
0201 pT ∝ |Δφ|^-0.986
0202
0203 Reasons:
0204
0205 - Non-uniform magnetic field
0206 - Detector geometry effects
0207 - Finite resolution of measurements
0208
0209 👉 Parameters are obtained through calibration using simulation or real data
0210
0211 ---
0212
0213 ## ■ General Form
0214
0215 pT = A × |Δφ|^α
0216
0217 | Parameter | Value |
0218 |----------|------|
0219 | A | 0.21 |
0220 | α | -0.986 |
0221
0222 ---
0223
0224 # ■ Core Idea of Algorithm
0225
0226 👉 **Reconstruct momentum with minimal information**
0227
0228 ```
0229 2 silicon points + 1 EMCal point → pT
0230 ```
0231
0232 ---
0233
0234 # ■ Features
0235
0236 ✅ Computationally lightweight
0237 ✅ Works without full tracking (e.g., no TPC)
0238 ✅ Calibrated with experimental data
0239
0240 ---
0241
0242 # ■ Limitations
0243
0244 - Reduced accuracy at high pT (small Δφ)
0245 - Sensitive to detector alignment
0246 - Possible mismatching in high occupancy events
0247
0248 ---
0249
0250 # ■ Summary
0251
0252 - φ is computed using atan2
0253 - Matching uses Δφ and Δz
0254 - Clusters are handled in (x, y, z)
0255 - pT is reconstructed as:
0256
0257 pT = 0.21 × |Δφ|^-0.986
0258
0259 ---
0260
0261 # ■ One-line Description
0262
0263 👉 Reconstruct transverse momentum from track bending angle (Δφ) using an empirical formula.
0264
0265 ---
0266
0267 # ■ Output (SiliconCaloTrack)
0268
0269 - Track information (pT, φ, z, charge)
0270 - Cluster information (x, y, z, energy)
0271 - dphi, dz
0272 - pt_calo
0273
0274 ---
0275
0276 # ■ Summary
0277
0278 The algorithm reconstructs pT from the bending angle using two silicon clusters and one EMCal cluster.
0279