#include <IKinematicDumper.h>
Collaboration diagram for Atlfast::IKinematicDumper:
Public Member Functions | |
IKinematicDumper (const std::string &name, ISvcLocator *pSvcLocator) | |
virtual | ~IKinematicDumper () |
virtual StatusCode | initialize () |
virtual StatusCode | execute () |
virtual StatusCode | finalize () |
Private Member Functions | |
void | dump (const IKinematic *) const |
void | header () const |
Private Attributes | |
std::string | m_clusterLocation |
std::string | m_jetLocation |
std::string | m_cellLocation |
std::string | m_imuonLocation |
std::string | m_nimuonLocation |
std::string | m_ielectronLocation |
std::string | m_nielectronLocation |
std::string | m_iphotonLocation |
std::string | m_niphotonLocation |
TesIO * | m_tesIO |
std::string | m_mcLocation |
Collection names to be dumped are specified by job options. Dumping is performed via generalised IKinematicDumper::dump function.
Definition at line 51 of file IKinematicDumper.h.
Atlfast::IKinematicDumper::IKinematicDumper | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Standard Athena-Algorithm Constructor
Definition at line 36 of file IKinematicDumper.cxx.
00037 : Algorithm( name, pSvcLocator ){ 00038 00039 00040 // Default paths for entities in the TES 00041 m_clusterLocation = "/Event/AtlfastClusters"; 00042 m_jetLocation = "/Event/AtlfastJets"; 00043 m_cellLocation = "/Event/AtlfastCells"; 00044 m_imuonLocation = "/Event/AtlfastIsolatedMuons"; 00045 m_nimuonLocation = "/Event/AtlfastNonIsolatedMuons"; 00046 m_ielectronLocation = "/Event/AtlfastIsolatedElectrons"; 00047 m_nielectronLocation = "/Event/AtlfastNonIsolatedElectrons"; 00048 m_iphotonLocation = "/Event/AtlfastIsolatedPhotons"; 00049 m_niphotonLocation = "/Event/AtlfastNonIsolatedPhotons"; 00050 00051 declareProperty( "clusterLocation", m_clusterLocation ) ; 00052 declareProperty( "jetLocation", m_jetLocation ) ; 00053 declareProperty( "cellLocation", m_cellLocation ) ; 00054 declareProperty( "imuonLocation", m_imuonLocation ) ; 00055 declareProperty( "nimuonLocation", m_nimuonLocation ) ; 00056 declareProperty( "ielectronLocation", m_ielectronLocation ) ; 00057 declareProperty( "nielectronLocation", m_nielectronLocation ) ; 00058 declareProperty( "iphotonLocation", m_iphotonLocation ) ; 00059 declareProperty( "niphotonLocation", m_niphotonLocation ) ; 00060 00061 }
Atlfast::IKinematicDumper::~IKinematicDumper | ( | ) | [virtual] |
StatusCode Atlfast::IKinematicDumper::initialize | ( | ) | [virtual] |
Standard Athena-Algorithm method
Definition at line 71 of file IKinematicDumper.cxx.
00072 { 00073 MsgStream log( messageService(), name() ) ; 00074 log<<MSG::DEBUG<<"Initialising "<<endreq; 00075 00076 //get the Global Event Data using singleton pattern 00077 GlobalEventData* ged = GlobalEventData::Instance(); 00078 // load the location of the MC in StoreGate 00079 m_mcLocation = ged -> mcLocation(); 00080 00081 //set up TesIO 00082 // m_tesIO = new TesIO(eventDataService()); 00083 m_tesIO = new TesIO(m_mcLocation, ged->justHardScatter()); 00084 00085 return StatusCode::SUCCESS ; 00086 }
StatusCode Atlfast::IKinematicDumper::execute | ( | ) | [virtual] |
Standard Athena-Algorithm method
Definition at line 105 of file IKinematicDumper.cxx.
00106 { 00107 //................................ 00108 // make a message logging stream 00109 00110 MsgStream log( messageService(), name() ) ; 00111 log<<MSG::DEBUG<<"Executing "<<endreq; 00112 00113 00114 std::vector<ReconstructedParticle*>::const_iterator rp_iter; 00115 00116 //IsolatedPhotons: read from TES and dump 00117 std::vector<ReconstructedParticle*> iphotons; 00118 m_tesIO->copy<ReconstructedParticleCollection>(iphotons, m_iphotonLocation); 00119 std::sort(iphotons.begin(), iphotons.end(), SortAttribute::AscendingEta()); 00120 std::cout<<"Dumping Isolated Photons "<<iphotons.size()<<std::endl; 00121 std::cout<<"--------------------------- "<<std::endl; 00122 rp_iter = iphotons.begin(); 00123 this->header(); 00124 for(;rp_iter!=iphotons.end();++rp_iter) this->dump(*rp_iter); 00125 00126 //NonIsolatedPhotons: read from TES and dump 00127 std::vector<ReconstructedParticle*> niphotons; 00128 m_tesIO->copy<ReconstructedParticleCollection> (niphotons, m_niphotonLocation); 00129 std::sort(niphotons.begin(), niphotons.end(), SortAttribute::AscendingEta()); 00130 std::cout<<"Dumping NonIsolated Photons "<<niphotons.size()<<std::endl; 00131 std::cout<<"------------------------------ "<<std::endl; 00132 rp_iter = niphotons.begin(); 00133 this->header(); 00134 for(;rp_iter!=niphotons.end();++rp_iter) this->dump(*rp_iter); 00135 00136 //IsolatedElectrons: read from TES and dump 00137 std::vector<ReconstructedParticle*> ielectrons; 00138 m_tesIO->copy<ReconstructedParticleCollection>(ielectrons, m_ielectronLocation); 00139 std::sort(ielectrons.begin(), ielectrons.end(), SortAttribute::AscendingEta()); 00140 std::cout<<"Dumping Isolated Electrons "<<ielectrons.size()<<std::endl; 00141 std::cout<<"--------------------------- "<<std::endl; 00142 rp_iter = ielectrons.begin(); 00143 this->header(); 00144 for(;rp_iter!=ielectrons.end();++rp_iter) this->dump(*rp_iter); 00145 00146 //NonIsolatedElectrons: read from TES and dump 00147 std::vector<ReconstructedParticle*> nielectrons; 00148 m_tesIO->copy<ReconstructedParticleCollection> (nielectrons, m_nielectronLocation); 00149 std::sort(nielectrons.begin(), nielectrons.end(), SortAttribute::AscendingEta()); 00150 std::cout<<"Dumping NonIsolated Electrons "<<nielectrons.size()<<std::endl; 00151 std::cout<<"------------------------------ "<<std::endl; 00152 rp_iter = nielectrons.begin(); 00153 this->header(); 00154 for(;rp_iter!=nielectrons.end();++rp_iter) this->dump(*rp_iter); 00155 00156 00157 00158 //IsolatedMuons: read from TES and dump 00159 std::vector<ReconstructedParticle*> imuons; 00160 m_tesIO->copy<ReconstructedParticleCollection>(imuons, m_imuonLocation); 00161 std::sort(imuons.begin(), imuons.end(), SortAttribute::AscendingEta()); 00162 std::cout<<"Dumping Isolated Muons "<<imuons.size()<<std::endl; 00163 std::cout<<"----------------------- "<<std::endl; 00164 rp_iter = imuons.begin(); 00165 this->header(); 00166 for(;rp_iter!=imuons.end();++rp_iter) this->dump(*rp_iter); 00167 00168 00169 // std::cout<<"Interface comparison "<<imuons.size()<<std::endl; 00170 // std::cout<<"------------------- "<<std::endl; 00171 // for(rp_iter = imuons.begin(); rp_iter!=imuons.end(); ++rp_iter) { 00172 // this->iki4comp(*rp_iter); 00173 // } 00174 00175 00176 //NonIsolatedMuons: read from TES and dump 00177 std::vector<ReconstructedParticle*> nimuons; 00178 m_tesIO->copy<ReconstructedParticleCollection> (nimuons, m_nimuonLocation); 00179 std::sort(nimuons.begin(), nimuons.end(), SortAttribute::AscendingEta()); 00180 std::cout<<"Dumping NonIsolated Muons "<<nimuons.size()<<std::endl; 00181 std::cout<<"-------------------------- "<<std::endl; 00182 rp_iter = nimuons.begin(); 00183 this->header(); 00184 for(;rp_iter!=nimuons.end();++rp_iter) this->dump(*rp_iter); 00185 00186 // std::cout<<"Interface comparison "<<nimuons.size()<<std::endl; 00187 // std::cout<<"------------------- "<<std::endl; 00188 // for(rp_iter = nimuons.begin(); rp_iter!=nimuons.end(); ++rp_iter) { 00189 // this->iki4comp(*rp_iter); 00190 // } 00191 00192 //Clusters: read from TES and dump 00193 std::vector<ICluster*> clusters; 00194 m_tesIO->copy<IClusterCollection> (clusters, m_clusterLocation); 00195 std::sort(clusters.begin(), clusters.end(), SortAttribute::AscendingEta()); 00196 std::cout<<"Dumping Clusters "<<clusters.size()<<std::endl; 00197 std::cout<<"------------------- "<<std::endl; 00198 std::vector<ICluster*>::const_iterator cl_iter = clusters.begin(); 00199 this->header(); 00200 for(;cl_iter!=clusters.end();++cl_iter) this->dump(*cl_iter); 00201 00202 00203 // std::cout<<"Interface comparison "<<clusters.size()<<std::endl; 00204 // std::cout<<"------------------- "<<std::endl; 00205 // for(cl_iter = clusters.begin(); cl_iter!=clusters.end(); ++cl_iter) { 00206 // this->iki4comp(*cl_iter); 00207 // } 00208 00209 00210 00211 //Jets: read from TES and dump 00212 std::vector<Jet*> jets; 00213 m_tesIO->copy<JetCollection>(jets, m_jetLocation); 00214 std::sort(jets.begin(), jets.end(), SortAttribute::AscendingEta()); 00215 std::cout<<"Dumping Jets "<<jets.size()<<std::endl; 00216 std::cout<<"------------------- "<<std::endl; 00217 std::vector<Jet*>::const_iterator jet_iter = jets.begin(); 00218 this->header(); 00219 for(;jet_iter!=jets.end();++jet_iter) this->dump(*jet_iter); 00220 00221 // std::cout<<"Interface comparison "<<jets.size()<<std::endl; 00222 // std::cout<<"------------------- "<<std::endl; 00223 // for(jet_iter = jets.begin(); jet_iter!=jets.end(); ++jet_iter) { 00224 // this->iki4comp(*jet_iter); 00225 // } 00226 00227 //Cells: read from TES and dump 00228 std::vector<ITwoCptCell*> cells; 00229 m_tesIO->copy<ITwoCptCellCollection>(cells, m_cellLocation); 00230 std::sort(cells.begin(), cells.end(), SortAttribute::AscendingEta()); 00231 std::cout<<"Dumping Cells "<<cells.size()<<std::endl; 00232 std::cout<<"------------------- "<<std::endl; 00233 std::vector<ITwoCptCell*>::const_iterator cell_iter = cells.begin(); 00234 this->header(); 00235 for(;cell_iter!=cells.end();++cell_iter) this->dump(*cell_iter); 00236 00237 // std::cout<<"Interface comparison "<<cells.size()<<std::endl; 00238 // std::cout<<"------------------- "<<std::endl; 00239 // for(cell_iter = cells.begin(); cell_iter!=cells.end(); ++cell_iter) { 00240 // this->iki4comp(*cell_iter); 00241 // } 00242 00243 log<<MSG::INFO<<"End of execute "<<std::endl; 00244 return StatusCode::SUCCESS; 00245 }
StatusCode Atlfast::IKinematicDumper::finalize | ( | ) | [virtual] |
Standard Athena-Algorithm method
Definition at line 92 of file IKinematicDumper.cxx.
00093 { 00094 // .. put any finalisation in here... 00095 00096 return StatusCode::SUCCESS ; 00097 }
void Atlfast::IKinematicDumper::dump | ( | const IKinematic * | ) | const [private] |
Performs formatted dump of IKinematic
Definition at line 251 of file IKinematicDumper.cxx.
00251 { 00252 cout<<setiosflags(ios::fixed); 00253 cout<<std::setprecision(3); 00254 cout 00255 <<std::setw(8)<<std::setprecision(3)<<p->momentum().pseudoRapidity()<<" " 00256 <<std::setw(8)<<std::setprecision(3)<<p->momentum().phi()<<" " 00257 <<std::setw(8)<<std::setprecision(3)<<p->momentum().perp()<<" " 00258 <<std::setw(8)<<std::setprecision(3)<<p->momentum().e()<<" " 00259 <<endl; 00260 }
void Atlfast::IKinematicDumper::header | ( | ) | const [private] |
Dumps a short header
Definition at line 247 of file IKinematicDumper.cxx.
00247 { 00248 cout<<" eta phi pt e"<<endl; 00249 cout<<"-----------------------------------"<<endl; 00250 }
std::string Atlfast::IKinematicDumper::m_clusterLocation [private] |
TES input locations
Definition at line 81 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_jetLocation [private] |
Definition at line 82 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_cellLocation [private] |
Definition at line 83 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_imuonLocation [private] |
Definition at line 84 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_nimuonLocation [private] |
Definition at line 85 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_ielectronLocation [private] |
Definition at line 86 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_nielectronLocation [private] |
Definition at line 87 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_iphotonLocation [private] |
Definition at line 88 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_niphotonLocation [private] |
Definition at line 89 of file IKinematicDumper.h.
TesIO* Atlfast::IKinematicDumper::m_tesIO [private] |
For accessing StoreGate
Definition at line 91 of file IKinematicDumper.h.
std::string Atlfast::IKinematicDumper::m_mcLocation [private] |
Definition at line 97 of file IKinematicDumper.h.