29 , _prSqForGofM(-9999.0)
33 , _mumsRecoMass2(-9999.0)
34 , _mumsRecoMass(-9999.0)
42 , _dgtrsInternalParity(0)
44 , _daughterRecoMass2(2, -9999.0)
45 , _daughterPDGMass(2, -9999.0)
46 , _daughterWidth(2, -9999.0)
47 , _substitutePDGForReco(false)
50 , _prefix(lineshapePrefix)
51 , _normBF(
"NormBF", 2)
52 , _useGlobalRadius(true)
57 , _fittableResonancePropertiesPtr(0)
58 , _fittableGlobalRadiusPtr(0)
62 if(0 ==
_mps)
_mps = MinuitParameterSet::getDefaultSet();
65 std::cout <<
"WARNING: BW_BW can only properly handle" 66 <<
"\n > two body decays." 69 <<
"\n > Please improve me." 88 , _prSqForGofM(other._prSqForGofM)
89 , _pABSq(other._pABSq)
92 , _mumsRecoMass2(other._mumsRecoMass2)
93 , _mumsRecoMass(other._mumsRecoMass)
94 , _Fr_BELLE(other._Fr_BELLE)
95 , _Fr_PDG_BL(other._Fr_PDG_BL)
97 , _mumsPID(other._mumsPID)
98 , _mumsPID_set(other._mumsPID_set)
100 , _mumsParity(other._mumsParity)
101 , _dgtrsInternalParity(other._dgtrsInternalParity)
102 , _twoLPlusOne(other._twoLPlusOne)
103 , _daughterRecoMass2(other._daughterRecoMass2)
104 , _daughterPDGMass(other._daughterPDGMass)
105 , _daughterWidth(other._daughterWidth)
106 , _substitutePDGForReco(other._substitutePDGForReco)
107 , _genFct(other._genFct)
109 , _prefix(other._prefix)
110 , _normBF(other._normBF)
111 , _useGlobalRadius(other._useGlobalRadius)
112 , _theDecay(other._theDecay)
113 , _gen_s_mi(other._gen_s_mi)
114 , _gen_s_ma(other._gen_s_ma)
116 , _fittableResonancePropertiesPtr(0)
117 , _fittableGlobalRadiusPtr(0)
137 if(0 ==
_mps)
_mps = MinuitParameterSet::getDefaultSet();
154 if( externallySetL >= 0){
168 int l = (l_1 < l_2 ? l_1 : l_2);
172 cout <<
"BW_BW::lowestPossibleTwoLPlusOne() " 174 <<
" before considering parity: " << 2*l+1
184 <<
" and maxL " << maxL
196 cout <<
"is weak decay - would it have made a difference?" 200 cout <<
", would have been: " << tmpL << endl;
202 cout <<
"\tBW_BW::lowestPossibleTwoLPlusOne() " 203 <<
" returning " << 2*l+1
234 int PL = (L%2 == 0 ? 1 : -1);
242 cout <<
"ERROR in BW_BW::mumsParity()" 243 <<
" can't find properties for first element" 244 <<
" in this decay tree\n" <<
_theDecay << endl;
245 throw "invalid decay tree in BW_BW::mumsParity()";
257 cout <<
" ERROR in BW_BW::daughterSpinValue:" 258 <<
" You requested the spin of dgtr number " << i
260 <<
" daughters." << endl;
265 cout <<
"ERROR in BW_BW::daughterP(" << i <<
")" 266 <<
" can't find properties for first element" 267 <<
" in this decay tree\n" <<
_theDecay << endl;
268 throw "invalid decay tree in BW_BW::daughterP()";
300 cout <<
"BW_BW::minDaughterSpinSum() WARNING! " 301 <<
" can't handle more than 4 daughters - have " 347 int min = maxSpinPair + otherSpin;
348 for(
int s = minSpinPair;
s <= maxSpinPair;
s++){
349 int thisMinSpin = abs(
s - otherSpin);
350 if(thisMinSpin < min) min=thisMinSpin;
361 int min = maxSpinPair1 + maxSpinPair2;
362 for(
int s1 = minSpinPair1; s1 <= maxSpinPair1; s1++){
363 for(
int s2 = minSpinPair2; s2 <= maxSpinPair2; s2++){
364 int thisMinSpin = abs(s1 - s2);
365 if(thisMinSpin < min) min=thisMinSpin;
383 cout <<
"ERROR in BW_BW::mumsProperties()" 384 <<
" can't find properties for first element" 385 <<
" in this decay tree\n" <<
_theDecay << endl;
386 throw "invalid decay tree in BW_BW::mumsProperties()";
395 cout <<
"ERROR in BW_BW::resonanceProperties()" 396 <<
" can't find properties for first element" 397 <<
" in this decay tree\n" <<
_theDecay << endl;
398 throw "invalid decay tree in BW_BW::resonanceProperties()";
406 cout <<
"ERROR in BW_BW::ResonanceProperties()" 407 <<
" can't find properties for first element" 408 <<
" in this decay tree\n" <<
_theDecay << endl;
409 throw "invalid decay tree in BW_BW::mumsFittableProperties()";
416 cout <<
"something went wrong in BW_BW::mumsFittableProperties() " 417 <<
" _fittableResonancePropertiesPtr is 0 although it should be" 418 <<
" set at construction." 419 <<
" Looking at this decay tree\n" <<
_theDecay << endl;
421 throw "error in BW_BW::mumsFittableProperties()";
428 if(dbThis)cout <<
"BW_BW::setAllFitParameters() called" << endl;
431 cout <<
"big problem in BW_BW::setAllFitParameters" 432 <<
", resonancePropertiesList is zero" << endl;
433 throw "BW_BW::setAllFitParameters can't find resonancePropertiesList()";
435 if(dbThis)cout <<
"getting _fittableGlobalRadiusPtr" << endl;
437 if(dbThis)cout <<
"called radius, no crash, now pringint it:" << endl;
438 if(dbThis)cout <<
"rad is" <<
rad << endl;
441 if(dbThis)cout <<
"hurray, got _fittableGlobalRadiusPtr" << endl;
472 cout <<
"ERROR in BW_BW::Radius()" 473 <<
" _fittableGlobalRadiusPtr is 0" 474 <<
", although it should have been set during construction." 475 <<
" Looking at this decay tree\n" <<
_theDecay << endl;
476 throw "invalid decay tree in BW_BW::Radius()";
542 double minMass = meanM - nSigma*width/2.0;
543 double maxMass = meanM + nSigma*width/2.0;
545 coord.setMinMax(minMass*minMass, maxMass*maxMass);
554 cout <<
"ERROR in BW_BW::mumsRecoMass2() " 557 <<
" decays into " << asi.size() <<
" particles?\n" 569 cout <<
" ERROR in BW_BW::daughterP4:" 570 <<
" You requested the 4-momentum of dgtr number " << i
572 <<
" daughters." << endl;
576 std::vector<int> asi = dgtr->
getVal().
asi();
580 return TLorentzVector();
587 cout <<
" ERROR in BW_BW::daughterRecoMass2:" 588 <<
" You requested the mass of dgtr number " << i
590 <<
" daughters." << endl;
601 std::vector<int> asi = dgtr->
getVal().
asi();
603 cout <<
"ERROR in BW_BW::daughterRecoMass2() " 606 <<
" is associated to " << asi.size() <<
" particles" 607 <<
" and is not stable? " 622 cout <<
" ERROR negative reconstructed mass2" 638 cout <<
" ERROR negative reconstructed mass2" 650 cout <<
" ERROR in BW_BW::daughterPDGMass:" 651 <<
" You requested the mass of dgtr number " << i
653 <<
" daughters." << endl;
670 cout <<
" ERROR in BW_BW::daughterWidth:" 671 <<
" You requested the mass of dgtr number " << i
673 <<
" daughters." << endl;
684 cout <<
" ERROR in BW_BW::daughterSpinValue:" 685 <<
" You requested the spin of dgtr number " << i
687 <<
" daughters." << endl;
694 cout <<
" ERROR in BW_BW::daughterQuarkContent" 695 <<
" You requested the spin of dgtr number " << i
698 <<
"\n\t I'll crash now. Sorry." 700 throw "can't handle this";
738 cout <<
" _Fr_BELLE = " <<
Fr_BELLE << endl;
743 double R_pr_sq = R*R * prSquared;
744 double R_pAB_sq = R*R *
pABSq();
746 if(dbThis) cout <<
"in Fr() " << sqrt(
prSqForGofM())
747 <<
", " << sqrt(prSquared) << endl;
749 if(dbThis)cout <<
"BW Fr R = " << R <<
"prSquared = " <<
prSqForGofM()
750 <<
" pABSq() " << prSquared
752 Fr_BELLE = sqrt( (1. + R_pr_sq)/(1. + R_pAB_sq) );
754 double R_pr_4 = R_pr_sq*R_pr_sq;
755 double R_pAB_4 = R_pAB_sq*R_pAB_sq;
757 Fr_BELLE = sqrt( ( 9. + 3.*R_pr_sq + R_pr_4)
758 /( 9. + 3.*R_pAB_sq + R_pAB_4)
761 std::cout <<
"BW_BW for decay \n" <<
_theDecay 762 <<
"\n ERROR! Can't deal with L == " 764 <<
". Please improve me!" 772 cout <<
"returning _Fr_BELLE = " <<
Fr_BELLE << endl;
788 double FrBelleMax=-9999;
793 cout <<
" FrBelleMax = " << FrBelleMax << endl;
799 double R_pr_sq = R*R *
prSq();
802 if(dbThis) cout <<
"in FrMax() " << sqrt(
prSq())
803 <<
", " << sqrt(
pABSq()) << endl;
805 if(dbThis)cout <<
"BW FrMax R = " << R <<
"prSq() = " <<
prSq()
806 <<
" pABSq() " <<
pABSq()
808 FrBelleMax = sqrt( (1. + R_pr_sq)/(1. + R_pAB_sq) );
810 double R_pr_4 = R_pr_sq*R_pr_sq;
813 FrBelleMax = sqrt( ( 9. + 3.*R_pr_sq + R_pr_4)
814 /( 9. + 3.*R_pAB_sq + R_pAB_4)
817 std::cout <<
"BW_BW for decay \n" <<
_theDecay 818 <<
"\n ERROR! Can't deal with L == " 820 <<
". Please improve me!" 825 cout <<
"returning FrBelleMax = " << FrBelleMax << endl;
826 cout <<
" compare: Fr: " <<
Fr() << endl;
848 cout <<
" _Fr_PDG_BL = " <<
_Fr_PDG_BL << endl;
854 double R_pAB_sq = R*R *
pABSq();
861 if(dbThis) cout <<
"in Fr() " << sqrt(
prSq())
862 <<
", " << sqrt(
pABSq()) << endl;
864 if(dbThis)cout <<
"BW Fr R = " << R <<
"prSq() = " <<
prSq()
865 <<
" pABSq() " <<
pABSq()
867 FrSq = 2.0*z/(1.0 + z);
871 FrSq = 13.0*z*z / ( (z-3.0)*(z-3.0) + 9*z );
875 std::cout <<
"BW_BW for decay \n" <<
_theDecay 876 <<
"\n ERROR! Can't deal with L == " 878 <<
". Please improve me!" 884 cout <<
"returning _Fr_PDG_BL = " <<
_Fr_PDG_BL << endl;
923 if(Msq <=0)
return -9999;
925 double mpsq = (mA + mB)*(mA + mB);
926 double mmsq = (mA - mB)*(mA - mB);
927 double num = (Msq - mpsq)*(Msq - mmsq);
929 double returnVal = num/(4*Msq);
933 double EvtGenVal = (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) -
934 mA*mA*mB*mB)/(mAB*mAB);
935 cout <<
" BW_BW::twoBody_dgtPsq_in_MumsFrame" 936 <<
" compare: cleo: " << EvtGenVal
937 <<
" MINT: " << returnVal
947 std::vector<const AssociatedDecayTreeItem*> dgtrOne =
950 for(
unsigned int i=0; i < dgtrOne.size(); i++) m1_min += dgtrOne[i]->mass();
952 std::vector<const AssociatedDecayTreeItem*> dgtrTwo =
955 for(
unsigned int i=0; i < dgtrTwo.size(); i++) m2_min += dgtrTwo[i]->mass();
973 if(dbThis &&
_prSq < 0){
974 cout <<
" BW_BW::prSq()" 975 <<
" suspicious... pr < 0. This is for:" 981 <<
" _prSq " <<
_prSq 1000 cout <<
" BW_BW::prSqForGofM()" 1001 <<
" suspicious... pr < 0. This is for:" 1008 <<
" will return 0 " 1016 if(
_pABSq < 0 || dbThis){
1018 if(
_pABSq < 0 || dbThis){
1020 <<
" BW_BW::pABSq()" 1021 <<
" suspicious... pABSq < 0. This is for:" 1027 <<
" returnVal " <<
_pABSq 1040 double numsq =
pABSq();
1042 cout <<
"ERROR in BW_BW::GofM() for decay\n" 1044 <<
"\n ERROR: pABSq() = " <<
pABSq() << endl;
1048 double epsilon = 1 *
eV*
eV;
1049 if(0.0 == densq ) densq = epsilon;
1052 if(densq > 0 && numsq >=0){
1053 pratio = sqrt(numsq/densq);
1056 cout <<
"pratio = sqrt( " << numsq <<
" / " << densq <<
" )" << endl;
1058 double pratio_to_2Jplus1 = 1;
1059 if(dbThis) cout <<
" pratio " 1065 pratio_to_2Jplus1 *= pratio;
1067 if(dbThis) cout << pratio_to_2Jplus1 << endl;
1071 cout <<
"ERROR in BW_BW::GofM() for decay\n" 1073 <<
": ERROR: mumsRecoMass() = " 1078 double mRatio =
mumsMass()/sqrt(densq);
1082 if(dbThis) cout <<
"GofM() = " <<
mumsWidth() <<
" * " 1083 << pratio_to_2Jplus1 <<
" * " 1085 << thisFr <<
" * " << thisFr
1087 _GofM =
mumsWidth() * pratio_to_2Jplus1 * mRatio * thisFr*thisFr;
1088 if(dbThis) cout <<
" so, GofM/G0 = " <<
_GofM/
mumsWidth() << endl;
1097 double gamma = sqrt(mass*mass*(mass*mass+width*width));
1098 double k = mass*width*gamma/sqrt(mass*mass+gamma);
1105 return sqrt(k)*BW/den;
1144 double formFactor= 1.;
1168 cout <<
"BW_BW::getVal() for " <<
name() << endl;
1169 cout <<
"instead of Fr() for 2l+1 = " <<
twoLPlusOne() << endl;
1170 cout <<
" I'll return 1 " << endl;
1179 cout <<
"BW pz " <<
getEvent()->
p(1).Z() << endl;
1181 cout <<
" BW_BW for " 1183 cout <<
"\n > nominalMass " <<
mumsMass()
1185 <<
"\n > GoM() " <<
GofM()
1186 <<
"\n > Fr() " <<
Fr()
1188 <<
"\n > Fr_BELLE() " <<
Fr_BELLE(0.)
1196 const std::complex<double> returnVal = formFactor*
BreitWigner();
1198 if(dbThis) cout <<
" value = " << returnVal
1199 <<
"|A|^2 | " << returnVal.real()*returnVal.real()
1200 + returnVal.imag()*returnVal.imag()
1220 double om4 = om2*om2;
1224 double mpm = m1s + m2s;
1225 double mmm = m1s - m2s;
1226 double mmm2 = mmm*mmm;
1228 double num = om4 - mmm2;
1229 double den = om4 - 2*mpm*om2 + mmm2;
1233 double f3 = num/den;
1254 else if(sister.size()>0){
1255 for (
unsigned int i = 0; i< sister.size(); i++) {
1256 if(sister[i]->
getVal().props()->isNonResonant()){
1292 <<
"\n\t> This is the decay I'm looking at:" 1294 <<
"\n\t> These are a few values: " 1296 <<
", BreitWigner = " 1298 <<
", Blatt-Weisskopf penetration factor: " 1300 <<
", total BW_BW: " 1314 double pi180inv =
pi/108.0;
1316 complex<double> ampl(0,0);
1329 TLorentzVector p4_d3 = p4_p-p4_d1-p4_d2;
1345 bool invmass_angdenom =
false;
1349 double mAB=(p4_d1+p4_d2).M();
1350 double mBC=(p4_d2+p4_d3).M();
1351 double mAC=(p4_d1+p4_d3).M();
1352 double mA=p4_d1.M();
1353 double mB=p4_d2.M();
1355 double mC=p4_d3.M();
1358 double mdenom = invmass_angdenom ? mAB : mR;
1359 double gammaR = gamma;
1360 double pAB=sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) -
1361 mA*mA*mB*mB)/(mAB*mAB));
1362 double pR=sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) -
1363 mA*mA*mB*mB)/(mR*mR));
1365 double pD= (((mD*mD-mR*mR-mC*mC)*(mD*mD-mR*mR-mC*mC)/4.0) -
1366 mR*mR*mC*mC)/(mD*mD);
1367 if ( pD>0 ) { pD=sqrt(pD); }
else {pD=0;}
1368 double pDAB=sqrt( (((mD*mD-mAB*mAB-mC*mC)*(mD*mD-mAB*mAB-mC*mC)/4.0) -
1369 mAB*mAB*mC*mC)/(mD*mD));
1386 fR=sqrt(1.0+1.5*1.5*pR*pR)/sqrt(1.0+1.5*1.5*pAB*pAB);
1387 fD=sqrt(1.0+5.0*5.0*pD*pD)/sqrt(1.0+5.0*5.0*pDAB*pDAB);
1392 fR = sqrt( (9+3*pow((1.5*pR),2)+pow((1.5*pR),4))/(9+3*pow((1.5*pAB),2)+pow((1.5*pAB),4)) );
1393 fD = sqrt( (9+3*pow((5.0*pD),2)+pow((5.0*pD),4))/(9+3*pow((5.0*pDAB),2)+pow((5.0*pDAB),4)) );
1404 cout <<
"EvtGen: fR = " << fR <<
", fD = " << fD << endl;
1408 double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR;
1409 cout <<
"EvtGen: gamma AB = " << gammaAB << endl;
1414 ampl=magn*complex<double>(cos(theta*pi180inv),sin(theta*pi180inv))*
1415 fR*fD/(mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB));
1419 ampl=magn*complex<double>(cos(theta*pi180inv),sin(theta*pi180inv))*
1420 (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom)))/
1421 (mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB)));
1423 sf = mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom));
1424 cout <<
"EvtGen: sf spin 1 : " << sf << endl;
1432 ampl=magn*complex<double>(cos(theta*pi180inv),sin(theta*pi180inv))*
1433 fR*fD/(mR*mR-mAB*mAB-complex<double>(0.0,mR*gammaAB))*
1434 (pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mdenom*mdenom)),2)-
1435 (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mdenom, 2))*
1436 (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mdenom,2)));
1438 sf = pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mdenom*mdenom)),2)-
1439 (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mdenom, 2))*
1440 (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mdenom,2));
1441 cout <<
"EvtGen: sf spin 2 " << sf << endl;
virtual double prSqForGofM() const
virtual int daughterP(int i) const
ResonancePropertiesList * _RPL
const MINT::MinuitParameterSet * getMinuitParameterSet() const
virtual double prSq() const
virtual void resetInternals()
std::vector< MINT::const_counted_ptr< DDTree< ValueType > > > getSistersTrees() const
virtual double FrForGofM()
virtual const ParticleProperties * mumsProperties() const
virtual bool parityConservingL(int L) const
std::vector< double > _daughterPDGMass
virtual bool isWeakDecay() const
std::ostream & operator<<(std::ostream &out, const BW_BW &)
const AssociatedDecayTree & _theDecay
virtual double mumsMass() const
virtual double Radius() const
virtual int minDaughterPairSpinSum(int i, int j) const
virtual double daughterPDGMass(const int &i) const
virtual int daughterSpinValue(int i) const
virtual int twoLPlusOne() const
bool setEventPtr(IDalitzEvent &evt) const
virtual int dgtrsInternalParity() const
MINT::MinuitParameterSet * _mps
virtual MultiQuarkContent daughterQuarkContent(int i) const
virtual std::complex< double > EvtGenValue(IDalitzEvent &evt)
virtual double sij(const MINT::PolymorphVector< int > &indices) const =0
virtual int mumsPID() const
virtual void setGenerationLimits(double mi, double ma)
virtual double prSqMax() const
virtual void print(IDalitzEvent &evt, std::ostream &out=std::cout)
bool setAllFitParameters()
const ValueType & getVal() const
virtual double daughterRecoMass2(int i) const
virtual int minDaughterSpinSum4() const
virtual double daughterRecoMass(int i) const
static ResonancePropertiesList * getMe(const std::string &prefix="", MINT::MinuitParameterSet *mps=0)
bool isFinalState() const
virtual double Fr_PDG_BL()
BW_BW(const AssociatedDecayTree &decay, const std::string &lineshapePrefix="", MINT::MinuitParameterSet *mps=0)
virtual int minDaughterSpinSum3() const
virtual double globalRadius() const
IDalitzEvent * getEvent() const
virtual int mumsSpinValue() const
double peakPosition() const
virtual int maxDaughterPairSpinSum(int i, int j) const
MINT::const_counted_ptr< DDTree< ValueType > > getDgtrTreePtr(int i) const
virtual int minDaughterSpinSum2() const
virtual const TLorentzVector & p(unsigned int i) const =0
virtual double mumsRecoMass2() const
virtual double Fr_BELLE_Max()
MultiQuarkContent netQuarkContent(const DecayTree &dt_in)
virtual std::string daughterSpin(int i) const
virtual MultiQuarkContent dgtrsQuarkContent() const
virtual TLorentzVector daughterP4(int i) const
std::vector< double > _daughterRecoMass2
bool compatible(const MultiQuarkContent &other) const
virtual MultiQuarkContent mumsQuarkContent() const
bool isNonResonant() const
MINT::NamedParameter< int > _normBF
virtual ResonancePropertiesFitRef & mumsFittableProperties() const
virtual bool startOfDecayChain() const
virtual double Fr_BELLE(double prSquared)
MINT::FitParRef * _fittableGlobalRadiusPtr
bool substitutePDGForReco() const
virtual MINT::counted_ptr< IGenFct > generatingFunction() const
virtual double twoBody_recodgtPsq_in_MumsPDGFrame() const
const ResonanceProperties * resonanceProperties() const
virtual double mumsRecoMass() const
const MINT::FitParameter & radius() const
virtual double mumsWidth() const
virtual int mumsParity() const
virtual double mumsRadius() const
bool isNonResonant() const
void oneLiner(std::stringstream &seam, int generation=0) const
const std::vector< int > & asi() const
const ParticleProperties * props() const
virtual int numDaughters() const
ResonancePropertiesList * resonancePropertiesList() const
std::vector< double > _daughterWidth
virtual double twoBody_dgtPsq_in_MumsRecoFrame()
virtual int lowestPossibleTwoLPlusOne() const
virtual std::string name() const
ResonancePropertiesFitRef * _fittableResonancePropertiesPtr
virtual std::string mumsSpin() const
virtual double daughterWidth(int i) const
virtual int minDaughterSpinSum() const
virtual double twoBody_dgtPsq_in_MumsFrame(double mumsMass, double mA, double mB) const
virtual int maxDaughterSpinSum() const
MINT::counted_ptr< IGenFct > _genFct
virtual double twoBody_dgtPsq_in_MumsPDGFrame() const
virtual std::complex< double > getVal(IDalitzEvent &evt)
const ValueType & getDgtrVal(int i) const
const std::string & prefix() const
virtual std::complex< double > BreitWigner()
virtual DalitzCoordinate getDalitzCoordinate(double nSigma=3) const
void makeGeneratingFunction() const
const ResonanceProperties * AddToListIfMissing(int pdg)