SND@LHC Software
Loading...
Searching...
No Matches
snd::Configuration Struct Reference

#include <sndConfiguration.h>

Public Types

enum class  Option { ti18_2024_2025 , ti18_2022_2023 , test_beam_2023 , test_beam_2024 }
 

Public Member Functions

 Configuration (Option option, Scifi *scifi_geometry, MuFilter *muon_filter_geometry, bool is_MC=false)
 

Static Public Member Functions

static Option GetOption (int run_number)
 

Public Attributes

double scifi_qdc_to_gev
 
double scifi_fiber_lenght
 
double scifi_centroid_error_x
 
double scifi_centroid_error_y
 
double scifi_centroid_error_z
 
double scifi_min_timestamp
 
double scifi_max_timestamp
 
double scifi_x_min
 
double scifi_x_max
 
double scifi_y_min
 
double scifi_y_max
 
double scifi_z_min
 
double scifi_z_max
 
double us_qdc_to_gev
 
double us_centroid_error_x
 
double us_centroid_error_y
 
double us_centroid_error_z
 
double us_min_timestamp
 
double us_max_timestamp
 
double us_x_min
 
double us_x_max
 
double us_y_min
 
double us_y_max
 
double us_z_min
 
double us_z_max
 
double ds_hor_spatial_resolution_x
 
double ds_hor_spatial_resolution_y
 
double ds_hor_spatial_resolution_z
 
double ds_ver_spatial_resolution_x
 
double ds_ver_spatial_resolution_y
 
double ds_ver_spatial_resolution_z
 
int veto_n_stations
 
int scifi_n_stations
 
int scifi_n_channels_per_plane
 
int scifi_boards_per_plane
 
int scifi_shower_window_width
 
int scifi_min_hits_in_window
 
int scifi_min_n_hits_for_centroid
 
int us_n_stations
 
int us_bar_per_station
 
int us_n_channels_per_station
 
int us_n_sipm_per_bar
 
int us_min_n_hits_for_centroid
 
int us_min_hit_on_bar
 
double us_bar_length
 
double us_signal_speed
 
int centroid_min_valid_station
 
int ds_n_stations
 
bool is_mc
 

Detailed Description

Definition at line 8 of file sndConfiguration.h.

Member Enumeration Documentation

◆ Option

enum class snd::Configuration::Option
strong
Enumerator
ti18_2024_2025 
ti18_2022_2023 
test_beam_2023 
test_beam_2024 

Definition at line 10 of file sndConfiguration.h.

Constructor & Destructor Documentation

◆ Configuration()

snd::Configuration::Configuration ( Option  option,
Scifi scifi_geometry,
MuFilter muon_filter_geometry,
bool  is_MC = false 
)

Definition at line 10 of file sndConfiguration.cxx.

