#include <memory>
#include <string>
#include <cstdlib>
#include <sstream>
#include <fstream>
#include <iostream>
#include "FWCore/FWLite/interface/AutoLibraryLoader.h"
#include "DataFormats/PatCandidates/interface/Jet.h"
#include "TopQuarkAnalysis/Examples/bin/NiceStyle.cc"
#include "TopQuarkAnalysis/Examples/interface/RootSystem.h"
#include "TopQuarkAnalysis/Examples/interface/RootHistograms.h"
#include "TopQuarkAnalysis/Examples/interface/RootPostScript.h"
Go to the source code of this file.
Functions | |
int | main (int argc, char *argv[]) |
Definition at line 17 of file TopJetFWLiteAnalyzer.cc.
References TestMuL1L2Filter_cff::cerr, GenMuonPlsPt100GeV_cfg::cout, AutoLibraryLoader::enable(), lat::endl(), relval_parameters_module::energy, eta, pfTauBenchmarkGeneric_cfi::jets, phi, and setNiceStyle().
00018 { 00019 if( argc<3 ){ 00020 // ------------------------------------------------- 00021 std::cerr << "ERROR:: " 00022 << "Wrong number of arguments! Please specify:" << std::endl 00023 << " * filepath" << std::endl 00024 << " * process name" << std::endl; 00025 // ------------------------------------------------- 00026 return -1; 00027 } 00028 00029 // load framework libraries 00030 gSystem->Load( "libFWCoreFWLite" ); 00031 AutoLibraryLoader::enable(); 00032 00033 // set nice style for histograms 00034 setNiceStyle(); 00035 00036 // define some histograms 00037 TH1I* noJets = new TH1I("noJets", "N_{Jets}", 10, 0 , 10 ); 00038 TH1F* ptJets = new TH1F("ptJets", "pt_{Jets}", 100, 0.,300.); 00039 TH1F* enJets = new TH1F("enJets", "energy_{Jets}",100, 0.,300.); 00040 TH1F* etaJets = new TH1F("etaJets","eta_{Jets}", 100, -3., 3.); 00041 TH1F* phiJets = new TH1F("phiJets","phi_{Jets}", 100, -5., 5.); 00042 00043 // ------------------------------------------------- 00044 std::cout << "open file: " << argv[1] << std::endl; 00045 // ------------------------------------------------- 00046 TFile* inFile = TFile::Open(argv[1]); 00047 TTree* events_= 0; 00048 if( inFile ) inFile->GetObject("Events", events_); 00049 if( events_==0 ){ 00050 // ------------------------------------------------- 00051 std::cerr << "ERROR:: " 00052 << "Unable to retrieve TTree Events!" << std::endl 00053 << " Eighter wrong file name or the the tree doesn't exists" << std::endl; 00054 // ------------------------------------------------- 00055 return -1; 00056 } 00057 00058 // acess branch of elecs 00059 char jetsName[50]; 00060 sprintf(jetsName, "patJets_selectedLayer1Jets__%s.obj", argv[2]); 00061 TBranch* jets_ = events_->GetBranch( jetsName ); assert( jets_!=0 ); 00062 00063 // loop over events and fill histograms 00064 std::vector<pat::Jet> jets; 00065 int nevt = events_->GetEntries(); 00066 00067 // ------------------------------------------------- 00068 std::cout << "start looping " << nevt << " events..." << std::endl; 00069 // ------------------------------------------------- 00070 for(int evt=0; evt<nevt; ++evt){ 00071 // set branch address 00072 jets_->SetAddress( &jets ); 00073 // get event 00074 jets_ ->GetEntry( evt ); 00075 events_->GetEntry( evt, 0 ); 00076 00077 // ------------------------------------------------- 00078 if(evt>0 && !(evt%10)) std::cout << " processing event: " << evt << std::endl; 00079 // ------------------------------------------------- 00080 00081 // fill histograms 00082 noJets->Fill(jets.size()); 00083 for(unsigned idx=0; idx<jets.size(); ++idx){ 00084 // fill histograms 00085 ptJets ->Fill(jets[idx].pt() ); 00086 enJets ->Fill(jets[idx].energy()); 00087 etaJets->Fill(jets[idx].eta() ); 00088 phiJets->Fill(jets[idx].phi() ); 00089 } 00090 } 00091 // ------------------------------------------------- 00092 std::cout << "close file" << std::endl; 00093 // ------------------------------------------------- 00094 inFile->Close(); 00095 00096 // save histograms to file 00097 TFile outFile( "analyzeJets.root", "recreate" ); 00098 outFile.mkdir("analyzeJet"); 00099 outFile.cd("analyzeJet"); 00100 noJets ->Write( ); 00101 ptJets ->Write( ); 00102 enJets ->Write( ); 00103 etaJets->Write( ); 00104 phiJets->Write( ); 00105 outFile.Close(); 00106 00107 // free allocated space 00108 delete noJets; 00109 delete ptJets; 00110 delete enJets; 00111 delete etaJets; 00112 delete phiJets; 00113 00114 return 0; 00115 }