File indexing completed on 2025-08-05 08:12:36
0001 #include "sPHElectronv1.h"
0002
0003 #include <trackbase_historic/SvtxTrack.h>
0004 #include <trackbase/TrkrDefs.h>
0005
0006 #include <cmath>
0007 #include <utility> // for swap
0008
0009 sPHElectronv1::sPHElectronv1()
0010 {
0011 _id = 99999;
0012 _charge = 0;
0013 _px = 0.;
0014 _py = 0.;
0015 _pz = 0.;
0016 _emce = 0.;
0017 _dphi = 99999.;
0018 _deta = 99999.;
0019 _e3x3 = 0.;
0020 _e5x5 = 0.;
0021
0022 _chi2 = 99999.;
0023 _ndf = 0;
0024 _zvtx = 99999.;
0025 _dca2d = 99999.;
0026 _dca2d_error = 99999.;
0027 _dca3d_xy = 99999.;
0028 _dca3d_z = 99999.;
0029
0030 _nmvtx = 0;
0031 _ntpc = 0;
0032
0033 _cemc_ecore = 0.;
0034 _cemc_chi2 = 99999.;
0035 _cemc_prob = 99999.;
0036 _cemc_dphi = 99999.;
0037 _cemc_deta = 99999.;
0038 _hcalin_e = 99999.;
0039 _hcalin_dphi = 99999.;
0040 _hcalin_deta = 99999.;
0041
0042 }
0043
0044 sPHElectronv1::sPHElectronv1(const SvtxTrack* trk) {
0045 _id = trk->get_id();
0046 _charge = trk->get_charge();
0047 _px = trk->get_px();
0048 _py = trk->get_py();
0049 _pz = trk->get_pz();
0050 _dphi = trk->get_cal_dphi(SvtxTrack::CAL_LAYER::CEMC);
0051 _deta = trk->get_cal_deta(SvtxTrack::CAL_LAYER::CEMC);
0052 _emce = trk->get_cal_cluster_e(SvtxTrack::CAL_LAYER::CEMC);
0053 _e3x3 = trk->get_cal_energy_3x3(SvtxTrack::CAL_LAYER::CEMC);
0054 _e5x5 = trk->get_cal_energy_5x5(SvtxTrack::CAL_LAYER::CEMC);
0055
0056 _chi2 = trk->get_chisq();
0057 _ndf = trk->get_ndf();
0058 _zvtx = trk->get_z();
0059 _dca2d = trk->get_dca2d();
0060 _dca2d_error = trk->get_dca2d_error();
0061 _dca3d_xy = trk->get_dca3d_xy();
0062 _dca3d_z = trk->get_dca3d_z();
0063
0064 _cemc_ecore = 0.;
0065 _cemc_chi2 = 99999.;
0066 _cemc_prob = 99999.;
0067 _cemc_dphi = trk->get_cal_dphi(SvtxTrack::CAL_LAYER::CEMC);
0068 _cemc_deta = trk->get_cal_deta(SvtxTrack::CAL_LAYER::CEMC);
0069 _hcalin_e = trk->get_cal_cluster_e(SvtxTrack::CAL_LAYER::HCALIN);
0070 _hcalin_dphi = trk->get_cal_dphi(SvtxTrack::CAL_LAYER::HCALIN);
0071 _hcalin_deta = trk->get_cal_deta(SvtxTrack::CAL_LAYER::HCALIN);
0072
0073 _nmvtx = 0;
0074 _ntpc = 0;
0075 for (SvtxTrack::ConstClusterKeyIter iter = trk->begin_cluster_keys();
0076 iter != trk->end_cluster_keys();
0077 ++iter)
0078 {
0079 TrkrDefs::cluskey cluster_key = *iter;
0080 int trackerid = TrkrDefs::getTrkrId(cluster_key);
0081 if(trackerid==0) _nmvtx++;
0082 if(trackerid==2) _ntpc++;
0083 }
0084 }
0085
0086 sPHElectronv1::sPHElectronv1(const sPHElectronv1& electron)
0087 {
0088 *this = electron;
0089 return;
0090 }
0091
0092 sPHElectronv1& sPHElectronv1::operator=(const sPHElectronv1& electron)
0093 {
0094 _id = electron.get_id();
0095 _charge = electron.get_charge();
0096 _px = electron.get_px();
0097 _py = electron.get_py();
0098 _pz = electron.get_pz();
0099 _dphi = electron.get_dphi();
0100 _deta = electron.get_deta();
0101 _emce = electron.get_emce();
0102 _e3x3 = electron.get_e3x3();
0103 _e5x5 = electron.get_e5x5();
0104
0105 _chi2 = electron.get_chi2();
0106 _ndf = electron.get_ndf();
0107 _zvtx = electron.get_zvtx();
0108 _dca2d = electron.get_dca2d();
0109 _dca2d_error = electron.get_dca2d_error();
0110 _dca3d_xy = electron.get_dca3d_xy();
0111 _dca3d_z = electron.get_dca3d_z();
0112
0113 _nmvtx = electron.get_nmvtx();
0114 _ntpc = electron.get_ntpc();
0115
0116 _cemc_ecore = electron.get_cemc_ecore();
0117 _cemc_chi2 = electron.get_cemc_chi2();
0118 _cemc_prob = electron.get_cemc_prob();
0119 _cemc_dphi = electron.get_cemc_dphi();
0120 _cemc_deta = electron.get_cemc_deta();
0121 _hcalin_e = electron.get_hcalin_e();
0122 _hcalin_dphi = electron.get_hcalin_dphi();
0123 _hcalin_deta = electron.get_hcalin_deta();
0124
0125 return *this;
0126 }
0127
0128 void sPHElectronv1::identify(std::ostream& os) const
0129 {
0130 os << " sPHElectronv1 object" << std::endl;
0131 return;
0132 }
0133
0134 int sPHElectronv1::isValid() const
0135 {
0136 if(_charge!=0) {return 1;} else {return 0;}
0137 }
0138