10 : is_mc(is_MC)
11{
12 // Parameters from geometry
13 scifi_n_stations = scifi_geometry->GetConfParI("Scifi/nscifi");
14 scifi_boards_per_plane = scifi_geometry->GetConfParI("Scifi/nmats");
15 scifi_n_channels_per_plane = scifi_geometry->GetConfParI("Scifi/nsipm_channels") * scifi_geometry->GetConfParI("Scifi/nmats") * scifi_geometry->GetConfParI("Scifi/nsipm_mat");
16 scifi_fiber_lenght = scifi_geometry->GetConfParF("Scifi/fiber_length");
17 scifi_centroid_error_x = scifi_geometry->GetConfParF("Scifi/channel_width");
18 scifi_centroid_error_y = scifi_geometry->GetConfParF("Scifi/channel_width");
19 scifi_centroid_error_z = scifi_geometry->GetConfParF("Scifi/channel_height");
20
21 veto_n_stations = muon_filter_geometry->GetConfParI("MuFilter/NVetoPlanes");
22
23 us_n_stations = muon_filter_geometry->GetConfParI("MuFilter/NUpstreamPlanes");
24 us_bar_per_station = muon_filter_geometry->GetConfParI("MuFilter/NUpstreamBars");
25 us_n_sipm_per_bar = muon_filter_geometry->GetConfParI("MuFilter/UpstreamnSiPMs") * muon_filter_geometry->GetConfParI("MuFilter/UpstreamnSides");
27 us_bar_length = muon_filter_geometry->GetConfParF("MuFilter/UpstreamBarX");
28 us_signal_speed = muon_filter_geometry->GetConfParF("MuFilter/VandUpPropSpeed");
29 us_centroid_error_x = 3.;//estimate based on PMU data, no time calibration
30 us_centroid_error_y = muon_filter_geometry->GetConfParF("MuFilter/UpstreamBarY") / std::sqrt(12);
31 us_centroid_error_z = muon_filter_geometry->GetConfParF("MuFilter/UpstreamBarZ");
32
33 ds_n_stations = muon_filter_geometry->GetConfParI("MuFilter/NDownstreamPlanes");
34 ds_hor_spatial_resolution_x = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarX") / std::sqrt(12);
35 ds_hor_spatial_resolution_y = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarY") / std::sqrt(12);
36 ds_hor_spatial_resolution_z = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarZ") / std::sqrt(12);
37 ds_ver_spatial_resolution_x = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarX_ver") / std::sqrt(12);
38 ds_ver_spatial_resolution_y = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarY_ver") / std::sqrt(12);
39 ds_ver_spatial_resolution_z = muon_filter_geometry->GetConfParF("MuFilter/DownstreamBarZ_ver") / std::sqrt(12);
40
41 // Common parameters not present in geometry
42 scifi_min_timestamp = std::nan("");
43 scifi_max_timestamp = std::nan("");
44 us_min_timestamp = std::nan("");
45 us_max_timestamp = std::nan("");
47 us_qdc_to_gev = 0.0151;
49
50 // Ad hoc parameters not present in geometry
51 if (option == Option::ti18_2024_2025)
52 {
56 scifi_qdc_to_gev = 0.14;
57
58 scifi_x_min = -50.0;
59 scifi_x_max = 0.0;
60 scifi_y_min = 10.0;
61 scifi_y_max = 60.0;
62 scifi_z_min = 280.0;
63 scifi_z_max = 360.0;
64
65 us_x_min = -80.0;
66 us_x_max = 0.0;
67 us_y_min = 0.0;
68 us_y_max = 80.0;
69 us_z_min = 370.0;
70 us_z_max = 480.0;
71
73
76 }
77
78 else if (option == Option::ti18_2022_2023)
79 {
83 scifi_qdc_to_gev = 0.14;
84 scifi_x_min = -50.0;
85 scifi_x_max = 0.0;
86 scifi_y_min = 10.0;
87 scifi_y_max = 60.0;
88 scifi_z_min = 280.0;
89 scifi_z_max = 360.0;
90
91 us_x_min = -80.0;
92 us_x_max = 0.0;
93 us_y_min = 0.0;
94 us_y_max = 80.0;
95 us_z_min = 370.0;
96 us_z_max = 480.0;
97
99
100 scifi_min_timestamp = -0.5;
102 }
103
104 else if (option == Option::test_beam_2023)
105 {
109 scifi_qdc_to_gev = 0.053; // mirrors
110
111 scifi_x_min = -47.0;
112 scifi_x_max = -27.0;
113 scifi_y_min = 35.0;
114 scifi_y_max = 55.0;
115 scifi_z_min = 310.0;
116 scifi_z_max = 360.0;
117 scifi_min_timestamp = -0.5;
119
120 us_x_min = -80.0;
121 us_x_max = 5.0;
122 us_y_min = 10.0;
123 us_y_max = 80.0;
124 us_z_min = 370.0;
125 us_z_max = 480.0;
126 us_min_timestamp = -0.5;
127 us_max_timestamp = 3.0;
128
130 }
131 else if (option == Option::test_beam_2024)
132 {
136 scifi_qdc_to_gev = 0.14;
137
138 scifi_x_min = -47.0;
139 scifi_x_max = -27.0;
140 scifi_y_min = 35.0;
141 scifi_y_max = 55.0;
142 scifi_z_min = 310.0;
143 scifi_z_max = 380.0;
144
145 us_x_min = std::nan("");
146 us_x_max = std::nan("");
147 us_y_min = std::nan("");
148 us_y_max = std::nan("");
149 us_z_min = std::nan("");
150 us_z_max = std::nan("");
151
153 }
154 else
155 {
156 throw std::invalid_argument("Unknown configuration option");
157 }
158}
Float_t GetConfParF(TString name)
Definition MuFilter.h:46
Int_t GetConfParI(TString name)
Definition MuFilter.h:47
Float_t GetConfParF(TString name)
Definition Scifi.h:50
Int_t GetConfParI(TString name)
Definition Scifi.h:51

