29 for (
const std::string
beam : {
"beamPosSigmaX",
"beamPosSigmaY",
"beamPosSigmaZ",
"beamPosSigmaXY"}) {
33 return StatusCode::SUCCESS;
62 Quality =
muon->quality();
68 tp =
muon->trackParticle(xAOD::Muon::ExtrapolatedMuonSpectrometerTrackParticle);
71 tp =
muon->trackParticle(xAOD::Muon::MuonSpectrometerTrackParticle);
82 deltaZ0 =
tp->z0() +
tp->vz() - pvtx->
z();
87 fill(
tool,
Author, Quality,
Type,
Eta,
Phi,
Pt, D0,
Z0, chi2ndof, deltaZ0, D0sig);
89 return StatusCode::SUCCESS;
139 for(
unsigned int n=0;
n<vecMuons.size();
n++) {
141 xAOD::Muon::MuonType muonType =
muon->muonType();
142 xAOD::Muon::Quality muonQuality =
muon->quality();
149 MuonPhi =
muon->phi();
162 uint8_t hitval_numberOfBLayerHits, hitval_numberOfPixelHits, hitval_numberOfSCTHits, hitval_numberOfTRTHits;
174 MuonsNBHits =
static_cast<unsigned int>(hitval_numberOfBLayerHits);
175 MuonsNPixHits =
static_cast<unsigned int>(hitval_numberOfPixelHits);
176 MuonsNSCTHits =
static_cast<unsigned int>(hitval_numberOfSCTHits);
177 MuonsNTRTHits =
static_cast<unsigned int>(hitval_numberOfTRTHits);
178 fill(
tool, MuonsNBHits, MuonsNPixHits, MuonsNSCTHits, MuonsNTRTHits);
179 MuonsNBHitsAvg = hitval_numberOfBLayerHits / vecMuons.size();
180 MuonsNPixHitsAvg = hitval_numberOfPixelHits / vecMuons.size();
181 MuonsNSCTHitsAvg = hitval_numberOfSCTHits / vecMuons.size();
182 MuonsNTRTHitsAvg = hitval_numberOfTRTHits / vecMuons.size();
183 fill(
tool, MuonsNBHitsAvg, MuonsNPixHitsAvg, MuonsNSCTHitsAvg, MuonsNTRTHitsAvg);
186 uint8_t hitval_nEtaLayer1{0}, hitval_nEtaLayer2{0}, hitval_nEtaLayer3{0}, hitval_nEtaLayer4{0};
187 uint8_t hitval_nPhiLayer1{0}, hitval_nPhiLayer2{0}, hitval_nPhiLayer3{0}, hitval_nPhiLayer4{0};
196 MuonsEtaHitsLayer1 =
static_cast<unsigned int>(hitval_nEtaLayer1);
197 MuonsEtaHitsLayer2 =
static_cast<unsigned int>(hitval_nEtaLayer2);
198 MuonsEtaHitsLayer3 =
static_cast<unsigned int>(hitval_nEtaLayer3);
199 MuonsEtaHitsLayer4 =
static_cast<unsigned int>(hitval_nEtaLayer4);
200 MuonsPhiHitsLayer1 =
static_cast<unsigned int>(hitval_nPhiLayer1);
201 MuonsPhiHitsLayer2 =
static_cast<unsigned int>(hitval_nPhiLayer2);
202 MuonsPhiHitsLayer3 =
static_cast<unsigned int>(hitval_nPhiLayer3);
203 MuonsPhiHitsLayer4 =
static_cast<unsigned int>(hitval_nPhiLayer4);
204 fill(
tool, MuonsEtaHitsLayer1, MuonsEtaHitsLayer2, MuonsEtaHitsLayer3, MuonsEtaHitsLayer4, MuonsPhiHitsLayer1, MuonsPhiHitsLayer2, MuonsPhiHitsLayer3, MuonsPhiHitsLayer4);
209 MuonEtaMedium = cbtp->
eta();
210 MuonPhiMedium = cbtp->
phi();
211 fill(
tool, MuonEtaMedium, MuonPhiMedium);
214 MuonEtaTight = cbtp->
eta();
215 MuonPhiTight = cbtp->
phi();
216 fill(
tool, MuonEtaTight, MuonPhiTight);
220 MuonDPTIDME = (idtp->
pt() - metp->
pt()) / idtp->
pt();
221 MuonDPTCBME = (cbtp->
pt() - metp->
pt()) / cbtp->
pt();
222 MuonDPTIDMECB = (idtp->
pt() - metp->
pt()) / cbtp->
pt();
225 fill(
tool, MuonDPTIDME, MuonsIDchi2ndof, MuonsMEchi2ndof);
238 uint8_t hitval_numberOfBLayerHits{0}, hitval_numberOfPixelHits{0}, hitval_numberOfSCTHits{0}, hitval_numberOfTRTHits{0};
243 MuonsNBHits =
static_cast<unsigned int>(hitval_numberOfBLayerHits);
244 MuonsNPixHits =
static_cast<unsigned int>(hitval_numberOfPixelHits);
245 MuonsNSCTHits =
static_cast<unsigned int>(hitval_numberOfSCTHits);
246 MuonsNTRTHits =
static_cast<unsigned int>(hitval_numberOfTRTHits);
247 fill(
tool, MuonsNBHits, MuonsNPixHits, MuonsNSCTHits, MuonsNTRTHits);
251 MuonDPTIDME = (idtp->
pt() - metp->
pt()) / idtp->
pt();
254 fill(
tool, MuonDPTIDME, MuonsIDchi2ndof, MuonsMEchi2ndof);
260 auto muonEta =
muon->eta();
262 if (muonEta > 1.05) {
264 }
else if (muonEta > 0) {
266 }
else if (muonEta > -1.05) {
268 }
else if (muonEta <= -1.05) {
274 auto muonEta =
muon->eta();
275 if (muonEta > 1.05) {
277 }
else if (muonEta > 0) {
279 }
else if (muonEta > -1.05) {
281 }
else if (muonEta <= -1.05) {
287 auto muonEta =
muon->eta();
288 if (muonEta > 1.05) {
290 }
else if (muonEta > 0) {
292 }
else if (muonEta > -1.05) {
294 }
else if (muonEta <= -1.05) {
300 return StatusCode::SUCCESS;
337 xAOD::Muon::Quality muonQuality =
muon->quality();
338 xAOD::Muon::MuonType muonType =
muon->muonType();
340 MuonLumiBlock = lumiBlockID;
344 MuonAuthor = muonAuthor;
345 MuonQuality = muonQuality;
348 MuonPhi =
muon->phi();
354 MuonEtaHi =
muon->eta();
355 MuonPhiHi =
muon->phi();
357 fill(
tool, MuonEtaHi, MuonPhiHi, MuonPtHi);
361 for (
size_t nSeg=0; nSeg <
muon->nMuonSegments(); nSeg++) {
367 MuonSmallSectorR = MuonLargeSectorR = std::hypot(muonSegment->
x(), muonSegment->
y());
368 MuonSmallSectorZ = MuonLargeSectorZ = muonSegment->
z();
369 MuonSector = muonSegment->
sector();
371 int sector = muonSegment->
sector();
372 if(sector % 2 == 0) {
373 fill(
tool, MuonLargeSectorZ, MuonLargeSectorR, MuonSector, MuonCIndex);
375 fill(
tool, MuonSmallSectorZ, MuonSmallSectorR, MuonSector, MuonCIndex);
377 const double muonSegmentEta =
Amg::Vector3D(muonSegment->
px(), muonSegment->
py(), muonSegment->
pz()).eta();
378 if (std::abs(muonSegmentEta) > 1.05) {
379 SegmentXPosEndcap = muonSegment->
x();
380 SegmentYPosEndcap = muonSegment->
y();
381 fill(
tool, SegmentXPosEndcap, SegmentYPosEndcap);
383 SegmentXPosBarrel = muonSegment->
x();
384 SegmentYPosBarrel = muonSegment->
y();
385 fill(
tool, SegmentXPosBarrel, SegmentYPosBarrel);
390 return StatusCode::SUCCESS;
412 std::vector<const xAOD::Muon*> vecAllCombinedMuons;
413 std::vector<const xAOD::Muon*> vecCombinedMuons;
414 std::vector<const xAOD::Muon*> vecNoTrigCombinedMuons;
417 std::vector<const xAOD::Muon*> vecAllNonCombinedMuons;
418 std::vector<const xAOD::Muon*> vecNonCombinedMuons;
419 std::vector<const xAOD::Muon*> vecNoTrigNonCombinedMuons;
429 bool isTriggered =
false;
444 xAOD::Muon::MuonType muonType =
muon->muonType();
446 vecAllCombinedMuons.push_back(
muon);
448 vecCombinedMuons.push_back(
muon);
451 MuonPrefix =
"TrigCB";
454 vecNoTrigCombinedMuons.push_back(
muon);
455 MuonPrefix =
"NoTrigCB";
456 n_muons_no_trig_cb++;
460 vecAllNonCombinedMuons.push_back(
muon);
462 vecNonCombinedMuons.push_back(
muon);
464 n_muons_trig_noncb++;
465 MuonPrefix =
"TrigNonCB";
468 vecNoTrigNonCombinedMuons.push_back(
muon);
469 MuonPrefix =
"NoTrigNonCB";
470 n_muons_no_trig_noncb++;
474 for (
size_t nSeg=0; nSeg <
muon->nMuonSegments(); nSeg++) {
475 LumiBlockNumberOfSegments =
evt.lumiBlock();
476 fill(
tool, LumiBlockNumberOfSegments);
480 NMuonsTrig = n_muons_trig;
481 NMuonsTrigCB = n_muons_trig_cb;
482 NMuonsTrigNonCB = n_muons_trig_noncb;
483 NMuonsNoTrigCB = n_muons_no_trig_cb;
484 NMuonsNoTrigNonCB = n_muons_no_trig_noncb;
485 fill(
tool, NMuons, NMuonsTrig, NMuonsTrigCB, NMuonsTrigNonCB, NMuonsNoTrigCB, NMuonsNoTrigNonCB);
487 LumiBlockNumberOfMuonTracks =
evt.lumiBlock();
488 fill(
tool, LumiBlockNumberOfMuonTracks);
506 return StatusCode::SUCCESS;
528 std::map<int, int> mapTagged_Resonance;
529 std::vector<const xAOD::Muon*> vecMuons;
530 for (
unsigned int n=0;
n<muonCandidates.size();
n++)
531 mapTagged_Resonance[
n]=0;
532 for (
unsigned int n=0;
n<muonCandidates.size();
n++){
533 const TLorentzVector& tVec1 = muonCandidates[
n]->p4();
534 for (
unsigned int m=
n+1;
m<muonCandidates.size();
m++) {
535 const TLorentzVector& tVec2 = muonCandidates[
m]->p4();
536 const TLorentzVector candidate = tVec1 + tVec2;
537 const float resonance_Mass = candidate.M() *
MeVtoGeV;
538 const float resonance_Eta = candidate.Eta();
539 if (muonCandidates[
n]->
charge()==muonCandidates[
m]->
charge())
continue;
545 if (mapTagged_Resonance[
n]!=1) vecMuons.push_back(muonCandidates[
n]);
546 mapTagged_Resonance[
n]=1;
547 if (mapTagged_Resonance[
m]!=1) vecMuons.push_back(muonCandidates[
m]);
548 mapTagged_Resonance[
m]=1;
550 if (muonCandidates[
n]->
charge()<0){
551 muMinusEta = tVec1.Eta();
552 muPlusEta = tVec2.Eta();
555 muMinusEta = tVec2.Eta();
556 muPlusEta = tVec1.Eta();
558 const char* EtaReg =
"";
560 if ((muMinusEta>1.05)&&(muPlusEta>1.05)){
563 Mass2D = resonance_Mass;
565 }
else if ((muMinusEta>1.05)&&(muPlusEta>0.)&&(muPlusEta<1.05)){
568 Mass2D = resonance_Mass;
570 }
else if ((muMinusEta>1.05)&&(muPlusEta>-1.05)&&(muPlusEta<0.)){
573 Mass2D = resonance_Mass;
575 }
else if ((muMinusEta>1.05)&&(muPlusEta<-1.05)){
578 Mass2D = resonance_Mass;
580 }
else if ((muMinusEta>0.)&&(muMinusEta<1.05)&&(muPlusEta>1.05)){
583 Mass2D = resonance_Mass;
585 }
else if ((muMinusEta>0.)&&(muMinusEta<1.05)&&(muPlusEta>0.)&&(muPlusEta<1.05)){
588 Mass2D = resonance_Mass;
590 }
else if ((muMinusEta>0.)&&(muMinusEta<1.05)&&(muPlusEta>-1.05)&&(muPlusEta<0.)){
593 Mass2D = resonance_Mass;
595 }
else if ((muMinusEta>0.)&&(muMinusEta<1.05)&&(muPlusEta<-1.05)){
598 Mass2D = resonance_Mass;
600 }
else if ((muMinusEta>-1.05)&&(muMinusEta<0.)&&(muPlusEta>1.05)){
603 Mass2D = resonance_Mass;
605 }
else if ((muMinusEta>-1.05)&&(muMinusEta<0.)&&(muPlusEta>0.)&&(muPlusEta<1.05)){
608 Mass2D = resonance_Mass;
610 }
else if ((muMinusEta>-1.05)&&(muMinusEta<0.)&&(muPlusEta>-1.05)&&(muPlusEta<0.)){
613 Mass2D = resonance_Mass;
615 }
else if ((muMinusEta>-1.05)&&(muMinusEta<0.)&&(muPlusEta<-1.05)){
618 Mass2D = resonance_Mass;
620 }
else if ((muMinusEta<-1.05)&&(muPlusEta>1.05)){
623 Mass2D = resonance_Mass;
625 }
else if ((muMinusEta<-1.05)&&(muPlusEta>0.)&&(muPlusEta<1.05)){
628 Mass2D = resonance_Mass;
630 }
else if ((muMinusEta<-1.05)&&(muPlusEta>-1.05)&&(muPlusEta<0.)){
633 Mass2D = resonance_Mass;
635 }
else if ((muMinusEta<-1.05)&&(muPlusEta<-1.05)){
638 Mass2D = resonance_Mass;
644 Mass = resonance_Mass;
648 fill(
tool, Mass,
Eta, Eta2, Eta2D, muMinusEta, muPlusEta);
650 MuonLumiBlock = lumiBlockID;
658 return StatusCode::SUCCESS;
665 std::vector<const xAOD::Muon*> vecMuons_ZBoson_Candidates;
666 std::vector<const xAOD::Muon*> vecMuons_Jpsi_Candidates;
670 xAOD::Muon::MuonType muonType =
muon->muonType();
674 if (cbtpLink.
isValid()) cbtp = *cbtpLink;
686 vecMuons_ZBoson_Candidates.push_back(
muon);
694 vecMuons_Jpsi_Candidates.push_back(
muon);
702 return StatusCode::SUCCESS;
716 return StatusCode::FAILURE;
723 return StatusCode::FAILURE;
732 return StatusCode::FAILURE;
740 return StatusCode::SUCCESS;
759 int trackCategoryID = -1;
761 if (sIdentifier ==
"NoTrigNonCB") trackCategoryID = 1;
762 else if (sIdentifier ==
"NoTrigCB") trackCategoryID = 2;
763 else if (sIdentifier ==
"NonCB") trackCategoryID = 3;
764 else if (sIdentifier ==
"CB") trackCategoryID = 4;
765 else if (sIdentifier ==
"AllNonCB") trackCategoryID = 5;
766 else if (sIdentifier ==
"AllCB") trackCategoryID = 6;
768 else if (sIdentifier ==
"Z") trackCategoryID = 8;
769 else if (sIdentifier ==
"Jpsi") trackCategoryID = 9;
771 else if (sIdentifier ==
"ME_EC") trackCategoryID = 11;
772 else if (sIdentifier ==
"ME_BC") trackCategoryID = 12;
773 else if (sIdentifier ==
"ME_BA") trackCategoryID = 13;
774 else if (sIdentifier ==
"ME_EA") trackCategoryID = 14;
776 else if (sIdentifier ==
"MS_EC") trackCategoryID = 16;
777 else if (sIdentifier ==
"MS_BC") trackCategoryID = 17;
778 else if (sIdentifier ==
"MS_BA") trackCategoryID = 18;
779 else if (sIdentifier ==
"MS_EA") trackCategoryID = 19;
781 else if (sIdentifier ==
"ID_EC") trackCategoryID = 21;
782 else if (sIdentifier ==
"ID_BC") trackCategoryID = 22;
783 else if (sIdentifier ==
"ID_BA") trackCategoryID = 23;
784 else if (sIdentifier ==
"ID_EA") trackCategoryID = 24;
786 return trackCategoryID;