28 #include "../../BAT/BCModel.h"
53 BCMTF(
const char * name);
66 {
return fNChannels; };
71 {
return fNProcesses; };
76 {
return fNSystematics; };
97 {
return fProcessParIndexContainer.at(index); };
103 {
return fSystematicParIndexContainer.at(index); };
109 {
return fChannelContainer.at(index); };
115 {
return fProcessContainer.at(index); };
121 {
return fSystematicContainer.at(index); };
135 int SetData(
const char * channelname, TH1D hist,
double minimum=-1,
double maximum=-1);
144 int SetTemplate(
const char * channelname,
const char * processname, TH1D hist,
double efficiency = 1.,
double norm = 1.);
160 int SetTemplate(
const char * channelname,
const char * processname, std::vector<TF1 *> * funccont,
int nbins,
double efficiency = 1.);
168 { fExpectationFunctionContainer[parindex] = func; };
184 int SetSystematicVariation(
const char * channelname,
const char * processname,
const char * systematicname,
double variation_up,
double variation_down);
198 int SetSystematicVariation(
const char * channelname,
const char * processname,
const char * systematicname, TH1D hist_up, TH1D hist_down);
214 int SetSystematicVariation(
const char * channelname,
const char * processname,
const char * systematicname, TH1D hist, TH1D hist_up, TH1D hist_down);
223 { fFlagEfficiencyConstraint = flag; };
245 int AddProcess(
const char * name,
double nmin = 0.,
double nmax = 1.,
int color = -1,
int fillstyle = -1,
int linestyle = -1);
253 int AddSystematic(
const char * name,
double min = -5.,
double max = 5.);
261 double Expectation(
int channelindex,
int binindex,
const std::vector<double> & parameters);
271 double ExpectationFunction(
int parindex,
int channelindex,
int processindex,
const std::vector<double> & parameters);
281 double Efficiency(
int channelindex,
int processindex,
int binindex,
const std::vector<double> & parameters);
292 double Probability(
int channelindex,
int processindex,
int binindex,
const std::vector<double> & parameters);
300 double CalculateChi2(
int channelindex,
const std::vector<double> & parameters);
307 double CalculateChi2(
const std::vector<double> & parameters);
315 double CalculateCash(
int channelindex,
const std::vector<double> & parameters);
322 double CalculateCash(
const std::vector<double> & parameters);
331 double CalculatePValue(
int channelindex,
const std::vector<double> & parameters);
352 int PrintSummary(
const char * filename =
"summary.txt");
370 int PrintStack(
int channelindex,
const std::vector<double> & parameters,
const char * filename =
"stack.pdf",
const char * options =
"e1b0stack");
380 int PrintStack(
const char * channelname,
const std::vector<double> & parameters,
const char * filename =
"stack.pdf",
const char * options =
"e1b0stack");
392 double LogLikelihood(
const std::vector<double> & parameters);
405 std::vector<BCMTFChannel *> fChannelContainer;
409 std::vector<BCMTFProcess *> fProcessContainer;
413 std::vector<BCMTFSystematic *> fSystematicContainer;
430 std::vector<int> fProcessParIndexContainer;
434 std::vector<int> fSystematicParIndexContainer;
439 bool fFlagEfficiencyConstraint;
443 std::vector<TF1 *> fExpectationFunctionContainer;
int SetSystematicVariation(const char *channelname, const char *processname, const char *systematicname, double variation_up, double variation_down)
int AddChannel(const char *name)
int SetData(const char *channelname, TH1D hist, double minimum=-1, double maximum=-1)
double CalculatePValue(int channelindex, const std::vector< double > ¶meters)
int SetTemplate(const char *channelname, const char *processname, TH1D hist, double efficiency=1., double norm=1.)
int GetProcessIndex(const char *name)
double ExpectationFunction(int parindex, int channelindex, int processindex, const std::vector< double > ¶meters)
The base class for all user-defined models.
int AddSystematic(const char *name, double min=-5., double max=5.)
int GetChannelIndex(const char *name)
void MCMCUserIterationInterface()
double Expectation(int channelindex, int binindex, const std::vector< double > ¶meters)
int GetSystematicIndex(const char *name)
double Efficiency(int channelindex, int processindex, int binindex, const std::vector< double > ¶meters)
A class describing a process.
double Probability(int channelindex, int processindex, int binindex, const std::vector< double > ¶meters)
int PrintStack(int channelindex, const std::vector< double > ¶meters, const char *filename="stack.pdf", const char *options="e1b0stack")
double CalculateCash(int channelindex, const std::vector< double > ¶meters)
void SetFlagEfficiencyConstraint(bool flag)
A class describing a physics channel.
int AddProcess(const char *name, double nmin=0., double nmax=1., int color=-1, int fillstyle=-1, int linestyle=-1)
int GetParIndexSystematic(int index)
BCMTFSystematic * GetSystematic(int index)
void SetExpectationFunction(int parindex, TF1 *func)
int GetParIndexProcess(int index)
BCMTFChannel * GetChannel(int index)
BCMTFProcess * GetProcess(int index)
double CalculateChi2(int channelindex, const std::vector< double > ¶meters)
double LogLikelihood(const std::vector< double > ¶meters)
A class for fitting several templates to a data set.
A class desribing a systematic uncertainty.