R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandAnalysisApp.h
Go to the documentation of this file.
1#pragma once
2
4#include "R3BNeulandApp.h"
7#include <string>
8#include <string_view>
9#include <vector>
10
11namespace R3B::Neuland
12{
13 namespace Digitizing = R3B::Digitizing;
15 constexpr auto RVAUE_DEFAULT_NEUTRON_ENERGY = 600.;
16
18 {
19 double init{};
20 double step{};
21 double lower{};
22 double upper{};
23 };
24
25 constexpr auto DEFAULT_EDEP_OPT = MinimizerLimVar{ 200., 25., 50., 1500. };
26 constexpr auto DEFAULT_EDEP_OFF_OPT = MinimizerLimVar{ 5., 1., 0., 250. };
27 constexpr auto DEFAULT_N_CLUSTER_OPT = MinimizerLimVar{ 10., 5., 5., 50. };
28 constexpr auto DEFAULT_N_CLUSTER_OFF_OPT = MinimizerLimVar{ 2., 1., 0., 10. };
29 constexpr auto DEFAULT_MIN_STAT = 10;
30
32 {
33 public:
34 using TamexChannel = Tamex::Channel;
35
36 struct Options
37 {
39 struct Tasks
40 {
43 {
44 bool enable = false;
45 std::string name = "NeulandSimCal2Cal";
46 std::string read = "NeulandSimCal";
47 std::string write = "NeulandCalData";
49 struct HitMon
50 {
51 bool enable = false;
52 std::string name = "NeulandHitMon";
53 std::string read = "NeulandHits";
54 std::string write;
57 {
58 bool enable = false;
59 std::string name = "NeulandPrimaryInteractionFinder";
60 std::string read = "NeulandPoints;NeulandHits";
61 std::string write = "NeulandPrimaryPoints;NeulandPrimaryHits;NeulandPrimaryTracks";
64 {
65 std::string read = "NeulandHits";
66 std::string write = "NeulandClusters";
67 bool enable = false;
68 std::string name = "NeulandClusterFinder";
71 {
72 bool enable = false;
73 std::string name = "NeulandPrimaryClusterFinder";
74 std::string read = "NeulandPrimaryHits;NeulandClusters";
75 std::string write = "NeulandPrimaryClusters;NeulandSecondaryClusters";
78 {
79 bool enable = false;
80 bool use_hit = false;
81 double weight = 0.;
86 std::string name = "NeulandMultiplicityCalorimetricTrain";
87 std::string read = "NeulandClusters;NeulandPrimaryTracks;NeulandPrimaryHits";
88 std::string write;
91 {
92 bool enable = false;
93 std::string name = "NeulandMultiplicityBayesTrain";
94 std::string read = "NeulandClusters;NeulandPrimaryTracks";
95 std::string write;
98 {
99 bool enable = false;
100 std::string name = "NeulandMultiplicityBayes";
101 std::string read = "NeulandClusters";
102 std::string write = "NeulandMultiplicity";
105 {
106 bool enable = false;
108 std::string name = "NeulandNeutronsRValue";
109 std::string read = "NeulandMultiplicity;NeulandClusters";
110 std::string write = "NeulandNeutrons";
113 {
114 bool enable = false;
117 std::string name = "NeulandCal2HitParTask";
118 std::string read = "NeulandCalData;NeulandCalibrationBasePar";
119 std::string write = "NeulandHitPar";
122 };
123
124 explicit AnalysisApplication();
125
126 void set_channel(std::string_view channel) { options_.tasks.digi.channel = channel; }
127 void set_paddle(std::string_view paddle) { options_.tasks.digi.paddle = paddle; }
128
129 private:
131
132 // virtual private member functions:
133 void pre_init(FairRun* run) override;
134 void print_json_options() override;
135 void dump_json_options(const std::string& filename) override;
136 void setup_application_options(CLI::App& program_options) override;
137 void ParseApplicationOption(const std::vector<std::string>& filename) override;
138
139 // non-virtual private member functions:
140 void set_parameters();
141 auto create_neuland_digi_engine_map(const R3B::Neuland::DigiTaskOptions& option, std::string_view hit_par_name);
142 };
143} // 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)
Simulation of NeuLAND Bar/Paddle.
constexpr auto DEFAULT_EDEP_OPT
constexpr auto DEFAULT_EDEP_OFF_OPT
constexpr auto DEFAULT_MIN_STAT
constexpr auto DEFAULT_N_CLUSTER_OPT
constexpr auto RVAUE_DEFAULT_NEUTRON_ENERGY
constexpr auto DEFAULT_N_CLUSTER_OFF_OPT
struct R3B::Neuland::AnalysisApplication::Options::Tasks::HitMon hit_monitor
struct R3B::Neuland::AnalysisApplication::Options::Tasks::SimCal2Cal sim_cal_to_cal
struct R3B::Neuland::AnalysisApplication::Options::Tasks::PrimInteractionFinder prim_inter_finder
struct R3B::Neuland::AnalysisApplication::Options::Tasks::NeutronRValue neutron_r_value
struct R3B::Neuland::AnalysisApplication::Options::Tasks::ClusterFinder cluster_finder
struct R3B::Neuland::AnalysisApplication::Options::Tasks::PrimClusterFinder prim_cluster_finder
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiBayes multi_bayes
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiBayesTrain multi_bayes_train
struct R3B::Neuland::AnalysisApplication::Options::Tasks::Cal2HitParTask cal_to_hit_par_task
struct R3B::Neuland::AnalysisApplication::Options::Tasks::MultiTrain multi_calorimeter_train
struct R3B::Neuland::AnalysisApplication::Options::Tasks tasks
Configuration struct for R3B::Neuland::Digitizer used in R3B::Neuland::AnalysisApplication.