Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HammerModules.hh
Go to the documentation of this file.
1 ///
2 /// @file HammerModules.hh
3 /// @brief Hammer available modules header
4 ///
5 
6 //**** This file is a part of the HAMMER library
7 //**** Copyright (C) 2016 - 2020 The HAMMER Collaboration
8 //**** HAMMER is licensed under version 3 of the GPL; see COPYING for details
9 //**** Please note the MCnet academic guidelines; see GUIDELINES for details
10 
11 // -*- C++ -*-
12 #ifndef HAMMER_HAMMERModules_HH
13 #define HAMMER_HAMMERModules_HH
14 
27 
61 
70 
71 
72 #define ADD(ELEM, CONT, TYP) do { \
73  unique_ptr<TYP> pEntry(new ELEM{}); \
74  size_t counts = pEntry->numSignatures(); \
75  CONT.emplace(pEntry->id(), std::move(pEntry)); \
76  for(size_t i = 1; i < counts; ++i) { \
77  unique_ptr<TYP> pEntryNext(new ELEM{}); \
78  pEntryNext->setSignatureIndex(i); \
79  CONT.emplace(pEntryNext->id(), std::move(pEntryNext)); \
80  } \
81  } while(0)
82 
83 #define ADDV(ELEM, CONT, TYP) do { \
84  unique_ptr<TYP> pEntry(new ELEM{}); \
85  size_t counts = pEntry->numSignatures(); \
86  CONT[pEntry->id()].emplace_back(std::move(pEntry)); \
87  for(size_t i = 1; i < counts; ++i) { \
88  unique_ptr<TYP> pEntryNext(new ELEM{}); \
89  pEntryNext->setSignatureIndex(i); \
90  CONT[pEntryNext->id()].emplace_back(std::move(pEntryNext)); \
91  } \
92  } while(0)
93 
94 #define ADD_AMPLITUDES(CONT) do { \
95  ADD(AmplBD0starLepNu, CONT, AmplitudeBase); \
96  ADD(AmplBD1LepNu, CONT, AmplitudeBase); \
97  ADD(AmplBD1starLepNu, CONT, AmplitudeBase); \
98  ADD(AmplBD2starLepNu, CONT, AmplitudeBase); \
99  ADD(AmplBDLepNu, CONT, AmplitudeBase); \
100  ADD(AmplBDstarDGamLepNu, CONT, AmplitudeBase); \
101  ADD(AmplBDstarDPiLepNu, CONT, AmplitudeBase); \
102  ADD(AmplBDstarLepNu, CONT, AmplitudeBase); \
103  ADD(AmplLbLcLepNu, CONT, AmplitudeBase); \
104  ADD(AmplTau3PiNu, CONT, AmplitudeBase); \
105  ADD(AmplTauEllNuNu, CONT, AmplitudeBase); \
106  ADD(AmplTauPiNu, CONT, AmplitudeBase); \
107  } while (0)
108 
109 #define ADD_FORMFACTORS(CONT) do { \
110  ADDV(FFBtoD0starBLR, CONT, FormFactorBase); \
111  ADDV(FFBtoD0starBLRVar, CONT, FormFactorBase); \
112  ADDV(FFBtoD0starISGW2, CONT, FormFactorBase); \
113  ADDV(FFBtoD0starLLSW, CONT, FormFactorBase); \
114  ADDV(FFBtoD1BLR, CONT, FormFactorBase); \
115  ADDV(FFBtoD1BLRVar, CONT, FormFactorBase); \
116  ADDV(FFBtoD1ISGW2, CONT, FormFactorBase); \
117  ADDV(FFBtoD1LLSW, CONT, FormFactorBase); \
118  ADDV(FFBtoD1starBLR, CONT, FormFactorBase); \
119  ADDV(FFBtoD1starBLRVar, CONT, FormFactorBase); \
120  ADDV(FFBtoD1starISGW2, CONT, FormFactorBase); \
121  ADDV(FFBtoD1starLLSW, CONT, FormFactorBase); \
122  ADDV(FFBtoD2starBLR, CONT, FormFactorBase); \
123  ADDV(FFBtoD2starBLRVar, CONT, FormFactorBase); \
124  ADDV(FFBtoD2starISGW2, CONT, FormFactorBase); \
125  ADDV(FFBtoD2starLLSW, CONT, FormFactorBase); \
126  ADDV(FFBtoDBGL, CONT, FormFactorBase); \
127  ADDV(FFBtoDBGLVar, CONT, FormFactorBase); \
128  ADDV(FFBtoDBLPR, CONT, FormFactorBase); \
129  ADDV(FFBtoDBLPRVar, CONT, FormFactorBase); \
130  ADDV(FFBtoDCLN, CONT, FormFactorBase); \
131  ADDV(FFBtoDISGW2, CONT, FormFactorBase); \
132  ADDV(FFBtoDstarBGL, CONT, FormFactorBase); \
133  ADDV(FFBtoDstarBGLVar, CONT, FormFactorBase); \
134  ADDV(FFBtoDstarBLPR, CONT, FormFactorBase); \
135  ADDV(FFBtoDstarBLPRVar, CONT, FormFactorBase); \
136  ADDV(FFBtoDstarCLN, CONT, FormFactorBase); \
137  ADDV(FFBtoDstarCLNVar, CONT, FormFactorBase); \
138  ADDV(FFBtoDstarISGW2, CONT, FormFactorBase); \
139  ADDV(FFLbtoLcBLRS, CONT, FormFactorBase); \
140  ADDV(FFLbtoLcBLRSVar, CONT, FormFactorBase); \
141  ADDV(FFLbtoLcPCR, CONT, FormFactorBase); \
142  ADDV(FFTauto3PiRCT, CONT, FormFactorBase); \
143  } while (0)
144 
145 #define ADD_RATES(CONT) do { \
146  ADD(RateBD0starLepNu, CONT, RateBase); \
147  ADD(RateBD1LepNu, CONT, RateBase); \
148  ADD(RateBD1starLepNu, CONT, RateBase); \
149  ADD(RateBD2starLepNu, CONT, RateBase); \
150  ADD(RateBDLepNu, CONT, RateBase); \
151  ADD(RateBDstarLepNu, CONT, RateBase); \
152  ADD(RateLbLcLepNu, CONT, RateBase); \
153  ADD(RateTau3PiNu, CONT, RateBase); \
154  } while (0)
155 
156 #endif
amplitude
BLRS form factors
LLSW form factors
ISGW2 form factors
BGL form factors
LLSW form factors
amplitude
ISGW2 form factors
BLPR form factors
BLPRVar form factors with variations
BLR form factors with variations
BGL form factors
BLR form factors with variations
BLR form factors with variations
LLSW form factors
CLN form factors with variations
amplitude
BGL form factors with variations
form factors see 1203.3955 and 1310.1053
total rate
BLRS form factors
total rate
BLR form factors
LLSW form factors
amplitude
ISGW2 form factors
ISGW2 form factors
CLN form factors
BLR form factors
PCR form factors
total rate
BLR form factors
ISGW2 form factors
BLPR form factors
CLN form factors
BLPRVar form factors with variations
BLR form factors with variations
total rate
total rate
ISGW2 form factors
BLR form factors
BGL form factors with variations
amplitude