CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
SideBandSubtract Class Reference

#include <SideBandSubtraction.h>

Public Member Functions

void addSideBandRegion (Double_t min, Double_t max)
 
void addSignalRegion (Double_t min, Double_t max)
 
void doFastSubtraction (TH1F &Total, TH1F &Result, SbsRegion &leftRegion, SbsRegion &rightRegion)
 
int doGlobalFit ()
 
int doSubtraction (RooRealVar *variable, Double_t stsratio, Int_t index)
 
std::vector< TH1F * > getBaseHistos ()
 
RooFitResult * getFitResult ()
 
std::vector< TH1F > getRawHistos ()
 
std::vector< TH1F > getSBSHistos ()
 
Double_t getSTSRatio ()
 
void printResults (std::string prefix="")
 
void resetSBSProducts ()
 
void saveResults (std::string outname)
 
void setDataSet (RooDataSet *newData)
 
 SideBandSubtract ()
 
 SideBandSubtract (RooAbsPdf *model_shape, RooAbsPdf *bkg_shape, RooDataSet *data, RooRealVar *sep_var, std::vector< TH1F * > base, bool verb)
 
 ~SideBandSubtract ()
 

Private Member Functions

Double_t getYield (std::vector< SbsRegion > Regions, RooAbsPdf *PDF)
 
void print_plot (RooRealVar *printVar, std::string outname)
 

Private Attributes

RooAbsPdf * BackgroundPDF
 
TH1F * base_histo
 
std::vector< TH1F * > BaseHistos
 
RooDataSet * Data
 
RooFitResult * fit_result
 
RooAbsPdf * ModelPDF
 
std::vector< TH1F > RawHistos
 
std::vector< TH1F > SBSHistos
 
RooRealVar * SeparationVariable
 
std::vector< TH1F > SideBandHistos
 
std::vector< SbsRegionSideBandRegions
 
std::vector< SbsRegionSignalRegions
 
Double_t SignalSidebandRatio
 
bool verbose
 

Detailed Description

Definition at line 20 of file SideBandSubtraction.h.

Constructor & Destructor Documentation

SideBandSubtract::SideBandSubtract ( )

Definition at line 315 of file SideBandSubtraction.cc.

316  : BackgroundPDF(0),
317  ModelPDF(0),
318  Data(0),
320  verbose(0),
321  SignalRegions(),
322  SideBandRegions(),
323  SideBandHistos(0),
324  RawHistos(0),
325  SBSHistos(0),
326  BaseHistos(0),
327  fit_result(0),
329 {
330  // Default constructor so we can do fast subtraction
331 }
RooAbsPdf * BackgroundPDF
std::vector< TH1F > SideBandHistos
RooFitResult * fit_result
std::vector< TH1F > SBSHistos
RooRealVar * SeparationVariable
std::vector< SbsRegion > SideBandRegions
std::vector< SbsRegion > SignalRegions
std::vector< TH1F * > BaseHistos
std::vector< TH1F > RawHistos
SideBandSubtract::SideBandSubtract ( RooAbsPdf *  model_shape,
RooAbsPdf *  bkg_shape,
RooDataSet *  data,
RooRealVar *  sep_var,
std::vector< TH1F * >  base,
bool  verb 
)

Definition at line 332 of file SideBandSubtraction.cc.

339  : BackgroundPDF(bkg_shape),
340  ModelPDF(model_shape),
341  Data(data),
342  SeparationVariable(sep_var),
343  verbose(verb),
344  SignalRegions(),
345  SideBandRegions(),
346  SideBandHistos(),
347  RawHistos(),
348  SBSHistos(),
349  BaseHistos(base),
350  base_histo(0),
351  fit_result(0),
353 { }
tuple base
Main Program
Definition: newFWLiteAna.py:92
RooAbsPdf * BackgroundPDF
std::vector< TH1F > SideBandHistos
RooFitResult * fit_result
std::vector< TH1F > SBSHistos
RooRealVar * SeparationVariable
std::vector< SbsRegion > SideBandRegions
std::vector< SbsRegion > SignalRegions
std::vector< TH1F * > BaseHistos
std::vector< TH1F > RawHistos
SideBandSubtract::~SideBandSubtract ( )

