JSFBeamGenerationCain


class description - source file - inheritance tree

class JSFBeamGenerationCain : public JSFBeamGeneration


    public:
JSFBeamGenerationCain() JSFBeamGenerationCain(const JSFBeamGenerationCain&) virtual ~JSFBeamGenerationCain() Double_t BS1DFunction(Double_t* x, Double_t* p) Double_t BS2DFunction(Double_t* x, Double_t* p) static TClass* Class() virtual void GenBeamStrahlung(Double_t& eminus, Double_t& eplus) virtual void GenBeamStrahlung(TLorentzVector& ecm, TLorentzVector& vtx) Double_t GenBSEnergy1(const Double_t eini, const Double_t xrand = -1.0) Bool_t GenBSEnergy2(Double_t& eminus, Double_t& eplus) virtual void GenEnergySpread(Double_t& eminus, Double_t& eplus) Double_t GetBndOrder() TF2* GetBS2DFunction() Double_t GetBSEnergy2Weight(const Double_t xbsm, const Double_t xbsp, Double_t& eminus, Double_t& eplus) JSFBeamGenerationCain::EIBType GetIBType() virtual Double_t GetIBWidth() void GetLumRatio(Double_t* ratio) Double_t GetLumRatio(Int_t i) Double_t* GetPCnt() Int_t GetPCntSize() virtual Double_t GetWeight(const Double_t random_initial_eminus, const Double_t random_initial_eplus, const Double_t random_bs_eminus, const Double_t random_bs_eplus, Double_t& eminus, Double_t& eplus) virtual TClass* IsA() const void MakeBSMap() Double_t PolFunc6(Double_t* x, Double_t* p) virtual void Print() void SetBSParameters(const Int_t beamdataformat, const TString parametername, const Double_t luminosity, const Double_t nominalE, const Double_t* lumratio, const Double_t bndorder, const Double_t* pedge1, const Double_t edgelimit, const Int_t fnedge2, const Double_t* pedge2, const Int_t nfits, const Int_t npmax, const Double_t* pcnt) void SetIBParameters(const Double_t width, const JSFBeamGenerationCain::EIBType type = kUniform) void SetIBParameters(const Double_t nominalE, const Double_t width, const JSFBeamGenerationCain::EIBType type = kUniform) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members


    protected:
Double_t fLumRatio[3] Luminosity of each part. Double_t fBndOrder < 10^(fBndOrder) region is uniform Double_t fPEdge1[3] parabola parameter of low X region. Double_t fPEdgeLimit Boundary of lowX and HighX. Int_t fNEdge2 Number of parameters used to describe high X region Double_t* fPEdge2 [fNEdge2] Parameters to describe high X region. Int_t fNfits Number of fit parameter Int_t fNpmax Max number of parameter Int_t fPCntSize Size of fPCnt Array Double_t* fPCnt [fPCntSize] Parameters for central part. JSFBeamGenerationCain::EIBType fIBType Type of nominal energy spread Double_t fIBWidth Relative width(sigma) of initial beam spread Int_t fMdiv No. of division in one axis Int_t fMapsize size of array for random generation (fMdiv*fMdiv) Double_t* fMxmin [fMapsize] xmin in each cell Double_t* fMxmax [fMapsize] xmax in each cell Double_t* fMymin [fMapsize] ymin in each cell Double_t* fMymax [fMapsize] ymax in each cell Double_t* fMaint [fMapsize] Acumulated integral of bin Double_t* fMvmax [fMapsize] Maximum of each bin TF2* fBS2DFunction ! BS2DFunction Double_t fTotalInt Total integration public:
static const JSFBeamGenerationCain::EIBType kUniform static const JSFBeamGenerationCain::EIBType kGauss

Class Description

 JSFBeamGeneration

 Generate JLC beam momentum

$Id: JSFBeamGeneration.cxx,v 1.2 2003/02/04 01:18:33 miyamoto Exp $



JSFBeamGenerationCain()

~JSFBeamGenerationCain()

void SetBSParameters(const Int_t beamdataformat, const TString parametername, const Double_t luminosity, const Double_t nominalE, const Double_t lumratio[3], const Double_t bndorder, const Double_t pedge1[3], const Double_t edgelimit, const Int_t fnedge2, const Double_t pedge2[], const Int_t nfits, const Int_t npmax, const Double_t pcnt[])

void SetIBParameters( const Double_t width, const EIBType type)

void SetIBParameters(const Double_t nominalE, const Double_t width, const EIBType type )

void Print()

void GenEnergySpread(Double_t &eminus, Double_t &eplus)

void GenBeamStrahlung(Double_t &eminus, Double_t &eplus)

Double_t GetWeight(const Double_t xebm, const Double_t xebp, const Double_t xbsm, const Double_t xbsp, Double_t &xeminus, Double_t &xeplus)
 Using the input four random number, generate beam energy, eminus and eplus.
 Pointer to bases object is used to get additional random number
 xebm, xebp, xbsm, xbsp must be uniform random number between 0 to 1.

 Output energies, xeminus, xeplus are scaled energy [0,1+alpha]

void GenBeamStrahlung(TLorentzVector &pecm, TLorentzVector &pvtx)

Double_t GenBSEnergy1(const Double_t eini, const Double_t xrand)

Bool_t GenBSEnergy2(Double_t &eminus, Double_t &eplus)
 When both electron and positron have energy loss.

Double_t GetBSEnergy2Weight(const Double_t xbsm, const Double_t xbsp, Double_t &eminus, Double_t &eplus)
 When both electron and positron have energy loss.

Double_t BS1DFunction(Double_t *x, Double_t *p)

Double_t BS2DFunction(Double_t *xi, Double_t *par)

Double_t PolFunc6(Double_t *xi, Double_t *par)

void MakeBSMap()
 Create a data for beam generation.



Inline Functions


                                  void GetLumRatio(Double_t* ratio)
                              Double_t GetLumRatio(Int_t i)
                              Double_t GetBndOrder()
        JSFBeamGenerationCain::EIBType GetIBType()
                              Double_t GetIBWidth()
                             Double_t* GetPCnt()
                                 Int_t GetPCntSize()
                                  TF2* GetBS2DFunction()
                               TClass* Class()
                               TClass* IsA() const
                                  void ShowMembers(TMemberInspector& insp, char* parent)
                                  void Streamer(TBuffer& b)
                                  void StreamerNVirtual(TBuffer& b)
                 JSFBeamGenerationCain JSFBeamGenerationCain(const JSFBeamGenerationCain&)


Last update: Tue Jan 20 15:55:47 2004


ROOT page - Home page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.