Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:17:15

0001 //
0002 // Authors: Valerio Bertone: valerio.bertone@cern.ch
0003 //          Fulvio Piacenza: fulvio.piacenza01@universitadipavia.it
0004 //
0005 
0006 #pragma once
0007 
0008 namespace apfel
0009 {
0010   /**
0011    * @brief Class for the calculation of the phase-space reduction
0012    * factor due to cuts on the single outgoing lepton in Drell-Yan
0013    * production. The relevant process is:<br>
0014    *        &gamma;(q) &rarr; l<SUP>+</SUP>(k<SUB>1</SUB>) + l<SUP>-</SUP>(k<SUB>2</SUB>) <br>
0015    *  with:<br>
0016    *        k<SUB>T,1(2)</SUB> > p<SUB>T,min,1(2)</SUB><br>
0017    *        < &eta;<SUB>min</SUB><br> &eta;<SUB>1(2)</SUB> < &eta;<SUB>max</SUB><br>
0018    */
0019   class TwoBodyPhaseSpace
0020   {
0021   public:
0022     /**
0023      * @brief The "TwoBodyPhaseSpace" constructor for asymmetric cuts.
0024      * @param pTmin1: the minimum cut in the p<SUB>T</SUB> of the first single lepton
0025      * @param pTmin2: the minimum cut in the p<SUB>T</SUB> of the second single lepton
0026      * @param etamin: the minimum cut in the &eta; of the single lepton
0027      * @param etamax: the maximum cut in the &eta; of the single lepton
0028      * @param eps: the integration accuracy
0029      */
0030     TwoBodyPhaseSpace(double const& pTmin1, double const& pTmin2, double const& etamin, double const& etamax, double const& eps);
0031 
0032     /**
0033      * @brief The "TwoBodyPhaseSpace" constructor for symmetric cuts.
0034      * @param pTmin: the minimum cut in the p<SUB>T</SUB> of the single lepton
0035      * @param etamin: the minimum cut in the &eta; of the single lepton
0036      * @param etamax: the maximum cut in the &eta; of the single lepton
0037      * @param eps: the integration accuracy (default = 10<SUP>-9</SUP>)
0038      */
0039     TwoBodyPhaseSpace(double const& pTmin, double const& etamin, double const& etamax, double const& eps = 1e-9);
0040 
0041     /**
0042      * @brief Function that returns the phase-space reduction factor.
0043      * @param Q: invariant mass of the leptonic pair
0044      * @param y: rapidity of the leptonic pair
0045      * @param qT: transverse momentum of the leptonic pair
0046      * @return the phase-space reduction factor as a function of the
0047      * invariant mass, transverse momentum and rapidity of the lepton
0048      * pair.
0049      */
0050     double PhaseSpaceReduction(double const& Q, double const& y, double const& qT);
0051 
0052     /**
0053      * @brief Function that returns the derivative w.r.t. qT of the
0054      * phase-space reduction factor.
0055      * @param Q: invariant mass of the leptonic pair
0056      * @param y: rapidity of the leptonic pair
0057      * @param qT: transverse momentum of the leptonic pair
0058      * @return the derivative of the phase-space reduction factor as a
0059      * function of the invariant mass, transverse momentum and rapidity
0060      * of the lepton pair.
0061      */
0062     double DerivePhaseSpaceReduction(double const& Q, double const& y, double const& qT);
0063 
0064     /**
0065      * @brief Function that returns the phase-space reduction factor
0066      * associated to the parity violating contribution.
0067      * @param Q: invariant mass of the leptonic pair
0068      * @param y: rapidity of the leptonic pair
0069      * @param qT: transverse momentum of the leptonic pair
0070      * @return the phase-space reduction factor as a function of the
0071      * invariant mass, transverse momentum and rapidity of the lepton
0072      * pair.
0073      */
0074     double ParityViolatingPhaseSpaceReduction(double const& Q, double const& y, double const& qT);
0075 
0076   private:
0077     /**
0078      * @name Cut variables
0079      * Cut Variables that define the cuts on the single leptons
0080      */
0081     ///@{
0082     double const _pTmin1;
0083     double const _pTmin2;
0084     double const _etamin;
0085     double const _etamax;
0086     double const _eps;
0087     ///@}
0088   };
0089 }