GENIEGenerator
Loading...
Searching...
No Matches
MECScaleVsW.h
Go to the documentation of this file.
1//____________________________________________________________________________
2/*!
3
4\class genie::MECScaleVsW
5
6\brief This class is responsible to compute the MEC scaling factor given
7 Q0, Q3. The scaling is done as a function of the hadronic invariant
8 mass.
9
10\author Code contributed by J.Tena Vidal and M.Roda
11
12\created June, 2020
13
14\cpright Copyright (c) 2003-2025, The GENIE Collaboration
15 For the full text of the license visit http://copyright.genie-mc.org
16*/
17//____________________________________________________________________________
18
19#ifndef _MEC_SCALE_VS_W_H_
20#define _MEC_SCALE_VS_W_H_
21
23#include <TSpline.h>
24
25namespace genie {
26
27 class MECScaleVsW: public XSecScaleI {
28
29 using weight_type_map = std::map<double,double> ;
30 using weight_type_pair = std::pair<double,double> ;
31
32 public:
34 MECScaleVsW(string config);
35 virtual ~MECScaleVsW();
36
37 // This function returns the scaling value at a given Q0 Q3:
38 virtual double GetScaling( const Interaction & ) const override ;
39
40 protected:
41
42 // Load algorithm configuration
43 virtual void LoadConfig (void) override ;
44
45 // This function returns the scaling value at a given Q0 Q3:
46 virtual double GetScaling( const double Q0, const double Q3 ) const ;
47
48 // This function adds the limits of the phase space if they are not set by the user
49 weight_type_map GetMapWithLimits( const double Q0, const double Q3 ) const ;
50
51 // Thist function calculates the scale factor value at W as a linear interpolation
52 // between two W values (Wmin,Wmax) with weights (scale_min,scale_max).
53 virtual double ScaleFunction( const double W, const weight_type_pair min, const weight_type_pair max ) const ;
54
55 private:
58 // Adding Spline to handle the limits of W1:
59 TSpline3 fW1_Q0Q3_limits ;
60
63
64 };
65
66} // genie namespace
67#endif // _MEC_SCALE_VS_W_H_
Summary information for an interaction.
Definition Interaction.h:56
std::pair< double, double > weight_type_pair
Definition MECScaleVsW.h:30
virtual double ScaleFunction(const double W, const weight_type_pair min, const weight_type_pair max) const
virtual void LoadConfig(void) override
virtual double GetScaling(const Interaction &) const override
TSpline3 fW1_Q0Q3_limits
Definition MECScaleVsW.h:59
weight_type_map fWeightsMap
Definition MECScaleVsW.h:57
weight_type_map GetMapWithLimits(const double Q0, const double Q3) const
std::map< double, double > weight_type_map
Definition MECScaleVsW.h:29
XSecScaleI(string name, string config="Default")
THE MAIN GENIE PROJECT NAMESPACE
Definition AlgCmp.h:25