File indexing completed on 2024-04-06 12:13:29
0001
0002
0003
0004
0005 #ifndef EVENT_HH
0006 #define EVENT_HH
0007
0008 #include "GeneratorInterface/ExhumeInterface/interface/Weight.h"
0009 #include "GeneratorInterface/ExhumeInterface/interface/CrossSection.h"
0010
0011 namespace CLHEP {
0012 class HepRandomEngine;
0013 }
0014
0015 namespace Exhume {
0016
0017 class Event : public Weight {
0018 public:
0019 Event(CrossSection &, CLHEP::HepRandomEngine *);
0020 ~Event() override;
0021
0022 inline void SetRandomEngine(CLHEP::HepRandomEngine *engine) {
0023 randomEngine = engine;
0024 Process->SetRandomEngine(engine);
0025 }
0026
0027 void Generate();
0028 inline void Setx1Max(const double &xx_) {
0029 x1Max = xx_;
0030 return;
0031 };
0032 inline void Setx2Max(const double &xx_) {
0033 x2Max = xx_;
0034 return;
0035 };
0036 inline void Sett1Max(const double &xx_) {
0037 t1Max = xx_;
0038 return;
0039 };
0040 inline void Sett2Max(const double &xx_) {
0041 t2Max = xx_;
0042 return;
0043 };
0044 inline void Sett1Min(const double &xx_) {
0045 t1Min = xx_;
0046 return;
0047 };
0048 inline void Sett2Min(const double &xx_) {
0049 t2Min = xx_;
0050 return;
0051 };
0052 inline void SetMassRange(const double &Min_, const double &Max_) {
0053 MinMass = Min_;
0054 MaxMass = Max_;
0055 return;
0056 };
0057
0058 inline unsigned int GetLastSeed() { return (rand()); };
0059
0060 inline std::vector<std::pair<double, double> > GetVar() { return (Var); };
0061
0062 void SetParameterSpace();
0063
0064 double CrossSectionCalculation();
0065
0066 inline double GetEfficiency() { return (100.0 * NumberOfEvents / TotalAttempts); };
0067
0068 private:
0069 void SelectValues();
0070 double WeightFunc(const double &) override;
0071
0072 std::vector<std::pair<double, double> > Var;
0073
0074 double CSi, CSMass, Sigmai, wgt, yRange;
0075 double TwoPI, B, InvB, InvBlnB, Root_s, InvRoot_s;
0076 double SqrtsHat, Eta, t1, t2, Phi1, Phi2, VonNeu;
0077 double ymax, ymin;
0078 CrossSection *Process;
0079 unsigned int NumberOfEvents, TotalAttempts;
0080
0081 double x1Max, x2Max, t1Min, t1Max, t2Min, t2Max, MinMass, MaxMass;
0082 double tt1max, tt1min, tt2max, tt2min;
0083
0084 CLHEP::HepRandomEngine *randomEngine;
0085 };
0086
0087 }
0088
0089 #endif