]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGenModels/EvtSVP.cpp
move TVirtualDecayer->Init() to class initializer
[u/mrichter/AliRoot.git] / TEvtGen / EvtGenModels / EvtSVP.cpp
CommitLineData
0ca57c2f 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: EvtSVP.cc
12//
13// Description: Routine to implement radiative decay chi_c0 -> psi gamma
14//
15//
16// Modification history:
17// AVL Jul 6, 2012 modle created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtGenBase/EvtPatches.hh"
22#include <stdlib.h>
23#include "EvtGenBase/EvtParticle.hh"
24#include "EvtGenBase/EvtTensorParticle.hh"
25#include "EvtGenBase/EvtGenKine.hh"
26#include "EvtGenBase/EvtPDL.hh"
27#include "EvtGenBase/EvtReport.hh"
28#include "EvtGenBase/EvtVector4C.hh"
29#include "EvtGenBase/EvtTensor4C.hh"
30
31
32#include "EvtGenModels/EvtSVP.hh"
33
34
35#include <string>
36#include <iostream>
37
38using namespace std;
39
40
41
42EvtSVP::~EvtSVP() {
43 // cout<<"(* AVL EvtSVP::destructor getProbMax(-1) = "<<getProbMax(-1)<<" *)"<<endl;
44 // cout<<"(* AVL EvtSVP::destructor "<<ncall<<" calls *)"<<endl;
45
46}
47
48std::string EvtSVP::getName(){
49 return "SVP";
50}
51
52
53EvtDecayBase* EvtSVP::clone(){
54 // cout<<" (* AVL: === EvtSVP::clone() ============ *)"<<endl;
55 return new EvtSVP;
56
57}
58
59void EvtSVP::decay( EvtParticle *root ){
60 // cout<<"(* AVL EvtSVP::decay getProbMax(-1) = "<<getProbMax(-1)<<" *)"<<endl;
61 ncall++;
62 // cout<<" (* AVL EvtSVP::decay() ============ *)"<<endl;
63 root ->initializePhaseSpace(getNDaug(),getDaugs());
64
65 EvtVector4R p = root->getDaug(1)->getP4(), // J/psi momentum
66 k = root->getDaug(0)->getP4(); // Photon momentum
67 for(int iPsi = 0; iPsi < 4; iPsi++) {
68 for(int iGamma = 0; iGamma < 1; iGamma++) {
69 EvtVector4C epsPsi = root->getDaug(1)->epsParent(iPsi).conj();
70 EvtVector4C epsGamma = root->getDaug(0)->epsParentPhoton(iGamma).conj();
71
72 // EvtComplex amp = epsPsi*epsGamma - (epsPsi*k)/(epsGamma*p)/(k*p);
73 EvtComplex amp = (epsPsi*epsGamma) - (epsPsi*k)*(epsGamma*p)/(k*p);
74
75 // cout<<"EvtSVP::decay(): (k*p) = "<<(k*p)<<endl;
76 //cout<<"EvtSVP::decay(): amp = "<<amp<<endl;
77
78 vertex(iGamma, iPsi, amp);
79 };
80 };
81
82}
83
84
85void EvtSVP::init(){
86 // cout<<" (* AVL: ==== EvtSVP::init() ============ *)"<<endl;
87
88 ncall = 0;
89
90 checkNArg(0);
91 checkNDaug(2);
92
93
94 checkSpinParent(EvtSpinType::SCALAR);
95
96 checkSpinDaughter(0,EvtSpinType::PHOTON);
97 checkSpinDaughter(1,EvtSpinType::VECTOR);
98
99}
100
101void EvtSVP::initProbMax() {
102 setProbMax(1.2);
103};
104