R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandAnalysisApp.h
Go to the documentation of this file.
1#pragma once
2
4#include "R3BFTCalEngine.h"
5#include "R3BNeulandApp.h"
12#include <string>
13#include <string_view>
14#include <vector>
15
16namespace R3B::Neuland
17{
18 namespace Digitizing = R3B::Digitizing;
20 constexpr auto RVALUE_DEFAULT_NEUTRON_ENERGY = 600.;
21
23 {
24 double init{};
25 double step{};
26 double lower{};
27 double upper{};
28 };
29
30 constexpr auto DEFAULT_EDEP_OPT = MinimizerLimVar{ .init = 200., .step = 25., .lower = 50., .upper = 1500. };
31 constexpr auto DEFAULT_EDEP_OFF_OPT = MinimizerLimVar{ .init = 5., .step = 1., .lower = 0., .upper = 250. };
32 constexpr auto DEFAULT_N_CLUSTER_OPT = MinimizerLimVar{ .init = 10., .step = 5., .lower = 5., .upper = 50. };
33 constexpr auto DEFAULT_N_CLUSTER_OFF_OPT = MinimizerLimVar{ .init = 2., .step = 1., .lower = 0., .upper = 10. };
34
36 {
37 public:
38 using TamexChannel = Tamex::Channel;
39
40 struct Options
41 {
43 struct Tasks
44 {
47 {
48 bool enable = false;
49 std::string name = "NeulandSimCal2Cal";
50 std::string read = "NeulandSimCal";
51 std::string write = "NeulandCalData";
53 struct HitMon
54 {
55 bool enable = false;
56 std::string name = "NeulandHitMon";
57 std::string read = "NeulandHits";
58 std::string write;
61 {
62 bool enable = false;
63 std::string name = "NeulandPrimaryInteractionFinder";
64 std::string read = "NeulandPoints;NeulandHits";
65 std::string write = "NeulandPrimaryPoints;NeulandPrimaryHits;NeulandPrimaryTracks";
68 {
69 std::string read = "NeulandHits";
70 std::string write = "NeulandClusters";
71 bool enable = false;
72 std::string name = "NeulandClusterFinder";
75 {
76 bool enable = false;
77 std::string name = "NeulandPrimaryClusterFinder";
78 std::string read = "NeulandPrimaryHits;NeulandClusters";
79 std::string write = "NeulandPrimaryClusters;NeulandSecondaryClusters";
82 {
83 bool enable = false;
84 bool use_hit = false;
85 double weight = 0.;
90 std::string name = "NeulandMultiplicityCalorimetricTrain";
91 std::string read = "NeulandClusters;NeulandPrimaryTracks;NeulandPrimaryHits";
92 std::string write;
95 {
96 bool enable = false;
97 std::string name = "NeulandMultiplicityBayesTrain";
98 std::string read = "NeulandClusters;NeulandPrimaryTracks";
99 std::string write;
102 {
103 bool enable = false;
104 std::string name = "NeulandMultiplicityBayes";
105 std::string read = "NeulandClusters";
106 std::string write = "NeulandMultiplicity";
109 {
110 bool enable = false;
112 std::string name = "NeulandNeutronsRValue";
113 std::string read = "NeulandMultiplicity;NeulandClusters";
114 std::string write = "NeulandNeutrons";
117 {
118 bool enable = false;
119 std::string name = "NeulandMapDataConverterTask";
120 std::string read = "NeulandMappedData;NeulandTrigMappedData";
121 std::string write = "NeulandMapData;NeulandTrigMapData";
124 {
125 bool enable = false;
126 bool has_trig_enabled = true;
128 std::string name = "NeulandMap2CalParTask";
129 std::string read = "NeulandMapData;NeulandTrigMapData";
130 std::string write = "LandTCalPar;LandTrigTCalPar";
135 {
136 bool enable = false;
139 std::string name = "NeulandCal2HitTask";
140 std::string read = "NeulandCalData;NeulandHitPar";
141 std::string write = "NeulandHits";
144 {
145 bool enable = false;
147 std::string name = "NeulandCalMonitorTask";
148 std::string read = "NeulandCalData";
149 std::string write;
154 {
155 bool enable = false;
156 std::string name = "LosMap2CalParTask";
157 std::string read = "LosMapped;LosTriggerMapped";
158 std::string write = "LosTCalPar";
161 {
162 bool enable = false;
163 std::string name = "LosMap2CalTask";
164 std::string read = "LosMapped;LosTriggerMapped;LosTCalPar";
165 std::string write = "LosCal;LosTriggerCal";
168 {
169 bool enable = false;
170 std::string name = "LosProvideTStart";
171 std::string read = "LosCal;LosTriggerCal";
172 std::string write;
175 };
176
177 explicit AnalysisApplication();
178
179 void set_channel(std::string_view channel) { options_.tasks.neuland_digitizer.channel = channel; }
180 void set_paddle(std::string_view paddle) { options_.tasks.neuland_digitizer.paddle = paddle; }
181
182 private:
184
185 // virtual private member functions:
186 void pre_init(FairRun* run) override;
187 void print_json_options() override;
188 void dump_json_options(const std::string& filename) override;
189 void setup_application_options(CLI::App& program_options) override;
190 void ParseApplicationOption(const std::vector<std::string>& filename) override;
191
192 // non-virtual private member functions:
193 void set_parameters();
194 auto create_neuland_digi_engine_map(const R3B::Neuland::DigiTaskOptions& option, std::string_view hit_par_name);
195 };
196} // namespace R3B::Neuland
auto create_neuland_digi_engine_map(const R3B::Neuland::DigiTaskOptions &option, std::string_view hit_par_name)
void ParseApplicationOption(const std::vector< std::string > &filename) override
void setup_application_options(CLI::App &program_options) override
void dump_json_options(const std::string &filename) override
void set_channel(std::string_view channel)
void set_paddle(std::string_view paddle)
void run() override
Run the CLI program.
CLIApplication(std::string_view name, std::unique_ptr< FairRun > run, std::reference_wrapper< Options > option)
NeuLAND digitizing finder task.
Simulation of NeuLAND Bar/Paddle.
constexpr auto DEFAULT_EDEP_OPT
constexpr auto DEFAULT_EDEP_OFF_OPT
constexpr auto RVALUE_DEFAULT_NEUTRON_ENERGY
constexpr auto DEFAULT_N_CLUSTER_OPT
constexpr auto DEFAULT_N_CLUSTER_OFF_OPT
Calibration::HitOnlineMonitorTaskConfig neuland_hit_online_monitor_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::SimCal2Cal neuland_sim_cal_to_cal
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiBayesTrain neuland_multi_bayes_train
struct R3B::Neuland::AnalysisApplication::Options::Tasks::LosProvideTStart los_provide_t_start
struct R3B::Neuland::AnalysisApplication::Options::Tasks::Map2CalParTask neuland_map_to_cal_par_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::LosMap2CalParTask los_map_to_cal_par_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::ClusterFinder neuland_cluster_finder
struct R3B::Neuland::AnalysisApplication::Options::Tasks::LosMap2CalTask los_map_to_cal_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiTrain neuland_multi_calorimeter_train
struct R3B::Neuland::AnalysisApplication::Options::Tasks::NeutronRValue neuland_neutron_r_value
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MapDataConverterTask neuland_map_data_converter_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiBayes neuland_multi_bayes
struct R3B::Neuland::AnalysisApplication::Options::Tasks::PrimClusterFinder neuland_primary_cluster_finder
Calibration::CosmicMonitorTaskConfig neuland_cosmic_monitor_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::PrimInteractionFinder neuland_primary_interaction_finder
struct R3B::Neuland::AnalysisApplication::Options::Tasks::CalMonitorTask neuland_cal_monitor_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::HitMon neuland_hit_mon
struct R3B::Neuland::AnalysisApplication::Options::Tasks::Cal2HitTask neuland_cal_to_hit_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks tasks
Configuration struct for R3B::Neuland::Digitizer used in R3B::Neuland::AnalysisApplication.