Skip to content

Commit

Permalink
Merge pull request #40129 from elfontan/EF_3MUOS_backport125X
Browse files Browse the repository at this point in the history
[Backport 125X] OS requirement for Triple Muon seeds in the uGT emulator
  • Loading branch information
cmsbuild authored Nov 22, 2022
2 parents b5d7c97 + ae20cb1 commit 685bb88
Show file tree
Hide file tree
Showing 4 changed files with 420 additions and 96 deletions.
3 changes: 3 additions & 0 deletions L1Trigger/L1TGlobal/interface/CorrelationThreeBodyTemplate.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ class CorrelationThreeBodyTemplate : public GlobalCondition {
unsigned int precMassCut;

int corrCutType;

//Requirement on charge of the three muon legs
unsigned int chargeCorrelation;
};

public:
Expand Down
17 changes: 14 additions & 3 deletions L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2988,19 +2988,30 @@ bool l1t::TriggerMenuParser::parseCorrelationThreeBody(tmeventsetup::esCondition

// Storage of the correlation selection
CorrelationThreeBodyTemplate::CorrelationThreeBodyParameter corrThreeBodyParameter;
// Set charge correlation parameter
//corrThreeBodyParameter.chargeCorrelation = chargeCorrelation; //tmpValues[0];
//corrThreeBodyParameter.chargeCorrelation = 1; //ignore charge correlation for corr-legs

// Get the correlation cuts on the legs
int cutType = 0;
const std::vector<esCut>& cuts = corrCond.getCuts();
for (size_t lll = 0; lll < cuts.size(); lll++) {
for (size_t lll = 0; lll < cuts.size(); lll++) { // START esCut lll
const esCut cut = cuts.at(lll);

if (cut.getCutType() == esCutType::ChargeCorrelation) {
if (cut.getData() == "ls")
corrThreeBodyParameter.chargeCorrelation = 2;
else if (cut.getData() == "os")
corrThreeBodyParameter.chargeCorrelation = 4;
else
corrThreeBodyParameter.chargeCorrelation = 1; //ignore charge correlation
}

//
// Until utm has method to calculate these, do the integer value calculation with precision.
//
double minV = cut.getMinimum().value;
double maxV = cut.getMaximum().value;

//Scale down very large numbers out of xml
if (maxV > 1.0e8)
maxV = 1.0e8;
Expand All @@ -3019,7 +3030,7 @@ bool l1t::TriggerMenuParser::parseCorrelationThreeBody(tmeventsetup::esCondition
corrThreeBodyParameter.precMassCut = cut.getMinimum().index;
cutType = cutType | 0x80;
}
}
} // END esCut lll
corrThreeBodyParameter.corrCutType = cutType;

// Get the three objects that form the legs
Expand Down
Loading

0 comments on commit 685bb88

Please sign in to comment.