/* * SolidIBDKinematics.C * ANRA * * Created by Gregory Lehaut on 26/11/14. * Copyright 2014 LPC Caen, CNRS/IN2P3. All rights reserved. * */ #ifndef SolidIBDKinematics_h #define SolidIBDKinematics_h 1 #include #include #include "TStyle.h" #include #include "TGraph.h" #include "TGraphErrors.h" #include "TMultiGraph.h" #include "TCanvas.h" #include "TFrame.h" #include "TPad.h" #include "TLegend.h" #include "TH1D.h" #include "TH2D.h" #include "TFile.h" ///////////////////////////////////////////////////////////////////////////// /* Class definition */ class protonibd{ protected: double _mnu; double _mp; double _me; double _mn; double _s; double _betaCM; double _gammaCM; double _plab; double _pf; double _Tnu; double _Tp; double _Tn; double _Te; double _thetae; double _thetan; double _costhetastar; public: protonibd(); virtual ~protonibd(); //Kinematic function; void computeInputKinematic(); virtual double getCX( double enu ); virtual void genereEvent( double enu ); //enu in MeV double getEmaxPositron( double enu); //MeV double getEminPositron( double enu); //MeV double getEminNeutron( double enu); //MeV double getEmaxNeutron( double enu); //MeV double getThreshold(); //MeV double getEPositron(){ return( _Te ); } //MeV double getENeutron(){ return( _Tn ); } //MeV double getThetaPositron(){ return( _thetae ); } //theta in pi double getThetaNeutron(){ return( _thetan ); } //theta in pi }; class protonibd_Vogel0 : public protonibd { protected: double _delta; double _sigma0; double _f; double _g; double _ve; double _Aparameter; double _Bparameter; double _costhetae; public: protonibd_Vogel0(); virtual ~protonibd_Vogel0(); virtual double getCX( double enu ); virtual void genereEvent( double enu ); //enu in MeV }; #endif