Definition at line 400 of file SideBandSubtraction.cc.

References resetSBSProducts().

401 {
402  //**WARNING**
403 
404  // We don't delete objects that we don't own (duh) so, all of our
405  // pointers just hang out and get handled by other people :)
406 
407  // We DO own the BaseHistos IFF the user didn't provide us with
408  // them and we constructed them from the dataset... in this case
409  // base_histo will be non-null and we want to delete the vector
410  // of histograms...
412  /*
413  if(base_histo!=NULL)
414  {
415  BaseHistos.clear();
416  }
417  */
418 }

Member Function Documentation

void SideBandSubtract::addSideBandRegion ( Double_t  min,
Double_t  max 
)

Definition at line 430 of file SideBandSubtraction.cc.

References max(), SbsRegion::max, SbsRegion::min, min, NULL, SbsRegion::RegionName, SeparationVariable, SideBandRegions, and stringify().

431 {
432  SbsRegion sideband;
433  sideband.min=min;
434  sideband.max=max;
435  sideband.RegionName="SideBand" + stringify(SideBandRegions.size());
437  SeparationVariable->setRange(sideband.RegionName.c_str(),sideband.min,sideband.max);
438  SideBandRegions.push_back(sideband);
439  return;
440 }
#define NULL
Definition: scimark2.h:8
#define min(a, b)
Definition: mlp_lapack.h:161
std::string stringify(const T &t)
const T & max(const T &a, const T &b)
RooRealVar * SeparationVariable
std::string RegionName
std::vector< SbsRegion > SideBandRegions
void SideBandSubtract::addSignalRegion ( Double_t  min,
Double_t  max 
)

Definition at line 419 of file SideBandSubtraction.cc.

References max(), SbsRegion::max, SbsRegion::min, min, NULL, SbsRegion::RegionName, SeparationVariable, SignalRegions, and stringify().

420 {
421  SbsRegion signal;
422  signal.min=min;
423  signal.max=max;
424  signal.RegionName="Signal" + stringify(SignalRegions.size());
426  SeparationVariable->setRange(signal.RegionName.c_str(),signal.min,signal.max);
427  SignalRegions.push_back(signal);
428  return;
429 }
#define NULL
Definition: scimark2.h:8
#define min(a, b)
Definition: mlp_lapack.h:161
std::string stringify(const T &t)
const T & max(const T &a, const T &b)
RooRealVar * SeparationVariable
std::string RegionName
std::vector< SbsRegion > SignalRegions
void SideBandSubtract::doFastSubtraction ( TH1F &  Total,
TH1F &  Result,
SbsRegion leftRegion,
SbsRegion rightRegion 
)

Definition at line 488 of file SideBandSubtraction.cc.

References SbsRegion::max, and SbsRegion::min.

489 {
490  Int_t binMin = Total.FindBin(leftRegion.max,0.0,0.0);
491  Int_t binMax = Total.FindBin(leftRegion.min,0.0,0.0);
492  double numLeft = Total.Integral( binMin, binMax );
493 
494  binMin = Total.FindBin(rightRegion.max,0.0,0.0);
495  binMax = Total.FindBin(rightRegion.min,0.0,0.0);
496  double numRight = Total.Integral( binMin, binMax );
497 
498  const unsigned int nbinsx = Total.GetNbinsX();
499  const double x1 = (leftRegion.max + leftRegion.min)/2.0;
500  const double x2 = (rightRegion.max + rightRegion.min)/2.0;
501 
502  const double y1 = numLeft/(leftRegion.max - leftRegion.min);
503  const double y2 = numRight/(rightRegion.max - rightRegion.min);
504 
505  const double Slope = (y2 - y1)/(x2 - x1);
506  const double Intercept = y1 - Slope*x1;
507  // Evantually we want to handle more complicated functions, but for
508  // now... just use a linear one
509  TF1 function("sbs_function_line", "[0]*x + [1]",Total.GetMinimum(), Total.GetMaximum());
510  for ( unsigned int binx = 1; binx <= nbinsx; ++binx )
511  {
512  double binWidth = Total.GetBinWidth(binx);
513  function.SetParameter(0,Slope*binWidth);
514  function.SetParameter(1,Intercept*binWidth);
515 
516  double xx = Total.GetBinCenter(binx);
517  double cu = Total.GetBinContent(binx) - function.Eval(xx);
518  // TODO: Propogate the error on the parameters in function.
519  double error1 = Total.GetBinError(binx);
520 
521  Result.SetBinContent(binx, cu);
522  Result.SetBinError(binx, error1);
523  }
524  Result.SetEntries(Result.Integral() );
525 }
int SideBandSubtract::doGlobalFit ( )

