CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtMBody3 Class Reference

#include <EvtMBody3.hh>

+ Inheritance diagram for EvtMBody3:

Public Member Functions

 EvtMBody3 ()
 
virtual ~EvtMBody3 ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void initProbMax ()
 end of ini
 
void init ()
 
void decay (EvtParticle *p)
 
const char * setFileName (int i)
 
- Public Member Functions inherited from EvtDecayIncoherent
void makeDecay (EvtParticle *p)
 
virtual ~EvtDecayIncoherent ()
 
void setDaughterSpinDensity (int daughter)
 
int isDaughterSpinDensitySet (int daughter)
 
- Public Member Functions inherited from EvtDecayBase
virtual void getName (std::string &name)=0
 
virtual void decay (EvtParticle *p)=0
 
virtual void makeDecay (EvtParticle *p)=0
 
virtual EvtDecayBaseclone ()=0
 
virtual void init ()
 
virtual void initProbMax ()
 
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

Additional Inherited Members

- Static Public Member Functions inherited from EvtDecayBase
static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
 
static void findMass (EvtParticle *p)
 
static double findMaxMass (EvtParticle *p)
 
- Protected Member Functions inherited from EvtDecayBase
bool daugsDecayedByParentModel ()
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 39 of file EvtMBody3.hh.

Constructor & Destructor Documentation

◆ EvtMBody3()

EvtMBody3::EvtMBody3 ( )
inline

Definition at line 43 of file EvtMBody3.hh.

43{}

Referenced by clone().

◆ ~EvtMBody3()

EvtMBody3::~EvtMBody3 ( )
virtual

Definition at line 53 of file EvtMBody3.cc.

53{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtMBody3::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 61 of file EvtMBody3.cc.

61 {
62
63 return new EvtMBody3;
64
65}

◆ decay()

void EvtMBody3::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 88 of file EvtMBody3.cc.

88 {
89
90loop:
92
93 EvtVector4R pd1,pd2,pd3,ps;
94 double m12,m13,m23,costheta1,costheta2,costheta3;
95
96 pd1 =p->getDaug(0)->getP4Lab();
97 pd2 =p->getDaug(1)->getP4Lab();
98 pd3 =p->getDaug(2)->getP4Lab();
99 ps =p->getP4();
100
101 m12=(pd1 + pd2).mass();
102 m13=(pd1 + pd3).mass();
103 m23=(pd2 + pd3).mass();
104
105 costheta1=pd1.get(3)/pd1.d3mag();
106 costheta2=pd2.get(3)/pd2.d3mag();
107 costheta3=pd3.get(3)/pd3.d3mag();
108 /*
109 bool ac=body3Ntuple.AR123(costheta1,costheta2,costheta3,
110 m23, m13, m12);
111 */
112 bool b1=body3Ntuple.AR1(costheta1,m23);
113 bool b2=body3Ntuple.AR2(costheta2,m13);
114 bool b3=body3Ntuple.AR3(costheta3,m12);
115
116 if(!(b1 && b2 && b3)) goto loop;
117
118 // if(!(ac)) goto loop;
119 // std::cout<<"I find an envent." <<std::endl;
120 return ;
121}
double mass
EvtNT3 body3Ntuple
Definition: EvtMBody3.cc:52
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
bool AR3(double costheta, double mass)
Definition: EvtNT3.cc:159
bool AR2(double costheta, double mass)
Definition: EvtNT3.cc:151
bool AR1(double costheta, double mass)
Definition: EvtNT3.cc:142
EvtVector4R getP4Lab()
Definition: EvtParticle.cc:683
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)
double get(int i) const
Definition: EvtVector4R.hh:179
double d3mag() const
Definition: EvtVector4R.cc:186

◆ getName()

void EvtMBody3::getName ( std::string &  name)
virtual

Implements EvtDecayBase.

Definition at line 55 of file EvtMBody3.cc.

55 {
56
57 model_name="MBody3";
58
59}

◆ init()

void EvtMBody3::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 67 of file EvtMBody3.cc.

67 {
68
69 // check that there are 4 arguments: Invariant mass part. Index: i,j, histor. file name, Hid
70 checkNArg(0);
71
72 const char* datafile;
73 const char* mcfile;
74 datafile=setFileName(1);
75 mcfile =setFileName(2);
76 body3Ntuple.setMCfile(mcfile);
77 body3Ntuple.setDTfile(datafile);
79 std::cout<<"End to initiate the MBody3 model"<<std::endl;
80 } ///end of ini
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const char * setFileName(int i)
Definition: UserMBody3.cc:37
void setDTfile(const char *name)
Definition: EvtNT3.hh:35
void setMCfile(const char *name)
Definition: EvtNT3.hh:36
void init()
Definition: EvtNT3.cc:25

◆ initProbMax()

void EvtMBody3::initProbMax ( )
virtual

end of ini

Reimplemented from EvtDecayBase.

Definition at line 82 of file EvtMBody3.cc.

82 {
83
84 noProbMax();
85
86}
void noProbMax()

◆ setFileName()

const char * EvtMBody3::setFileName ( int  i)

Definition at line 37 of file UserMBody3.cc.

37 {
38 const char* datafile;
39 const char* mcfile;
40// --- user to specify the name of the NTuple for data (datafile ) and MC
41
42 datafile="./body3data.root"; //specify the data root file name
43 mcfile ="./body3mc.root"; //specify the mc root fine name using for eff. correction
44
45//--------- don't touch follows
46 if(i==1){return datafile;} else if(i==2){return mcfile;}
47}

Referenced by init().


The documentation for this class was generated from the following files: