Hammer
1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
|
The Hammer namespace contains the library code. More...
Namespaces | |
MultiDimensional | |
The MultiDimensional namespace contains the tensor algebra infrastructure. | |
PS | |
The PS namespace contains the phase space integration infrastructure. | |
Serial | |
The Serial namespace contains the Hammer serialization code based on flatbuffers. | |
Classes | |
class | AmplitudeBase |
Base class for amplitudes. More... | |
class | AmplBD0starLepNu |
class | AmplBD1LepNu |
class | AmplBD1starLepNu |
class | AmplBD2starLepNu |
class | AmplBDLepNu |
class | AmplBDstarDGamLepNu |
class | AmplBDstarDPiLepNu |
class | AmplBDstarLepNu |
class | AmplBToQLepNuBase |
class | AmplLbLcLepNu |
class | AmplTau3PiNu |
class | AmplTauEllNuNu |
class | AmplTauPiNu |
class | DictionaryManager |
Main class. More... | |
class | Event |
Event container class. More... | |
class | Error |
Generic error class. More... | |
class | IndexLabelError |
Invalid index label error class. More... | |
class | RangeError |
Out-of-range error class. More... | |
class | PhaseSpaceError |
Invalid phase space point error class. More... | |
class | InitializationError |
Initialization error class. More... | |
class | ExternalData |
Main class. More... | |
class | FormFactorBase |
Base class for form factors. More... | |
class | FFBGLBase |
Base class for BGL form factors. More... | |
class | FFBLPRBase |
Base class for BLPR form factors. More... | |
class | FFBLRBase |
Base class for BLR form factors. More... | |
class | FFBLRSBase |
Base class for BLR form factors. More... | |
class | FFBtoD0starBLR |
class | FFBtoD0starBLRVar |
class | FFBtoD0starISGW2 |
class | FFBtoD0starLLSW |
class | FFBtoD1BLR |
class | FFBtoD1BLRVar |
class | FFBtoD1ISGW2 |
class | FFBtoD1LLSW |
class | FFBtoD1starBLR |
class | FFBtoD1starBLRVar |
class | FFBtoD1starISGW2 |
class | FFBtoD1starLLSW |
class | FFBtoD2starBLR |
class | FFBtoD2starBLRVar |
class | FFBtoD2starISGW2 |
class | FFBtoD2starLLSW |
class | FFBtoDBGL |
class | FFBtoDBGLVar |
class | FFBtoDBLPR |
class | FFBtoDBLPRVar |
class | FFBtoDCLN |
class | FFBtoDISGW2 |
class | FFBtoDstarBGL |
class | FFBtoDstarBGLVar |
class | FFBtoDstarBLPR |
class | FFBtoDstarBLPRVar |
class | FFBtoDstarCLN |
class | FFBtoDstarCLNVar |
class | FFBtoDstarISGW2 |
class | FFCLNBase |
Base class for CLN form factors. More... | |
class | FFISGW2Base |
Base class for ISGW2 form factors implementation matched to EvtGen. More... | |
class | FFLbtoLcBLRS |
class | FFLbtoLcBLRSVar |
class | FFLbtoLcPCR |
class | FFLLSWBase |
Base class for LLSW form factors. More... | |
class | FFPCRBase |
Base class for PCR form factors See Pervin, Roberst, and Capstick, Phys. More... | |
class | FFRCTBase |
Base class for RCT form factors See Pervin, Roberst, and Capstick, Phys. More... | |
class | FFTauto3PiRCT |
class | Hammer |
Main class. More... | |
class | Histos |
Hammer histogram manager class. More... | |
struct | FFPrefixGroup |
struct | NumDenPair |
class | FourMomentum |
4-momentum class More... | |
class | Histogram |
Multidimensional histogram class with Tensor as cell bins. More... | |
class | HistogramDefinition |
class | HistogramSet |
class | Integrator |
Tensor integration class. More... | |
class | Tensor |
Multidimensional tensor class with complex numbers as elements. More... | |
class | Units |
Hammer class for dealing with units. More... | |
class | Particle |
Particle class. More... | |
class | Process |
Decay process class. More... | |
class | ProcessDefinitions |
Hammer settings manager class. More... | |
struct | AmplEntry |
struct | SelectedAmplEntry |
class | AmplTriplet |
struct | EdgeEntry |
struct | VertexEntry |
class | ProcGraph |
Decay process class. More... | |
class | ProcManager |
Decay process class. More... | |
class | ProcRates |
Decay process class. More... | |
class | ProcRequirements |
Decay process class. More... | |
class | ProcResults |
Decay process class. More... | |
class | ProvidersRepo |
Main class. More... | |
class | PurePhaseSpaceDefs |
Hammer settings manager class. More... | |
class | RateBase |
Base class for rates. More... | |
class | RateBD0starLepNu |
class | RateBD1LepNu |
class | RateBD1starLepNu |
class | RateBD2starLepNu |
class | RateBDLepNu |
class | RateBDstarLepNu |
class | RateLbLcLepNu |
class | RateTau3PiNu |
class | SchemeDefinitions |
Hammer settings manager class. More... | |
class | SettingsHandler |
Hammer settings manager class. More... | |
struct | IOBuffer |
class | IOBuffers |
struct | BinContents |
contents of a histogram bin after full contraction (real weights) to be used to export the histogram outside Hammer More... | |
struct | HistoInfo |
class | product_iterator |
class | Log |
Logging class. More... | |
class | ParticleData |
PDG code process signature class. More... | |
class | PID |
Hammer class for dealing with particle data. More... | |
class | Setting |
container for an Hammer run option More... | |
class | SettingsConsumer |
Base class to access the settings repository. More... | |
struct | SettingChecker |
class | SettingWriter |
struct | SettingEncoder |
struct | SettingStringConverter |
struct | reversion_wrapper |
Typedefs | |
template<typename T > | |
using | HistoNameDict = std::map< std::string, T > |
using | ParticleIndex = size_t |
using | ParticleIndices = std::vector< ParticleIndex > |
using | UniqueParticleIndices = std::set< ParticleIndex > |
using | HashId = size_t |
using | AmplitudeUID = HashId |
template<typename T > | |
using | AmplitudeIdDict = std::map< AmplitudeUID, T > |
using | HadronicUID = HashId |
template<typename T > | |
using | HadronicIdDict = std::map< HadronicUID, T > |
using | VertexUID = HashId |
template<typename T > | |
using | VertexIdDict = std::map< VertexUID, T > |
using | VertexUIDSet = std::set< VertexUID > |
template<typename T > | |
using | VertexDict = std::map< ParticleIndex, T > |
using | VertexName = std::string |
using | ProcessUID = HashId |
template<typename T > | |
using | ProcIdDict = std::map< ProcessUID, T > |
using | EventUID = std::set< ProcessUID > |
template<typename T > | |
using | EventIdDict = UMap< EventUID, T > |
using | EventUIDGroup = std::set< EventUID > |
template<typename T > | |
using | EventIdGroupDict = UMap< EventUIDGroup, T > |
using | SchemeName = std::string |
using | SchemeNameList = std::vector< SchemeName > |
template<typename T > | |
using | SchemeDict = std::map< SchemeName, T > |
template<typename T > | |
using | WCPrefixDict = std::map< std::string, T > |
using | FFIndex = size_t |
template<typename T > | |
using | FFIndexDict = std::map< FFIndex, T > |
template<typename T > | |
using | FFPrefixGroupDict = std::map< FFPrefixGroup, T > |
using | BoundaryFunction = std::function< std::pair< double, double >(const std::vector< double > &)> |
using | IntegrationBoundaries = std::vector< BoundaryFunction > |
using | EvaluationGrid = std::vector< std::vector< double >> |
using | EvaluationWeights = std::vector< double > |
using | IndexType = uint16_t |
using | IndexPair = std::pair< IndexType, IndexType > |
using | IndexList = std::vector< IndexType > |
using | UniqueIndexList = std::set< IndexType > |
using | IndexPairList = std::vector< IndexPair > |
using | PositionType = size_t |
using | PositionPair = std::pair< PositionType, PositionType > |
using | PositionList = std::vector< PositionType > |
using | PositionPairList = std::vector< PositionPair > |
using | PosIndexPair = std::pair< PositionType, IndexType > |
using | PosIndexPairList = std::vector< PosIndexPair > |
using | LabelPair = int std::pair< IndexLabel, IndexLabel > |
using | LabelsList = std::vector< IndexLabel > |
using | UniqueLabelsList = std::set< IndexLabel > |
using | LabelPairsSet = std::set< LabelPair > |
using | ParticleList = std::vector< Particle > |
template<typename T > | |
using | EdgeWeightDict = std::map< size_t, T, std::less< size_t >> |
template<typename T > | |
using | DepthLevelDict = std::map< size_t, T, std::greater< size_t >> |
using | IOHistogram = std::vector< BinContents > |
using | PdgId = int |
template<typename K , typename V > | |
using | UMap = std::unordered_map< K, V, boost::hash< K >> |
Functions | |
YAML::Emitter & | operator<< (YAML::Emitter &out, const ProcessDefinitions &s) |
YAML::Emitter & | operator<< (YAML::Emitter &out, const PurePhaseSpaceDefs &s) |
YAML::Emitter & | operator<< (YAML::Emitter &out, const SchemeDefinitions &s) |
unique_ptr< Histogram > | makeHistogram (const string &name, const HistogramDefinition &def, const Tensor &defaultValue) |
unique_ptr< Histogram > | makeHistogram (const string &name, const HistogramDefinition &def, const IndexList &defaultTensorDims, const LabelsList &defaultTensorLabels) |
Histogram | operator+ (const Histogram &a, const Histogram &b) |
static BinContents | operator+ (const BinContents &a, const BinContents &b) |
double | integrate (std::function< double(double)> &func, double low, double high) |
integration function based on gaussian method More... | |
static BoundaryFunction | makeMjFunction (double parentMass, vector< double > masses, size_t j) |
static double | kStar (double mParent, double mk, double mSibling) |
double | phaseSpaceNBody (const double mass, const std::vector< double > &masses) |
static double | phaseSpace2 (const double m0, const double m1, const double m2) |
static double | phaseSpace3 (const double m0, const double m1, const double m2, const double m3) |
double | phaseSpaceN (const double mass, const std::vector< double > &masses) |
Tensor | dot (const Tensor &first, const Tensor &second, const set< IndexLabel > &indices) |
Tensor | spinSum (const Tensor &first) |
trace a tensor More... | |
Tensor | spinAverage (const Tensor &first) |
trace a tensor over the traceable spin indices and divide by the product of the dimensions of the traced indices (equal to \( 2s_i + 1 \)) More... | |
Tensor | operator* (const Tensor &first, double val) |
left multiplies a tensor by a real constant More... | |
Tensor | operator* (double val, const Tensor &first) |
right multiplies a tensor by a real constant More... | |
Tensor | operator* (std::complex< double > val, const Tensor &first) |
right multiplies a tensor by a complex constant More... | |
Tensor | operator* (const Tensor &first, std::complex< double > val) |
left multiplies a tensor by a complex constant More... | |
Tensor | operator+ (const Tensor &first, const Tensor &second) |
adds two tensors of the same rank and same dimensions More... | |
Tensor | outerSquare (const Tensor &first) |
creates a tensor with twice the rank by multiplying the tensor with it's hermitean conjugate More... | |
Tensor | elementMultiply (const Tensor &first, const Tensor &second) |
multiplies two tensors of the same rank and same dimensions element by element More... | |
Tensor | elementDivide (const Tensor &first, const Tensor &second) |
divides two tensors of the same rank and same dimensions element by element More... | |
double | compareVals (const double val1, const double val2) |
complex< double > | compareVals (const std::complex< double > val1, const std::complex< double > val2) |
ostream & | operator<< (ostream &os, const IOBuffer &buf) |
istream & | operator>> (istream &is, IOBuffer &buf) |
ostream & | operator<< (ostream &os, const IOBuffers &buf) |
ostream & | operator<< (Log &log, int level) |
Streaming output to a logger must have a Level/int as its first argument. More... | |
std::vector< PdgId > | flipSigns (const std::vector< PdgId > &list) |
return the PDG codes of the conjugate particles (itself if self-conjugate) for all the PDG codes in alist More... | |
PdgId | flipSign (const PdgId &id) |
return the PDG code of the conjugate particle (itself if self-conjugate) More... | |
std::vector< PdgId > | combineDaughters (const std::vector< PdgId > &daughters, const std::vector< PdgId > &subDaughters={}) |
combine list of codes of daughters and grandaughters (for processes which parameterise two subsequent decays in a single amplitude) in a single list for computing hashes the convention is that daughters are ordered within themselves, grandDaughters are ordered within themselves, and then the two groups are concatenated with daughters first More... | |
HashId | processID (PdgId parent, const std::vector< PdgId > &allDaughters) |
compute a unique ID for a given process based on the PDG codes of the parent particle and the ordered list of the daughters (and grandaughters if present) More... | |
HashId | combineProcessIDs (const std::set< HashId > &allIds) |
bool | pdgSorter (PdgId a, PdgId b) |
sorting function for PDG ids for computing hashes. More... | |
bool | particlesByPdg (const std::function< PdgId(const Particle &)> &pdgGetter, const Particle &a, const Particle &b) |
checks whether two particles are ordered according to the PDG code ordering used in computing hashes (see pdgSorter for more info on the ordering) More... | |
YAML::Emitter & | operator<< (YAML::Emitter &out, const Setting &s) |
bool | isSpinQN (IndexLabel val) |
determine if a given label is corresponds to a spin index (or reference spin index) More... | |
double | dot (const FourMomentum &v, const FourMomentum &w) |
double | operator* (const FourMomentum &v, const FourMomentum &w) |
contracts two 4-momenta More... | |
double | angle (const FourMomentum &v, const FourMomentum &w) |
computes the angle between the spatial components of two 4-momenta More... | |
double | deltaR (const FourMomentum &v, const FourMomentum &w) |
computes \( \Delta R = \sqrt{\Delta \eta^2 + \Delta \phi^2} \) between two 4-momenta More... | |
double | deltaPhi (const FourMomentum &v, const FourMomentum &w) |
computes the difference between the azimuthal angles of two 4-momenta More... | |
double | deltaEta (const FourMomentum &v, const FourMomentum &w) |
computes the difference between the pseudorapidities of two 4-momenta More... | |
double | epsilon (const FourMomentum &a, const FourMomentum &b, const FourMomentum &c, const FourMomentum &d) |
contracts four 4-momenta with an 4D epsilon tensor. More... | |
FourMomentum | boostToRestFrameOf (const FourMomentum &mom, double vx, double vy, double vz) |
FourMomentum | boostToRestFrameOf (const FourMomentum &mom, const std::array< double, 3 > &v) |
FourMomentum | boostToRestFrameOf (const FourMomentum &mom, const FourMomentum &v) |
double | dot (const std::array< double, 3 > &a, const std::array< double, 3 > &b) |
double | costheta (const std::array< double, 3 > &a, const std::array< double, 3 > &b) |
bool | isZero (const std::complex< double > val) |
bool | isZero (const double val) |
bool | fuzzyLess (const double val1, const double val2) |
double | regularize (const double regularVal, const double problematicValue, const double delta=std::numeric_limits< double >::min(), int direction=0) |
template<typename T > | |
std::enable_if < std::is_arithmetic< typename std::remove_reference< T > ::type >::value, double > ::type | toDouble (T value) |
template<typename T > | |
std::enable_if< std::is_same < typename std::remove_reference < typename std::remove_cv< T > ::type >::type, std::string > ::value, double >::type | toDouble (T value) |
template<typename T > | |
std::enable_if< std::is_same < typename std::remove_reference < typename std::remove_cv< T > ::type >::type, std::complex < double > >::value, double > ::type | toDouble (T value) |
template<typename T > | |
std::enable_if < std::is_unsigned< T >::value &&std::is_integral< T >::value, T >::type | minPadding (T value) |
ParticleIndex | parentId (Process::const_iterator it) |
const ParticleIndices & | daughtersId (Process::const_iterator it) |
template<typename T > | |
void | writeDict2 (YAML::Emitter &emitter, std::map< std::string, std::map< std::string, const T * >> dict2) |
template<typename T > | |
void | writeDict (YAML::Emitter &emitter, std::map< std::string, const T * > dict) |
std::string | version () |
template<typename KeyType , typename ValueType > | |
ValueType | getOrDefault (const std::map< KeyType, ValueType > &data, KeyType key, ValueType fallback) |
template<typename KeyType , typename ValueType > | |
ValueType | getOrDefault (const std::unordered_map< KeyType, ValueType > &data, KeyType key, ValueType fallback) |
template<typename KeyType , typename ValueType > | |
auto const & | getOrThrow (const std::map< KeyType, ValueType > &data, KeyType key, std::exception error) |
template<typename KeyType , typename ValueType > | |
auto & | getOrThrow (std::map< KeyType, ValueType > &data, KeyType key, std::exception error) |
template<typename _InputIterator , typename _OutputIterator , typename _UnaryOperation > | |
_OutputIterator | transform_n (_InputIterator __first, size_t __n, _OutputIterator __result, _UnaryOperation __op) |
template<typename T > | |
auto | begin (reversion_wrapper< T > w) |
template<typename T > | |
auto | end (reversion_wrapper< T > w) |
template<typename T > | |
reversion_wrapper< T > | reverse_range (T &&iterable) |
template<typename T > | |
std::ostream & | operator<< (std::ostream &out, const std::vector< T > &v) |
Variables | |
static constexpr double | pi = boost::math::constants::pi<double>() |
static constexpr double | twoPi = boost::math::constants::two_pi<double>() |
static constexpr double | halfPi = boost::math::constants::half_pi<double>() |
static constexpr double | pi2 = boost::math::constants::pi_sqr<double>() |
static constexpr double | pi3 = boost::math::constants::pi_cubed<double>() |
static constexpr double | sqrt2 = boost::math::constants::root_two<double>() |
static constexpr double | sqrt3 = boost::math::constants::root_three<double>() |
static constexpr double | GFermi = 1.16638e-5 / GeV2 |
static constexpr double | TwoSqTwoGFermi = 2. * sqrt2 * GFermi |
static constexpr double | FPion = 93 * MeV |
static const double | eV = 1.e-9 |
static const double | eV2 = eV*eV |
static const double | keV = 1.e-6 |
static const double | keV2 = keV*keV |
static constexpr double | MeV = 1.e-3 |
static constexpr double | MeV2 = MeV*MeV |
static constexpr double | GeV = 1. |
static constexpr double | GeV2 = GeV*GeV |
static const double | TeV = 1.e3 |
static const double | TeV2 = TeV*TeV |
static const double | precision = 0.001 |
The Hammer namespace contains the library code.
using Hammer::AmplitudeIdDict = typedef std::map<AmplitudeUID, T> |
Definition at line 35 of file IndexTypes.hh.
using Hammer::AmplitudeUID = typedef HashId |
Definition at line 33 of file IndexTypes.hh.
using Hammer::BoundaryFunction = typedef std::function<std::pair<double, double>(const std::vector<double>&)> |
Definition at line 24 of file Integrator.fhh.
using Hammer::DepthLevelDict = typedef std::map<size_t, T, std::greater<size_t>> |
Definition at line 33 of file ProcGraph.hh.
using Hammer::EdgeWeightDict = typedef std::map<size_t, T, std::less<size_t>> |
Definition at line 30 of file ProcGraph.hh.
using Hammer::EvaluationGrid = typedef std::vector<std::vector<double>> |
Definition at line 26 of file Integrator.fhh.
using Hammer::EvaluationWeights = typedef std::vector<double> |
Definition at line 27 of file Integrator.fhh.
using Hammer::EventIdDict = typedef UMap<EventUID, T> |
Definition at line 55 of file IndexTypes.hh.
using Hammer::EventIdGroupDict = typedef UMap<EventUIDGroup, T> |
Definition at line 58 of file IndexTypes.hh.
using Hammer::EventUID = typedef std::set<ProcessUID> |
Definition at line 53 of file IndexTypes.hh.
using Hammer::EventUIDGroup = typedef std::set<EventUID> |
Definition at line 56 of file IndexTypes.hh.
using Hammer::FFIndex = typedef size_t |
Definition at line 69 of file IndexTypes.hh.
using Hammer::FFIndexDict = typedef std::map<FFIndex, T> |
Definition at line 71 of file IndexTypes.hh.
using Hammer::FFPrefixGroupDict = typedef std::map<FFPrefixGroup, T> |
Definition at line 87 of file IndexTypes.hh.
using Hammer::HadronicIdDict = typedef std::map<HadronicUID, T> |
Definition at line 38 of file IndexTypes.hh.
using Hammer::HadronicUID = typedef HashId |
Definition at line 36 of file IndexTypes.hh.
using Hammer::HashId = typedef size_t |
Definition at line 31 of file IndexTypes.hh.
using Hammer::HistoNameDict = typedef std::map<std::string, T> |
Definition at line 21 of file Histos.fhh.
using Hammer::IndexList = typedef std::vector<IndexType> |
Definition at line 25 of file MultiDimensional.fhh.
using Hammer::IndexPair = typedef std::pair<IndexType, IndexType> |
Definition at line 24 of file MultiDimensional.fhh.
using Hammer::IndexPairList = typedef std::vector<IndexPair> |
Definition at line 27 of file MultiDimensional.fhh.
using Hammer::IndexType = typedef uint16_t |
Definition at line 23 of file MultiDimensional.fhh.
using Hammer::IntegrationBoundaries = typedef std::vector<BoundaryFunction> |
Definition at line 25 of file Integrator.fhh.
using Hammer::IOHistogram = typedef std::vector<BinContents> |
Definition at line 132 of file IOTypes.hh.
using Hammer::LabelPair = typedef int std::pair<IndexLabel, IndexLabel> |
Definition at line 39 of file MultiDimensional.fhh.
using Hammer::LabelPairsSet = typedef std::set<LabelPair> |
Definition at line 42 of file MultiDimensional.fhh.
using Hammer::LabelsList = typedef std::vector<IndexLabel> |
Definition at line 40 of file MultiDimensional.fhh.
using Hammer::ParticleIndex = typedef size_t |
Definition at line 27 of file IndexTypes.hh.
using Hammer::ParticleIndices = typedef std::vector<ParticleIndex> |
Definition at line 28 of file IndexTypes.hh.
using Hammer::ParticleList = typedef std::vector<Particle> |
Definition at line 20 of file Particle.fhh.
using Hammer::PdgId = typedef int |
using Hammer::PosIndexPair = typedef std::pair<PositionType, IndexType> |
Definition at line 35 of file MultiDimensional.fhh.
using Hammer::PosIndexPairList = typedef std::vector<PosIndexPair> |
Definition at line 36 of file MultiDimensional.fhh.
using Hammer::PositionList = typedef std::vector<PositionType> |
Definition at line 32 of file MultiDimensional.fhh.
using Hammer::PositionPair = typedef std::pair<PositionType, PositionType> |
Definition at line 31 of file MultiDimensional.fhh.
using Hammer::PositionPairList = typedef std::vector<PositionPair> |
Definition at line 33 of file MultiDimensional.fhh.
using Hammer::PositionType = typedef size_t |
Definition at line 30 of file MultiDimensional.fhh.
using Hammer::ProcessUID = typedef HashId |
Definition at line 49 of file IndexTypes.hh.
using Hammer::ProcIdDict = typedef std::map<ProcessUID, T> |
Definition at line 51 of file IndexTypes.hh.
using Hammer::SchemeDict = typedef std::map<SchemeName, T> |
Definition at line 64 of file IndexTypes.hh.
using Hammer::SchemeName = typedef std::string |
Definition at line 61 of file IndexTypes.hh.
using Hammer::SchemeNameList = typedef std::vector<SchemeName> |
Definition at line 62 of file IndexTypes.hh.
using Hammer::UMap = typedef std::unordered_map<K, V, boost::hash<K>> |
Definition at line 104 of file Tools/Utils.hh.
using Hammer::UniqueIndexList = typedef std::set<IndexType> |
Definition at line 26 of file MultiDimensional.fhh.
using Hammer::UniqueLabelsList = typedef std::set<IndexLabel> |
Definition at line 41 of file MultiDimensional.fhh.
using Hammer::UniqueParticleIndices = typedef std::set<ParticleIndex> |
Definition at line 29 of file IndexTypes.hh.
using Hammer::VertexDict = typedef std::map<ParticleIndex, T> |
Definition at line 45 of file IndexTypes.hh.
using Hammer::VertexIdDict = typedef std::map<VertexUID, T> |
Definition at line 42 of file IndexTypes.hh.
using Hammer::VertexName = typedef std::string |
Definition at line 46 of file IndexTypes.hh.
using Hammer::VertexUID = typedef HashId |
Definition at line 40 of file IndexTypes.hh.
using Hammer::VertexUIDSet = typedef std::set<VertexUID> |
Definition at line 43 of file IndexTypes.hh.
using Hammer::WCPrefixDict = typedef std::map<std::string, T> |
Definition at line 67 of file IndexTypes.hh.
|
strong |
Enumerator | |
---|---|
VERTEX | |
PARENTEDGE | |
DAUGHTEREDGE | |
FULLEDGE |
Definition at line 22 of file ProcGraph.fhh.
enum Hammer::IndexLabel : int |
label identifiers of tensor indices they are used to determine which indices can be contracted together or traced over and which indices are quantum numbers, Wilson coefficient indices, form factor indices, etc.
Same labels in different tensors can be contracted together, labels with opposite sign in the same tensor can be traced over when squaring matrix elements. The opposite sign convention determine the hermitean conjugate index of a given type.
Definition at line 27 of file IndexLabels.hh.
|
strong |
Enumerator | |
---|---|
Left | |
Right | |
Both |
Definition at line 23 of file AlignedIndexing.hh.
enum Hammer::RecordType : char |
Enumerator | |
---|---|
UNDEFINED | |
HEADER | |
EVENT | |
HISTOGRAM | |
RATE | |
HISTOGRAM_DEFINITION |
Definition at line 30 of file IOTypes.hh.
|
strong |
Enumerator | |
---|---|
COMMON | |
NUMERATOR | |
DENOMINATOR |
Definition at line 25 of file IndexTypes.hh.
double Hammer::angle | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
computes the angle between the spatial components of two 4-momenta
[in] | v | the first 4-momentum |
[in] | w | the second 4-momentum |
auto Hammer::begin | ( | reversion_wrapper< T > | w | ) |
Definition at line 79 of file Tools/Utils.hh.
FourMomentum Hammer::boostToRestFrameOf | ( | const FourMomentum & | mom, |
double | vx, | ||
double | vy, | ||
double | vz | ||
) |
FourMomentum Hammer::boostToRestFrameOf | ( | const FourMomentum & | mom, |
const std::array< double, 3 > & | v | ||
) |
FourMomentum Hammer::boostToRestFrameOf | ( | const FourMomentum & | mom, |
const FourMomentum & | v | ||
) |
std::vector< PdgId > Hammer::Hammer::combineDaughters | ( | const std::vector< PdgId > & | daughters, |
const std::vector< PdgId > & | subDaughters = {} |
||
) |
combine list of codes of daughters and grandaughters (for processes which parameterise two subsequent decays in a single amplitude) in a single list for computing hashes the convention is that daughters are ordered within themselves, grandDaughters are ordered within themselves, and then the two groups are concatenated with daughters first
[in] | daughters | |
[in] | subDaughters |
Definition at line 44 of file ParticleUtils.cc.
HashId Hammer::combineProcessIDs | ( | const std::set< HashId > & | allIds | ) |
Definition at line 64 of file ParticleUtils.cc.
double Hammer::Hammer::compareVals | ( | const double | val1, |
const double | val2 | ||
) |
std::complex< double > Hammer::Hammer::compareVals | ( | const std::complex< double > | val1, |
const std::complex< double > | val2 | ||
) |
double Hammer::costheta | ( | const std::array< double, 3 > & | a, |
const std::array< double, 3 > & | b | ||
) |
|
inline |
Definition at line 195 of file Process.hh.
double Hammer::deltaEta | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
computes the difference between the pseudorapidities of two 4-momenta
[in] | v | the first 4-momentum |
[in] | w | the second 4-momentum |
double Hammer::deltaPhi | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
computes the difference between the azimuthal angles of two 4-momenta
[in] | v | the first 4-momentum |
[in] | w | the second 4-momentum |
double Hammer::deltaR | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
computes \( \Delta R = \sqrt{\Delta \eta^2 + \Delta \phi^2} \) between two 4-momenta
[in] | v | the first 4-momentum |
[in] | w | the second 4-momentum |
double Hammer::dot | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
Tensor Hammer::dot | ( | const Tensor & | first, |
const Tensor & | second, | ||
const set< IndexLabel > & | indices | ||
) |
double Hammer::dot | ( | const std::array< double, 3 > & | a, |
const std::array< double, 3 > & | b | ||
) |
Tensor Hammer::Hammer::elementDivide | ( | const Tensor & | first, |
const Tensor & | second | ||
) |
divides two tensors of the same rank and same dimensions element by element
[in] | first | the numerator tensor |
[in] | second | the denominator tensor |
Tensor Hammer::Hammer::elementMultiply | ( | const Tensor & | first, |
const Tensor & | second | ||
) |
auto Hammer::end | ( | reversion_wrapper< T > | w | ) |
Definition at line 84 of file Tools/Utils.hh.
double Hammer::epsilon | ( | const FourMomentum & | a, |
const FourMomentum & | b, | ||
const FourMomentum & | c, | ||
const FourMomentum & | d | ||
) |
contracts four 4-momenta with an 4D epsilon tensor.
The convetion used is \form#23
[in] | a | the first 4-momentum |
[in] | b | the second 4-momentum |
[in] | c | the third 4-momentum |
[in] | d | the fourth 4-momentum |
PdgId Hammer::Hammer::flipSign | ( | const PdgId & | id | ) |
return the PDG code of the conjugate particle (itself if self-conjugate)
[in] | id | the PDG code |
Definition at line 34 of file ParticleUtils.cc.
std::vector< PdgId > Hammer::Hammer::flipSigns | ( | const std::vector< PdgId > & | list | ) |
return the PDG codes of the conjugate particles (itself if self-conjugate) for all the PDG codes in alist
[in] | list | the PDG codes |
Definition at line 22 of file ParticleUtils.cc.
|
inline |
ValueType Hammer::getOrDefault | ( | const std::map< KeyType, ValueType > & | data, |
KeyType | key, | ||
ValueType | fallback | ||
) |
Definition at line 39 of file Tools/Utils.hh.
ValueType Hammer::getOrDefault | ( | const std::unordered_map< KeyType, ValueType > & | data, |
KeyType | key, | ||
ValueType | fallback | ||
) |
Definition at line 45 of file Tools/Utils.hh.
auto const& Hammer::getOrThrow | ( | const std::map< KeyType, ValueType > & | data, |
KeyType | key, | ||
std::exception | error | ||
) |
Definition at line 51 of file Tools/Utils.hh.
auto& Hammer::getOrThrow | ( | std::map< KeyType, ValueType > & | data, |
KeyType | key, | ||
std::exception | error | ||
) |
Definition at line 60 of file Tools/Utils.hh.
double Hammer::Hammer::integrate | ( | std::function< double(double)> & | func, |
double | low, | ||
double | high | ||
) |
integration function based on gaussian method
[in] | func | the function to be integrated |
[in] | low | the lower limit of integration |
[in] | high | the higher limit of integration |
Definition at line 22 of file Integrator.cc.
bool Hammer::isSpinQN | ( | IndexLabel | val | ) |
determine if a given label is corresponds to a spin index (or reference spin index)
[in] | val | the label |
|
inline |
|
inline |
|
static |
Definition at line 47 of file PhaseSpace.cc.
std::unique_ptr< Histogram > Hammer::makeHistogram | ( | const string & | name, |
const HistogramDefinition & | def, | ||
const Tensor & | defaultValue | ||
) |
Definition at line 393 of file Histogram.cc.
std::unique_ptr< Histogram > Hammer::makeHistogram | ( | const string & | name, |
const HistogramDefinition & | def, | ||
const IndexList & | defaultTensorDims, | ||
const LabelsList & | defaultTensorLabels | ||
) |
Definition at line 402 of file Histogram.cc.
|
static |
Definition at line 26 of file PhaseSpace.cc.
std::enable_if<std::is_unsigned<T>::value && std::is_integral<T>::value, T>::type Hammer::minPadding | ( | T | value | ) |
Definition at line 90 of file Math/Utils.hh.
double Hammer::operator* | ( | const FourMomentum & | v, |
const FourMomentum & | w | ||
) |
contracts two 4-momenta
[in] | v | the first 4-momentum |
[in] | w | the second 4-momentum |
Tensor Hammer::operator* | ( | const Tensor & | first, |
double | val | ||
) |
Tensor Hammer::operator* | ( | double | val, |
const Tensor & | first | ||
) |
Tensor Hammer::operator* | ( | std::complex< double > | val, |
const Tensor & | first | ||
) |
Tensor Hammer::operator* | ( | const Tensor & | first, |
std::complex< double > | val | ||
) |
|
static |
Definition at line 202 of file HistogramSet.cc.
Tensor Hammer::Hammer::operator+ | ( | const Tensor & | first, |
const Tensor & | second | ||
) |
Histogram Hammer::Hammer::operator+ | ( | const Histogram & | a, |
const Histogram & | b | ||
) |
std::ostream & Hammer::operator<< | ( | ostream & | os, |
const IOBuffer & | buf | ||
) |
Definition at line 21 of file IOTypes.cc.
std::ostream& Hammer::operator<< | ( | std::ostream & | out, |
const std::vector< T > & | v | ||
) |
Definition at line 94 of file Tools/Utils.hh.
YAML::Emitter & Hammer::operator<< | ( | YAML::Emitter & | out, |
const PurePhaseSpaceDefs & | s | ||
) |
Definition at line 170 of file PurePhaseSpaceDefs.cc.
std::ostream & Hammer::operator<< | ( | ostream & | os, |
const IOBuffers & | buf | ||
) |
Definition at line 195 of file IOTypes.cc.
YAML::Emitter & Hammer::operator<< | ( | YAML::Emitter & | out, |
const ProcessDefinitions & | s | ||
) |
Definition at line 238 of file ProcessDefinitions.cc.
YAML::Emitter & Hammer::operator<< | ( | YAML::Emitter & | out, |
const SchemeDefinitions & | s | ||
) |
Definition at line 327 of file SchemeDefinitions.cc.
YAML::Emitter & Hammer::operator<< | ( | YAML::Emitter & | out, |
const Setting & | s | ||
) |
Definition at line 391 of file Setting.cc.
std::istream & Hammer::operator>> | ( | istream & | is, |
IOBuffer & | buf | ||
) |
Definition at line 28 of file IOTypes.cc.
Tensor Hammer::outerSquare | ( | const Tensor & | first | ) |
|
inline |
Definition at line 191 of file Process.hh.
bool Hammer::Hammer::particlesByPdg | ( | const std::function< PdgId(const Particle &)> & | pdgGetter, |
const Particle & | a, | ||
const Particle & | b | ||
) |
checks whether two particles are ordered according to the PDG code ordering used in computing hashes (see pdgSorter
for more info on the ordering)
[in] | pdgGetter | the PDG code extractor function |
[in] | a | the first particle |
[in] | b | the second particle |
Definition at line 81 of file ParticleUtils.cc.
bool Hammer::Hammer::pdgSorter | ( | PdgId | a, |
PdgId | b | ||
) |
sorting function for PDG ids for computing hashes.
the codes are ordered if \form#43 or if \form#44 and if \form#45
[in] | a | the first PDG code |
[in] | b | the second PDG code |
Definition at line 73 of file ParticleUtils.cc.
|
static |
Definition at line 86 of file PhaseSpace.cc.
|
static |
Definition at line 98 of file PhaseSpace.cc.
double Hammer::Hammer::phaseSpaceN | ( | const double | mass, |
const std::vector< double > & | masses | ||
) |
double Hammer::Hammer::phaseSpaceNBody | ( | const double | mass, |
const std::vector< double > & | masses | ||
) |
HashId Hammer::Hammer::processID | ( | PdgId | parent, |
const std::vector< PdgId > & | allDaughters | ||
) |
compute a unique ID for a given process based on the PDG codes of the parent particle and the ordered list of the daughters (and grandaughters if present)
[in] | parent | the PDG code of the parent particle |
[in] | allDaughters | the ordered list of PDG codes of the daughters particles |
Definition at line 55 of file ParticleUtils.cc.
|
inline |
Definition at line 59 of file Math/Utils.hh.
reversion_wrapper<T> Hammer::reverse_range | ( | T && | iterable | ) |
Definition at line 89 of file Tools/Utils.hh.
Tensor Hammer::spinAverage | ( | const Tensor & | first | ) |
Tensor Hammer::spinSum | ( | const Tensor & | first | ) |
std::enable_if<std::is_arithmetic<typename std::remove_reference<T>::type>::value, double>::type Hammer::toDouble | ( | T | value | ) |
Definition at line 69 of file Math/Utils.hh.
std::enable_if< std::is_same<typename std::remove_reference<typename std::remove_cv<T>::type>::type, std::string>::value, double>::type Hammer::toDouble | ( | T | value | ) |
Definition at line 77 of file Math/Utils.hh.
std::enable_if<std::is_same<typename std::remove_reference<typename std::remove_cv<T>::type>::type, std::complex<double> >::value, double>::type Hammer::toDouble | ( | T | value | ) |
Definition at line 85 of file Math/Utils.hh.
_OutputIterator Hammer::transform_n | ( | _InputIterator | __first, |
size_t | __n, | ||
_OutputIterator | __result, | ||
_UnaryOperation | __op | ||
) |
Definition at line 69 of file Tools/Utils.hh.
|
inline |
Definition at line 34 of file Tools/Utils.hh.
void Hammer::writeDict | ( | YAML::Emitter & | emitter, |
std::map< std::string, const T * > | dict | ||
) |
Definition at line 36 of file HammerYaml.hh.
void Hammer::writeDict2 | ( | YAML::Emitter & | emitter, |
std::map< std::string, std::map< std::string, const T * >> | dict2 | ||
) |
Definition at line 23 of file HammerYaml.hh.
|
static |
Definition at line 31 of file Constants.hh.
|
static |
Definition at line 29 of file Constants.hh.
|
static |
Definition at line 23 of file Constants.hh.
|
static |
Definition at line 21 of file Constants.hh.
|
static |
Definition at line 24 of file Constants.hh.
|
static |
Definition at line 25 of file Constants.hh.
|
static |
Definition at line 20 of file Math/Utils.hh.
|
static |
Definition at line 26 of file Constants.hh.
|
static |
Definition at line 27 of file Constants.hh.
|
static |
Definition at line 22 of file Constants.hh.
Definition at line 30 of file Constants.hh.