00001 #ifndef RAD_TVCrossPart
00002 #define RAD_TVCrossPart
00003
00004 #include "TEvent.h"
00005 #include "TDFun.h"
00006
00007 class TVCrossPart{
00008 protected:
00009 unsigned int fNPart;
00010 TEvent *fEvent;
00011 TDFun *fD;
00012 bool fHardPhoton;
00013 bool fZeroVP;
00014 bool fNoFSR;
00015 public:
00016 TVCrossPart(){};
00017 virtual ~TVCrossPart(){};
00018 virtual void Init(){};
00019 virtual double GetValue(const unsigned int){return 0;};
00020 void PrintEvent(){fEvent->Print();}
00021 inline void GetEvent(double &p0, double &t0, double &ph0,
00022 double &p1, double &t1, double &ph){
00023 fEvent->GetEvent(p0, t0, ph0, p1, t1, ph);
00024 }
00025 inline void GetEvent(double *m, int &n){
00026 fEvent->GetEvent(m,n);
00027 }
00028 inline TEvent *GetEvent(){return fEvent;}
00029 unsigned int GetNPart(){return fNPart;}
00030 virtual void SetThetaMin(const double &)=0;
00031 virtual void SetHardPhoton(const bool &x){fHardPhoton = x;}
00032 void SetZeroVP(){fZeroVP = true;}
00033 void SetDefaultVP(){fZeroVP = false;}
00034 void SetNoFSR(){fNoFSR = true;}
00035 virtual double BornShift(const double&, const double&, const double&)=0;
00036 double BornCrossSection(const double&);
00037 };
00038
00039 #endif //#ifndef RAD_TVCrossPart