/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/PrintMcInfo/PrintMcInfo-00-00-03/src/Digi.cxx

Go to the documentation of this file.
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 }

Generated on Tue Nov 29 23:14:30 2016 for BOSS_7.0.2 by  doxygen 1.4.7