Member Function Documentation

◆ GetOption()

snd::Configuration::Option snd::Configuration::GetOption ( int  run_number)
static

Definition at line 160 of file sndConfiguration.cxx.

161{
162 if (run_number >= 100841 && run_number <= 100985) {
163 std::cout << "Choosing option >>>>>>>>>>\t test_beam_2024 \t<<<<<<<<<<" <<std::endl;
165 }
166 else if (run_number >= 100238 && run_number <= 100679) {
167 std::cout << "Choosing option >>>>>>>>>>\t test_beam_2023 \t<<<<<<<<<<" <<std::endl;
169 }
170 else if (run_number >= 7357 && run_number <= 12792) {
171 std::cout << "Choosing option >>>>>>>>>>\t ti18_2024_2025 \t<<<<<<<<<<" <<std::endl;
173 }
174 else if (run_number >= 4361 && run_number <= 7356){
175 std::cout << "Choosing option >>>>>>>>>>\t ti18_2022_2023 \t<<<<<<<<<<" <<std::endl;
177 }
178 else
179 {
180 throw std::invalid_argument("Run number does not match any configuration option");
181 }
182}

Member Data Documentation

◆ centroid_min_valid_station

int snd::Configuration::centroid_min_valid_station

Definition at line 73 of file sndConfiguration.h.

◆ ds_hor_spatial_resolution_x

double snd::Configuration::ds_hor_spatial_resolution_x

Definition at line 47 of file sndConfiguration.h.

◆ ds_hor_spatial_resolution_y

double snd::Configuration::ds_hor_spatial_resolution_y

Definition at line 48 of file sndConfiguration.h.

◆ ds_hor_spatial_resolution_z

double snd::Configuration::ds_hor_spatial_resolution_z

Definition at line 49 of file sndConfiguration.h.

◆ ds_n_stations

int snd::Configuration::ds_n_stations

Definition at line 75 of file sndConfiguration.h.

◆ ds_ver_spatial_resolution_x

double snd::Configuration::ds_ver_spatial_resolution_x

Definition at line 50 of file sndConfiguration.h.

◆ ds_ver_spatial_resolution_y

double snd::Configuration::ds_ver_spatial_resolution_y

Definition at line 51 of file sndConfiguration.h.

◆ ds_ver_spatial_resolution_z

double snd::Configuration::ds_ver_spatial_resolution_z

Definition at line 52 of file sndConfiguration.h.

◆ is_mc

bool snd::Configuration::is_mc

Definition at line 77 of file sndConfiguration.h.

◆ scifi_boards_per_plane

int snd::Configuration::scifi_boards_per_plane

Definition at line 58 of file sndConfiguration.h.

◆ scifi_centroid_error_x

double snd::Configuration::scifi_centroid_error_x

Definition at line 20 of file sndConfiguration.h.

◆ scifi_centroid_error_y

double snd::Configuration::scifi_centroid_error_y

Definition at line 21 of file sndConfiguration.h.

◆ scifi_centroid_error_z

double snd::Configuration::scifi_centroid_error_z

Definition at line 22 of file sndConfiguration.h.

◆ scifi_fiber_lenght

double snd::Configuration::scifi_fiber_lenght

Definition at line 19 of file sndConfiguration.h.

◆ scifi_max_timestamp

double snd::Configuration::scifi_max_timestamp

Definition at line 24 of file sndConfiguration.h.

◆ scifi_min_hits_in_window

int snd::Configuration::scifi_min_hits_in_window

Definition at line 60 of file sndConfiguration.h.

◆ scifi_min_n_hits_for_centroid

int snd::Configuration::scifi_min_n_hits_for_centroid

Definition at line 61 of file sndConfiguration.h.

