Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
lhaBuiltIn.h
Go to the documentation of this file.
1 // This file is part of MARTY.
2 //
3 // MARTY is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // MARTY is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with MARTY. If not, see <https://www.gnu.org/licenses/>.
15 
24 #ifndef LHABUILTIN_H_INCLUDED
25 #define LHABUILTIN_H_INCLUDED
26 
27 #include <string>
28 #include <csl.h>
29 
30 namespace mty::lha {
31 
32 class LHAFileData;
33 
50 void readFile(std::string const &fileName);
67 void readFile(std::ifstream &file);
68 
82 bool applyLHA(
83  LHAFileData const &data,
84  std::string_view nameBlock,
85  size_t id,
86  csl::Expr &expr
87  );
88 
103 bool applyLHA(
104  LHAFileData const &data,
105  std::string_view nameBlock,
106  size_t i,
107  size_t j,
108  csl::Expr &expr
109  );
110 
126 bool applyLHA(
127  LHAFileData const &data,
128  std::string_view nameBlock,
129  csl::Expr &expr
130  );
131 
140  size_t id;
148  bool isMatrix;
149 };
150 
155 struct LHAInputData: public std::vector<LHAElementInputData> {
159  std::string nameBlock;
160 };
161 
168 void applyLHAOnInputs(
169  LHAFileData const &data,
170  LHAInputData &inputs
171  );
172 
179 
187 LHAInputData getMINPARInput(int model);
188 
195 
206  csl::Expr &matrix,
207  std::string const &name
208  );
209 
218 std::vector<LHAInputData> &getMSSMInput(int model);
219 
220 } // End of namespace mty::lha
221 
222 #endif
std::vector< LHAInputData > & getMSSMInput(int model)
Returns all the input data for the MSSM.
Definition: lhaBuiltIn.cpp:230
Helper struct to define a block of LHAElementInputData to make easy the definition of a modifiable bl...
Definition: lhaBuiltIn.h:155
size_t id
Possible id (if not matrix) of the expression.
Definition: lhaBuiltIn.h:140
void applyLHAOnInputs(LHAFileData const &data, LHAInputData &inputs)
Applies LHA data on a LHAInputData element.
Definition: lhaBuiltIn.cpp:107
LHAInputData getEXTPARInput()
Returns the input data for the EXTPAR block.
Definition: lhaBuiltIn.cpp:173
bool applyLHA(LHAFileData const &data, std::string_view nameBlock, size_t id, csl::Expr &expr)
Applies a lha element on an expression, calling csl::Abstract::setValue().
Definition: lhaBuiltIn.cpp:50
void readFile(std::string const &fileName)
Load a .lha file for built-in values in MARTY, in particular SM and MSSM inputs.
Definition: lhaBuiltIn.cpp:27
Namespace containing all lha utilities.
Definition: lha.h:37
csl::Expr expr
Expression to modify.
Definition: lhaBuiltIn.h:144
LHAInputData getMINPARInput(int model)
Returnrs all the input data for MINPAR block.
Definition: lhaBuiltIn.cpp:139
Final class containing all the data coming from a LHA file.
Definition: lhaData.h:302
LHAInputData getMatrixInput(csl::Expr &matrix, std::string const &name)
Returns the input data for a matrix input.
Definition: lhaBuiltIn.cpp:219
Helper struct to define easily an object on which LHA data will apply.
Definition: lhaBuiltIn.h:136
std::string nameBlock
Name of the block.
Definition: lhaBuiltIn.h:159
bool isMatrix
True if the expression is a matrix. Ohterwise must be a literal.
Definition: lhaBuiltIn.h:148
LHAInputData & getSMInput()
Returns all the input data for the SM.
Definition: lhaBuiltIn.cpp:119