Warning, /analysis/SiCalo/README.md is written in an unsupported language. File is not indexed.
0001 # SiliconSeedAna Framework
0002
0003 **Recent update**: May 30, 2025
0004
0005 This project is designed to simulate and analyze charged particle tracking and calorimeter matching in the sPHENIX environment. The core component, `SiliconSeedAna`, collects information from silicon trackers, EMCal, and HCal, and stores it in a structured ROOT file for further physics analysis.
0006
0007 ---
0008
0009 ## 📁 Directory Overview
0010
0011 ### 1. `PHYTIAmacro/`
0012
0013 - **Purpose**: Contains macros for full simulations based on PYTHIA event generation.
0014 - **Main Macro**: `Fun4All_PHYTIA_Silicon.C`
0015 - **Usage**:
0016 1. First, compile `SiliconSeedAna` and build the shared library.
0017 2. Then run this macro to simulate PYTHIA events.
0018 - **Output**: ROOT file containing tracker and calorimeter hit information.
0019
0020 ---
0021
0022 ### 2. `gunmacro/`
0023
0024 - **Purpose**: Contains macros for single-particle simulations.
0025 - **Main Macro**: `Fun4All_singleParticle_Silicon.C`
0026 - **Usage**:
0027 1. Compile `SiliconSeedAna` first.
0028 2. Run the macro to simulate single-particle events with fixed momentum and direction.
0029 - **Use case**: Useful for analyzing magnetic deflection and detector matching at specific kinematics.
0030
0031 ---
0032
0033 ### 3. `SiliconSeedAna/`
0034
0035 - **Purpose**: Core analyzer that collects and stores track and calorimeter information into ROOT TTrees.
0036 - **Key Files**:
0037 - `SiliconSeedAna.cc`
0038 - `SiliconSeedAna.h`
0039 - **Features**:
0040 - Extracts Track info from silicon detectors tracking and clusters from Calo(EMCal, and HCal)
0041 - Projects track states to the EMCal radius (e.g., 93.5 cm).
0042 - Saves detailed information such as:
0043 - Initial track position and momentum
0044 - Projected EMCal coordinates
0045 - Matching-related variables
0046
0047 ## 📂 TTree Structure in `SiliconSeedAna`
0048
0049 The following TTrees are created and filled within the `SiliconSeedAna` module. Each serves a specific purpose in tracking and calorimeter studies.
0050
0051 ---
0052
0053 ### 🌱 `trackTree` – Tracking Information
0054
0055 Stores per-track information from the silicon tracker and projections to EMCal.
0056
0057 **Branches:**
0058 - `evt` — Event number (`int`)
0059 - `track_id` — Track ID (`vector<unsigned int>`)
0060 - `x0`, `y0`, `z0` — Initial position (`vector<float>`)
0061 - `px0`, `py0`, `pz0` — Initial momentum (`vector<float>`)
0062 - `eta0`, `phi0`, `pt0` — Kinematic variables (`vector<float>`)
0063 - `chi2ndf` — Track fit quality (`vector<float>`)
0064 - `charge` — Particle charge (`vector<int>`)
0065 - `nmaps`, `nintt`, `innerintt`, `outerintt` — Tracker hit counts (`vector<int>`)
0066 - `crossing` — Bunch crossing ID (`vector<short int>`)
0067 - `x_proj_emc`, `y_proj_emc`, `z_proj_emc` — EMCal projected position (`vector<float>`)
0068 - `px_proj_emc`, `py_proj_emc`, `pz_proj_emc` — Projected momentum at EMCal (`vector<float>`)
0069 - `eta_proj_emc`, `phi_proj_emc`, `pt_proj_emc` — Projected kinematics at EMCal (`vector<float>`)
0070
0071 ---
0072
0073 ### 🔥 `caloTree` – Calorimeter Hit Information
0074
0075 Stores calorimeter cluster positions and energy deposits per event.
0076
0077 **Branches:**
0078 - `calo_evt` — Event number (`int`)
0079 - `x`, `y`, `z` — Hit position (`vector<float>`)
0080 - `r`, `phi` — Cylindrical coordinates (`vector<float>`)
0081 - `energy` — Hit energy (`vector<float>`)
0082
0083 ---
0084
0085 ### 🟪 `SiClusTree` – Silicon Cluster Information
0086
0087 Clusters associated with silicon tracks.
0088
0089 **Branches:**
0090 - `evt` — Event number (`int`)
0091 - `Siclus_trackid` — Associated track ID (`vector<int>`)
0092 - `Siclus_layer` — Cluster layer number (`vector<int>`)
0093 - `Siclus_x`, `Siclus_y`, `Siclus_z` — Cluster positions (`vector<float>`)
0094
0095 ---
0096
0097 ### 🎯 `truthTree` – Truth Particle Information
0098
0099 Truth-level kinematic info for simulated particles.
0100
0101 **Branches:**
0102 - `truth_pid` — PDG ID (`vector<int>`)
0103 - `truth_px`, `truth_py`, `truth_pz`, `truth_e` — Momentum and energy (`vector<float>`)
0104 - `truth_pt`, `truth_eta`, `truth_phi` — Derived kinematic variables (`vector<float>`)