ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4KL3DecayChannel.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4KL3DecayChannel.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 //
29 // ------------------------------------------------------------
30 // GEANT 4 class header file
31 //
32 // History: first implementation, based on object model of
33 // 7 June 1997 H.Kurashige
34 // ------------------------------------------------------------
35 #ifndef G4KL3DecayChannel_h
36 #define G4KL3DecayChannel_h 1
37 
38 #include "G4ios.hh"
39 #include "globals.hh"
40 #include "G4VDecayChannel.hh"
41 
43 {
44  public: // With Description
45  //Constructors
46  G4KL3DecayChannel(const G4String& theParentName,
47  G4double theBR,
48  const G4String& thePionName,
49  const G4String& theLeptonName,
50  const G4String& theNutrinoName);
51  // Destructor
52  virtual ~G4KL3DecayChannel();
53 
54  protected:
55  // Copy constructor and assignment operator
58 
59  private:
61 
62  public: // With Description
63  virtual G4DecayProducts *DecayIt(G4double);
64 
65  protected:
66  // assignment of daughter particles for arrays of daughters[] etc.
67  enum{idPi=0, idLepton=1, idNutrino=2};
68  //G4double daughterM[3];
69 
70  protected:
71  // calcurate momentum of daughters
72  // results will be stored in Edaughter[3] and Pdaughter[3]
73  void PhaseSpace(G4double Mparent,
74  const G4double* Mdaughter,
75  G4double* Edaughter,
76  G4double* Pdaughter);
77 
78  protected:
79  // Dalitz Plot Density
80  // KL3 decay Dalitz Plot Density
81  // see Chounet et al Phys. Rep. 4, 201
82  // arguments
83  // Epi: kinetic enregy of pion
84  // El: kinetic enregy of lepton (e or mu)
85  // Enu: kinetic energy of nutrino
86  // constants
87  // pLambda : linear energy dependence of f+
88  // pXi0 : = f+(0)/f-
89  // pNorm : normalization factor
90  G4double DalitzDensity(G4double parentmass, G4double Epi, G4double El, G4double Enu,
91  G4double massPi, G4double massL , G4double massNu );
92  private:
93  // constants used in DalitzDensity()
94  // coefficients
97 
98  public:
99  void SetDalitzParameter(G4double aLambda, G4double aXi );
102 };
103 
104 inline
106 {
107  pLambda = aLambda;
108  pXi0 = aXi;
109 }
110 
111 inline
113 {
114  return pLambda;
115 }
116 
117 inline
119 {
120  return pXi0;
121 }
122 
123 
124 #endif
125 
126 
127 
128