ThinTargetMC.h
Go to the documentation of this file.
1 #ifndef THINTARGETMC_H
2 #define THINTARGETMC_H
3 
4 #include "TH2D.h"
5 #include "TFile.h"
6 #include <vector>
7 #include <string>
8 
9 namespace NeutrinoFluxReweight{
10 
11  /*! \class ThinTargetMC
12  * \brief A class to manage the MC value for thin target
13  */
14  class ThinTargetMC{
15 
16  private:
17  ThinTargetMC();
18 
19  public:
20  static ThinTargetMC* getInstance();
21 
22  //! MC value for this HP production
23  double getMCval_pC_X(double incP, double xf,double pt, int pdgcode);
24 
25  //! Get the MC roduction cross-section pC->pi, K:
26  double getMCxs_pC_piK(int genid, double inc_mom);
27  //! Get the MC roduction cross-section pC->n, p:
28  double getMCxs_pC_nucleon(int genid, int pdg, double inc_mom);
29 
30  //! Vector of the scaling histograms:
31  std::vector< std::vector<TH2F*> > hTTScl;
32  //! Vector of the scaling histograms for neutrons:
33  std::vector<TH1F*> hTTScl_n;
34 
35  private:
36 
37  TFile* fpC_x[8]; //convention: 0: pip. 1: pim. 2: kap. 3: kam. 4: prt 5: neu. 6: K0L. 7:K0S
38  std::vector<TH2D*> vpC_x[8];
39  std::vector<TH1D*> vpC_n;
40 
41  std::vector<std::string> spart_prod;
42  std::vector<int> mom_inc;
43 
44  //convention: 0: prt. 1: neu.
45  std::vector<std::string> spart_qe_corr;
46  TFile* fqe_corr[2];
47  std::vector<TH2D*> vqe_corr_p;
48  std::vector<TH1D*> vqe_corr_n;
49 
50  std::vector<TFile*> fTTscale;
51 
53 
54  };
55 
56 
57 
58 }
59 #endif
std::vector< std::string > spart_qe_corr
Definition: ThinTargetMC.h:45
std::vector< TH2D * > vqe_corr_p
Definition: ThinTargetMC.h:47
std::vector< TH1F * > hTTScl_n
Vector of the scaling histograms for neutrons:
Definition: ThinTargetMC.h:33
std::vector< TH1D * > vpC_n
Definition: ThinTargetMC.h:39
double getMCval_pC_X(double incP, double xf, double pt, int pdgcode)
MC value for this HP production.
std::vector< std::vector< TH2F * > > hTTScl
Vector of the scaling histograms:
Definition: ThinTargetMC.h:31
double getMCxs_pC_nucleon(int genid, int pdg, double inc_mom)
Get the MC roduction cross-section pC->n, p:
std::vector< TH2D * > vpC_x[8]
Definition: ThinTargetMC.h:38
std::vector< TFile * > fTTscale
Definition: ThinTargetMC.h:50
A class to manage the MC value for thin target.
Definition: ThinTargetMC.h:14
std::vector< std::string > spart_prod
Definition: ThinTargetMC.h:41
static ThinTargetMC * instance
Definition: ThinTargetMC.h:52
std::vector< TH1D * > vqe_corr_n
Definition: ThinTargetMC.h:48
double getMCxs_pC_piK(int genid, double inc_mom)
Get the MC roduction cross-section pC->pi, K:
static ThinTargetMC * getInstance()