00001 //-*-c++-*- 00002 //-*-TwoSpace.h-*- 00003 // Written by James Monk and Andrew Pilkington - 20/08/05 00004 00005 #ifndef TWOSPACE_HH 00006 #define TWOSPACE_HH 00007 00008 #include "GeneratorInterface/ExhumeInterface/interface/CrossSection.h" 00009 #include "GeneratorInterface/ExhumeInterface/interface/Weight.h" 00010 00011 namespace Exhume{ 00012 00013 class TwoSpace : public CrossSection,Weight{ 00014 00015 public: 00016 TwoSpace(const edm::ParameterSet&); 00017 ~TwoSpace(); 00018 double SubParameterRange(); 00019 void MaximiseSubParameters(); 00020 void SetSubParameters(); 00021 void SetPartons(); 00022 void SetMassAtThetaScan(double _M1){ 00023 MassAtThetaScan=_M1; 00024 return; 00025 } 00026 virtual double SubProcess()=0; 00027 double SubParameterWeight(); 00028 void SetThetaMin(const double &); 00029 int GetNumberOfSubParameters(); 00030 //allows user to define an amplitude (Msq) and use all our pre defined funcs 00031 //virtual double AmplitudeSq()=0; 00032 virtual void Amp2LIPS()=0; 00033 virtual void LIPS2Amp()=0; 00034 double WeightFunc(const double&); 00035 00036 00037 00038 00039 protected: 00040 00041 00042 double CosTheta,Phi;//lips parameters 00043 double ThetaMin,ThetaMax; 00044 double MaximumSubProcessValue,MaximumSubProcessCosTheta; 00045 double PhiMax,CosThetaMax,CosThetaMin; 00046 double PartonMass; 00047 bool dirty_weighting; 00048 double MassAtThetaScan; 00049 double Fudge; 00050 00051 00052 00053 00054 }; 00055 } 00056 00057 #endif