forked from Expander/FlexibleSUSY
-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Alexander Voigt
committed
Jul 15, 2015
1 parent
0495722
commit d7c0b64
Showing
5 changed files
with
251 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
// ==================================================================== | ||
// This file is part of FlexibleSUSY. | ||
// | ||
// FlexibleSUSY is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published | ||
// by the Free Software Foundation, either version 3 of the License, | ||
// or (at your option) any later version. | ||
// | ||
// FlexibleSUSY is distributed in the hope that it will be useful, but | ||
// WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
// General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with FlexibleSUSY. If not, see | ||
// <http://www.gnu.org/licenses/>. | ||
// ==================================================================== | ||
|
||
// File generated at @DateAndTime@ | ||
|
||
/** | ||
* @file @ModelName@_root_model_slha.cpp | ||
* @brief @ModelName@ model class wrapper for SLHA conversion | ||
*/ | ||
|
||
#include "@ModelName@_root_model_slha.hpp" | ||
#include "slha_io.hpp" | ||
#include "ckm.hpp" | ||
#include "pmns.hpp" | ||
|
||
namespace flexiblesusy { | ||
|
||
#define CLASSNAME @ModelName@_slha<Root> | ||
#define LOCALPHYSICAL(p) physical.p | ||
|
||
CLASSNAME::@ModelName@_slha(const @ModelName@_input_parameters& input_) | ||
: @ModelName@<Root>(input_) | ||
, physical_slha() | ||
, ckm(Eigen::Matrix<std::complex<double>,3,3>::Identity()) | ||
, pmns(Eigen::Matrix<std::complex<double>,3,3>::Identity()) | ||
{ | ||
} | ||
|
||
/** | ||
* Copy constructor. Copies from base class (two-scale model class in | ||
* BPMZ convention) and converts parameters to SLHA. | ||
* | ||
* @param model_ model class in BPMZ convention | ||
*/ | ||
CLASSNAME::@ModelName@_slha(const @ModelName@<Root>& model_) | ||
: @ModelName@<Root>(model_) | ||
{ | ||
convert_to_slha(); | ||
} | ||
|
||
CLASSNAME::~@ModelName@_slha() | ||
{ | ||
} | ||
|
||
void CLASSNAME::clear() | ||
{ | ||
@ModelName@<Root>::clear(); | ||
physical_slha.clear(); | ||
} | ||
|
||
void CLASSNAME::calculate_spectrum() | ||
{ | ||
@ModelName@<Root>::calculate_spectrum(); | ||
convert_to_slha(); | ||
} | ||
|
||
void CLASSNAME::convert_to_slha() | ||
{ | ||
physical_slha = get_physical(); | ||
physical_slha.convert_to_slha(); | ||
|
||
convert_yukawa_couplings_to_slha(); | ||
calculate_ckm_matrix(); | ||
calculate_pmns_matrix(); | ||
convert_trilinear_couplings_to_slha(); | ||
convert_soft_squared_masses_to_slha(); | ||
} | ||
|
||
void CLASSNAME::calculate_ckm_matrix() | ||
{ | ||
@calculateCKMMatrix@ | ||
} | ||
|
||
void CLASSNAME::calculate_pmns_matrix() | ||
{ | ||
@calculatePMNSMatrix@ | ||
} | ||
|
||
/** | ||
* Convert Yukawa couplings to SLHA convention | ||
*/ | ||
void CLASSNAME::convert_yukawa_couplings_to_slha() | ||
{ | ||
@convertYukawaCouplingsToSLHA@ | ||
} | ||
|
||
/** | ||
* Convert trilinear couplings to SLHA convention | ||
*/ | ||
void CLASSNAME::convert_trilinear_couplings_to_slha() | ||
{ | ||
@convertTrilinearCouplingsToSLHA@ | ||
} | ||
|
||
/** | ||
* Convert trilinear couplings to SLHA convention | ||
*/ | ||
void CLASSNAME::convert_soft_squared_masses_to_slha() | ||
{ | ||
@convertSoftSquaredMassesToSLHA@ | ||
} | ||
|
||
const @ModelName@_physical& CLASSNAME::get_physical_slha() const | ||
{ | ||
return physical_slha; | ||
} | ||
|
||
@ModelName@_physical& CLASSNAME::get_physical_slha() | ||
{ | ||
return physical_slha; | ||
} | ||
|
||
void CLASSNAME::print(std::ostream& ostr) const | ||
{ | ||
@ModelName@<Root>::print(ostr); | ||
|
||
ostr << "----------------------------------------\n" | ||
"SLHA convention:\n" | ||
"----------------------------------------\n"; | ||
physical_slha.print(ostr); | ||
} | ||
|
||
} // namespace flexiblesusy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
// ==================================================================== | ||
// This file is part of FlexibleSUSY. | ||
// | ||
// FlexibleSUSY is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published | ||
// by the Free Software Foundation, either version 3 of the License, | ||
// or (at your option) any later version. | ||
// | ||
// FlexibleSUSY is distributed in the hope that it will be useful, but | ||
// WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
// General Public License for more details. | ||
// | ||
// You should have received a copy of the GNU General Public License | ||
// along with FlexibleSUSY. If not, see | ||
// <http://www.gnu.org/licenses/>. | ||
// ==================================================================== | ||
|
||
/** | ||
* @file @ModelName@_root_model_slha.hpp | ||
* @brief contains wrapper class for model class in SLHA convention | ||
*/ | ||
|
||
// File generated at @DateAndTime@ | ||
|
||
#ifndef @ModelName@_ROOT_SLHA_H | ||
#define @ModelName@_ROOT_SLHA_H | ||
|
||
#include "@ModelName@_root_model.hpp" | ||
#include "@ModelName@_physical.hpp" | ||
#include "@ModelName@_model_slha.hpp" | ||
#include "wrappers.hpp" | ||
|
||
#define PHYSICAL_SLHA(p) physical_slha.p | ||
#define PHYSICAL_SLHA_REAL(p) Re(physical_slha.p) | ||
|
||
namespace flexiblesusy { | ||
|
||
class Root; | ||
|
||
/** | ||
* @class @ModelName@_slha<Root> | ||
* @brief model class wrapper in SLHA convention | ||
*/ | ||
|
||
template<> | ||
class @ModelName@_slha<Root> : public @ModelName@<Root> { | ||
public: | ||
explicit @ModelName@_slha(const @ModelName@_input_parameters& input_ = @ModelName@_input_parameters()); | ||
explicit @ModelName@_slha(const @ModelName@<Root>&); | ||
virtual ~@ModelName@_slha(); | ||
|
||
virtual void clear(); | ||
void convert_to_slha(); ///< converts pole masses and couplings to SLHA convention | ||
const Eigen::Matrix<std::complex<double>,3,3>& get_ckm_matrix() const { return ckm; } | ||
const Eigen::Matrix<std::complex<double>,3,3>& get_pmns_matrix() const { return pmns; } | ||
const @ModelName@_physical& get_physical_slha() const; ///< returns pole masses to SLHA convention | ||
@ModelName@_physical& get_physical_slha(); ///< returns pole masses to SLHA convention | ||
|
||
// interface functions | ||
virtual void calculate_spectrum(); | ||
virtual void print(std::ostream&) const; | ||
|
||
@slhaPoleMassGetters@ | ||
@slhaPoleMixingMatrixGetters@ | ||
@slhaYukawaGetter@ | ||
@slhaTrilinearCouplingsGetter@ | ||
@slhaSoftSquaredMassesGetter@ | ||
@slhaFerimonMixingMatricesGetters@ | ||
|
||
private: | ||
@ModelName@_physical physical_slha; ///< contains the pole masses and mixings in slha convention | ||
Eigen::Matrix<std::complex<double>,3,3> ckm; | ||
Eigen::Matrix<std::complex<double>,3,3> pmns; | ||
@slhaYukawaDef@ | ||
@slhaFerimonMixingMatricesDef@ | ||
@slhaTrilinearCouplingsDef@ | ||
@slhaSoftSquaredMassesDef@ | ||
|
||
void calculate_ckm_matrix(); | ||
void calculate_pmns_matrix(); | ||
void convert_yukawa_couplings_to_slha(); | ||
void convert_trilinear_couplings_to_slha(); | ||
void convert_soft_squared_masses_to_slha(); | ||
}; | ||
|
||
} // namespace flexiblesusy | ||
|
||
#undef PHYSICAL_SLHA | ||
#undef PHYSICAL_SLHA_REAL | ||
|
||
#endif |