QCDLoop
One-loop scalar Feynman integrals
box.h
1 //
2 // QCDLoop 2016
3 //
4 // Authors: Stefano Carrazza: stefano.carrazza@cern.ch
5 // Keith Ellis: keith.ellis@durham.ac.uk
6 // Giulia Zanderighi: giulia.zanderighi@cern.ch
7 
8 #pragma once
9 
10 #include "topology.h"
11 
12 namespace ql
13 {
19  template<typename TOutput = complex, typename TMass = double, typename TScale = double>
20  class Box: public Topology<TOutput,TMass,TScale>
21  {
22  public:
23  Box();
24  ~Box();
25 
27  void integral(vector<TOutput> &res, TScale const& mu2, vector<TMass> const& m, vector<TScale> const& p);
28 
30  void B1(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
31 
33  void B2(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
34 
36  void B3(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
37 
39  void B4(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
40 
42  void B5(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
43 
45  void B6(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
46 
48  void B7(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
49 
51  void B8(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
52 
54  void B9(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
55 
57  void B10(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
58 
60  void B11(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
61 
63  void B12(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
64 
66  void B13(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
67 
69  void B14(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
70 
72  void B15(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
73 
75  void B16(vector<TOutput> &res, TMass const (&Y)[4][4], TScale const& mu2) const;
76 
77  private:
79  void Ycalc(TMass (&Y)[4][4],TMass (&Yalt)[4][4], int const& massive, bool const& opposite = false) const;
80 
82  void B0m(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
83 
85  void B1m(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
86 
88  void B2m(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
89  void B2mo(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
90  void B2ma(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
91 
93  void B3m(vector<TOutput> &res, TMass const (&xpi)[13], TScale const& mu2) const;
94 
96  void B4m(vector<TOutput> &res, TMass const (&xpi)[13]) const;
97 
99  void BIN0(vector<TOutput> &res, TMass const (&Y)[4][4]) const;
100 
102  void BIN1(vector<TOutput> &res, TMass const (&Y)[4][4]) const;
103 
105  void BIN2(vector<TOutput> &res, TMass const (&Y)[4][4]) const;
106 
108  void BIN3(vector<TOutput> &res, TMass const (&Y)[4][4]) const;
109 
111  void BIN4(vector<TOutput> &res, TMass const (&Y)[4][4]) const;
112  };
113 }
void B13(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,p2,p3,p4;s12,s23;0,0,m3,m4)
Definition: box.cc:1618
~Box()
The Destructor.
Definition: box.cc:89
void B3(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,pd2,0,pq2;s12,s23;0,0,0,0)
Definition: box.cc:1083
void B9(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,p2,p3,m2;s12,s23;0,0,0,m2)
Definition: box.cc:1358
void B14(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(m2,m2,m4,m4;s12,s23;0,m2,0,m4)
Definition: box.cc:1740
void B4(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,pt2,pq2;s12,s23;0,0,0,0)
Definition: box.cc:1149
void B16(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(m2,p2,p3,m4;s12,s23;0,m2,m3,m4)
Definition: box.cc:1891
void B7(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,m2,pq2;s12,s23;0,0,0,m2)
Definition: box.cc:1281
Definition: box.cc:14
void B10(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,p2,p3,p4;s12,s23;0,0,0,m2)
Definition: box.cc:1396
The Topology abstract class.
Definition: topology.h:26
void B6(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,m2,m2;s12,s23;0,0,0,m2)
Definition: box.cc:1250
void B8(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,pt2,pq2;s12,s23;0,0,0,m2)
Definition: box.cc:1317
Box()
The Constructor.
Definition: box.cc:81
void B11(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,m3,pt2,m4;s12,s23;0,0,m3,m4)
Definition: box.cc:1441
void B12(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,m3,pt2,pq2;s12,s23;0,0,m3,m4)
Definition: box.cc:1524
void B2(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,0,p2;s12,s23;0,0,0,0)
Definition: box.cc:1049
void B5(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,pd2,pt2,pq2;s12,s23;0,0,0,0)
Definition: box.cc:1188
void B15(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(m2,p2,p3,m4;s12,s23;0,m2,0,m4)
Definition: box.cc:1783
void B1(vector< TOutput > &res, TMass const (&Y)[4][4], TScale const &mu2) const
Divergent box I(0,0,0,0;s12,s23;0,0,0,0)
Definition: box.cc:1024
The Box integral.
Definition: box.h:20
void integral(vector< TOutput > &res, TScale const &mu2, vector< TMass > const &m, vector< TScale > const &p)
Computes the tadpole integral.
Definition: box.cc:158