/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/Mcgpj/Mcgpj-00-01-04/src/code/inc/TRadCor.h

Go to the documentation of this file.
00001 #ifndef RAD_TRadCor
00002 #define RAD_TRadCor
00003 
00004 #include "TVCrossPart.h"
00005 #include "TKinemCut.h"
00006 
00007 class TRadCor{
00008 protected:
00009   unsigned int fNPart;   // number of cross-section parts
00010   unsigned int fNEvents; // number events to calculate integral
00011   double *fMax;        //[fNPart] array with maximum of matrix elements
00012   double *fMin;        //[fNPart] array with minimum of matrix elements must
00013                        // be greater than 0
00014   double *fSigma;      //[fNPart] array with fMax error
00015   double *fCross;      //[fNPart] array with part cross-section
00016   double *fCross2;     //[fNPart] array with part cross-section
00017   double *fECross;      //[fNPart] array with part cross-section
00018   double *fECross2;     //[fNPart] array with part cross-section
00019   double *fSM;         //[fNPart] array with part sum of matrix elements
00020   double *fSM2;        //[fNPart] array with part sum of matrix elements
00021   double *fPart;       //[fNPart]
00022   unsigned int *fNSim; //[fNPart] array with number of selected events
00023   unsigned int *fN; //[fNPart] array with number of selected events
00024   unsigned int *fWN; //[fNPart] array with number of selected events
00025   bool *fInList; // [fNPart] array of selected parts of cross section
00026   TVCrossPart *fMatrix; // reference to matrix elements 
00027   bool fNew;
00028   double fTheta_Aver_0; // special case of Theta for elactic
00029                         // cross-section to increase efficiency of
00030                         // bhabha generation
00031   bool fIsSmear;  // to smear or not to smear that is a question
00032   void SetSpecialCase(unsigned int i){
00033     if ( i == 0 && !fIsSmear )
00034       fMatrix->SetThetaMin(fTheta_Aver_0);
00035     else
00036       fMatrix->SetThetaMin(gCut->ThetaMin());
00037   }
00038 public:
00039   TRadCor();
00040   TRadCor(TVCrossPart*);
00041   ~TRadCor();
00042   
00043   void MakeMaximum(const unsigned int&);
00044   void MakeIntegral(const unsigned int&);
00045   void SetCuts(){};
00046   void SetAuxiliaryParameters(){}
00047   double Norm(const unsigned int &);
00048   void SetNEvents(const unsigned int &n){fNEvents = n;}
00049   void MakeAllMaximums();
00050   void MakeAllIntegrals();
00051   void Init();
00052   unsigned int MakeEvent();
00053   void MakePart();
00054   unsigned int GetNPart(){return fNPart;}
00055   double GetMax(unsigned int i){return fMax[i];}
00056   double GetMin(unsigned int i){return fMin[i];}
00057   unsigned int GetNSim(unsigned int i){return fNSim[i];}
00058   unsigned int GetN(unsigned int i){return fN[i];}
00059   unsigned int GetWN(unsigned int i){return fWN[i];}
00060   double GetCross(unsigned int i){return fCross[i];}
00061   double GetECross(unsigned int i){return fECross[i];}
00062   double GetCross2(unsigned int i){return fCross2[i];}
00063   double GetECross2(unsigned int i){return fECross2[i];}
00064   inline void GetEvent(double &p0, double &t0, double &ph0, 
00065                        double &p1, double &t1, double &ph){
00066     fMatrix->GetEvent(p0, t0, ph0, p1, t1, ph);
00067   }
00068   inline void MakeEvent(double &p0, double &t0, double &ph0, 
00069                         double &p1, double &t1, double &ph, unsigned int &ipart){
00070     ipart = MakeEvent();
00071     fMatrix->GetEvent(p0, t0, ph0, p1, t1, ph);
00072   }
00073   inline void MakeEvent(double *m, int &n){
00074     MakeEvent();
00075     fMatrix->GetEvent(m,n);    
00076   }
00077   inline TVCrossPart *GetCrossPart(){ return fMatrix;}
00078   void SetMType(const bool& x){fNew = x;}
00079   void SetSmear(const bool& x){fIsSmear =x;}
00080   void MakeCrossSection();
00081   void SetPartList(const bool *InList){
00082     for(unsigned int i=0; i<fNPart; i++) fInList[i] = InList[i];
00083   }
00084 };
00085 
00086 #endif //#ifndef RAD_TRadCor

Generated on Tue Nov 29 23:12:41 2016 for BOSS_7.0.2 by  doxygen 1.4.7