31 pset.
existsAs<
bool>(
"floatShapeParameters")?pset.
getParameter<
bool>(
"floatShapeParameters"):
true,
32 pset.
existsAs<vector<string> >(
"fixVars")?pset.
getParameter<vector<string> >(
"fixVars"):vector<string>()
37 if (pset.
existsAs<
bool>(
"binnedFit")) {
40 }
else if (pset.
existsAs<uint32_t>(
"binsForMassPlots")) {
44 if (pset.
existsAs<std::string>(
"WeightVariable")) {
49 for (vector<string>::const_iterator
name = variableNames.begin();
name != variableNames.end();
name++) {
50 vector<string> var = variables.
getParameter<vector<string> >(*name);
52 if(var.size()>=4 && !(istringstream(var[1])>>lo).
fail() && !(istringstream(var[2])>>hi).
fail()){
55 LogError(
"TagProbeFitTreeAnalyzer")<<
"Could not create variable: "<<*name<<
56 ". Example: pt = cms.vstring(\"Probe pT\", \"1.0\", \"100.0\", \"GeV/c\") ";
62 for (vector<string>::const_iterator name = categoryNames.begin(); name != categoryNames.end(); name++) {
63 vector<string> cat = categories.
getParameter<vector<string> >(*name);
67 LogError(
"TagProbeFitTreeAnalyzer")<<
"Could not create category: "<<*name<<
68 ". Example: mcTrue = cms.vstring(\"MC True\", \"dummy[true=1,false=0]\") ";
75 for (vector<string>::const_iterator name = exprNames.begin(); name != exprNames.end(); name++) {
76 vector<string> expr = exprs.
getParameter<vector<string> >(*name);
78 vector<string>
args(expr.begin()+2,expr.end());
81 LogError(
"TagProbeFitTreeAnalyzer")<<
"Could not create expr: "<<*name<<
82 ". Example: qop = cms.vstring(\"qOverP\", \"charge/p\", \"charge\", \"p\") ";
91 for (vector<string>::const_iterator name = cutNames.begin(); name != cutNames.end(); name++) {
92 vector<string> cat = cuts.
getParameter<vector<string> >(*name);
96 LogError(
"TagProbeFitTreeAnalyzer")<<
"Could not create cut: "<<*name<<
97 ". Example: matched = cms.vstring(\"Matched\", \"deltaR\", \"0.5\") ";
105 for (vector<string>::const_iterator name = pdfNames.begin(); name != pdfNames.end(); name++) {
106 vector<string> pdf = pdfs.
getParameter<vector<string> >(*name);
113 for (vector<string>::const_iterator name = efficiencyNames.begin(); name != efficiencyNames.end(); name++) {
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool addExpression(std::string expressionName, std::string title, std::string expression, std::vector< std::string > arguments)
adds a new category based on a cut
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
void addPdf(std::string pdfName, std::vector< std::string > &pdfCommands)
void setWeightVar(const std::string &weight)
set a variable to be used as weight for a dataset. empty string means no weights. ...
void calculateEfficiency(string name, const edm::ParameterSet &pset)
bool addThresholdCategory(std::string categoryName, std::string title, std::string varName, double cutValue)
adds a new category based on a cut
std::vector< std::string > getParameterNamesForType(bool trackiness=true) const
void setQuiet(bool quiet_=true)
suppress most of the output from RooFit and Minuit
void setBinnedFit(bool binned, int bins=0)
set if to do a binned fit
void setBinsForMassPlots(int bins)
set number of bins to use when making the plots; 0 = automatic
bool addCategory(std::string categoryName, std::string title, std::string expression)
adds a new category variable to the set of variables describing the data in the tree; "expression" is...
bool addVariable(std::string variableName, std::string title, double low, double hi, std::string units)
adds a new real variable to the set of variables describing the data in the tree