◆ scifi_min_timestamp

double snd::Configuration::scifi_min_timestamp

Definition at line 23 of file sndConfiguration.h.

◆ scifi_n_channels_per_plane

int snd::Configuration::scifi_n_channels_per_plane

Definition at line 57 of file sndConfiguration.h.

◆ scifi_n_stations

int snd::Configuration::scifi_n_stations

Definition at line 56 of file sndConfiguration.h.

◆ scifi_qdc_to_gev

double snd::Configuration::scifi_qdc_to_gev

Definition at line 18 of file sndConfiguration.h.

◆ scifi_shower_window_width

int snd::Configuration::scifi_shower_window_width

Definition at line 59 of file sndConfiguration.h.

◆ scifi_x_max

double snd::Configuration::scifi_x_max

Definition at line 27 of file sndConfiguration.h.

◆ scifi_x_min

double snd::Configuration::scifi_x_min

Definition at line 26 of file sndConfiguration.h.

◆ scifi_y_max

double snd::Configuration::scifi_y_max

Definition at line 29 of file sndConfiguration.h.

◆ scifi_y_min

double snd::Configuration::scifi_y_min

Definition at line 28 of file sndConfiguration.h.

◆ scifi_z_max

double snd::Configuration::scifi_z_max

Definition at line 31 of file sndConfiguration.h.

◆ scifi_z_min

double snd::Configuration::scifi_z_min

Definition at line 30 of file sndConfiguration.h.

◆ us_bar_length

double snd::Configuration::us_bar_length

Definition at line 70 of file sndConfiguration.h.

◆ us_bar_per_station

int snd::Configuration::us_bar_per_station

Definition at line 64 of file sndConfiguration.h.

◆ us_centroid_error_x

double snd::Configuration::us_centroid_error_x

Definition at line 34 of file sndConfiguration.h.

◆ us_centroid_error_y

double snd::Configuration::us_centroid_error_y

Definition at line 35 of file sndConfiguration.h.

◆ us_centroid_error_z

double snd::Configuration::us_centroid_error_z

Definition at line 36 of file sndConfiguration.h.

◆ us_max_timestamp

double snd::Configuration::us_max_timestamp

Definition at line 38 of file sndConfiguration.h.

◆ us_min_hit_on_bar

int snd::Configuration::us_min_hit_on_bar

Definition at line 68 of file sndConfiguration.h.

◆ us_min_n_hits_for_centroid

int snd::Configuration::us_min_n_hits_for_centroid

Definition at line 67 of file sndConfiguration.h.

◆ us_min_timestamp

double snd::Configuration::us_min_timestamp

Definition at line 37 of file sndConfiguration.h.

◆ us_n_channels_per_station

int snd::Configuration::us_n_channels_per_station

Definition at line 65 of file sndConfiguration.h.

◆ us_n_sipm_per_bar

int snd::Configuration::us_n_sipm_per_bar

Definition at line 66 of file sndConfiguration.h.

◆ us_n_stations

int snd::Configuration::us_n_stations

Definition at line 63 of file sndConfiguration.h.

◆ us_qdc_to_gev

double snd::Configuration::us_qdc_to_gev

Definition at line 33 of file sndConfiguration.h.

◆ us_signal_speed

double snd::Configuration::us_signal_speed

Definition at line 71 of file sndConfiguration.h.

◆ us_x_max

double snd::Configuration::us_x_max

Definition at line 41 of file sndConfiguration.h.

◆ us_x_min

double snd::Configuration::us_x_min

Definition at line 40 of file sndConfiguration.h.

◆ us_y_max

double snd::Configuration::us_y_max

Definition at line 43 of file sndConfiguration.h.

◆ us_y_min

double snd::Configuration::us_y_min

Definition at line 42 of file sndConfiguration.h.

◆ us_z_max

double snd::Configuration::us_z_max

Definition at line 45 of file sndConfiguration.h.

◆ us_z_min

double snd::Configuration::us_z_min

Definition at line 44 of file sndConfiguration.h.

◆ veto_n_stations

int snd::Configuration::veto_n_stations

Definition at line 54 of file sndConfiguration.h.


The documentation for this struct was generated from the following files: