00001 // EventHeader implementation 00002 // 00003 00004 #include "AtlfastEvent/EventHeader.h" 00005 #include "AtlfastEvent/MCweightContainerCollection.h" 00006 #include "AtlfastEvent/MsgStreamDefs.h" 00007 00008 #include "GaudiKernel/MsgStream.h" 00009 #include <assert.h> 00010 00011 namespace Atlfast { 00012 MsgStream& operator << ( MsgStream& s, const EventHeader& e ){ 00013 s 00014 << "nElectrons: "<< e.nElectrons() <<"\n" 00015 << "nIsolatedMuons: "<< e.nIsolatedMuons() <<"\n" 00016 << "nMuons: "<< e.nMuons() <<"\n" 00017 << "nNonIsolatedMuons: "<< e.nNonIsolatedMuons() <<"\n" 00018 << "nPhotons: "<< e.nPhotons() <<"\n" 00019 << "nJets: "<< e.nJets() <<"\n" 00020 << "nBJets: "<< e.nBJets() <<"\n" 00021 << "nCJets: "<< e.nCJets() <<"\n" 00022 << "nTauJets: "<< e.nTauJets() <<"\n" 00023 << "jetCircularity: "<< e.jetCircularity() <<"\n" 00024 << "eventCircularity: "<< e.eventCircularity() <<"\n" 00025 << "thrust: "<< e.thrust() <<"\n" 00026 << "oblateness: "<< e.oblateness() <<"\n" 00027 << "pMiss: "<< e.pMiss() <<"\n" 00028 << "sumET: "<< e.sumET() <<"\n" 00029 << "pEscaped: "<< e.pEscaped() <<" " 00030 ; 00031 return s; 00032 } 00033 00034 MsgStream& operator << ( MsgStream& s, const EventHeader* const e ){ 00035 s<<*e; 00036 return s; 00037 } 00038 00039 MCweightContainer EventHeader::firstFewWeights(const int n) const { 00040 00041 assert(n>=0); 00042 00043 MCweightContainer weights(n, 0.); 00044 00045 if(!m_mcWeightContainers.empty()) { 00046 00047 MCweightContainer firstContainer = m_mcWeightContainers[0]; 00048 00049 00050 int nWeights = firstContainer.size(); 00051 if(nWeights>=n){ 00052 std::copy( 00053 firstContainer.begin(), 00054 firstContainer.begin()+n, 00055 weights.begin() 00056 ); 00057 }else{ 00058 std::copy( 00059 firstContainer.begin(), 00060 firstContainer.end(), 00061 weights.begin() 00062 ); 00063 00064 00065 } 00066 } 00067 00068 return weights; 00069 } 00070 00071 } // end of namespace bracket 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083