26 JetExtractor::JetExtractor() {}
32 theThreshold(par.getParameter<double>(
"Threshold")),
33 theDR_Veto(par.getParameter<double>(
"DR_Veto")),
34 theDR_Max(par.getParameter<double>(
"DR_Max")),
35 theExcludeMuonVeto(par.getParameter<
bool>(
"ExcludeMuonVeto")),
37 theAssociator(nullptr),
38 thePrintTimeReport(par.getUntrackedParameter<
bool>(
"PrintTimeReport")) {
60 typedef IsoDeposit::Veto Veto;
61 IsoDeposit::Direction muonDir(
muon.eta(),
muon.phi());
72 depJet.setVeto(Veto(vetoDirection,
theDR_Veto));
78 CaloJetCollection::const_iterator jetCI = caloJetsH->begin();
79 for (; jetCI != caloJetsH->end(); ++jetCI) {
87 std::vector<CaloTowerPtr> jetConstituents = jetCI->getCaloConstituents();
89 std::vector<DetId>::const_iterator crossedCI = mInfo.
crossedTowerIds.begin();
90 std::vector<CaloTowerPtr>::const_iterator jetTowCI = jetConstituents.begin();
92 double sumEtExcluded = 0;
93 for (; jetTowCI != jetConstituents.end(); ++jetTowCI) {
94 bool isExcluded =
false;
99 for (; !isExcluded && crossedCI != mInfo.
crossedTowerIds.end(); ++crossedCI) {
100 if (crossedCI->rawId() == (*jetTowCI)->id().rawId()) {
105 sumEtExcluded += (*jetTowCI)->et();
112 double depositEt = jetCI->et();
114 depositEt = depositEt - sumEtExcluded;
117 depJet.addDeposit(jetDir, depositEt);
120 std::vector<const CaloTower*>::const_iterator crossedCI = mInfo.
crossedTowers.begin();
122 for (; crossedCI != mInfo.
crossedTowers.end(); ++crossedCI) {
123 muSumEt += (*crossedCI)->et();
125 depJet.addCandEnergy(muSumEt);
T getParameter(std::string const &) const
std::vector< const CaloTower * > crossedTowers
std::vector< DetId > crossedTowerIds
std::vector< Track > TrackCollection
collection of Tracks
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
math::XYZPoint trkGlobPosAtHcal
FreeTrajectoryState initialFreeState() const
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects