]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx
AliDecayer realisation for the EvtGen code and EvtGen itself.
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenBase / EvtDecayIncoherent.cxx
CommitLineData
da0e9ce3 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
30void 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