ATLAS Offline Software
Sigma2qqbar2emu.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
10 
11 // calls to fortran routines
12 #include "CLHEP/Random/RandFlat.h"
13 
14 #include <iostream>
15 #include <vector>
16 
17 namespace Pythia8{
18  class Sigma2qqbar2emu;
19 }
20 
21 // This one line registers this process with the factory
22 // An instance of this process can be created with
23 // UserProcessFactory::create("qqbar2emu")
25 
26 namespace Pythia8 {
27 
34  class Sigma2qqbar2emu : public Sigma2Process{
35 
36  public:
37  //Constructor.
39  : m_lambdaCoup(0.), m_sigmaTemp(0.), m_stop(0.),
41  m_Nc(0), m_myRand(0)
42  {}
43 
44 
46  void initProc() {
47 
48  // Store parameters.
49  m_lambdaCoup = 0.2;
50  m_Nc = 3;
51  m_stop = particleDataPtr->m0(1000006); //95.5;
52  m_lambdaSqddbar = 0.065;
53  m_lambdaSqdsbar = 3.8e-5;
54  m_lambdaSqsdbar = 3.8e-5;
55  m_lambdaSqssbar = 0.065;
56  m_myRand = new Rndm(1234567);
57 
58  return;
59  }
60 
61  //*********
62 
64  void sigmaKin() {
65 
66  // The 2 out front is for e- mu+ plus e+ mu -
67  m_sigmaTemp = 2./((float)m_Nc * 64. * M_PI);
68 
69  return;
70  }
71 
72  //*********
73 
75  double sigmaHat() {
76 
77  double lambdaSq = 0.;
78  if((id1 == 1 && id2 == -1) || (id1 == -1 && id2 == 1)) lambdaSq = m_lambdaSqddbar;
79  else if((id1 == 1 && id2 == -3) || (id1 == -3 && id2 == 1)) lambdaSq = m_lambdaSqdsbar;
80  else if((id1 == 3 && id2 == -1) || (id1 == -1 && id2 == 3)) lambdaSq = m_lambdaSqsdbar;
81  else if((id1 == 3 && id2 == -3) || (id1 == -3 && id2 == 3)) lambdaSq = m_lambdaSqssbar;
82  double sigma = pow2(lambdaSq)*m_sigmaTemp*tH2/(sH2*pow2(tH-pow2(m_stop)));
83  return sigma;
84  }
85 
86  //*********
87 
88  // Select identity, colour and anticolour.
89 
90  void setIdColAcol() {
91 
92  // Flavours.
93  double x = m_myRand->flat();
94  if(x < 0.5) setId( id1, id2, 11, -13);
95  else setId( id1, id2, -11, 13);
96 
97  // tH defined between f and LQ: must swap tHat <-> uHat if qbar q in.
98  swapTU = (id1 < 0);
99 
100  //cab I don't understand what's done here.
101  // Colour flow topologies.
102  if (id1 > 0) setColAcol( 1, 0, 0, 1, 0, 0, 0, 0);
103  else setColAcol( 0, 1, 1, 0, 0, 0, 0, 0);
104 
105  return;
106  }
107 
108  // Info on the subprocess.
109  std::string name() const {return "q qbar -> e mu (t:squark)";}
110  //cab Need Codes for q qbar -> e+- mu-+
111  int code() const {return 10001;}
112  std::string inFlux() const {return "qq";}
113  //cab It looks like here is where the final state is specified
114  //cab electrons are +-11, muons are +-13
115  int id3Mass() const {return 11;}
116  int id4Mass() const {return 13;}
117 
118  private:
119 
120  // Parameters set at initialization or for current kinematics.
123  int m_Nc;
124  Rndm* m_myRand;
125 
126  };
127 }
Pythia8::Sigma2qqbar2emu::m_myRand
Rndm * m_myRand
Definition: Sigma2qqbar2emu.cxx:124
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
Pythia8::Sigma2qqbar2emu::m_stop
double m_stop
Definition: Sigma2qqbar2emu.cxx:121
Pythia8::Sigma2qqbar2emu::m_lambdaSqdsbar
double m_lambdaSqdsbar
Definition: Sigma2qqbar2emu.cxx:122
Pythia8::Sigma2qqbar2emu::m_lambdaSqddbar
double m_lambdaSqddbar
Definition: Sigma2qqbar2emu.cxx:122
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Pythia8::Sigma2qqbar2emu::name
std::string name() const
Definition: Sigma2qqbar2emu.cxx:109
x
#define x
Pythia8::Sigma2qqbar2emu
Sigma1ql2LFV class.
Definition: Sigma2qqbar2emu.cxx:34
Pythia8
Author: James Monk (jmonk@cern.ch)
Definition: IPythia8Custom.h:13
Pythia8::Sigma2qqbar2emu::m_lambdaSqsdbar
double m_lambdaSqsdbar
Definition: Sigma2qqbar2emu.cxx:122
Pythia8::Sigma2qqbar2emu::inFlux
std::string inFlux() const
Definition: Sigma2qqbar2emu.cxx:112
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
Pythia8::Sigma2qqbar2emu::m_sigmaTemp
double m_sigmaTemp
Definition: Sigma2qqbar2emu.cxx:121
Pythia8::Sigma2qqbar2emu::setIdColAcol
void setIdColAcol()
Definition: Sigma2qqbar2emu.cxx:90
UserProcessFactory.h
Pythia8::Sigma2qqbar2emu::sigmaKin
void sigmaKin()
Evaluate sigmaHat(sHat), part independent of incoming flavour.
Definition: Sigma2qqbar2emu.cxx:64
Pythia8::Sigma2qqbar2emu::id4Mass
int id4Mass() const
Definition: Sigma2qqbar2emu.cxx:116
Pythia8_UserProcess::UserProcessFactory::Creator
Definition: UserProcessFactory.h:38
Pythia8::Sigma2qqbar2emu::id3Mass
int id3Mass() const
Definition: Sigma2qqbar2emu.cxx:115
Pythia8::Sigma2qqbar2emu::Sigma2qqbar2emu
Sigma2qqbar2emu()
Definition: Sigma2qqbar2emu.cxx:38
Pythia8::Sigma2qqbar2emu::code
int code() const
Definition: Sigma2qqbar2emu.cxx:111
Pythia8::Sigma2qqbar2emu::m_Nc
int m_Nc
Definition: Sigma2qqbar2emu.cxx:123
Pythia8::Sigma2qqbar2emu::m_lambdaSqssbar
double m_lambdaSqssbar
Definition: Sigma2qqbar2emu.cxx:122
qqbar2emuCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2emu > qqbar2emuCreator("qqbar2emu")
Pythia8::Sigma2qqbar2emu::initProc
void initProc()
Initialize process.
Definition: Sigma2qqbar2emu.cxx:46
Pythia8::Sigma2qqbar2emu::m_lambdaCoup
double m_lambdaCoup
Definition: Sigma2qqbar2emu.cxx:121
readCCLHist.float
float
Definition: readCCLHist.py:83
Pythia8::Sigma2qqbar2emu::sigmaHat
double sigmaHat()
Evaluate sigmaHat(sHat), part dependent of incoming flavour.
Definition: Sigma2qqbar2emu.cxx:75