1 / 8

Corrected jets in CMSSW

Corrected jets in CMSSW. Can run a FW module to correct jets Consistent with 1_2_0 release For Midpoint Cone R=0.5 and 0.7 For Iterative Cone R=0.5 Instructions: https://hypernews.cern.ch/HyperNews/CMS/get/JetMET/83.html Makes separate collections FW-based only

curt
Download Presentation

Corrected jets in CMSSW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Corrected jets in CMSSW • Can run a FW module to correct jets • Consistent with 1_2_0 release • For Midpoint Cone R=0.5 and 0.7 • For Iterative Cone R=0.5 • Instructions: https://hypernews.cern.ch/HyperNews/CMS/get/JetMET/83.html • Makes separate collections • FW-based only • FWLite version in the works (function)

  2. Editorial Comments • Making separate collections is overkill • p4(CorrectedJet) = C(PT, , , em/had, lumi,…) * p4(OriginalJet) • Why not store one number per jet, or just provide a function? • Function be easily made totally transparent to FWLite…. • This is one of the most obvious use-cases for FWLite! • Particularly because there are so many jet collections • Iterative vs MidPoint Cone, R=0.5 vs 0.7, Kt algorithm As well as so many possible levels/type of correction • Correct to particles in cone or to original parton? • Apply or don’t apply underlying event correction (pileup!)? • b-jets vs light quark jets? • Only calorimeter based vs tracking+calorimeter based (eFlow) • And my experience is that these can change quite rapidly • Every byte in AOD is precious….why waste them? <end of rant>

  3. Tried to use corrections Recipe seems to work • cvs co -r JetResponseV8 JetMETCorrections/MCJet • cvs co -r V00-00-07b RecoJets/JetAnalyzers • Add this incantation to your cmsRun cfg file • include "JetMETCorrections/MCJet/data/JetCorrections120mcone5.cff“ • Insert module (sequence?) JetCorrectionsMcone5 in your path • And out you get a new jet collection: corJetMcone5 • Provided you had the right collection to start with, of course

  4. Next: try to use it with our BBox • I made it work, but it was clunky • This is how I would like the jet BBox to function: // get vectors of uncorrected jets and corrected jets with no Pt cut cms1::Cuts jetCut; jetCut.ptmin = 0.; std::vector<const reco::CaloJet*> jets = jets.getJets(“mcone05”, jetCut); std::vector<const reco::CaloJet*> c_jets = jets.getJets(“correctedmcone05”, jetCut); • Then I have access to both corrected and uncorrected jets with a minimum of fuss • The mumbo-jumbo is all hidden

  5. This, however, is not how it works… • Current jet BBox allows me to access one-and-only-one jet collection at a time • It is possible to choose which one in a cfi file… • In order to access 2nd collection I had to go in and modify by hand • myModule/interface/myModuleFW.h • myModule/src/myModuleFW.cc • myModule/data/myModule.cfi • Jets/src/Jets.cc • Jets/interface/Jets.h …..and how to do it wasn’t immediately obvious …..and this was for FW only……  The Jets BBox is not black enough……

  6. Lesson • The Jet BBox should allow me to easily access several jet collections in a single job • The names of these jet collections will probably be a moving target  Must maintain flexibility • This may apply to other object types too Did not commit mods to access 2 jet collections because Dmytro tells me that things will change significantly • But I did convey to him what I think we need…..

  7. One random event ---- Event 2  ------------ Uncorrected Jets: Pt= 10.3196 Eta= -2.816 Phi = -0.8323 Pt= 5.40623 Eta= -3.48884 Phi = 0.0532513 Pt= 4.20876 Eta= -0.0143419 Phi = 2.61109 Pt= 3.95908 Eta= 4.08236 Phi = -2.07385 Pt= 3.24885 Eta= 1.51637 Phi = -2.80799 Pt= 2.73552 Eta= 2.37856 Phi = -0.179766 Pt= 1.19576 Eta= -0.4785 Phi = -0.392699 Pt= 1.02987 Eta= 3.2265 Phi = -0.436332 Pt= 1.00978 Eta= 1.0875 Phi = -1.61443 Corrected Jets: Pt= 19.8062 Eta= -2.816 Phi = -0.8323 Pt= 11.5128 Eta= -3.48884 Phi = 0.0532513 Pt= 14.1202 Eta= -0.0143419 Phi = 2.61109 Pt= 9.93978 Eta= 4.08236 Phi = -2.07385 Pt= 12.0436 Eta= 1.51637 Phi = -2.80799 Pt= 8.20876 Eta= 2.37856 Phi = -0.179766 Pt= 4.56752 Eta= -0.4785 Phi = -0.392699 Pt= 2.64958 Eta= 3.2265 Phi = -0.436332 Pt= 3.71985 Eta= 1.0875 Phi = -1.61443 Note: corrected jets appear to no longer be Pt ordered…

  8. One more (general) comment • Usage of BBoxes is now tied to TableMaker • Configured in TabeMaker cfg/cfi files • TableMaker is an example of a hi-level analysis class • There will be many more hi-level analysis classes for different studies as we proceed • All of these classes will need BBoxes • Right now a bit painful to instantiate new analysis • Need to either • Decouple BBoxes from TableMaker (hi-level anal. class) OR • Make it a easier to start a new analysis that uses BBoxes, eg, a hi-level-analysis base-class?

More Related