Definition at line 441 of file SideBandSubtraction.cc.

References BackgroundPDF, BaseHistos, benchmark_cfg::cerr, gather_cfg::cout, doSubtraction(), fit_result, getYield(), i, ModelPDF, NULL, resetSBSProducts(), SeparationVariable, SideBandRegions, SignalRegions, and SignalSidebandRatio.

442 {
443  if(verbose)
444  cout <<"Beginning SideBand Subtraction\n";
445 
447  {
448  fit_result = ModelPDF->fitTo(*Data,"r");
449  }
450  else
451  {
452  cerr <<"ERROR: doGobalFit, no ModelPDF, SeparationVariable or Data specified\n";
453  return -1;
454  }
455 
456  Double_t SideBandYield=getYield(SideBandRegions,BackgroundPDF);
457  Double_t BackgroundInSignal=getYield(SignalRegions,BackgroundPDF);
458 
459  SignalSidebandRatio = BackgroundInSignal/SideBandYield;
460  if(verbose)
461  {
462  cout <<"Finished fitting background!\n";
463  cout <<"Attained a Signal to Sideband ratio of: " << SignalSidebandRatio<<endl;
464  }
465  //I can't see a way around a double loop for each variable. Maybe I
466  //can get a C++/RooFit guru to save me the trouble here?
467 
468 
469  //need to grab sbs objects after each global fit, because they get reset
471  TIterator* iter = (TIterator*) Data->get()->createIterator();
472  RooAbsArg *variable;
473  while((variable = (RooAbsArg*)iter->Next()))
474  {
475  for(unsigned int i=0; i < BaseHistos.size(); i++)
476  {
477  if((string)variable->GetName()!=(string)SeparationVariable->GetName()
478  && (string)variable->GetName()==(string)BaseHistos[i]->GetName())
479  doSubtraction((RooRealVar*)variable,SignalSidebandRatio,i);
480  }
481  }
482 
483  // clean up our memory...
484  if(variable) delete variable;
485  if(iter) delete iter;
486  return 0;
487 }
RooAbsPdf * BackgroundPDF
int i
Definition: DBlmapReader.cc:9
RooFitResult * fit_result
#define NULL
Definition: scimark2.h:8
int doSubtraction(RooRealVar *variable, Double_t stsratio, Int_t index)
Double_t getYield(std::vector< SbsRegion > Regions, RooAbsPdf *PDF)
RooRealVar * SeparationVariable
std::vector< SbsRegion > SideBandRegions
std::vector< SbsRegion > SignalRegions
tuple cout
Definition: gather_cfg.py:41
std::vector< TH1F * > BaseHistos
int SideBandSubtract::doSubtraction ( RooRealVar *  variable,
Double_t  stsratio,
Int_t  index 
)

Definition at line 79 of file SideBandSubtraction.cc.

References benchmark_cfg::cerr, i, j, max(), min, NULL, setHistOptions(), and relativeConstraints::value.

Referenced by doGlobalFit().

