G4MuonDecayChannelWithSpin.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // ------------------------------------------------------------
00027 //      GEANT 4 class header file
00028 //
00029 //      History:
00030 //               17 August 2004 P.Gumplinger and T.MacPhail
00031 //               samples Michel spectrum including 1st order
00032 //               radiative corrections
00033 //               Reference: Florian Scheck "Muon Physics", in Physics Reports
00034 //                          (Review Section of Physics Letters) 44, No. 4 (1978)
00035 //                          187-248. North-Holland Publishing Company, Amsterdam
00036 //                          at page 210 cc.
00037 //
00038 //                          W.E. Fisher and F. Scheck, Nucl. Phys. B83 (1974) 25.
00039 //
00040 // ------------------------------------------------------------
00041 #ifndef G4MuonDecayChannelWithSpin_hh
00042 #define G4MuonDecayChannelWithSpin_hh 1
00043 
00044 #include <CLHEP/Units/PhysicalConstants.h>
00045 
00046 #include "globals.hh"
00047 #include "G4ThreeVector.hh"
00048 #include "G4MuonDecayChannel.hh"
00049 
00050 class G4MuonDecayChannelWithSpin : public G4MuonDecayChannel
00051 {
00052   // Class Decription
00053   // This class describes muon decay kinemtics.
00054   // This version assumes V-A coupling with 1st order radiative correctons,
00055   //              the standard model Michel parameter values, but 
00056   //              gives incorrect energy spectrum for neutrinos
00057 
00058 public:  // With Description
00059 
00060   //Constructors 
00061   G4MuonDecayChannelWithSpin(const G4String& theParentName,
00062                              G4double        theBR);
00063   //  Destructor
00064   virtual ~G4MuonDecayChannelWithSpin();
00065 
00066 protected:
00067   // Copy constructor and assignment operator
00068   G4MuonDecayChannelWithSpin(const G4MuonDecayChannelWithSpin &);
00069   G4MuonDecayChannelWithSpin & operator=(const G4MuonDecayChannelWithSpin &);
00070   
00071 private:
00072   G4MuonDecayChannelWithSpin();
00073 
00074 public:  // With Description
00075 
00076   virtual G4DecayProducts *DecayIt(G4double);
00077 
00078   void SetPolarization(G4ThreeVector);
00079   const G4ThreeVector& GetPolarization() const;
00080 
00081 private:
00082 
00083   G4ThreeVector parent_polarization;
00084 
00085 // Radiative Correction Factors
00086 
00087   G4double F_c(G4double x, G4double x0);
00088   G4double F_theta(G4double x, G4double x0);
00089   G4double R_c(G4double x);
00090 
00091   G4double EMMU;
00092   G4double EMASS;
00093 
00094 };
00095 
00096 inline void G4MuonDecayChannelWithSpin::SetPolarization(G4ThreeVector polar)
00097 {
00098   parent_polarization = polar;
00099 }
00100 
00101 inline const G4ThreeVector& G4MuonDecayChannelWithSpin::GetPolarization() const
00102 {
00103   return parent_polarization;
00104 }
00105 
00106 inline G4double G4MuonDecayChannelWithSpin::F_c(G4double x, G4double x0)
00107 {
00108   G4double omega = std::log(EMMU/EMASS);
00109 
00110   G4double f_c;
00111 
00112   f_c = (5.+17.*x-34.*x*x)*(omega+std::log(x))-22.*x+34.*x*x;
00113   f_c = (1.-x)/(3.*x*x)*f_c;
00114   f_c = (6.-4.*x)*R_c(x)+(6.-6.*x)*std::log(x) + f_c;
00115   f_c = (CLHEP::fine_structure_const/CLHEP::twopi) * (x*x-x0*x0) * f_c;
00116 
00117   return f_c;
00118 }
00119 
00120 inline G4double G4MuonDecayChannelWithSpin::F_theta(G4double x, G4double x0)
00121 {
00122   G4double omega = std::log(EMMU/EMASS);
00123 
00124   G4double f_theta;
00125 
00126   f_theta = (1.+x+34*x*x)*(omega+std::log(x))+3.-7.*x-32.*x*x;
00127   f_theta = f_theta + ((4.*(1.-x)*(1.-x))/x)*std::log(1.-x);
00128   f_theta = (1.-x)/(3.*x*x) * f_theta;
00129   f_theta = (2.-4.*x)*R_c(x)+(2.-6.*x)*std::log(x)-f_theta;
00130   f_theta = (CLHEP::fine_structure_const/CLHEP::twopi) * (x*x-x0*x0) * f_theta;
00131 
00132   return f_theta;
00133 }
00134 
00135 #endif

Generated on Mon May 27 17:48:54 2013 for Geant4 by  doxygen 1.4.7