]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx
Modifications for train running in pp (D. Sakata)
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtDecayIncoherent.cxx
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   for (size_t i=0; i<static_cast<unsigned int>(MAX_DAUG); i++ ) { 
35     spinDensitySet[i]=0;
36   }
37
38   _daugsDecayedByParentModel=false;
39
40   decay(p);
41   p->setDecayProb(1.0);
42
43   EvtSpinDensity rho;
44
45   rho.setDiag(p->getSpinStates());
46
47   p->setSpinDensityBackward(rho);
48
49   if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) {
50     EvtRadCorr::doRadCorr(p);
51   }
52
53   if(!recursive) return;
54
55   //Now decay the daughters.
56
57   if ( !daugsDecayedByParentModel()) {
58     
59     for(size_t i=0;i<p->getNDaug();i++){
60       //Need to set the spin density of the daughters to be
61       //diagonal.
62       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       if ( isDaughterSpinDensitySet(i)==0 ) { 
68         p->getDaug(i)->setSpinDensityForward(rho);
69       }
70       else{
71         //report(INFO,"EvtGen") << "spinDensitymatrix already set!!!\n";
72         EvtSpinDensity temp=p->getDaug(i)->getSpinDensityForward();
73         //      report(INFO,"EvtGen") <<temp<<endl;
74       }
75       //Now decay the daughter.  Really!
76       p->getDaug(i)->decay();
77     } 
78   }
79                             
80 }
81
82
83
84
85
86
87