358 while ((
h = (
TH1D*)next()))
359 b->Add(
h,
h->GetName());
365 while ((
h = (
TH1D*)next()))
366 b->Add(
h,
h->GetName());
371 while ((
h = (
TH1D*)next()))
372 b->Add(
h,
h->GetName());
377 while ((
h = (
TH1D*)next()))
378 b->Add(
h,
h->GetName());
407 Error(
"MakeSPlot",
"Initial numbers of events in species have not been set");
410 Int_t i, j, ispecies;
430 for (
Int_t iplot=-1; iplot<
fNy; iplot++){
432 for (ispecies=0; ispecies<
fNSpecies; ispecies++){
434 for (j=0; j<
fNy; j++){
452 for (ispecies=0; ispecies<
fNSpecies; ispecies++)
456 for (ispecies=0; ispecies<
fNSpecies; ispecies++){
459 printf(
"estimated #of events in species %d = %f\n", ispecies,
fNumbersOfEvents[ispecies]);
472 printf(
"checking sum of weights[%d]=%f\n", i, sumweight[i]);
485 Int_t i, ispecies, k;
489 for (ispecies=0; ispecies<
fNSpecies; ispecies++)
491 for (ispecies=0; ispecies<
fNSpecies; ispecies++){
540 for (i=0; i<
fNx; i++){
597 for (i=0; i<
fNy; i++){
639 Int_t i, j, ispecies;
649 for (ispecies=0; ispecies<
fNSpecies; ispecies++){
650 for (i=0; i<
fNy; i++){
700 Error(
"GetSWeightsHists",
"SWeights were not computed");
714 for (
Int_t ivar=0; ivar<
fNx; ivar++){
726 for (
Int_t iexcl=0; iexcl<
fNy; iexcl++){
768 if (type<1 || type>5){
769 Error(
"RefillHist",
"type must lie between 1 and 5");
870 std::vector<TString> cnames;
885 nch = varexp ? strlen(varexp) : 0;
890 if (selection && strlen(selection)) {
893 if (!select->
GetNdim()) {
delete select;
return; }
894 formulaList->
Add(select);
900 for (i=0;i<ncols;i++) {
901 cnames.push_back( leaves->
At(i)->
GetName() );
911 for (i=0; i<ncols; i++){
917 for (i=0;i<ncols;i++) {
919 formulaList->
Add(var[i]);
926 for(i=0;i<=formulaList->
LastIndex();i++) {
935 for (entry=firstentry;entry<firstentry+
fNevents;entry++) {
937 if (entryNumber < 0)
break;
939 if (localEntry < 0)
break;
949 for(
Int_t inst=0;inst<ndata;inst++) {
957 if (inst==0) loaded =
kTRUE;
961 for (i=0;i<ncols;i++) {
967 for (i=0;i<ncols;i++) {
976 for (i=0; i<
fNx; i++){
977 fXvar(selectedrows, i) = xvars[i];
983 for (i=0; i<
fNy; i++){
984 fYvar(selectedrows, i) = xvars[i+
fNx];
1028 for (i=0; i<nev; i++){
1030 for (ispecies=0; ispecies<nes; ispecies++)
1031 lik+=
x[ispecies]*(*pdftot)(i, ispecies);
1037 for (i=0; i<nes; i++)
void Yields(Int_t &, Double_t *, Double_t &f, Double_t *x, Int_t iflag)
FCN-function for Minuit.
Using a TBrowser one can browse all ROOT objects.
1-D histogram with a double per channel (see TH1 documentation)}
virtual void Add(TObject *obj)
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
Int_t GetNoElements() const
virtual TMatrixTBase< Element > & ResizeTo(Int_t nrows, Int_t ncols, Int_t=-1)
Set size of the matrix to nrows x ncols New dynamic elements are created, the overlapping part of the...
virtual const char * GetName() const
Returns name of object.
virtual void AddLast(TObject *obj)
Add object in the next empty slot in the array.
TObject * UncheckedAt(Int_t i) const
TObject * First() const
Return the object in the first slot.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
virtual void AddAt(TObject *obj, Int_t idx)
Add object at position ids.
virtual TObject * RemoveAt(Int_t idx)
Remove object at index idx.
TObject * At(Int_t idx) const
virtual const char * GetName() const
Returns name of object.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
A common method used in High Energy Physics to perform measurements is the maximum Likelihood method,...
void FillYvarHists(Int_t nbins=100)
Fill the histograms of y variables.
void RefillHist(Int_t type, Int_t var, Int_t nbins, Double_t min, Double_t max, Int_t nspecies=-1)
The Fill...Hist() methods fill the histograms with the real limits on the variables This method allow...
void Browse(TBrowser *b)
To browse the histograms.
void SPlots(Double_t *covmat, Int_t i_excl)
Computes the sWeights from the covariance matrix.
void GetSWeights(TMatrixD &weights)
Returns the matrix of sweights.
virtual ~TSPlot()
Destructor.
void FillSWeightsHists(Int_t nbins=50)
The order of histograms in the array:
TH1D * GetSWeightsHist(Int_t ixvar, Int_t ispecies, Int_t iyexcl=-1)
Returns the histogram of a variable, weighted with sWeights.
void MakeSPlot(Option_t *option="v")
Calculates the sWeights.
TH1D * GetYpdfHist(Int_t iyvar, Int_t ispecies)
Returns the histogram of the pdf of variable iyvar for species #ispecies, binning nbins.
TObjArray * GetSWeightsHists()
Returns an array of all histograms of variables, weighted with sWeights.
TObjArray * GetYpdfHists()
Returns the array of histograms of pdf's of y variables with binning nbins.
void FillXvarHists(Int_t nbins=100)
Fills the histograms of x variables (not weighted) with nbins.
TObjArray * GetXvarHists()
Returns the array of histograms of x variables (not weighted).
void SetTree(TTree *tree)
Set the input Tree.
TObjArray * GetYvarHists()
Returns the array of histograms of y variables.
void FillYpdfHists(Int_t nbins=100)
Fills the histograms of pdf-s of y variables with binning nbins.
void SetTreeSelection(const char *varexp="", const char *selection="", Long64_t firstentry=0)
Specifies the variables from the tree to be used for splot.
TSPlot()
default constructor (used by I/O only)
TH1D * GetYvarHist(Int_t iyvar)
Returns the histogram of variable iyvar.If histograms have not already been filled,...
void SetInitialNumbersOfSpecies(Int_t *numbers)
Set the initial number of events of each species - used as initial estimates in minuit.
Double_t * fNumbersOfEvents
TH1D * GetXvarHist(Int_t ixvar)
Returns the histogram of variable ixvar.
A specialized TSelector for TTree::Draw.
virtual UInt_t SplitNames(const TString &varexp, std::vector< TString > &names)
Build Index array for names in varexp.
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Implement some of the functionality of the class TTree requiring access to extra libraries (Histogram...
A TTree represents a columnar dataset.
virtual TObjArray * GetListOfLeaves()
TVirtualTreePlayer * GetPlayer()
Load the TTreePlayer (if not already done).
virtual Long64_t GetEntryNumber(Long64_t entry) const
Return entry number corresponding to entry.
virtual Long64_t LoadTree(Long64_t entry)
Set current entry.
virtual Int_t GetTreeNumber() const
Abstract Base Class for Fitting.
virtual void SetObjectFit(TObject *obj)
virtual TObject * GetObjectFit() const
virtual Double_t * GetCovarianceMatrix() const =0
virtual void SetFCN(void(*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t))
To set the address of the minimization objective function called by the native compiler (see function...
virtual Int_t SetParameter(Int_t ipar, const char *parname, Double_t value, Double_t verr, Double_t vlow, Double_t vhigh)=0
virtual void Clear(Option_t *option="")=0
Set name and title to empty strings ("").
virtual Int_t ExecuteCommand(const char *command, Double_t *args, Int_t nargs)=0
virtual Double_t GetParameter(Int_t ipar) const =0
static TVirtualFitter * GetFitter()
static: return the current Fitter
static TVirtualFitter * Fitter(TObject *obj, Int_t maxpar=25)
Static function returning a pointer to the current fitter.
static constexpr double s
static constexpr double ns