80 {
82  {
83  cerr << "ERROR: Data or SeparationVariable is NULL returning now!\n";
84  return -1;
85  }
86  TH1F* SideBandHist = (TH1F*)BaseHistos[index]->Clone();
87  setHistOptions(SideBandHist,(string)variable->GetName()+"Sideband",(string)SideBandHist->GetTitle() + " Sideband",(string)variable->getUnit());
88 
89  TH1F* SignalHist = (TH1F*)BaseHistos[index]->Clone();
90  setHistOptions(SignalHist,(string)variable->GetName()+"SignalHist",(string)SignalHist->GetTitle() + " Raw Signal",(string)variable->getUnit());
91 
92  //Begin a loop over the data to fill our histograms. I should figure
93  //out how to do this in one shot to avoid a loop
94  //O(N_vars*N_events)...
95 
96  TIterator* iter = (TIterator*) Data->get()->createIterator();
97  RooAbsArg *var=NULL;
98  RooRealVar *sep_var=NULL;
99  while((var = (RooAbsArg*)iter->Next()))
100  {
101  if((string)var->GetName()==(string)SeparationVariable->GetName())
102  {
103  sep_var = (RooRealVar*)var;
104  break;
105  }
106  }
107  for(int i=0; i < Data->numEntries(); i++)
108  {
109  Data->get(i);
110  Double_t value = variable->getVal();
111  Double_t cutval = sep_var->getVal();
112 
113  for(unsigned int j=0; j < SideBandRegions.size(); j++) //UGLY! Find better solution!
114  {
115  if(cutval > SideBandRegions[j].min && cutval < SideBandRegions[j].max)
116  SideBandHist->Fill(value);
117  }
118  for(unsigned int j=0; j < SignalRegions.size(); j++)
119  {
120  if(cutval > SignalRegions[j].min && cutval < SignalRegions[j].max)
121  SignalHist->Fill(value);
122  }
123  }
124  //Save pre-subtracted histo
125  SignalHist->Sumw2(); SideBandHist->Sumw2();
126  //SignalHist->SetDirectory(0); SideBandHist->SetDirectory(0);
127  RawHistos.push_back(*SignalHist);
128 
129  SignalHist->Add(SideBandHist, -stsratio);
130 
131  SignalHist->SetTitle(((string)BaseHistos[index]->GetTitle() + " SBS Signal").c_str());
132  //Save subtracted histo
133  SBSHistos.push_back(*SignalHist);
134  //Save Sideband histo
135  SideBandHistos.push_back(*SideBandHist);
136 
137  if(SideBandHist) delete SideBandHist;
138  return 0;
139 }
int i
Definition: DBlmapReader.cc:9
std::vector< TH1F > SideBandHistos
#define NULL
Definition: scimark2.h:8
#define min(a, b)
Definition: mlp_lapack.h:161
static void setHistOptions(TH1F *histo, string name, string title, string axis_label)
std::vector< TH1F > SBSHistos
const T & max(const T &a, const T &b)
RooRealVar * SeparationVariable
std::vector< SbsRegion > SideBandRegions
int j
Definition: DBlmapReader.cc:9
std::vector< SbsRegion > SignalRegions
std::vector< TH1F * > BaseHistos
std::vector< TH1F > RawHistos
vector< TH1F * > SideBandSubtract::getBaseHistos ( )

Definition at line 530 of file SideBandSubtraction.cc.

References BaseHistos.

531 {
532  return BaseHistos;
533 }
std::vector< TH1F * > BaseHistos
RooFitResult * SideBandSubtract::getFitResult ( )

Definition at line 526 of file SideBandSubtraction.cc.

References fit_result.

527 {
528  return fit_result;
529 }
RooFitResult * fit_result
vector< TH1F > SideBandSubtract::getRawHistos ( )

Definition at line 534 of file SideBandSubtraction.cc.

References RawHistos.

535 {
536  return RawHistos;
537 }
std::vector< TH1F > RawHistos
vector< TH1F > SideBandSubtract::getSBSHistos ( )

Definition at line 538 of file SideBandSubtraction.cc.

References SBSHistos.

539 {
540  return SBSHistos;
541 }
std::vector< TH1F > SBSHistos
Double_t SideBandSubtract::getSTSRatio ( )

Definition at line 542 of file SideBandSubtraction.cc.

