00001 #include "PrintMcInfo/PrintMcInfo.h" 00002 using namespace std; 00003 00004 00005 void PrintMcInfo::printDigi(ofstream& os) 00006 { 00007 00008 os<< '\t' <<setw(40)<<"MdcDigi"<<setw(30)<<"TofDigi"<<setw(29)<<"EmcDigi"<<"MucDig"<<endl; 00009 os<< '\t' <<"(layer , wire, trkIndex)"<<" "<<"(B/EC, layer, phi_module, trkIndex)"<<" "<<"(B/EC, theta, phi, trkIndex)"<<" "<<"(B/EC, segment, layer, strip, trkIndex)"<<endl; 00010 00011 00012 SmartDataPtr<MdcDigiCol> mdcCol(eventSvc(),"/Event/Digi/MdcDigiCol"); 00013 SmartDataPtr<TofDigiCol> tofCol(eventSvc(),"/Event/Digi/TofDigiCol"); 00014 SmartDataPtr<EmcDigiCol> emcCol(eventSvc(),"/Event/Digi/EmcDigiCol"); 00015 SmartDataPtr<MucDigiCol> mucCol(eventSvc(),"/Event/Digi/MucDigiCol"); 00016 00017 MdcDigiCol::const_iterator it_mdc = mdcCol->begin(); 00018 TofDigiCol::const_iterator it_tof = tofCol->begin(); 00019 EmcDigiCol::const_iterator it_emc = emcCol->begin(); 00020 MucDigiCol::const_iterator it_muc = mucCol->begin(); 00021 00022 vector<MdcDigiCol::const_iterator> vmdc; 00023 vector<TofDigiCol::const_iterator> vtof; 00024 vector<EmcDigiCol::const_iterator> vemc; 00025 vector<MucDigiCol::const_iterator> vmuc; 00026 00027 00028 if(mdcCol->size() != 0) 00029 { 00030 for(;it_mdc != mdcCol->end();it_mdc++) 00031 { 00032 vmdc.push_back(it_mdc); 00033 } 00034 } 00035 if(tofCol->size() != 0) 00036 { 00037 for(;it_tof != tofCol->end();it_tof++) 00038 { 00039 vtof.push_back(it_tof); 00040 } 00041 } 00042 00043 if(emcCol->size() != 0) 00044 { 00045 for(;it_emc != emcCol->end();it_emc++) 00046 { 00047 vemc.push_back(it_emc); 00048 } 00049 } 00050 00051 if(mucCol->size() != 0) 00052 { 00053 for(;it_muc != mucCol->end();it_muc++) 00054 { 00055 vmuc.push_back(it_muc); 00056 } 00057 } 00058 00059 00060 for(int i=0;;i++) 00061 { 00062 bool bmdc=(i>vmdc.size())?true:false; 00063 bool btof=(i>vtof.size())?true:false; 00064 bool bemc=(i>vemc.size())?true:false; 00065 bool bmuc=(i>vmuc.size())?true:false; 00066 if((i>=vmdc.size())&&(i>=vtof.size())&&(i>=vemc.size())&&(i>=vmuc.size())) break; 00067 for (int m = 0; m < 8; m++) os<<" "; 00068 if(vmdc.size()>0) 00069 { 00070 if(i<vmdc.size()) 00071 { 00072 const Identifier ident_mdc = (*vmdc[i])->identify(); 00073 os<<setw(6)<<MdcID::layer(ident_mdc); 00074 os<<setw(6)<<MdcID::wire(ident_mdc); 00075 os<<setw(15)<<(*vmdc[i])->getTrackIndex(); 00076 }else{for (int m = 0; m < 27; m++) os<<" ";} 00077 }else{for (int m = 0; m < 27; m++) os<<" ";} 00078 00079 00080 if(vtof.size()>0) 00081 { 00082 if(i<vtof.size()) 00083 { 00084 const Identifier ident_tof =(*vtof[i])->identify(); 00085 if(TofID::barrel_ec(ident_tof)==1){os<<"B "<<" ";} 00086 if(TofID::barrel_ec(ident_tof)==0){os<<"E_E"<<" ";} 00087 if(TofID::barrel_ec(ident_tof)==2){os<<"W_E"<<" ";} 00088 os<<setw(6)<<TofID::layer(ident_tof); 00089 os<<setw(6)<<TofID::phi_module(ident_tof); 00090 os<<setw(22)<<(*vtof[i])->getTrackIndex(); 00091 }else{for (int m = 0; m < 39; m++) os<<" ";} 00092 }else{for (int m = 0; m < 39; m++) os<<" ";} 00093 00094 00095 if(vemc.size()>0) 00096 { 00097 if(i<vemc.size()) 00098 { 00099 const Identifier ident_emc = (*vemc[i])->identify(); 00100 if(EmcID::barrel_ec(ident_emc)==1){os<<"B "<<" ";} 00101 if(EmcID::barrel_ec(ident_emc)==0){os<<"E_E"<<" ";} 00102 if(EmcID::barrel_ec(ident_emc)==2){os<<"W_E"<<" ";} 00103 os<<setw(6)<<EmcID::theta_module(ident_emc); 00104 os<<setw(6)<<EmcID::phi_module(ident_emc); 00105 os<<setw(12)<<(*vemc[i])->getTrackIndex(); 00106 }else{for (int m = 0; m < 29; m++) os<<" ";} 00107 }else{for (int m = 0; m < 29; m++) os<<" ";} 00108 00109 if(vmuc.size()>0) 00110 { 00111 if(i<vmuc.size()) 00112 { 00113 const Identifier ident_muc = (*vmuc[i])->identify(); 00114 if(MucID::barrel_ec(ident_muc)==1){os<<"B "<<" ";} 00115 if(MucID::barrel_ec(ident_muc)==0){os<<"E_E"<<" ";} 00116 if(MucID::barrel_ec(ident_muc)==2){os<<"W_E"<<" ";} 00117 os<<setw(6)<<MucID::segment(ident_muc); 00118 os<<setw(6)<<MucID::layer(ident_muc); 00119 os<<setw(6)<<MucID::strip(ident_muc); 00120 os<<setw(6)<<(*vmuc[i])->getTrackIndex(); 00121 os<<endl; 00122 }else{ os<<endl;} 00123 }else{os<<endl;} 00124 00125 } 00126 vmdc.clear(); 00127 vtof.clear(); 00128 vemc.clear(); 00129 vmuc.clear(); 00130 }