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"
6
7namespace R3B::Neuland
8{
9 namespace Digitizing = R3B::Digitizing;
11 constexpr auto RVAUE_DEFAULT_NEUTRON_ENERGY = 600.;
12
14 {
15 double init{};
16 double step{};
17 double lower{};
18 double upper{};
19 };
20
21 constexpr auto DEFAULT_EDEP_OPT = MinimizerLimVar{ 200., 25., 50., 1500. };
22 constexpr auto DEFAULT_EDEP_OFF_OPT = MinimizerLimVar{ 5., 1., 0., 250. };
23 constexpr auto DEFAULT_N_CLUSTER_OPT = MinimizerLimVar{ 10., 5., 5., 50. };
24 constexpr auto DEFAULT_N_CLUSTER_OFF_OPT = MinimizerLimVar{ 2., 1., 0., 10. };
25 constexpr auto DEFAULT_MIN_STAT = 10;
26
28 {
29 public:
31
32 struct Options
33 {
35 struct Tasks
36 {
37 struct Digi
38 {
39 bool enable = false;
40 std::string name = "NeulandDigitizer";
41 std::string channel = "tamex";
42 std::string paddle = "neuland";
43 bool enable_sim_cal = false;
44 bool enable_hit_par = false;
48 std::string read = "NeulandPoints;NeulandHitPar";
49 std::string write = "NeulandHits;NeulandSimCal";
52 {
53 bool enable = false;
54 std::string name = "NeulandSimCal2Cal";
55 std::string read = "NeulandSimCal";
56 std::string write = "NeulandCalData";
58 struct HitMon
59 {
60 bool enable = false;
61 std::string name = "NeulandHitMon";
62 std::string read = "NeulandHits";
63 std::string write;
66 {
67 bool enable = false;
68 std::string name = "NeulandPrimaryInteractionFinder";
69 std::string read = "NeulandPoints;NeulandHits";
70 std::string write = "NeulandPrimaryPoints;NeulandPrimaryHits;NeulandPrimaryTracks";
73 {
74 std::string read = "read";
75 std::string write = "write";
76 bool enable = false;
77 std::string name = "NeulandClusterFinder";
80 {
81 bool enable = false;
82 std::string name = "NeulandPrimaryClusterFinder";
83 std::string read = "NeulandPrimaryHits;NeulandClusters";
84 std::string write = "NeulandPrimaryClusters;NeulandSecondaryClusters";
87 {
88 bool enable = false;
89 bool use_hit = false;
90 double weight = 0.;
95 std::string name = "NeulandMultiplicityCalorimetricTrain";
96 std::string read = "NeulandClusters;NeulandPrimaryTracks;NeulandPrimaryHits";
97 std::string write;
100 {
101 bool enable = false;
102 std::string name = "NeulandMultiplicityBayesTrain";
103 std::string read = "NeulandClusters;NeulandPrimaryTracks";
104 std::string write;
107 {
108 bool enable = false;
109 std::string name = "NeulandMultiplicityBayes";
110 std::string read = "NeulandClusters";
111 std::string write = "NeulandMultiplicity";
114 {
115 bool enable = false;
117 std::string name = "NeulandNeutronsRValue";
118 std::string read = "NeulandMultiplicity;NeulandClusters";
119 std::string write = "NeulandNeutrons";
122 {
123 bool enable = false;
126 std::string name = "NeulandCal2HitParTask";
127 std::string read = "NeulandCalData;NeulandCalibrationBasePar";
128 std::string write = "NeulandHitPar";
131 };
132
133 explicit AnalysisApplication();
134
135 void set_channel(std::string_view channel) { options_.tasks.digi.channel = channel; }
136 void set_paddle(std::string_view paddle) { options_.tasks.digi.paddle = paddle; }
137
138 private:
139 Options options_;
140
141 // virtual private member functions:
142 void pre_init(FairRun* run) override;
143 void print_json_options() override;
144 void dump_json_options(const std::string& filename) override;
145 void setup_application_options(CLI::App& program_options) override;
146 void ParseApplicationOption(const std::vector<std::string>& filename) override
147 {
148 ParseApplicationOptionImp(filename, options_);
149 }
150
151 // non-virtual private member functions:
152 void set_parameters();
153 auto create_neuland_digi_engine_map(const Options::Tasks::Digi& option, std::string_view hit_par_name);
154 };
155} // namespace R3B::Neuland
static auto GetDefaultRandomGen() -> TRandom3 &
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)
Application(std::string_view name, std::unique_ptr< FairRun > run, std::reference_wrapper< Options > option)
void ParseApplicationOptionImp(const std::vector< std::string > &filename, OptionType &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
AnalysisApplication::Options Options
constexpr auto DEFAULT_N_CLUSTER_OFF_OPT
Digitizing::Neuland::Tamex::PeakPileUpStrategy pileup_strategy
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::Digi digi
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