References SignalSidebandRatio.

543 {
544  return SignalSidebandRatio;
545 }
Double_t SideBandSubtract::getYield ( std::vector< SbsRegion Regions,
RooAbsPdf *  PDF 
)
private

Definition at line 50 of file SideBandSubtraction.cc.

References gather_cfg::cout, i, and NULL.

Referenced by doGlobalFit().

51 {
52  if(PDF==NULL || SeparationVariable==NULL)
53  return 0.0;
54 
55  Double_t yield=0;
56  RooAbsReal* intPDF;
57  for(unsigned int i=0; i < Regions.size(); i++)
58  {
59  if(verbose)
60  cout<<"Integrating over Range: "<<Regions[i].RegionName<<" from "<<Regions[i].min<<" to "<<Regions[i].max<<endl;
61  intPDF = PDF->createIntegral(*SeparationVariable, Range(Regions[i].RegionName.c_str()));
62  yield += intPDF->getVal();
63  if(verbose)
64  cout<<"Current yield: "<<yield<<endl;
65  }
66  return yield;
67 }
int i
Definition: DBlmapReader.cc:9
#define NULL
Definition: scimark2.h:8
RooRealVar * SeparationVariable
PixelRecoRange< float > Range
tuple cout
Definition: gather_cfg.py:41
void SideBandSubtract::print_plot ( RooRealVar *  printVar,
std::string  outname 
)
private

Definition at line 297 of file SideBandSubtraction.cc.

References benchmark_cfg::cerr, and NULL.

298 {
299  if(Data==NULL || ModelPDF==NULL)
300  {
301  cerr << "ERROR: print_plot, Data or ModelPDF are NULL\n";
302  return;
303  }
304 
305  RooPlot *genericFrame = printVar->frame();
306  Data->plotOn(genericFrame);
307  ModelPDF->plotOn(genericFrame);
308  TCanvas genericCanvas;
309  genericFrame->Draw();
310  outname = outname + ".eps";
311  genericCanvas.SaveAs(outname.c_str());
312  outname.replace(outname.size()-3,3,"gif");
313  genericCanvas.SaveAs(outname.c_str());
314 }
#define NULL
Definition: scimark2.h:8
void SideBandSubtract::printResults ( std::string  prefix = "")

Definition at line 149 of file SideBandSubtraction.cc.

References benchmark_cfg::cerr, gather_cfg::cout, lut2db_cfg::filename, i, NULL, dbtoconf::out, convertSQLitetoXML_cfg::output, print_histo(), and EcalTangentSkim_cfg::Verbose.

150 {//handles *all* printing
151  //spool over vectors of histograms and print them, then print
152  //separation variable plots and the results text file.
154  {
155  cerr << "ERROR: printResults, SeparationVariable is NULL!\n";
156  return;
157  }
158  string filename; //output file name
159  for(unsigned int i=0; i < RawHistos.size(); ++i)
160  {
161  filename=prefix + "Raw_" + (string)RawHistos[i].GetName();
162  print_histo(&RawHistos[i], filename);
163  }
164  for(unsigned int i=0; i < SBSHistos.size(); ++i)
165  {
166  filename=prefix + "SBS_" + (string)RawHistos[i].GetName();
167  print_histo(&SBSHistos[i], filename);
168  }
169  if(verbose)
170  {
171  for(unsigned int i=0; i < SideBandHistos.size(); ++i)
172  {
173  filename=prefix + "SideBand_" + (string)RawHistos[i].GetName();
174  print_histo(&SideBandHistos[i], filename);
175  }
176  }
177 
178  string outname = prefix + (string)SeparationVariable->GetName() + "_fitted.eps";
179  if(Data!=NULL && ModelPDF!=NULL)
180  {
181  RooPlot *SepVarFrame = SeparationVariable->frame();
182  Data->plotOn(SepVarFrame);
183  ModelPDF->plotOn(SepVarFrame);
184  TCanvas Canvas;
185  SepVarFrame->Draw();
186  Canvas.SaveAs(outname.c_str());
187  outname.replace(outname.size()-3,3,"gif");
188  Canvas.SaveAs(outname.c_str());
189  }
190  else
191  cerr <<"ERROR: printResults, Data or ModelPDF is NULL!\n";
192 
193  string result_outname = prefix + "_fit_results.txt";
194  ofstream output(result_outname.c_str(),ios::out);
195  if(!output)
196  {
197  cout <<"ERROR: Could not open file for writing!\n";
198  return;
199  }
200 
201  if(fit_result!=NULL)
202  {
203 #if ROOT_VERSION_CODE <= ROOT_VERSION(5,19,0)
204  fit_result->printToStream(output,Verbose);
205 #else
206  fit_result->printMultiline(output,kTRUE);
207 #endif
208  }
209 }
int i
Definition: DBlmapReader.cc:9
std::vector< TH1F > SideBandHistos
RooFitResult * fit_result
#define NULL
Definition: scimark2.h:8
static void print_histo(TH1F *plot, string outname)
std::vector< TH1F > SBSHistos
RooRealVar * SeparationVariable
tuple out
Definition: dbtoconf.py:99
tuple filename
Definition: lut2db_cfg.py:20
tuple cout
Definition: gather_cfg.py:41
std::vector< TH1F > RawHistos
void SideBandSubtract::resetSBSProducts ( )

