Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:29

0001 {
0002    #include "DataFormats/FWLite/interface/Handle.h"
0003 
0004    TFile file("/scratch/ratnikov/data/RelVal152BJets50-120_17X_jettrackassociation2.root");
0005 
0006    fwlite::Event ev(&file);
0007    for( ev.toBegin();
0008           ! ev.atEnd();
0009           ++ev) {
0010      fwlite::Handle<reco::CaloJetCollection> jets;
0011      jets.getByLabel(ev,"iterativeCone5CaloJets");
0012      const reco::JetTracksAssociation::Container* jet2tracksVX = reco::JetTracksAssociation::getByLabel (ev,"ic5JetTracksAssociatorAtVertex", 0, 0);;
0013      const reco::JetTracksAssociation::Container* jet2tracksCALO = reco::JetTracksAssociation::getByLabel (ev,"ic5JetTracksAssociatorAtCaloFace", 0, 0);
0014      const reco::JetExtendedAssociation::Container* jetExtend = reco::JetExtendedAssociation::getByLabel (ev,"ic5JetExtender", 0, 0);
0015    //now can access data
0016    std::cout << "Total jets: " << jets->size() << std::endl;
0017      for (unsigned j = 0; j < jets->size(); ++j) {
0018        std::cout << "Jet #" << j << std::endl
0019          << ((*jets)[j]).print() << std::endl;
0020        
0021        std::cout << "Associated tracks at VX: " << reco::JetTracksAssociation::tracksNumber (*jet2tracksVX, (*jets)[j]) 
0022          << ", sumPt: " << reco::JetTracksAssociation::tracksP4 (*jet2tracksVX, (*jets)[j]).pt() << std::endl;
0023        reco::TrackRefVector tracks = reco::JetTracksAssociation::getValue (*jet2tracksVX, (*jets)[j]);
0024        for (unsigned t = 0; t < tracks.size(); ++t) {
0025      std::cout << "track p/pt/eta/phi: " << (tracks[t])->p() << '/' << (tracks[t])->pt() << '/' 
0026            << (tracks[t])->eta() << '/' << (tracks[t])->phi() << std::endl;
0027        }
0028        
0029        std::cout << "Associated tracks at CALO face: " << reco::JetTracksAssociation::tracksNumber (*jet2tracksCALO, (*jets)[j])
0030          << ", sumPt: " << reco::JetTracksAssociation::tracksP4 (*jet2tracksCALO, (*jets)[j]).pt() << std::endl;
0031        reco::TrackRefVector tracksAtFace = reco::JetTracksAssociation::getValue (*jet2tracksCALO, (*jets)[j]);
0032        for (unsigned t = 0; t < tracksAtFace.size(); ++t) {
0033      std::cout << "track p/pt/eta/phi: " << (tracksAtFace[t])->p() << '/' << (tracksAtFace[t])->pt() << '/' 
0034            << (tracksAtFace[t])->eta() << '/' << (tracksAtFace[t])->phi() << std::endl;
0035        }
0036        
0037        std::cout << "Jet extended information: " 
0038          << " at VX tracks " << reco::JetExtendedAssociation::tracksAtVertexNumber (*jetExtend, (*jets)[j])
0039          << ", sumPt: " << reco::JetExtendedAssociation::tracksAtVertexP4 (*jetExtend, (*jets)[j]).pt()
0040          << "; at CALO tracks " << reco::JetExtendedAssociation::tracksAtCaloNumber (*jetExtend, (*jets)[j])
0041          << ", sumPt: " << reco::JetExtendedAssociation::tracksAtCaloP4 (*jetExtend, (*jets)[j]).pt()
0042          << std::endl;
0043      }
0044      std::cout << "=================== event end ====================" << std::endl;
0045    }
0046 }