00001 #include "TBDataFormats/HcalTBObjects/interface/HcalTBEventPosition.h" 00002 00003 using namespace std; 00004 00005 HcalTBEventPosition::HcalTBEventPosition() : 00006 hfTableX_(-1e24), 00007 hfTableY_(-1e24), 00008 hfTableV_(-1e24), 00009 hbheTableEta_(-1000), 00010 hbheTablePhi_(-1000), 00011 ax_(), 00012 ay_(), 00013 bx_(), 00014 by_(), 00015 cx_(), 00016 cy_(), 00017 dx_(), 00018 dy_(), 00019 ex_(), 00020 ey_(), 00021 fx_(), 00022 fy_(), 00023 gx_(), 00024 gy_(), 00025 hx_(), 00026 hy_() { 00027 } 00028 00029 void HcalTBEventPosition::getChamberHits ( char chamberch, 00030 vector<double>& xvec, 00031 vector<double>& yvec ) const { 00032 switch (chamberch) { 00033 case 'A': xvec = ax_; yvec = ay_; break; 00034 case 'B': xvec = bx_; yvec = by_; break; 00035 case 'C': xvec = cx_; yvec = cy_; break; 00036 case 'D': xvec = dx_; yvec = dy_; break; 00037 case 'E': xvec = ex_; yvec = ey_; break; 00038 case 'F': xvec = fx_; yvec = fy_; break; 00039 case 'G': xvec = gx_; yvec = gy_; break; 00040 case 'H': xvec = hx_; yvec = hy_; break; 00041 default: 00042 cerr << "Unrecognized chamber character " << chamberch << endl; 00043 return; 00044 } 00045 } 00046 00047 void HcalTBEventPosition::setChamberHits ( char chamberch, 00048 const vector<double>& xvec, 00049 const vector<double>& yvec ) { 00050 switch (chamberch) { 00051 case 'A': ax_ = xvec; ay_ = yvec; break; 00052 case 'B': bx_ = xvec; by_ = yvec; break; 00053 case 'C': cx_ = xvec; cy_ = yvec; break; 00054 case 'D': dx_ = xvec; dy_ = yvec; break; 00055 case 'E': ex_ = xvec; ey_ = yvec; break; 00056 case 'F': fx_ = xvec; fy_ = yvec; break; 00057 case 'G': gx_ = xvec; gy_ = yvec; break; 00058 case 'H': hx_ = xvec; hy_ = yvec; break; 00059 default: 00060 cerr << "Unrecognized chamber character " << chamberch << endl; 00061 return; 00062 } 00063 } 00064 00065 void HcalTBEventPosition::setHFtableCoords( double x, double y, double v ) { 00066 hfTableX_ = x; 00067 hfTableY_ = y; 00068 hfTableV_ = v; 00069 } 00070 00071 void HcalTBEventPosition::setHBHEtableCoords( double eta, double phi ) { 00072 hbheTableEta_ = eta; 00073 hbheTablePhi_ = phi; 00074 } 00075 00076 ostream& operator<<(ostream& s, const HcalTBEventPosition& htbep) { 00077 char str[180]; 00078 00079 snprintf (str,180, "HF Table (X,Y,V) = (%f,%f,%f)\n", 00080 htbep.hfTableX(),htbep.hfTableY(),htbep.hfTableV()); 00081 s << str; 00082 00083 snprintf (str, 180, "HB/HE Table (eta,phi) = (%f,%f)\n", 00084 htbep.hbheTableEta(),htbep.hbheTablePhi()); 00085 s << str; 00086 00087 vector<double> xvec, yvec; 00088 vector<double>::const_iterator j; 00089 00090 htbep.getChamberHits('A', xvec, yvec); 00091 00092 s << "WC Ax: "; 00093 for (j=xvec.begin(); j!=xvec.end(); j++) { 00094 if (j!=xvec.begin()) s << ", "; 00095 s << *j; 00096 } 00097 s << endl; 00098 00099 s << "WC Ay: "; 00100 for (j=yvec.begin(); j!=yvec.end(); j++) { 00101 if (j!=yvec.begin()) s << ", "; 00102 s << *j; 00103 } 00104 s << endl; 00105 00106 htbep.getChamberHits('B', xvec, yvec); 00107 00108 s << "WC Bx: "; 00109 for (j=xvec.begin(); j!=xvec.end(); j++) { 00110 if (j!=xvec.begin()) s << ", "; 00111 s << *j; 00112 } 00113 s << endl; 00114 00115 s << "WC By: "; 00116 for (j=yvec.begin(); j!=yvec.end(); j++) { 00117 if (j!=yvec.begin()) s << ", "; 00118 s << *j; 00119 } 00120 s << endl; 00121 00122 htbep.getChamberHits('C', xvec, yvec); 00123 00124 s << "WC Cx: "; 00125 for (j=xvec.begin(); j!=xvec.end(); j++) { 00126 if (j!=xvec.begin()) s << ", "; 00127 s << *j; 00128 } 00129 s << endl; 00130 00131 s << "WC Cy: "; 00132 for (j=yvec.begin(); j!=yvec.end(); j++) { 00133 if (j!=yvec.begin()) s << ", "; 00134 s << *j; 00135 } 00136 s << endl; 00137 00138 htbep.getChamberHits('D', xvec, yvec); 00139 00140 s << "WC Dx: "; 00141 for (j=xvec.begin(); j!=xvec.end(); j++) { 00142 if (j!=xvec.begin()) s << ", "; 00143 s << *j; 00144 } 00145 s << endl; 00146 00147 s << "WC Dy: "; 00148 for (j=yvec.begin(); j!=yvec.end(); j++) { 00149 if (j!=yvec.begin()) s << ", "; 00150 s << *j; 00151 } 00152 s << endl; 00153 00154 htbep.getChamberHits('E', xvec, yvec); 00155 00156 s << "WC Ex: "; 00157 for (j=xvec.begin(); j!=xvec.end(); j++) { 00158 if (j!=xvec.begin()) s << ", "; 00159 s << *j; 00160 } 00161 s << endl; 00162 00163 s << "WC Ey: "; 00164 for (j=yvec.begin(); j!=yvec.end(); j++) { 00165 if (j!=yvec.begin()) s << ", "; 00166 s << *j; 00167 } 00168 s << endl; 00169 00170 htbep.getChamberHits('F', xvec, yvec); 00171 00172 s << "WC Fx: "; 00173 for (j=xvec.begin(); j!=xvec.end(); j++) { 00174 if (j!=xvec.begin()) s << ", "; 00175 s << *j; 00176 } 00177 s << endl; 00178 00179 s << "WC Fy: "; 00180 for (j=yvec.begin(); j!=yvec.end(); j++) { 00181 if (j!=yvec.begin()) s << ", "; 00182 s << *j; 00183 } 00184 s << endl; 00185 00186 htbep.getChamberHits('G', xvec, yvec); 00187 00188 s << "WC Gx: "; 00189 for (j=xvec.begin(); j!=xvec.end(); j++) { 00190 if (j!=xvec.begin()) s << ", "; 00191 s << *j; 00192 } 00193 s << endl; 00194 00195 s << "WC Gy: "; 00196 for (j=yvec.begin(); j!=yvec.end(); j++) { 00197 if (j!=yvec.begin()) s << ", "; 00198 s << *j; 00199 } 00200 s << endl; 00201 00202 htbep.getChamberHits('H', xvec, yvec); 00203 00204 s << "WC Hx: "; 00205 for (j=xvec.begin(); j!=xvec.end(); j++) { 00206 if (j!=xvec.begin()) s << ", "; 00207 s << *j; 00208 } 00209 s << endl; 00210 00211 s << "WC Hy: "; 00212 for (j=yvec.begin(); j!=yvec.end(); j++) { 00213 if (j!=yvec.begin()) s << ", "; 00214 s << *j; 00215 } 00216 s << endl; 00217 00218 return s; 00219 }