Line data Source code
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: EvtGen/EvtDecayIncoherent.cc
12 : //
13 : // Description:
14 : //
15 : // Modification history:
16 : //
17 : // DJL/RYD August 11, 1998 Module created
18 : //
19 : //------------------------------------------------------------------------
20 : #include "EvtGenBase/EvtPatches.hh"
21 :
22 : #include "EvtGenBase/EvtDecayBase.hh"
23 : #include "EvtGenBase/EvtDecayIncoherent.hh"
24 : #include "EvtGenBase/EvtParticle.hh"
25 : #include "EvtGenBase/EvtRadCorr.hh"
26 : #include "EvtGenBase/EvtReport.hh"
27 : #include "EvtGenBase/EvtPDL.hh"
28 :
29 :
30 : void EvtDecayIncoherent::makeDecay(EvtParticle* p, bool recursive){
31 :
32 : //initialize this the hard way..
33 : //Lange June 26, 2000
34 0 : for (size_t i=0; i<static_cast<unsigned int>(MAX_DAUG); i++ ) {
35 0 : spinDensitySet[i]=0;
36 : }
37 :
38 0 : _daugsDecayedByParentModel=false;
39 :
40 0 : decay(p);
41 0 : p->setDecayProb(1.0);
42 :
43 0 : EvtSpinDensity rho;
44 :
45 0 : rho.setDiag(p->getSpinStates());
46 :
47 0 : p->setSpinDensityBackward(rho);
48 :
49 0 : if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) {
50 0 : EvtRadCorr::doRadCorr(p);
51 : }
52 :
53 0 : if(!recursive) return;
54 :
55 : //Now decay the daughters.
56 :
57 0 : if ( !daugsDecayedByParentModel()) {
58 :
59 0 : for(size_t i=0;i<p->getNDaug();i++){
60 : //Need to set the spin density of the daughters to be
61 : //diagonal.
62 0 : rho.setDiag(p->getDaug(i)->getSpinStates());
63 : //if (p->getDaug(i)->getNDaug()==0){
64 : //only do this if the user has not already set the
65 : //spin density matrix herself.
66 : //Lange June 26, 2000
67 0 : if ( isDaughterSpinDensitySet(i)==0 ) {
68 0 : p->getDaug(i)->setSpinDensityForward(rho);
69 : }
70 : else{
71 : //report(Severity::Info,"EvtGen") << "spinDensitymatrix already set!!!\n";
72 0 : EvtSpinDensity temp=p->getDaug(i)->getSpinDensityForward();
73 : // report(Severity::Info,"EvtGen") <<temp<<endl;
74 0 : }
75 : //Now decay the daughter. Really!
76 0 : p->getDaug(i)->decay();
77 : }
78 0 : }
79 :
80 0 : }
81 :
82 :
83 :
84 :
85 :
86 :
87 :
|