Definition at line 546 of file SideBandSubtraction.cc.

References RawHistos, SBSHistos, and SideBandHistos.

Referenced by doGlobalFit(), and ~SideBandSubtract().

547 {
548  //cout <<"Starting to reset products \n";
549 
550  if(!SideBandHistos.empty())
551  SideBandHistos.clear();
552 
553  if(!RawHistos.empty())
554  RawHistos.clear();
555  if(!SBSHistos.empty())
556  SBSHistos.clear();
557 }
std::vector< TH1F > SideBandHistos
std::vector< TH1F > SBSHistos
std::vector< TH1F > RawHistos
void SideBandSubtract::saveResults ( std::string  outname)

Definition at line 212 of file SideBandSubtraction.cc.

References benchmark_cfg::cerr, i, combine::key, NULL, VarParsing::obj, convertSQLitetoXML_cfg::output, and stringify().

213 {
214  //saves the ephemeral stuff to a root file for future
215  //use/modification (ie everything printed by printResults())
216 
217  TFile output(outname.c_str(),"UPDATE"); //open the output file,
218  //create it if it doesn't
219  //exist
220  //Since keys are only available from files on disk, we need to write
221  //out a new file. If the file already existed, then we opened to
222  //update, and are writing nothing new.
223  output.Write();
224  TString dirname;
225  TIter nextkey(output.GetListOfKeys());
226  TKey *key;
227  TDirectory* curDir=NULL;
228  while((key=(TKey*)nextkey.Next()))
229  {
230 
231  if(key==NULL)
232  break;
233  TObject *obj = key->ReadObj();
234  if(obj->IsA()->InheritsFrom("TDirectory"))
235  dirname=obj->GetName();
236 
237  }
238 
239  if(dirname=="")
240  {
241  //we didn't find any directories so, we'll make a new one
242  curDir = output.mkdir("run0","Run 0");
243  output.cd("run0");
244  }
245  else
246  {
247  //manipulate last dir string, make a new one, and get ready to fill
248  dirname.Remove(0,3);
249  Int_t run_num = dirname.Atoi();
250  run_num++;
251  dirname = "run" + stringify(run_num);
252  curDir = output.mkdir(dirname.Data(),("Run "+stringify(run_num)).c_str());
253  output.cd(dirname.Data());
254  }
255  if(curDir==NULL)
256  curDir = output.GetDirectory("",kTRUE,"");
257 
258  //these should all be the same size, but to be pedantic we'll loop
259  //over each one individually, also, we need to associate them with
260  //the directory because by default they "float" in memory to avoid
261  //conflicts with other root files the user has open. If they want to
262  //write to those files, they need to close their file, pass the name
263  //here, and then let us work.
264  for(unsigned int i=0; i < SideBandHistos.size(); ++i)
265  {
266  SideBandHistos[i].SetDirectory(curDir);
267  SideBandHistos[i].Write();
268  }
269  for(unsigned int i=0; i < RawHistos.size(); ++i)
270  {
271  RawHistos[i].SetDirectory(curDir);
272  RawHistos[i].Write();
273  }
274  for(unsigned int i=0; i < SBSHistos.size(); ++i)
275  {
276  SBSHistos[i].SetDirectory(curDir);
277  SBSHistos[i].Write();
278  }
280  {
281  RooPlot *sep_varFrame = SeparationVariable->frame();
282  Data->plotOn(sep_varFrame);
283  ModelPDF->plotOn(sep_varFrame);
284  BackgroundPDF->plotOn(sep_varFrame);
285  sep_varFrame->Write();
286  }
287  else
288  cerr <<"ERROR: saveResults, did not save RooPlot of data and fit\n";
289  output.Write();
290 
291 }
RooAbsPdf * BackgroundPDF
int i
Definition: DBlmapReader.cc:9
std::vector< TH1F > SideBandHistos
#define NULL
Definition: scimark2.h:8
std::string stringify(const T &t)
tuple obj
Example code starts here #.
Definition: VarParsing.py:655
std::vector< TH1F > SBSHistos
RooRealVar * SeparationVariable
list key
Definition: combine.py:13
std::vector< TH1F > RawHistos
void SideBandSubtract::setDataSet ( RooDataSet *  newData)

