Matching trigger objects
Overview
Teaching: 10 min
Exercises: 0 minQuestions
Objectives
Learn how to access the trigger information stored in MiniAOD and NanoAOD
Learn what is trigger objects and how to access them
Measure trigger efficiency using the tag-and-probe method
Match trigger objects to offline objects
Trigger objects are physics objects(electrons,muons,jets,MET..etc) reconstructed at HLT and are used for making HLT decisions of each HLT path.
Offline objects are reconstructed offline, which in general has more precise reconstructions.
If we want to know whether an offline object(e.g. a muon) is responsible for firing the HLT, we can look for a trigger muon within a certain dR
of the offline muon.
Collection names
We can learn from the example in the analyze
function in SingleMuTrigAnalyzerMiniAOD.cc.
The offline objects are reconstructed primary vertices (offlineSlimmedPrimaryVertices) and offline-reconstructed muons (slimmedMuons).
The trigger object is trigMuons
, which we obtained from the TriggerObjectStandAloneCollection
from last episode.
Here we are not interested in primary vertices per se, we just need to get them because later we will use them in identification of “tight” muons.
Matcing by momentum direction dR
Question
Take a look at lines 231-286 in SingleMuTrigAnalyzerMiniAOD.cc, where you can find two for loops that iterate over the offline muons.
Since the second for loop is inside the first one, together these two for loops are going over all possible pairs of offline muons. The first muon in each pair is called “tag”, and the second is called “probe”, for reasons that will soon become apparent. Inside the loop, several selection criteria are placed on muons, such as cuts on pt and eta, tight identification, and isolation requirements.
Now that we have both trigger-level muons and offline-reconstructed muons, we can compare them with each other. In order to do this, we need to figure out which trigger muon corresponds to which offline muon. This is called trigger matching. In the code, trigger matching is performed both for tag muons (lines 245-248) and probe muons (lines 277-280). For tag muons, the matching code looks like this:
bool trigmatch_tag = false;
for (unsigned int itrig=0; itrig < trigMuons.size(); ++itrig) {
if (ROOT::Math::VectorUtil::DeltaR(muon_tag->p4(),trigMuons.at(itrig)) < dr_trigmatch) trigmatch_tag = true;
}
Since reconstruction of muon trajectory is less precise in HLT than in offline reconstruction, there might be a small difference between the directions of the trigger muon and the offline muon, even if they correspond to the same original real muon.
Therefore a DeltaR cone of 0.2 is used to geometrically match the trigger object and the offline object (dr_trigmatch = 0.2
).
Finally, if the two muons pass the selections in the code, and the tag muon passes the trigger matching, the invariant mass of this dimuon system is calculated and saved in a histogram:
LorentzVector dimuon = LorentzVector(muon_tag->p4() + muon_probe->p4());
hists_1d_["h_mll_allpairs"]->Fill(dimuon.M());
if (verbose_) cout << " - probe dimuon mass: " << dimuon.M() << endl;
if (dimuon.M() < 81. || dimuon.M() > 101.) continue;
hists_1d_["h_mll_cut"]->Fill(dimuon.M());
Use the
TBrowser
to open the filehistos_SingleMuTrigAnalyzer.root
and have a look at the histogramh_mll_allpairs
, which shows the dimuon invariant mass distribution of muon pairs that passed the selections.Question
Can you explain the shape of the distribution?
Key Points