#include <RunningWidthCalculator.h>
 | 
|   | RunningWidthCalculator (const DalitzEventPattern &pat) | 
|   | 
| TH1D *  | makeHisto_phaseSpace (int nBins, double max_m_inMeV, std::string OutputFileName="") | 
|   | 
| TH1D *  | makeHisto_2body (int nBins, double max_m_inMeV, const DecayTree &thisDcy, std::string OutputFileName="") | 
|   | 
| TH1D *  | makeHisto_3body (int nBins, double max_m_inMeV, const DecayTree &thisDcy, std::string OutputFileName="") | 
|   | 
| TH1D *  | makeHisto_dalitz (int nBins, double max_m_inMeV, int nIntegrationEvents, IFastAmplitudeIntegrable *amps=0, std::string OutputFileName="") | 
|   | 
| TF1 *  | getRunningWidthFunction_phaseSpace (double max_s_inGeV2) | 
|   | 
| TF1 *  | getRunningWidthFunction_2body (double max_s_inGeV2, const DecayTree &thisDcy) | 
|   | 
| TF1 *  | getRunningWidthFunction_3body (double max_s_inGeV2, const DecayTree &thisDcy) | 
|   | 
| TF1 *  | getRunningWidthFunction_Fermi (double max_s_inGeV2, double lambda, double s0) | 
|   | 
| std::vector< double >  | getPartialWidthCouplingsFromBF (std::vector< double > BF, std::vector< TF1 * > partialWidths, double m0, double gamma0) | 
|   | 
| TH1D *  | makeRunningMassHisto_3body (int nBins, double max_s_inGeV2, std::vector< TF1 * > gamma, std::vector< double > g, std::string OutputFileName="") | 
|   | 
| void  | setDalitzEventPattern (const DalitzEventPattern &pat) | 
|   | 
Definition at line 13 of file RunningWidthCalculator.h.
 
◆ RunningWidthCalculator()
Definition at line 37 of file RunningWidthCalculator.cpp.
   40   cout << 
