@@ -543,11 +543,37 @@ struct muonQa {
543543 registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxisFull}});
544544 registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxis}});
545545 registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxisFull}});
546+ // MCH-MID tracks with MCH acceptance cuts and combinations from the top and bottom halfs of MCH
547+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxis}});
548+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxisFull}});
549+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxis}});
550+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxisFull}});
551+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxis}});
552+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxisFull}});
553+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxis}});
554+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxisFull}});
555+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxis}});
556+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxisFull}});
557+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxis}});
558+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxisFull}});
546559 // MCH-MID tracks with MFT acceptance cuts
547560 registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxis}});
548561 registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxisFull}});
549562 registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxis}});
550563 registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxisFull}});
564+ // MCH-MID tracks with MFT acceptance cuts and combinations from the top and bottom halfs of MCH
565+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxis}});
566+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxisFull}});
567+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxis}});
568+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxisFull}});
569+ registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxis}});
570+ registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxisFull}});
571+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxis}});
572+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_TT" , " #mu^{+}#mu^{-} invariant mass, top-top" , {HistType::kTH1F , {invMassAxisFull}});
573+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxis}});
574+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_TB" , " #mu^{+}#mu^{-} invariant mass, top-bottom or bottom-top" , {HistType::kTH1F , {invMassAxisFull}});
575+ registryDimuon.add (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxis}});
576+ registryDimuon.add (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_BB" , " #mu^{+}#mu^{-} invariant mass, bottom-bottom" , {HistType::kTH1F , {invMassAxisFull}});
551577 // Good MFT-MCH-MID tracks with MCH parameters and MFT acceptance cuts
552578 registryDimuon.add (" dimuon/same-event/invariantMass_MuonKine_GlobalMatchesCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxis}});
553579 registryDimuon.add (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMatchesCuts" , " #mu^{+}#mu^{-} invariant mass" , {HistType::kTH1F , {invMassAxisFull}});
@@ -1816,7 +1842,6 @@ struct muonQa {
18161842 double phi = fgValuesMCH.phi * 180 / TMath::Pi ();
18171843 int quadrant = GetQuadrantPhi (phi);
18181844
1819-
18201845 // // MCH-MFT track residuals
18211846 if (mfttrack.has_collision ()) {
18221847 auto & fgValuesCollMatched = collisions.at (mfttrack.collisionId ());
@@ -2189,6 +2214,13 @@ struct muonQa {
21892214 if ((sign1 * sign2) >= 0 )
21902215 continue ;
21912216
2217+ int posQuadrant = (sign1 > 0 ) ? GetQuadrantPhi (muonTrack1.phi () * 180.0 / TMath::Pi ())
2218+ : GetQuadrantPhi (muonTrack2.phi () * 180.0 / TMath::Pi ());
2219+ int negQuadrant = (sign1 < 0 ) ? GetQuadrantPhi (muonTrack1.phi () * 180.0 / TMath::Pi ())
2220+ : GetQuadrantPhi (muonTrack2.phi () * 180.0 / TMath::Pi ());
2221+ int posTopBottom = (posQuadrant == 0 || posQuadrant == 1 ) ? 0 : 1 ;
2222+ int negTopBottom = (negQuadrant == 0 || negQuadrant == 1 ) ? 0 : 1 ;
2223+
21922224 bool goodMuonTracks = (IsGoodMuon (fgValuesMuon1, fgValuesMuonPV1) && IsGoodMuon (fgValuesMuon2, fgValuesMuonPV2));
21932225 bool goodGlobalMuonTracks = (IsGoodGlobalMuon (fgValuesMuon1, fgValuesMuonPV1) && IsGoodGlobalMuon (fgValuesMuon2, fgValuesMuonPV2));
21942226
@@ -2200,10 +2232,32 @@ struct muonQa {
22002232 // same-event case
22012233 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts" ))->Fill (mass);
22022234 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts" ))->Fill (mass);
2235+
2236+ if (posTopBottom == 0 && negTopBottom == 0 ) {
2237+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TT" ))->Fill (mass);
2238+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TT" ))->Fill (mass);
2239+ } else if ((posTopBottom == 0 && negTopBottom == 1 ) || (posTopBottom == 1 && negTopBottom == 0 )) {
2240+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TB" ))->Fill (mass);
2241+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TB" ))->Fill (mass);
2242+ } else if (posTopBottom == 1 && negTopBottom == 1 ) {
2243+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_BB" ))->Fill (mass);
2244+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_BB" ))->Fill (mass);
2245+ }
22032246 } else {
22042247 // event-mixing case
22052248 registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts" ))->Fill (mass);
22062249 registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts" ))->Fill (mass);
2250+
2251+ if (posTopBottom == 0 && negTopBottom == 0 ) {
2252+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_TT" ))->Fill (mass);
2253+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_TT" ))->Fill (mass);
2254+ } else if ((posTopBottom == 0 && negTopBottom == 1 ) || (posTopBottom == 1 && negTopBottom == 0 )) {
2255+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_TB" ))->Fill (mass);
2256+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_TB" ))->Fill (mass);
2257+ } else if (posTopBottom == 1 && negTopBottom == 1 ) {
2258+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_MuonCuts_BB" ))->Fill (mass);
2259+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_MuonCuts_BB" ))->Fill (mass);
2260+ }
22072261 }
22082262 }
22092263
@@ -2212,10 +2266,32 @@ struct muonQa {
22122266 // same-event case
22132267 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts" ))->Fill (mass);
22142268 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts" ))->Fill (mass);
2269+
2270+ if (posTopBottom == 0 && negTopBottom == 0 ) {
2271+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_TT" ))->Fill (mass);
2272+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_TT" ))->Fill (mass);
2273+ } else if ((posTopBottom == 0 && negTopBottom == 1 ) || (posTopBottom == 1 && negTopBottom == 0 )) {
2274+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_TB" ))->Fill (mass);
2275+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_TB" ))->Fill (mass);
2276+ } else if (posTopBottom == 1 && negTopBottom == 1 ) {
2277+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_GlobalMuonCuts_BB" ))->Fill (mass);
2278+ registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_GlobalMuonCuts_BB" ))->Fill (mass);
2279+ }
22152280 } else {
22162281 // event-mixing case
22172282 registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts" ))->Fill (mass);
22182283 registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts" ))->Fill (mass);
2284+
2285+ if (posTopBottom == 0 && negTopBottom == 0 ) {
2286+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_TT" ))->Fill (mass);
2287+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_TT" ))->Fill (mass);
2288+ } else if ((posTopBottom == 0 && negTopBottom == 1 ) || (posTopBottom == 1 && negTopBottom == 0 )) {
2289+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_TB" ))->Fill (mass);
2290+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_TB" ))->Fill (mass);
2291+ } else if (posTopBottom == 1 && negTopBottom == 1 ) {
2292+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMass_MuonKine_GlobalMuonCuts_BB" ))->Fill (mass);
2293+ registryDimuon.get <TH1>(HIST (" dimuon/mixed-event/invariantMassFull_MuonKine_GlobalMuonCuts_BB" ))->Fill (mass);
2294+ }
22192295 }
22202296 }
22212297 }
0 commit comments