Go to the documentation of this file.00001 #ifndef CMSCGEN_h
00002 #define CMSCGEN_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include <iostream>
00023
00024 #include "GeneratorInterface/CosmicMuonGenerator/interface/CosmicMuonParameters.h"
00025
00026 namespace CLHEP {
00027 class HepRandomEngine;
00028 }
00029
00030 class CMSCGEN
00031 {
00032
00033
00034
00035 private:
00036
00037 int initialization;
00038
00039 double pmin;
00040 double pmax;
00041 double cmin;
00042 double cmax;
00043 double cmin_in;
00044 double cmax_in;
00045
00046 double pq;
00047 double c;
00048
00049 double xemin;
00050 double xemax;
00051
00052 double pmin_min;
00053 double pmin_max;
00054
00055 double cmax_min;
00056 double cmax_max;
00057
00058 double Lmin;
00059 double Lmax;
00060 double Lfac;
00061
00062 double c1;
00063 double c2;
00064
00065 double b0;
00066 double b1;
00067 double b2;
00068
00069 double integrated_flux;
00070
00071 double cemax;
00072
00073 double pe[9];
00074 double b0c[3], b1c[3], b2c[3];
00075 double corr[101];
00076
00077
00078 CLHEP::HepRandomEngine *RanGen2;
00079 bool delRanGen;
00080
00081 bool TIFOnly_const;
00082 bool TIFOnly_lin;
00083
00084
00085
00086 double enumin;
00087 double enumax;
00088
00089 public:
00090
00091
00092 CMSCGEN();
00093
00094
00095 ~CMSCGEN();
00096
00097
00098 int initialize(double,double,double,double,CLHEP::HepRandomEngine*,bool,bool);
00099 int initialize(double,double,double,double,int,bool,bool);
00100
00101 int generate();
00102
00103
00104 double momentum_times_charge();
00105
00106 double cos_theta();
00107
00108 double flux();
00109
00110
00111 int initializeNuMu(double, double, double, double, double, double, double, double, double, CLHEP::HepRandomEngine*);
00112 int initializeNuMu(double, double, double, double, double, double, double, double, double, int);
00113 int generateNuMu();
00114
00115
00116
00117 double Rnunubar;
00118 double ProdAlt;
00119 double sigma;
00120 double AR;
00121 double dNdEmudEnu(double Enu, double Emu, double theta);
00122 double dNdEmudEnuMax;
00123 double negabs, negfrac;
00124
00125 };
00126 #endif
00127