10 Jets_(cfg.getParameter<
edm::InputTag>(
"Jets")),
11 jecLevel_(cfg.getParameter<
std::
string>(
"jecLevel")),
12 patJetCorrFactors_(cfg.getParameter<
std::
string>(
"patJetCorrFactors")),
13 help_(cfg.getParameter<bool>(
"help"))
16 hists_[
"Response" ] = fs.
make<TH2F>(
"Response" ,
"response; #eta;p_{T}(reco)/p_{T}(gen)" , 5, -3.3, 3.3, 100, 0.4, 1.6);
21 Jets_(cfg.getParameter<
edm::InputTag>(
"Jets")),
25 help_(cfg.getParameter<bool>(
"help"))
28 hists_[
"Response" ] = fs.
make<TH2F>(
"Response" ,
"response; #eta;p_{T}(reco)/p_{T}(gen)" , 5, -3.3, 3.3, 100, 0.4, 1.6);
36 TFile*
file=
new TFile(
"myResponse"+TString(
jecLevel_)+
".root",
"RECREATE");
37 TProfile* prof =
hists_[
"Response" ]->ProfileX();
52 event.getByLabel(
Jets_, Jets);
55 for(std::vector<Jet>::const_iterator jet_it=Jets->begin(); jet_it!=Jets->end(); ++jet_it){
61 std::cout<<
"\n \n number of available JEC sets: "<< jet_it->availableJECSets().size() << std::endl;
62 for(
unsigned int k=0;
k< jet_it->availableJECSets().size(); ++
k){
63 std::cout<<
"\n \n available JEC Set: "<< jet_it->availableJECSets()[
k] << std::endl;
65 std::cout<<
"\n \n*** You found out which JEC Sets exist! Now correct it in your config file."<<std::endl;
66 std::cout<<
"\n \n number of available JEC levels "<< jet_it->availableJECLevels().size() << std::endl;
67 for(
unsigned int k=0;
k< jet_it->availableJECLevels().size(); ++
k){
70 std::cout<<
"\n \n**** You did it correctly congratulations!!!! And you found out which JEC levels are saved within the jets. Correct this in your configuration file." <<std::endl;
74 if(jet_it->genParticlesSize()>0){
75 hists_[
"Response" ]->Fill( jet_it->correctedJet(
jecLevel_).eta(), jet_it->correctedJet(
jecLevel_).pt()/ jet_it->genParticle(0)->pt());
76 std::cout<<
"\n \n**** You did it correctly congratulations!!!! "<< std::endl;
AnalysisTasksAnalyzerJEC(const edm::ParameterSet &cfg, TFileDirectory &fs)
default constructor
edm::InputTag Jets_
input tag for mouns
void analyze(const edm::EventBase &event)
everything that needs to be done during the event loop
virtual ~AnalysisTasksAnalyzerJEC()
default destructor
Abstract base class for FWLite and EDM friendly analyzers.
T * make(const Args &...args) const
make new ROOT object
edm::EDGetTokenT< std::vector< pat::Jet > > JetsToken_
std::string patJetCorrFactors_
std::map< std::string, TH2 * > hists_
histograms
unsigned int jetInEvents_