1 ///////////////////////////////////////////////////////////////////////////
5 // This file is part of starlight.
7 // starlight is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
12 // starlight is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with starlight. If not, see <http://www.gnu.org/licenses/>.
20 ///////////////////////////////////////////////////////////////////////////
22 // File and Version Information:
23 // $Rev:: $: revision of last commit
24 // $Author:: $: author of last commit
25 // $Date:: $: date of last commit
31 ///////////////////////////////////////////////////////////////////////////
38 #include "psifamily.h"
44 psiFamily::psiFamily(beamBeamSystem& bbsystem):Gammaanarrowvm(bbsystem)
46 //Defining _width and mass...
49 // switch(input.prodParticleType()){
50 // case starlightConstants::JPSI:
51 // cout << "JPSI goddamnit!" << endl;
55 // case starlightConstants::JPSI2S:
59 // default: cout<<"This PSI Family Member Has Not Been Defined, psiFamily::psiFamily()"<<endl;
65 psiFamily::~psiFamily()
69 double psiFamily::getTheta(starlightConstants::particleTypeEnum)
71 //should probably merge the psi fmaily back to the vm stuff.
73 //This depends on the decay angular distribution
74 //Valid for J/Psi, Psi(2s)?
75 //cout<<"Psi family theta"<<endl;
80 theta = starlightConstants::pi*randyInstance.Rndom();//random()/(RAND_MAX+1.0);
81 xtest = randyInstance.Rndom();//random()/(RAND_MAX+1.0);
82 // Follow distribution for helicity +/-1
83 // Eq. 19 of J. Breitweg et al., Eur. Phys. J. C2, 247 (1998)//Does Not Apply for J/psi?
86 dndtheta = sin(theta)*(1.+((cos(theta))*(cos(theta))));
93 double psiFamily::getDaughterMass(starlightConstants::particleTypeEnum &ipid)
95 double ytest=0.,mdec=0.;
96 // decays 50% to e+/e-, 50% to mu+/mu-
97 ytest = randyInstance.Rndom();//random()/(RAND_MAX+1.0);
100 mdec = starlightConstants::mel;
101 ipid = starlightConstants::ELECTRON;
105 mdec = starlightConstants::muonMass;
106 ipid = starlightConstants::MUON;