@@ -288,25 +288,28 @@ struct muonQa {
288288 registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta" , {HistType::kTH1F , {etaAxis}});
289289 registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta" , {HistType::kTH1F , {etaAxis}});
290290 // -- pT and eta
291- registryDimuon.add (" muon/TrackPt_TrackEtaPos" , " track pT and #eta" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
291+ registry.add (" muons/TrackPt_TrackEtaPos" , " track pT and #eta" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
292+ registry.add (" muons/TrackPt_TrackEtaNeg" , " track pT and #eta" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
292293 // top-bottom
293- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, top-top" , {HistType::kTH1F , {etaAxis}});
294- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, top-bottom or bottom-top" , {HistType::kTH1F , {etaAxis}});
295- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, bottom-bottom" , {HistType::kTH1F , {etaAxis}});
296- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, top-top" , {HistType::kTH1F , {etaAxis}});
297- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, top-bottom or bottom-top" , {HistType::kTH1F , {etaAxis}});
298- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, bottom-bottom" , {HistType::kTH1F , {etaAxis}});
299- // -- pT and eta
300- // MOET NOG
294+ registry.add (" muons/TrackEtaPos_T" , " MCH #mu^{+} track #eta, top MCH CH1" , {HistType::kTH1F , {etaAxis}});
295+ registry.add (" muons/TrackEtaPos_B" , " MCH #mu^{+} track #eta, bottom MCH CH1" , {HistType::kTH1F , {etaAxis}});
296+ registry.add (" muons/TrackEtaNeg_T" , " MCH #mu^{-} track #eta, top MCH CH1" , {HistType::kTH1F , {etaAxis}});
297+ registry.add (" muons/TrackEtaNeg_B" , " MCH #mu^{-} track #eta, bottom MCH CH1" , {HistType::kTH1F , {etaAxis}});
298+ // -- pT and eta
299+ registry.add (" muons/TrackPt_TrackEtaPos_T" , " track p_{T} and #eta, top MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
300+ registry.add (" muons/TrackPt_TrackEtaPos_B" , " track p_{T} and #eta, bottom MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
301+ registry.add (" muons/TrackPt_TrackEtaNeg_T" , " track p_{T} and #eta, top MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
302+ registry.add (" muons/TrackPt_TrackEtaNeg_B" , " track p_{T} and #eta, bottom MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
301303 // left-right
302- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, left-left" , {HistType::kTH1F , {etaAxis}});
303- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, left-right or right-left" , {HistType::kTH1F , {etaAxis}});
304- registry.add (" muons/TrackEtaPos" , " MCH #mu^{+} track #eta, right-right" , {HistType::kTH1F , {etaAxis}});
305- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, left-left" , {HistType::kTH1F , {etaAxis}});
306- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, left-right or right-left" , {HistType::kTH1F , {etaAxis}});
307- registry.add (" muons/TrackEtaNeg" , " MCH #mu^{-} track #eta, right-right" , {HistType::kTH1F , {etaAxis}});
304+ registry.add (" muons/TrackEtaPos_L" , " MCH #mu^{+} track #eta, left MCH CH1" , {HistType::kTH1F , {etaAxis}});
305+ registry.add (" muons/TrackEtaPos_R" , " MCH #mu^{+} track #eta, right MCH CH1" , {HistType::kTH1F , {etaAxis}});
306+ registry.add (" muons/TrackEtaNeg_L" , " MCH #mu^{-} track #eta, left MCH CH1" , {HistType::kTH1F , {etaAxis}});
307+ registry.add (" muons/TrackEtaNeg_R" , " MCH #mu^{-} track #eta, right MCH CH1" , {HistType::kTH1F , {etaAxis}});
308308 // -- pT and eta
309- // MOET NOG
309+ registry.add (" muons/TrackPt_TrackEtaPos_L" , " track p_{T} and #eta, top MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
310+ registry.add (" muons/TrackPt_TrackEtaPos_R" , " track p_{T} and #eta, bottom MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
311+ registry.add (" muons/TrackPt_TrackEtaNeg_L" , " track p_{T} and #eta, top MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
312+ registry.add (" muons/TrackPt_TrackEtaNeg_R" , " track p_{T} and #eta, bottom MCH CH1" , {HistType::kTH2F , {transverseMomentumAxis, etaAxis}});
310313
311314 // ======================
312315 // Global muons plots
@@ -1578,6 +1581,56 @@ struct muonQa {
15781581 registry.get <TH1>(HIST (" muons/TrackPhi" ))->Fill (fgValuesMCH.phi * 180.0 / TMath::Pi ());
15791582 registry.get <TH1>(HIST (" muons/TrackDCA" ))->Fill (std::sqrt (fgValuesMCH.dcaX * fgValuesMCH.dcaX + fgValuesMCH.dcaY * fgValuesMCH.dcaY ));
15801583 }
1584+
1585+ // muon origin for MCH top-bottom and left-right parts
1586+ if (IsGoodMuon (fgValuesMCH, fgValuesMCHpv, configMuons.fTrackChi2MchUp , configMuons.fPMchLow , configMuons.fPtMchLow , -1 .E10 , 1 .E10 , configMuons.fRabsLow , configMuons.fRabsUp , configMuons.fSigmaPdcaUp )) {
1587+ int Quadrant = GetQuadrantPhi (fgValuesMCH.phi * 180.0 / TMath::Pi ());
1588+ int TopBottom = (Quadrant == 0 || Quadrant == 1 ) ? 0 : 1 ;
1589+ int LeftRight = (Quadrant == 0 || Quadrant == 2 ) ? 0 : 1 ;
1590+ int PosNeg = fgValuesMCH.sign > 0 ? 0 : 1 ;
1591+ float eta = fgValuesMCH.eta ;
1592+ float pT = fgValuesMCH.pT ;
1593+
1594+ // same-event case
1595+ if (PosNeg == 0 ) {
1596+ registry.get <TH1>(HIST (" muons/TrackEtaPos" ))->Fill (eta);
1597+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaPos" ))->Fill (pT, eta);
1598+
1599+ if (TopBottom == 0 ) {
1600+ registry.get <TH1>(HIST (" muons/TrackEtaPos_T" ))->Fill (eta);
1601+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaPos_T" ))->Fill (pT, eta);
1602+ } else if (TopBottom == 1 ) {
1603+ registry.get <TH1>(HIST (" muons/TrackEtaPos_B" ))->Fill (eta);
1604+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaPos_B" ))->Fill (pT, eta);
1605+ }
1606+
1607+ if (LeftRight == 0 ) {
1608+ registry.get <TH1>(HIST (" muons/TrackEtaPos_L" ))->Fill (eta);
1609+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaPos_L" ))->Fill (pT, eta);
1610+ } else if (LeftRight == 1 ) {
1611+ registry.get <TH1>(HIST (" muons/TrackEtaPos_R" ))->Fill (eta);
1612+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaPos_R" ))->Fill (pT, eta);
1613+ }
1614+ } else if (PosNeg == 1 ) {
1615+ registry.get <TH1>(HIST (" muons/TrackEtaNeg" ))->Fill (eta);
1616+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaNeg" ))->Fill (pT, eta);
1617+ if (TopBottom == 0 ) {
1618+ registry.get <TH1>(HIST (" muons/TrackEtaNeg_T" ))->Fill (eta);
1619+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaNeg_T" ))->Fill (pT, eta);
1620+ } else if (TopBottom == 1 ) {
1621+ registry.get <TH1>(HIST (" muons/TrackEtaNeg_B" ))->Fill (eta);
1622+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaNeg_B" ))->Fill (pT, eta);
1623+ }
1624+
1625+ if (LeftRight == 0 ) {
1626+ registry.get <TH1>(HIST (" muons/TrackEtaNeg_L" ))->Fill (eta);
1627+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaNeg_L" ))->Fill (pT, eta);
1628+ } else if (LeftRight == 1 ) {
1629+ registry.get <TH1>(HIST (" muons/TrackEtaNeg_R" ))->Fill (eta);
1630+ registry.get <TH2>(HIST (" muons/TrackPt_TrackEtaNeg_R" ))->Fill (pT, eta);
1631+ }
1632+ }
1633+ }
15811634 }
15821635
15831636 if constexpr (static_cast <bool >(GlobalMuonFillMap)) {
@@ -2395,25 +2448,29 @@ struct muonQa {
23952448 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_pT_MuonKine_MuonCuts" ))->Fill (mass, pT);
23962449 registryDimuon.get <TH1>(HIST (" dimuon/same-event/etaPair_MuonKine_MuonCuts" ))->Fill (yPair);
23972450 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_etaPair_MuonKine_MuonCuts" ))->Fill (mass, yPair);
2451+ registryDimuon.get <TH2>(HIST (" dimuon/same-event/pT_etaPair_MuonKine_MuonCuts" ))->Fill (pT, yPair);
23982452
23992453 if (TopBottom1 == 0 && TopBottom2 == 0 ) {
24002454 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TT" ))->Fill (mass);
24012455 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TT" ))->Fill (mass);
24022456 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_pT_MuonKine_MuonCuts_TT" ))->Fill (mass, pT);
24032457 registryDimuon.get <TH1>(HIST (" dimuon/same-event/etaPair_MuonKine_MuonCuts_TT" ))->Fill (yPair);
24042458 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_etaPair_MuonKine_MuonCuts_TT" ))->Fill (mass, yPair);
2459+ registryDimuon.get <TH2>(HIST (" dimuon/same-event/pT_etaPair_MuonKine_MuonCuts_TT" ))->Fill (pT, yPair);
24052460 } else if ((TopBottom1 == 0 && TopBottom2 == 1 ) || (TopBottom1 == 1 && TopBottom2 == 0 )) {
24062461 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_TB" ))->Fill (mass);
24072462 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_TB" ))->Fill (mass);
24082463 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_pT_MuonKine_MuonCuts_TB" ))->Fill (mass, pT);
24092464 registryDimuon.get <TH1>(HIST (" dimuon/same-event/etaPair_MuonKine_MuonCuts_TB" ))->Fill (yPair);
24102465 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_etaPair_MuonKine_MuonCuts_TB" ))->Fill (mass, yPair);
2466+ registryDimuon.get <TH2>(HIST (" dimuon/same-event/pT_etaPair_MuonKine_MuonCuts_TB" ))->Fill (pT, yPair);
24112467 } else if (TopBottom1 == 1 && TopBottom2 == 1 ) {
24122468 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMass_MuonKine_MuonCuts_BB" ))->Fill (mass);
24132469 registryDimuon.get <TH1>(HIST (" dimuon/same-event/invariantMassFull_MuonKine_MuonCuts_BB" ))->Fill (mass);
24142470 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_pT_MuonKine_MuonCuts_BB" ))->Fill (mass, pT);
24152471 registryDimuon.get <TH1>(HIST (" dimuon/same-event/etaPair_MuonKine_MuonCuts_BB" ))->Fill (yPair);
24162472 registryDimuon.get <TH2>(HIST (" dimuon/same-event/invariantMass_etaPair_MuonKine_MuonCuts_BB" ))->Fill (mass, yPair);
2473+ registryDimuon.get <TH2>(HIST (" dimuon/same-event/pT_etaPair_MuonKine_MuonCuts_BB" ))->Fill (pT, yPair);
24172474 }
24182475
24192476 if (LeftRight1 == 0 && LeftRight2 == 0 ) {
0 commit comments