Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-06-29 07:05:50

0001 /**
0002  \file
0003  Implementation of class erhic::EventDis.
0004  
0005  \author    Thomas Burton 
0006  \date      2012-05-01
0007  \copyright 2012 Brookhaven National Lab
0008  */
0009 
0010 #include "eicsmear/erhic/EventDis.h"
0011 
0012 #include "eicsmear/erhic/Kinematics.h"
0013 
0014 namespace erhic {
0015 
0016 EventDis::~EventDis() { }
0017 
0018 /**
0019  \todo Consider initialising float fields to zero, not NAN.
0020  e.g. in smeared output, particles outside acceptance retain default values,
0021  therefore in e.g. jacquet-blondel calculations, those not detected screw
0022  up the calculation because they have E, p = NAN, not zero!
0023  */
0024 EventDis::EventDis()
0025 : x(NAN)
0026 , QSquared(NAN)
0027 , y(NAN)
0028 , WSquared(NAN)
0029 , nu(NAN)
0030 , yJB(NAN)
0031 , QSquaredJB(NAN)
0032 , xJB(NAN)
0033 , WSquaredJB(NAN)
0034 , yDA(NAN)
0035 , QSquaredDA(NAN)
0036 , xDA(NAN)
0037 , WSquaredDA(NAN) {
0038 }
0039 
0040 EventDis::EventDis(const EventDis& that)
0041 : VirtualEvent(that) {
0042   CopyKinematics(that);
0043 }
0044 
0045 EventDis& EventDis::operator=(const EventDis& that) {
0046   if (this != &that) {  // Protect against self-assignment
0047     CopyKinematics(that);
0048   }  // if
0049   return *this;
0050 }
0051 
0052 void EventDis::CopyKinematics(const EventDis& that) {
0053   SetLeptonKinematics(DisKinematics(that.x, that.y, that.nu,
0054                                     that.QSquared, that.WSquared));
0055   SetJacquetBlondelKinematics(DisKinematics(that.xJB, that.yJB, 0.,
0056                                             that.QSquaredJB, that.WSquaredJB));
0057   SetDoubleAngleKinematics(DisKinematics(that.xDA, that.yDA, 0.,
0058                                          that.QSquaredDA, that.WSquaredDA));
0059 }
0060 
0061 void EventDis::SetLeptonKinematics(const DisKinematics& kin) {
0062   x = kin.mX;
0063   QSquared = kin.mQ2;
0064   WSquared = kin.mW2;
0065   nu = kin.mNu;
0066   y = kin.mY;
0067 }
0068 
0069 void EventDis::SetJacquetBlondelKinematics(const DisKinematics& kin) {
0070   xJB = kin.mX;
0071   QSquaredJB = kin.mQ2;
0072   WSquaredJB = kin.mW2;
0073   yJB = kin.mY;
0074 }
0075 
0076 void EventDis::SetDoubleAngleKinematics(const DisKinematics& kin) {
0077   xDA = kin.mX;
0078   QSquaredDA = kin.mQ2;
0079   WSquaredDA = kin.mW2;
0080   yDA = kin.mY;
0081 }
0082 
0083 }  // namespace erhic