|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
  100     std::map<std::string,std::vector<SystematicSet>> myresult;
 
  109       auto& subresult = myresult[
config.label];
 
  114       if (baseSys[
group].empty())
 
  123       if (
sys.second.front().isContinuousEnsemble())
 
  130       } 
else if (
sys.second.front().isEnsemble())
 
  138         for (
auto mysys : 
sys.second)
 
  141           subresult.back().insert(mysys);
 
  147     std::vector<CP::SystematicSet> toys (
config.toys);
 
  154       if (
sys.second.front().isContinuousEnsemble())
 
  156         std::unique_ptr<TRandom3> random (
new TRandom3);
 
  157         random->SetSeed (hash_string (
sys.first));
 
  159         for (
auto& toy : toys)
 
  161       } 
else if (
sys.second.front().isToyEnsemble())
 
  163         for (
unsigned toy = 0; toy != 
config.toys; ++ toy)
 
  172     for (
auto& toy : toys)
 
  173       subresult.push_back (std::move (toy));
 
  183   addGroup (
const std::string& val_label)
 
  197     m_config.back().pattern = val_pattern;
 
  231   std::vector<std::map<std::string,std::vector<SystematicVariation>>>
 
  235     std::map<std::string,std::vector<SystematicVariation> > basesys;
 
  236     for (
auto sys : sysList)
 
  238       basesys[
sys.basename()].push_back (
sys);
 
  240     std::vector<std::map<std::string,std::vector<SystematicVariation> >>
 
  242     for (
auto sys : basesys)
 
  246       for (
auto mysys : 
sys.second)
 
  248     if (mysys.isEnsemble())
 
  250       if (!ensemble.
empty())
 
  251         RCU_THROW_MSG (
"inconsistent ensembles requested: " + ensemble.
name() + 
" " + mysys.name());
 
  278         RCU_THROW_MSG (
"toys only supported for ensemble systematics");
 
  285       if (!ensemble.
empty())
 
  287     basesysList[
group][
sys.first].push_back (ensemble);
 
  290     basesysList[
group][
sys.first] = std::move (
sys.second);
 
  
static SystematicVariation makeToyVariation(const std::string &basename, unsigned toyIndex, float toyScale)
constructor for toy systematics
const std::string & name() const
description: the full systematics name, for use in strings, etc.
the configuration for the given group
Class to wrap a set of SystematicVariations.
bool match_expr(const std::regex &expr, const std::string &str)
returns: whether we can match the entire string with the regular expression guarantee: strong failure...
std::map< std::string, std::vector< SystematicSet > > m_result
the value of result
void setPattern(const std::string &val_pattern)
set the pattern for the current group
Select isolated Photons, Electrons and Muons.
std::string m_useForNominal
the group for which useForNominal was set
const std::vector< SystematicSet > & result(const std::string &label) const
the list of nuisance parameter points generated with the given label
void addGroup(const std::string &val_label)
finish configuration for this group and add a new one
void useForNominal()
set this group as the default, i.e.
#define RCU_REQUIRE2(x, y)
void setSigma(float val_sigma)
set the number of sigmas to vary this group by
MakeSystematicsVector()
standard default constructor
std::vector< GroupConfig > m_config
the configuration on a per-group basis
bool empty() const
returns: whether this is an empty systematic, i.e.
void setToys(unsigned val_toys)
set the number of toys to run for this group
void calc(const SystematicSet &sysList)
fill in result
#define RCU_CHANGE_INVARIANT(x)
#define RCU_THROW_MSG(message)
#define RCU_READ_INVARIANT(x)
void testInvariant() const
test the invariant of this object
bool isToyEnsemble() const
whether this represents a toy ensemble
std::vector< std::map< std::string, std::vector< SystematicVariation > > > calcBaseSys(const SystematicSet &sysList)
make the list of base systematics for calc
#define RCU_NEW_INVARIANT(x)