ATLAS Offline Software
Sigma2qqbar2lStarlStarBar.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Double excited lepton production
6 
8 
9 #include <iostream>
10 #include <vector>
11 
12 namespace Pythia8 {
13  class Sigma2qqbar2lStarlStarBar;
14  class Sigma2qqbar2nueStarnueStarBar;
15  class Sigma2qqbar2numuStarnumuStarBar;
16  class Sigma2qqbar2nutauStarnutauStarBar;
17  class Sigma2qqbar2eStareStarBar;
18  class Sigma2qqbar2muStarmuStarBar;
19  class Sigma2qqbar2tauStartauStarBar;
20 }
21 
22 // This one line registers this process with the factory
23 // An instance of this process can be created with
24 // UserProcessFactory::create("qqbar2lStarlStarBar")
31 
32 namespace Pythia8 {
33 
34  //**************************************************************************
35 
36  // Sigma2qqbar2lStarlStarBar class.
37  // Cross section for q qbar -> lStar lStarBar
38 
39  // A derived class for q qbar -> lStar lStarBar
40 
41  class Sigma2qqbar2lStarlStarBar: public Sigma2Process {
42 
43  public:
44  //Constructor.
45  Sigma2qqbar2lStarlStarBar(int idlIn) : idl(idlIn),
46  idRes(0), codeSave(0),
47  Lambda(0.), preFac(0.), openFracPos(0.), openFracNeg(0.), sigma(0.),
48  m2ResTimes4(0.){};
49 
50  // Initialize process.
51 
52  void initProc() {
53 
54  // Set up process properties from the chosen lepton flavour.
55  idRes = 4000000 + idl;
56  codeSave = 4040 + idl;
57  if (idl == 11) nameSave = "q qbar -> e^*+- e^*-+";
58  else if (idl == 12) nameSave = "q qbar -> nu_e^* nu_e^*bar";
59  else if (idl == 13) nameSave = "q qbar -> mu^*+- mu^*-+";
60  else if (idl == 14) nameSave = "q qbar -> nu_mu^* nu_mu^*bar";
61  else if (idl == 15) nameSave = "q qbar -> tau^*+- tau^*-+";
62  else nameSave = "q qbar -> nu_tau^* nu_tau^*bar";
63 
64  // Secondary open width fractions.
65  openFracPos = particleDataPtr->resOpenFrac( idRes);
66  openFracNeg = particleDataPtr->resOpenFrac(-idRes);
67 
68  // Locally stored properties and couplings.
69  Lambda = settingsPtr->parm("ExcitedFermion:Lambda");
70  preFac = (M_PI / pow4(Lambda)) * (openFracPos + openFracNeg) / 9.;
71 
72  double mRes = particleDataPtr->m0(idRes);
73  m2ResTimes4 = mRes*mRes*4.;
74  }
75 
76  //*********
77 
78  // Evaluate sigmaHat(sHat).
79  virtual double sigmaHat() {return sigma;}
80 
81  // Evaluate sigmaHat(sHat), part independent of incoming flavour.
82 
83  void sigmaKin() {
84 
85  // use assumption that sigma is multiplied later with sH*(1-s3/sH)
86 
87  //sigma = preFac * sqrtpos( 1.- m2ResTimes4/sH );
88  sigma = preFac * sqrtpos( 1.- 4.*s3/sH );
89 
90  }
91 
92  //*********
93 
94  // Select identity, colour and anticolour.
95 
96  void setIdColAcol() {
97 
98  // Flavours: both lepton and antilepton are excited.
99  setId( id1, id2, idRes, -idRes);
100  //if (id1 < 0) swapTU = true; // OI how is this used?
101 
102  // Colour flow trivial.
103  if (id1 > 0) setColAcol( 1, 0, 0, 1, 0, 0, 0, 0);
104  else setColAcol( 0, 1, 1, 0, 0, 0, 0, 0);
105 
106  }
107 
108  //**************************************************************************
109 
110  double weightDecay( Event& process, int iResBeg,
111  int iResEnd) {
112 
113  // l* should sit in entry 5. and 6 Sequential Z/W decay assumed isotropic.
114  if (iResBeg != 5 && iResEnd != 5 && iResBeg != 6 && iResEnd != 6 ) return 1.;
115 
116  // Phase space factors.
117  double mr1 = pow2(process[7].m() / process[5].m());
118  double mr2 = pow2(process[8].m() / process[5].m());
119 
120  // Reconstruct decay angle in l* CoM frame.
121  int idAbs3 = process[7].idAbs();
122  Vec4 pLStarCom = (idAbs3 < 20) ? process[8].p() : process[7].p();
123  pLStarCom.bstback(process[5].p());
124  double cosThe = costheta(pLStarCom, process[5].p());
125  double wt = 1.;
126 
127  // Decay, l* -> l + gamma/Z^0/W^+-).
128  int idBoson = (idAbs3 < 20) ? process[8].idAbs() : process[7].idAbs();
129  if (idBoson == 22) {
130  wt = 0.5 * (1. + cosThe);
131  } else if (idBoson == 23 || idBoson == 24) {
132  double mrB = (idAbs3 < 20) ? mr2 : mr1;
133  double kTrm = 0.5 * (mrB * (1. - cosThe));
134  wt = (1. + cosThe + kTrm) / (2 + mrB);
135  }
136 
137  // Done.
138  return wt;
139  }
140 
141  // Info on the subprocess.
142  virtual std::string name() const {return nameSave;}
143  virtual int code() const {return codeSave;}
144  virtual std::string inFlux() const {return "qqbarSame";}
145  virtual int id3Mass() const {return std::abs(idRes);}
146  virtual int id4Mass() const {return std::abs(idRes);}
147 
148  virtual bool convertM2() const {return false;} //true is only suitable for resonance production pp->A->ll
149  virtual bool convert2mb() const {return true;}
150 
151  // Parameters set at initialization or for current kinematics.
153  std::string nameSave;
155  double m2ResTimes4;
156  };
157 
158 
159  //**************************************************************************
161  public:
163  };
165  public:
167  };
169  public:
171  };
173  public:
175  };
177  public:
179  };
180 
182  public:
184  };
185 
186 }
Pythia8::Sigma2qqbar2lStarlStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:41
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
qqbar2nueStarlnuetarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2nueStarnueStarBar > qqbar2nueStarlnuetarBarCreator("qqbar2nueStarnueStarBar")
Pythia8::Sigma2qqbar2lStarlStarBar::openFracPos
double openFracPos
Definition: Sigma2qqbar2lStarlStarBar.cxx:154
Event
Definition: trigbs_orderedMerge.cxx:42
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Pythia8::Sigma2qqbar2lStarlStarBar::codeSave
int codeSave
Definition: Sigma2qqbar2lStarlStarBar.cxx:152
Pythia8::Sigma2qqbar2lStarlStarBar::sigma
double sigma
Definition: Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2lStarlStarBar::code
virtual int code() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:143
Pythia8::Sigma2qqbar2muStarmuStarBar::Sigma2qqbar2muStarmuStarBar
Sigma2qqbar2muStarmuStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:178
Pythia8::Sigma2qqbar2nutauStarnutauStarBar::Sigma2qqbar2nutauStarnutauStarBar
Sigma2qqbar2nutauStarnutauStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:170
Pythia8::Sigma2qqbar2lStarlStarBar::idl
int idl
Definition: Sigma2qqbar2lStarlStarBar.cxx:152
SUSY_SimplifiedModel_PostInclude.process
string process
Definition: SUSY_SimplifiedModel_PostInclude.py:42
Pythia8::Sigma2qqbar2nueStarnueStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:160
Pythia8::Sigma2qqbar2lStarlStarBar::idRes
int idRes
Definition: Sigma2qqbar2lStarlStarBar.cxx:152
Pythia8::Sigma2qqbar2lStarlStarBar::sigmaHat
virtual double sigmaHat()
Definition: Sigma2qqbar2lStarlStarBar.cxx:79
Pythia8
Author: James Monk (jmonk@cern.ch)
Definition: IPythia8Custom.h:13
Pythia8::Sigma2qqbar2lStarlStarBar::setIdColAcol
void setIdColAcol()
Definition: Sigma2qqbar2lStarlStarBar.cxx:96
Pythia8::Sigma2qqbar2lStarlStarBar::initProc
void initProc()
Definition: Sigma2qqbar2lStarlStarBar.cxx:52
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:564
Pythia8::Sigma2qqbar2eStareStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:172
Pythia8::Sigma2qqbar2numuStarnumuStarBar::Sigma2qqbar2numuStarnumuStarBar
Sigma2qqbar2numuStarnumuStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:166
UserProcessFactory.h
Pythia8::Sigma2qqbar2lStarlStarBar::name
virtual std::string name() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:142
qqbar2muStarlmutarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2muStarmuStarBar > qqbar2muStarlmutarBarCreator("qqbar2muStarmuStarBar")
Pythia8::Sigma2qqbar2tauStartauStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:181
Pythia8_UserProcess::UserProcessFactory::Creator
Definition: UserProcessFactory.h:38
Pythia8::Sigma2qqbar2lStarlStarBar::inFlux
virtual std::string inFlux() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:144
Pythia8::Sigma2qqbar2lStarlStarBar::convert2mb
virtual bool convert2mb() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:149
Pythia8::Sigma2qqbar2lStarlStarBar::preFac
double preFac
Definition: Sigma2qqbar2lStarlStarBar.cxx:154
qqbar2nutauStarlnutautarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2nutauStarnutauStarBar > qqbar2nutauStarlnutautarBarCreator("qqbar2nutauStarnutauStarBar")
Pythia8::Sigma2qqbar2muStarmuStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:176
Pythia8::Sigma2qqbar2lStarlStarBar::weightDecay
double weightDecay(Event &process, int iResBeg, int iResEnd)
Definition: Sigma2qqbar2lStarlStarBar.cxx:110
ReadCellNoiseFromCoolCompare.s3
s3
Definition: ReadCellNoiseFromCoolCompare.py:380
Pythia8::Sigma2qqbar2lStarlStarBar::Sigma2qqbar2lStarlStarBar
Sigma2qqbar2lStarlStarBar(int idlIn)
Definition: Sigma2qqbar2lStarlStarBar.cxx:45
Pythia8::Sigma2qqbar2lStarlStarBar::nameSave
std::string nameSave
Definition: Sigma2qqbar2lStarlStarBar.cxx:153
Pythia8::Sigma2qqbar2lStarlStarBar::sigmaKin
void sigmaKin()
Definition: Sigma2qqbar2lStarlStarBar.cxx:83
Pythia8::Sigma2qqbar2lStarlStarBar::Lambda
double Lambda
Definition: Sigma2qqbar2lStarlStarBar.cxx:154
qqbar2eStarletarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2eStareStarBar > qqbar2eStarletarBarCreator("qqbar2eStareStarBar")
Pythia8::Sigma2qqbar2tauStartauStarBar::Sigma2qqbar2tauStartauStarBar
Sigma2qqbar2tauStartauStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:183
Pythia8::Sigma2qqbar2lStarlStarBar::id3Mass
virtual int id3Mass() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:145
Pythia8::Sigma2qqbar2lStarlStarBar::openFracNeg
double openFracNeg
Definition: Sigma2qqbar2lStarlStarBar.cxx:154
Pythia8::Sigma2qqbar2nutauStarnutauStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:168
Pythia8::Sigma2qqbar2numuStarnumuStarBar
Definition: Sigma2qqbar2lStarlStarBar.cxx:164
qqbar2numuStarlnumutarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2numuStarnumuStarBar > qqbar2numuStarlnumutarBarCreator("qqbar2numuStarnumuStarBar")
Pythia8::Sigma2qqbar2lStarlStarBar::id4Mass
virtual int id4Mass() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:146
Pythia8::Sigma2qqbar2lStarlStarBar::m2ResTimes4
double m2ResTimes4
Definition: Sigma2qqbar2lStarlStarBar.cxx:155
Pythia8::Sigma2qqbar2nueStarnueStarBar::Sigma2qqbar2nueStarnueStarBar
Sigma2qqbar2nueStarnueStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:162
Pythia8::Sigma2qqbar2eStareStarBar::Sigma2qqbar2eStareStarBar
Sigma2qqbar2eStareStarBar()
Definition: Sigma2qqbar2lStarlStarBar.cxx:174
Pythia8::Sigma2qqbar2lStarlStarBar::convertM2
virtual bool convertM2() const
Definition: Sigma2qqbar2lStarlStarBar.cxx:148
qqbar2tauStarltautarBarCreator
Pythia8_UserProcess::UserProcessFactory::Creator< Pythia8::Sigma2qqbar2tauStartauStarBar > qqbar2tauStarltautarBarCreator("qqbar2tauStartauStarBar")