Definition at line 292 of file SideBandSubtraction.cc.

References NULL.

293 {
294  if(newData!=NULL)
295  Data=newData;
296 }
#define NULL
Definition: scimark2.h:8

Member Data Documentation

RooAbsPdf* SideBandSubtract::BackgroundPDF
private

Definition at line 25 of file SideBandSubtraction.h.

Referenced by doGlobalFit().

TH1F* SideBandSubtract::base_histo
private

Definition at line 36 of file SideBandSubtraction.h.

std::vector<TH1F*> SideBandSubtract::BaseHistos
private

Definition at line 35 of file SideBandSubtraction.h.

Referenced by doGlobalFit(), and getBaseHistos().

RooDataSet* SideBandSubtract::Data
private

Definition at line 27 of file SideBandSubtraction.h.

RooFitResult* SideBandSubtract::fit_result
private

Definition at line 37 of file SideBandSubtraction.h.

Referenced by doGlobalFit(), and getFitResult().

RooAbsPdf* SideBandSubtract::ModelPDF
private

Definition at line 26 of file SideBandSubtraction.h.

Referenced by doGlobalFit().

std::vector<TH1F> SideBandSubtract::RawHistos
private

Definition at line 33 of file SideBandSubtraction.h.

Referenced by getRawHistos(), and resetSBSProducts().

std::vector<TH1F> SideBandSubtract::SBSHistos
private

Definition at line 34 of file SideBandSubtraction.h.

Referenced by getSBSHistos(), and resetSBSProducts().

RooRealVar* SideBandSubtract::SeparationVariable
private

Definition at line 28 of file SideBandSubtraction.h.

Referenced by addSideBandRegion(), addSignalRegion(), and doGlobalFit().

std::vector<TH1F> SideBandSubtract::SideBandHistos
private

Definition at line 32 of file SideBandSubtraction.h.

Referenced by resetSBSProducts().

std::vector<SbsRegion> SideBandSubtract::SideBandRegions
private

Definition at line 31 of file SideBandSubtraction.h.

Referenced by addSideBandRegion(), and doGlobalFit().

std::vector<SbsRegion> SideBandSubtract::SignalRegions
private

Definition at line 30 of file SideBandSubtraction.h.

Referenced by addSignalRegion(), and doGlobalFit().

Double_t SideBandSubtract::SignalSidebandRatio
private

Definition at line 38 of file SideBandSubtraction.h.

Referenced by doGlobalFit(), and getSTSRatio().

bool SideBandSubtract::verbose
private

Definition at line 29 of file SideBandSubtraction.h.