TkN 2.4
Toolkit for Nuclei
Loading...
Searching...
No Matches
tkdecay_builder.cpp
1/********************************************************************************
2 * Copyright (c) : Université de Lyon 1, CNRS/IN2P3, UMR5822, *
3 * IP2I, F-69622 Villeurbanne Cedex, France *
4 * Normandie Université, ENSICAEN, UNICAEN, CNRS/IN2P3, *
5 * LPC Caen, F-14000 Caen, France *
6 * Contibutor(s) : *
7 * Jérémie Dudouet jeremie.dudouet@cnrs.fr [2020] *
8 * Diego Gruyer diego.gruyer@cnrs.fr [2020] *
9 * *
10 * Licensed under the MIT License <http://opensource.org/licenses/MIT>. *
11 * SPDX-License-Identifier: MIT *
12 ********************************************************************************/
13
14#include "tkdecay_builder.h"
15
16#include "tklog.h"
17#include "tkdecay.h"
18
19namespace tkn {
26}
27
28using namespace tkn;
29
31
32tkdecay_builder::tkdecay_builder(tkdatabase *_database, const char *_table_name) : tkdb_builder(_database, _table_name)
33{
34 fTable = &fDataBase->new_table(fTableName);
35
36 fTable->add_column("decay_id","INT NOT NULL PRIMARY KEY");
37 fTable->add_column("level_from_id","INT NOT NULL");
38 fTable->add_column("level_to_id","INT NOT NULL");
39 fTable->add_column("decay_type","INT");
40
41 add_measure("energy");
42 add_measure("relative_intensity");
43
44 fTable->add_column("decay_multipolarity","TEXT");
45
46 add_measure("mixing_ratio");
47 add_measure("conv_coeff");
48 add_measure("BE");
49 add_measure("BEW");
50 add_measure("BM");
51 add_measure("BMW");
52
53 fTable->add_column("decay_comment","TEXT");
54 fTable->add_column("decay_uncertain","TEXT");
55
56 fTable->add_constraint("FOREIGN KEY (level_from_id) REFERENCES LEVEL (level_id),"); // hold this link with a constraints
57 fTable->add_constraint("FOREIGN KEY (level_to_id) REFERENCES LEVEL (level_id)"); // hold this link with a constraints
58
59 fTable->write_to_database();
60
61 glog << info << "Creating '" << _table_name << "' table" << do_endl;
62}
63
64void tkdecay_builder::fill_gamma(const int &_level_idx_from,const int &_level_idx_to, const tkensdf_gamma_rec &_gamma_record)
65{
66 (*fTable)["decay_id"].set_value(fdecay_Idx); // level id
67 fdecay_Idx++;
68 (*fTable)["level_from_id"].set_value(_level_idx_from);
69 (*fTable)["level_to_id"].set_value(_level_idx_to);
70
71 (*fTable)["decay_type"].set_value(tkdecay::kgamma);
72
73 fill_measure("energy",_gamma_record.get_energy());
74 fill_measure("relative_intensity",_gamma_record.get_relative_intensity());
75 fill_measure("mixing_ratio",_gamma_record.get_mixing_ratio());
76 fill_measure("conv_coeff",_gamma_record.get_conv_coeff());
77 fill_measure("BE",_gamma_record.get_BE());
78 fill_measure("BEW",_gamma_record.get_BEW());
79 fill_measure("BM",_gamma_record.get_BM());
80 fill_measure("BMW",_gamma_record.get_BMW());
81
82 if(!_gamma_record.get_multipolarity().is_empty()) (*fTable)["decay_multipolarity"].set_value(_gamma_record.get_multipolarity());
83
84 if(!_gamma_record.get_comment_record().is_empty()) (*fTable)["decay_comment"].set_value(_gamma_record.get_comment_record());
85
86 if(_gamma_record.is_uncertain()) (*fTable)["decay_uncertain"].set_value(_gamma_record.get_uncertain_record().data());
87
88 fTable->push_row();
89}
90
91
92#ifdef HAS_ROOT
93ClassImp(tkdecay_builder);
94#endif
Interface to the sqlite database.
Definition tkdatabase.h:34
tkdb_builder(tkdatabase *_database, const char *_table_name)
Filling of the ENSDF decay properties.
tkdecay_builder(tkdatabase *_database, const char *_table_name="DECAY")
virtual ~tkdecay_builder() override
void fill_gamma(const int &_level_idx_from, const int &_level_idx_to, const tkensdf_gamma_rec &_gamma_record)
Decodding of the ENSDF gamma properties.
const tkdb_table::measure_data_struct & get_BM() const
const tkstring & get_multipolarity() const
const tkdb_table::measure_data_struct & get_BMW() const
const tkdb_table::measure_data_struct & get_BEW() const
const tkdb_table::measure_data_struct & get_conv_coeff() const
const tkdb_table::measure_data_struct & get_mixing_ratio() const
const tkdb_table::measure_data_struct & get_BE() const
const tkdb_table::measure_data_struct & get_relative_intensity() const
bool is_uncertain() const
check if the record is uncertain
const tkstring & get_uncertain_record() const
get the record uncertain type
virtual const tkstring & get_comment_record() const
get the continuation record
const tkdb_table::measure_data_struct & get_energy() const
bool is_empty() const
Definition tkstring.h:140
Definition tklog.cpp:16
tklog & info(tklog &log)
Definition tklog.h:313
tklog & do_endl(tklog &log)
Definition tklog.h:212