BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtPhsp.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of the EvtGen package developed jointly
5// for the BaBar and CLEO collaborations. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/COPYRIGHT
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtPhsp.cc
12//
13// Description: Routine to decay a particle according th phase space
14//
15// Modification history:
16//
17// RYD January 8, 1997 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
25#include "EvtGenBase/EvtPDL.hh"
29#include <string>
30
32
33void EvtPhsp::getName(std::string& model_name){
34
35 model_name="PHSP";
36
37}
38
40
41 return new EvtPhsp;
42
43}
44
45
47
48 // check that there are 0 arguments
49 checkNArg(0);
50
51}
52
54
55 noProbMax();
56
57}
58
60
61 //unneeded - lange - may13-02
62 //if ( p->getNDaug() != 0 ) {
63 //Will end up here because maxrate multiplies by 1.2
64 // report(DEBUG,"EvtGen") << "In EvtPhsp: has "
65 // <<" daugthers should not be here!"<<endl;
66 // return;
67 //}
68 EvtFilter:
70 // std::cout<<"weight= "<<weight<<std::endl;
71 if(!EvtGlobalSet::iVV.size()) return;
72
73 for(int i=0;i<EvtGlobalSet::iVV.size();i++){
74 EvtVector4R psum(0,0,0,0);
75 for(int j=0;j<EvtGlobalSet::iVV[i].size();j++){
76 int idx =EvtGlobalSet::iVV[i][j];
77 psum += p->getDaug(idx)->getP4();
78 //debugging
79 //std::cout<<idx<<std::endl;
80 }
81 double xmass=psum.mass();
82 //std::cout<<xmass<<" "<<EvtGlobalSet::dVV[i][0]<<" "<<EvtGlobalSet::dVV[i][1]<<std::endl;
83 if(xmass<EvtGlobalSet::dVV[i][0] || xmass>EvtGlobalSet::dVV[i][1]) goto EvtFilter;
84 }
85
86 return ;
87}
88
89
const double xmass[5]
Definition: Gam4pikp.cxx:50
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared dimensionless $ !dummy photon IR regulator $ !crude photon multiplicity enhancement factor *EVENT $ !MC crude volume of PhhSpace *Sfactors $ !YFS formfactor IR part only $ !YFS formfactor non IR finite part $ !mass weight
Definition: KarFin.h:34
void noProbMax()
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static std::vector< std::vector< double > > dVV
Definition: EvtGlobalSet.hh:21
static std::vector< std::vector< int > > iVV
Definition: EvtGlobalSet.hh:22
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtPhsp()
Definition: EvtPhsp.hh:34
void getName(std::string &name)
Definition: EvtPhsp.cc:33
EvtDecayBase * clone()
Definition: EvtPhsp.cc:39
void initProbMax()
Definition: EvtPhsp.cc:53
virtual ~EvtPhsp()
Definition: EvtPhsp.cc:31
void decay(EvtParticle *p)
Definition: EvtPhsp.cc:59
void init()
Definition: EvtPhsp.cc:46
double mass() const
Definition: EvtVector4R.cc:39