9 #ifndef THEPEG_CompSelector_H
10 #define THEPEG_CompSelector_H
15 #include "ThePEG/Utilities/Selector.h"
46 template <
typename T,
typename WeightType =
double>
75 WeightType
insert(WeightType d,
const T & t) {
92 template <
typename RNDGEN>
93 T &
select(RNDGEN & rnd)
throw(range_error) {
111 WeightType newmax = oldmax*abs(weight)*
margin();
113 double rat = newmax/oldmax;
117 level.weight = 1.0/rat;
118 level.lastN = long(
N*newtot/oldtot);
122 for (
int i = 0, M =
levels.size(); i < M; ++i ) {
213 template <
typename OStream>
216 for (
int i = 0, M =
levels.size(); i < M; ++i )
223 template <
typename IStream>
228 for (
int i = 0; i < M; ++i ) is >>
levels[i].lastN >>
levels[i].weight;
291 template <
typename OStream,
typename T,
typename WeightType>
301 template <
typename IStream,
typename T,
typename WeightType>