"RunningWidthCalculator::RunningWidthCalculator: I got called." << endl;
 
 
 
 
◆ getPartialWidthCouplingsFromBF()
      
        
          | std::vector< double > RunningWidthCalculator::getPartialWidthCouplingsFromBF  | 
          ( | 
          std::vector< double >  | 
          BF,  | 
        
        
           | 
           | 
          std::vector< TF1 * >  | 
          partialWidths,  | 
        
        
           | 
           | 
          double  | 
          m0,  | 
        
        
           | 
           | 
          double  | 
          gamma0  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 452 of file RunningWidthCalculator.cpp.
  456     std::vector<FitParameter*> fit_couplings;
   459     fit_couplings.push_back(scale);
   461     for (
unsigned int i=1; i < BF.size() ; i++) {
   465         fit_couplings.push_back(
g);
   468     chi2BF f(BF, partialWidths, fit_couplings, m0, gamma0);
   472     vector<double> couplings;
   477     for (
unsigned int i=1; i<fit_couplings.size(); i++) {
   478         sum += *fit_couplings[i];
   481     for (
unsigned int i=0; i<fit_couplings.size(); i++) {
   484         else c =  *fit_couplings[i];
   485         norm += c*partialWidths[i]->Eval(m0*m0/(
GeV*
GeV));
   488     for (
unsigned int i=0; i<fit_couplings.size(); i++) {
   491         else c =  *fit_couplings[i];
   492         couplings.push_back(c / norm * gamma0/
GeV);
 
std::string anythingToString(const T &anything)
 
 
 
 
◆ getRunningWidthFunction_2body()
      
        
          | TF1 * RunningWidthCalculator::getRunningWidthFunction_2body  | 
          ( | 
          double  | 
          max_s_inGeV2,  | 
        
        
           | 
           | 
          const DecayTree &  | 
          thisDcy  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 564 of file RunningWidthCalculator.cpp.
  570         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body: I can handle only 2 body decays but the decay " << thisDcy 
   571         << 
" has " << thisDcy.
finalState().size() << 
" final state particles. I'll return 0." << endl;
   575     if(thisDcy.
nDgtr() != 2){
   576         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body: "   577         << 
" Mother should have 2 daughters, but it says it has "   578         << thisDcy.
nDgtr() << 
". I'll return 0." << endl;
   583         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body:"   584         << 
"DalitzEventPattern and DecayTree are not compatible. I'll return 0." << endl;
   603     par[2] = (BW_X.twoLPlusOne()-1)/2; 
   607     TF1 *gamma = 
new TF1(
"Gamma_2body",
Gamma_2body,0,max_s_inGeV2,nPar);
   608     gamma->SetParameters(par); 
 
bool compatibleWith(const DecayTree &tree) const
 
const ResonanceProperties * get(int i) const
 
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
 
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
 
const ParticleProperties * get(const std::string &name) const
 
Double_t Gamma_2body(double M, double m1, double m2, int l, double r)
 
static const ParticlePropertiesList * getMe()
 
std::vector< const ValueType * > finalState() const
 
 
 
 
◆ getRunningWidthFunction_3body()
      
        
          | TF1 * RunningWidthCalculator::getRunningWidthFunction_3body  | 
          ( | 
          double  | 
          max_s_inGeV2,  | 
        
        
           | 
           | 
          const DecayTree &  | 
          thisDcy  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 285 of file RunningWidthCalculator.cpp.
  291         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body: I can handle only 3 body decays but the decay " << thisDcy 
   292         << 
" has " << thisDcy.
finalState().size() << 
" final state particles. I'll return 0." << endl;
   296     if(thisDcy.
nDgtr() != 2){
   297         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body: "   298         << 
" Mother should have 2 daughters, but it says it has "   299         << thisDcy.
nDgtr() << 
". I'll return 0." << endl;
   304         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body:"   305         << 
"DalitzEventPattern and DecayTree are not compatible. I'll return 0." << endl;
   311     for(
int i=0; i< thisDcy.
nDgtr(); i++){
   313         if(dgtr->
nDgtr() == 2) R = dgtr;
   314         else bachelor = dgtr; 
   317     if(0==R || 0== bachelor){
   318         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body:"   319         << 
" Didn't find resonance or bachelor. I'll return 0.  " << endl;
   343     par[4] = (BW_X.twoLPlusOne()-1)/2; 
   345     par[5] = (BW_R.twoLPlusOne()-1)/2; 
   351     par[9] = max_s_inGeV2 * 
GeV *
GeV;
   353     if(dbThis) 
for(
int i=0; i<nPar; i++) cout << 
"Parameter " << i << 
" = " << par[i] << endl;
   356     gamma->SetParameters(par); 
 
Double_t Gamma_mother_3body(Double_t *x, Double_t *par)
 
bool compatibleWith(const DecayTree &tree) const
 
const ResonanceProperties * get(int i) const
 
const ValueType & getVal() const
 
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
 
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
 
const ParticleProperties * get(const std::string &name) const
 
static const ParticlePropertiesList * getMe()
 
std::vector< const ValueType * > finalState() const
 
 
 
 
◆ getRunningWidthFunction_Fermi()
      
        
          | TF1 * RunningWidthCalculator::getRunningWidthFunction_Fermi  | 
          ( | 
          double  | 
          max_s_inGeV2,  | 
        
        
           | 
           | 
          double  | 
          lambda,  | 
        
        
           | 
           | 
          double  | 
          s0  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 758 of file RunningWidthCalculator.cpp.
  767     TF1 *gamma = 
new TF1(
"Fermi_phaseSpace",
Fermi_phaseSpace,0,max_s_inGeV2,nPar);
   768     gamma->SetParameters(par); 
 
double Fermi_phaseSpace(double s, double lambda, double s0, double threshold)
 
double lambda(double x, double y, double z)
 
 
 
 
◆ getRunningWidthFunction_phaseSpace()
      
        
          | TF1 * RunningWidthCalculator::getRunningWidthFunction_phaseSpace  | 
          ( | 
          double  | 
          max_s_inGeV2 | ) | 
           | 
        
      
 
Definition at line 728 of file RunningWidthCalculator.cpp.
  731         cout << 
"ERROR in RunningWidthCalculator::makeHisto_phaseSpace: I can handle only 3 body decays but the pattern " << 
_pat    732         << 
" has " << 
_pat.
size()-1 << 
" final state particles. I'll return 0." << endl;
   744     ps->SetParameters(par);
 
const ParticleProperties * get(const std::string &name) const
 
unsigned int size() const
 
static const ParticlePropertiesList * getMe()
 
Double_t phaseSpaceIntegral(Double_t *x, Double_t *par)
 
 
 
 
◆ makeHisto_2body()
      
        
          | TH1D * RunningWidthCalculator::makeHisto_2body  | 
          ( | 
          int  | 
          nBins,  | 
        
        
           | 
           | 
          double  | 
          max_m_inMeV,  | 
        
        
           | 
           | 
          const DecayTree &  | 
          thisDcy,  | 
        
        
           | 
           | 
          std::string  | 
          OutputFileName = ""  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 615 of file RunningWidthCalculator.cpp.
  621         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body: I can handle only 2 body decays but the decay " << thisDcy 
   622         << 
" has " << thisDcy.
finalState().size() << 
" final state particles. I'll return 0." << endl;
   626     if(thisDcy.
nDgtr() != 2){
   627         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body: "   628         << 
" Mother should have 2 daughters, but it says it has "   629         << thisDcy.
nDgtr() << 
". I'll return 0." << endl;
   634         cout << 
"ERROR in RunningWidthCalculator::makeHisto_2body:"   635         << 
"DalitzEventPattern and DecayTree are not compatible. I'll return 0." << endl;
   656     double l = (BW_X.twoLPlusOne()-1)/2; 
   658     if(OutputFileName==
"")
   660     TFile* f= 
new TFile(OutputFileName.c_str(),
"RECREATE");  
   662     TH1D* h= 
new TH1D(
"RunningWidth",
";s [GeV^2]; #Gamma (s) [a.u.]",nBins,
_min_s_inGeV2,max_s_inGeV2); 
   663     for (
int i=1; i<= h->GetNbinsX(); i++) {
   664         h->SetBinContent(i, 
Gamma_2body( sqrt(h->GetXaxis()->GetBinCenter(i))*
GeV , m1,
m2, l, r));
 
bool compatibleWith(const DecayTree &tree) const
 
const ResonanceProperties * get(int i) const
 
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
 
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
 
const ParticleProperties * get(const std::string &name) const
 
Double_t Gamma_2body(double M, double m1, double m2, int l, double r)
 
static const ParticlePropertiesList * getMe()
 
std::vector< const ValueType * > finalState() const
 
 
 
 
◆ makeHisto_3body()
      
        
          | TH1D * RunningWidthCalculator::makeHisto_3body  | 
          ( | 
          int  | 
          nBins,  | 
        
        
           | 
           | 
          double  | 
          max_m_inMeV,  | 
        
        
           | 
           | 
          const DecayTree &  | 
          thisDcy,  | 
        
        
           | 
           | 
          std::string  | 
          OutputFileName = ""  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 196 of file RunningWidthCalculator.cpp.
  202          cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body: I can handle only 3 body decays but the decay " << thisDcy 
   203          << 
" has " << thisDcy.
finalState().size() << 
" final state particles. I'll return 0." << endl;
   207      if(thisDcy.
nDgtr() != 2){
   208         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body: "   209         << 
" Mother should have 2 daughters, but it says it has "   210         << thisDcy.
nDgtr() << 
". I'll return 0." << endl;
   215          cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body:"   216          << 
"DalitzEventPattern and DecayTree are not compatible. I'll return 0." << endl;
   222      for(
int i=0; i< thisDcy.
nDgtr(); i++){
   224         if(dgtr->
nDgtr() == 2) R = dgtr;
   225         else bachelor = dgtr; 
   228      if(0==R || 0== bachelor){
   229         cout << 
"ERROR in RunningWidthCalculator::makeHisto_3body:"   230         << 
" Didn't find resonance or bachelor. I'll return 0.  " << endl;
   254      par[4] = (BW_X.twoLPlusOne()-1)/2; 
   256      par[5] = (BW_R.twoLPlusOne()-1)/2; 
   262      par[9] = max_s_inGeV2 * 
GeV *
GeV;
   264      if(dbThis) 
for(
int i=0; i<nPar; i++) cout << 
"Parameter " << i << 
" = " << par[i] << endl;
   266     if(OutputFileName==
"")
   268      TFile* f= 
new TFile(OutputFileName.c_str(),
"RECREATE");  
   271      gamma->SetParameters(par); 
   273      TH1D* h= 
new TH1D(
"RunningWidth",
";s [GeV^2]; #Gamma (s) [a.u.]",nBins,0,max_s_inGeV2); 
   274      for (
int i=1; i<= h->GetNbinsX(); i++) {
   275          h->SetBinContent(i,gamma->Eval(h->GetXaxis()->GetBinCenter(i) ));    
 
Double_t Gamma_mother_3body(Double_t *x, Double_t *par)
 
bool compatibleWith(const DecayTree &tree) const
 
const ResonanceProperties * get(int i) const
 
const ValueType & getVal() const
 
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
 
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
 
const ParticleProperties * get(const std::string &name) const
 
static const ParticlePropertiesList * getMe()
 
std::vector< const ValueType * > finalState() const
 
 
 
 
◆ makeHisto_dalitz()
      
        
          | TH1D * RunningWidthCalculator::makeHisto_dalitz  | 
          ( | 
          int  | 
          nBins,  | 
        
        
           | 
           | 
          double  | 
          max_m_inMeV,  | 
        
        
           | 
           | 
          int  | 
          nIntegrationEvents,  | 
        
        
           | 
           | 
          IFastAmplitudeIntegrable *  | 
          amps = 0,  | 
        
        
           | 
           | 
          std::string  | 
          OutputFileName = ""  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 50 of file RunningWidthCalculator.cpp.
   53         cout << 
"ERROR in RunningWidthCalculator::makeHisto_dalitz: I can handle only 3 body decays but the pattern " << 
_pat     54         << 
" has " << 
_pat.
size()-1 << 
" final state particles. I'll return 0." << endl;
    64     if(OutputFileName==
"")
    67     TFile* f= 
new TFile(OutputFileName.c_str(),
"RECREATE");     
    68     TH1D* h= 
new TH1D(
"RunningWidth",
"RunningWidth",nBins,
_min_s_inGeV2,max_s_inGeV2); 
    73     for (
int b=1; b<= h->GetNbinsX(); b++) {  
    79         pp->
setMass(sqrt(h->GetXaxis()->GetBinCenter(b))*
GeV);
    88         sg.FillEventList(eventList, nIntegrationEvents);
    93         for (
unsigned int i= 0; i< eventList.
size(); i++) {
    94             integral += amps->
RealVal(eventList[i])*eventList[i].getWeight()/(eventList[i].getGeneratorPdfRelativeToPhaseSpace());
    95             sumw += eventList[i].getWeight()/(eventList[i].getGeneratorPdfRelativeToPhaseSpace());
   104     h->Scale(h->GetNbinsX()/h->Integral());
 void changeMassForDebug(double newVal) const
 
virtual double RealVal(EVENT_TYPE &evt)=0
 
const ResonanceProperties * get(int i) const
 
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
 
double getVal(const DalitzEventPattern &_pat)
 
void setMass(double m) const
 
const ParticleProperties * get(const std::string &name) const
 
unsigned int size() const
 
virtual unsigned int size() const
 
static const ParticlePropertiesList * getMe()
 
int generatePhaseSpaceEvents(int NumEvents, const DalitzEventPattern &pat, TRandom *rnd=0)
 
Double_t phaseSpace(Double_t *x, Double_t *par)
 
 
 
 
◆ makeHisto_phaseSpace()
      
        
          | TH1D * RunningWidthCalculator::makeHisto_phaseSpace  | 
          ( | 
          int  | 
          nBins,  | 
        
        
           | 
           | 
          double  | 
          max_m_inMeV,  | 
        
        
           | 
           | 
          std::string  | 
          OutputFileName = ""  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 692 of file RunningWidthCalculator.cpp.
  695         cout << 
"ERROR in RunningWidthCalculator::makeHisto_phaseSpace: I can handle only 3 body decays but the pattern " << 
_pat    696         << 
" has " << 
_pat.
size()-1 << 
" final state particles. I'll return 0." << endl;
   700     if(OutputFileName==
"")
   704     TFile* f= 
new TFile(OutputFileName.c_str(),
"RECREATE");  
   705     TH1D* h= 
new TH1D(
"RunningWidth",
"RunningWidth",nBins,
_min_s_inGeV2,max_s_inGeV2); 
   715     ps->SetParameters(par);
   717     for (
int i=1; i<= h->GetNbinsX(); i++) {
   718         h->SetBinContent(i,ps->Eval(h->GetXaxis()->GetBinCenter(i)));    
   721     h->Scale(h->GetNbinsX()/h->Integral());    
 
const ParticleProperties * get(const std::string &name) const
 
unsigned int size() const
 
static const ParticlePropertiesList * getMe()
 
Double_t phaseSpaceIntegral(Double_t *x, Double_t *par)
 
 
 
 
◆ makeRunningMassHisto_3body()
      
        
          | TH1D * RunningWidthCalculator::makeRunningMassHisto_3body  | 
          ( | 
          int  | 
          nBins,  | 
        
        
           | 
           | 
          double  | 
          max_s_inGeV2,  | 
        
        
           | 
           | 
          std::vector< TF1 * >  | 
          gamma,  | 
        
        
           | 
           | 
          std::vector< double >  | 
          g,  | 
        
        
           | 
           | 
          std::string  | 
          OutputFileName = ""  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 515 of file RunningWidthCalculator.cpp.
  517     double absTol = 0.0001; 
   518     double relTol = 0.001; 
   519     unsigned int size = 1000; 
   521     double epsilon= 0.00001;
   523     if(OutputFileName==
"")
   525     TFile* f= 
new TFile(OutputFileName.c_str(),
"RECREATE");  
   526     TH1D* h_m= 
new TH1D(
"RunningMass",
";s [GeV^{2}]; m^{2} (s) [GeV^{2}]",nBins,
_min_s_inGeV2,max_s_inGeV2); 
   527     for (
int i=1; i<= h_m->GetNbinsX(); i++) {
   528         double singularity = h_m->GetXaxis()->GetBinCenter(i);
   530             h_m->SetBinContent(i,0);
   534         ROOT::Math::IntegratorOneDim integrator(integrand, ROOT::Math::IntegrationOneDim::kADAPTIVESINGULAR,  absTol , relTol , size ,  rule ) ;
   535         h_m->SetBinContent(i,(integrator.Integral(
_min_s_inGeV2,singularity-epsilon) + integrator.Integral(singularity+epsilon,max_s_inGeV2*10000))/TMath::Pi()); 
 
const ParticleProperties * get(const std::string &name) const
 
static const ParticlePropertiesList * getMe()
 
 
 
 
◆ set_min_s_inGeV2()
  
  
      
        
          | void RunningWidthCalculator::set_min_s_inGeV2  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
private   | 
  
 
 
◆ setDalitzEventPattern()
◆ _min_s_inGeV2
  
  
      
        
          | double RunningWidthCalculator::_min_s_inGeV2 | 
         
       
   | 
  
private   | 
  
 
 
◆ _pat
The documentation for this class was generated from the following files: