Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
ntuple:ivf [2013/09/26 16:54] – [Work flow] clange | ntuple:ivf [2013/10/23 16:38] – [Steps for MSSM Hbb analysis] clange |
---|
cvs co -r V01-10-02 RecoBTag/SecondaryVertex | cvs co -r V01-10-02 RecoBTag/SecondaryVertex |
| |
For a very low-level analysis (which is also partly outdated and therefore not recommended) need to check out two additional packages: | To use the same approach as the VHbb group, one also needs to check out two additional packages: |
| |
#cvs co -d IVF/BCandidateProducer UserCode/BbCorrelation/CMSSW/BAnalysis/BCandidateProducer | cvs co -d IVF/BCandidateProducer UserCode/BbCorrelation/CMSSW/BAnalysis/BCandidateProducer |
#cvs co -d ZSV/BAnalysis UserCode/ZSV/BAnalysis/ | cvs co -d ZSV/BAnalysis UserCode/ZSV/BAnalysis/ |
#scram b -c | scram b -c |
| |
Last command needed to update really old IVF package config files to BuildFile.xml files. | Last command needed to update really old IVF package config files to BuildFile.xml files. |
| |
==== Work flow ==== | ===== Work flow ===== |
| |
| ==== General vertexing ==== |
| |
In order to get the IVF to work one has to perform inclusive vertexing by including [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/inclusiveVertexing_cff.py|inclusiveVertexing_cff.py]]: | In order to get the IVF to work one has to perform inclusive vertexing by including [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/inclusiveVertexing_cff.py|inclusiveVertexing_cff.py]]: |
process.load('RecoVertex/AdaptiveVertexFinder/inclusiveVertexing_cff') | process.load('RecoVertex/AdaptiveVertexFinder/inclusiveVertexing_cff') |
| |
The IVF runs on pre-selected vertices. These are selected using the inclusive vertex finder from the [[https://github.com/cms-sw/cmssw/tree/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder|adaptive vertex finder package]]: | The IVF runs on pre-selected vertices. After a coarse pre-clustering based on track distances and angles, vertices are reconstructed with the Adaptive fitter (outlier resistant, iterative procedure). This is done using the inclusive vertex finder from the [[https://github.com/cms-sw/cmssw/tree/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder|adaptive vertex finder package]]: |
| |
* Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/InclusiveVertexFinder.cc|InclusiveVertexFinder.cc]] | * Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/InclusiveVertexFinder.cc|InclusiveVertexFinder.cc]] |
* Configuration file: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/inclusiveVertexFinder_cfi.py|inclusiveVertexFinder_cfi.py]] | * Configuration file: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/inclusiveVertexFinder_cfi.py|inclusiveVertexFinder_cfi.py]] |
| |
These vertices are then merged depending on their significance in distance and the fraction of tracks they share: | These vertices are then merged depending on their significance in distance and the fraction of tracks they share (in particular vertices with a large fraction of common tracks are merged): |
| |
* Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc|VertexMerger.cc]] | * Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc|VertexMerger.cc]] |
* minSignificance = 2 | * minSignificance = 2 |
| |
In the next step it is made sure that all tracks belong to one vertex only: | In the next step it is made sure that all tracks belong either to a secondary vertex or the primary vertex only optimising the assignment of tracks to vertices, followed by another vertex fit: |
| |
* [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/TrackVertexArbitrator.cc|TrackVertexArbitrator.cc]] | * [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/TrackVertexArbitrator.cc|TrackVertexArbitrator.cc]] |
* [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/trackVertexArbitrator_cfi.py|trackVertexArbitrator_cfi.py]] | * [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/python/trackVertexArbitrator_cfi.py|trackVertexArbitrator_cfi.py]] |
| |
These vertices are then merged depending on their significance in distance and the fraction of tracks they share: | These refitted vertices are then again merged depending on their significance in distance and the fraction of tracks they share: |
| |
* Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc|VertexMerger.cc]] | * Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc|VertexMerger.cc]] |
* minSignificance = 10 | * minSignificance = 10 |
| |
==== Useful links ==== | ==== b-vertex filtering ==== |
partly used in VHbb ntuples: | |
*https://twiki.cern.ch/twiki/bin/viewauth/CMS/VHbbAnalysisNewCode#NtupleV42_CMSSW_5_3_3_patch2 | The optimised vertices undergo a b-vertex filter: |
| |
| * Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoBTag/SecondaryVertex/plugins/BVertexFilter.cc|BVertexFilter.cc]] |
| * Configuration file: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoBTag/SecondaryVertex/python/bVertexFilter_cfi.py|bVertexFilter_cfi.py]] |
| |
| ==== b to charm decay vertex merging ==== |
| |
| The b-to-charm decay vertex merging attempts to identify B to D meson decays and merges them based on DeltaR, the vertex mass, the angle between them and the relative transverse momentum: |
| |
| * Source code: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoBTag/SecondaryVertex/plugins/BtoCharmDecayVertexMerger.cc|BtoCharmDecayVertexMerger.cc]] |
| * Configuration file: [[https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoBTag/SecondaryVertex/python/bToCharmDecayVertexMerger_cfi.py|bToCharmDecayVertexMerger_cfi.py]] |
| |
| ===== Useful links ===== |
| partly used in VHbb ntuples: |
| * VHbb recipe: https://twiki.cern.ch/twiki/bin/viewauth/CMS/VHbbAnalysisNewCode#NtupleV42_CMSSW_5_3_3_patch2 |
* http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/UserCode/VHbbAnalysis/HbbAnalyzer/test/patData.py?revision=1.9&view=markup | * http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/UserCode/VHbbAnalysis/HbbAnalyzer/test/patData.py?revision=1.9&view=markup |
| |
| |
twiki documentation: | twiki documentation: |
* https://twiki.cern.ch/twiki/bin/viewauth/CMS/CSVIVF | |
* official recipe: https://twiki.cern.ch/twiki/bin/viewauth/CMS/InclusiveVertexFinderRecipes | * official recipe: https://twiki.cern.ch/twiki/bin/viewauth/CMS/InclusiveVertexFinderRecipes |
* VHbb recipe: https://twiki.cern.ch/twiki/bin/viewauth/CMS/VHbbAnalysisNewCode | * combination with CSV tagger: https://twiki.cern.ch/twiki/bin/viewauth/CMS/CSVIVF |
| |
CMSSW: | CMSSW: |
* http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/RecoVertex/AdaptiveVertexFinder/ | * https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoVertex/AdaptiveVertexFinder/ |
| * https://github.com/cms-sw/cmssw/blob/CMSSW_5_3_X/RecoBTag/SecondaryVertex/ |
===== Current errors ===== | ===== Current errors ===== |
| |
none | none |
| |
| |
| ===== Steps for MSSM Hbb analysis === |
| |
| cvs co -r V02-02-06 RecoVertex/AdaptiveVertexFinder |
| cvs co -r V01-10-02 RecoBTag/SecondaryVertex |
| |
| In the python steering file: |
| |
| ## IVF inclusive vertexing |
| process.load('RecoVertex/AdaptiveVertexFinder/inclusiveVertexing_cff') |
| #process.load('RecoBTag/SecondaryVertex/inclusiveSecondaryVertexFinderTagInfos_cfi') |
| #process.load("RecoBTag/SecondaryVertex/bVertexFilter_cfi") |
| process.load('RecoBTag/Configuration/RecoBTag_cff') |
| |
| process.IVFpreProcessing = cms.Sequence(process.inclusiveVertexing * process.inclusiveMergedVerticesFiltered * process.bToCharmDecayVertexMerged) |
| process.IVFpostProcessing = cms.Sequence(process.btagging * process.inclusiveSecondaryVertexFinderTagInfosFiltered * process.simpleInclusiveSecondaryVertexHighEffBJetTags * process.simpleInclusiveSecondaryVertexHighPurBJetTags * process.doubleSecondaryVertexHighEffBJetTags) |
| |
| Not sure whether one should also explicitely add: |
| |
| process.ak5JetTracksAssociatorAtVertex * |
| |
| before b-tagging since the track-jet association is mentioned in the recipe. |
| |
| Check: |
| RecoBTag/SecondaryVertex/test/runIVFAnalyzer_cff.py |
| RecoBTag/SecondaryVertex/test/IVFAnalyzer.cc |
| |
| |