CMS 3D CMS Logo

TopJetFWLiteAnalyzer.cc File Reference

#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[])


Function Documentation

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 }


Generated on Tue Jun 9 17:56:00 2009 for CMSSW by  doxygen 1.5.4