21 LogDebug(
"SubEventMothers") <<
"Pdg ID : " << pdg << endl;
22 if (st == 3 || pdg < 9 || pdg == 21) {
23 LogDebug(
"SubEventMothers") <<
"Sub-Collision Found! Pdg ID : " << pdg << endl;
29 LogDebug(
"SubEventMothers") <<
"No Mother, particle is : " << pdg <<
" with status " << st << endl;
45 std::vector<edm::Ptr<reco::Candidate>>::const_iterator inBegin =
inputs_.begin(), inEnd =
inputs_.end(),
i = inBegin;
46 for (;
i != inEnd; ++
i) {
60 LogDebug(
"SubEventContainers") <<
"SubEvent is : " << subevent << endl;
67 LogDebug(
"SubEventContainers") <<
"HydroTagSize is : " <<
hydroTag_.size() << endl;
70 LogDebug(
"SubEventContainers") <<
"HydroTag is : " <<
hydroTag_[subevent] << endl;
72 hydroTag_[subevent] = (int)checkHydro(pref);
74 subInputs_[subevent].push_back(fastjet::PseudoJet(input->px(), input->py(), input->pz(), input->energy()));
76 subInputs_[subevent].back().set_user_index(
i - inBegin);
81 LogDebug(
"VirtualJetProducer") <<
"Entered produce\n";
92 for (
size_t i = 0;
i < inputsHandle->size(); ++
i) {
93 inputs_.push_back(inputsHandle->ptrAt(
i));
95 LogDebug(
"VirtualJetProducer") <<
"Got inputs\n";
104 jets_ = std::make_unique<std::vector<GenJet>>();
106 LogDebug(
"VirtualJetProducer") <<
"Inputted towers\n";
110 for (
size_t isub = 0; isub <
nsub; ++isub) {
120 LogDebug(
"SubEventJetProducer") <<
"Wrote jets\n";
133 using namespace reco;
135 for (
unsigned int ijet = 0; ijet < fjJets_.size(); ++ijet) {
137 const fastjet::PseudoJet& fjJet = fjJets_[ijet];
139 std::vector<fastjet::PseudoJet> fjConstituents = sorted_by_pt(
fjClusterSeq_->constituents(fjJet));
141 std::vector<CandidatePtr> constituents =
getConstituents(fjConstituents);
143 double px = fjJet.px();
144 double py = fjJet.py();
145 double pz = fjJet.pz();
146 double E = fjJet.E();
147 double jetArea = 0.0;
155 jets_->push_back(jet);
T getUntrackedParameter(std::string const &, T const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
reco::Particle::Point vertex_
const Candidate * mother(size_type=0) const override
return mother at a given position, i = 0, ... numberOfMothers() - 1 (read only mode) ...
std::vector< int > hydroTag_
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
void runAlgorithm(edm::Event &, const edm::EventSetup &) override
virtual std::vector< reco::CandidatePtr > getConstituents(const std::vector< fastjet::PseudoJet > &fjConstituents)
std::vector< fastjet::PseudoJet > fjJets_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::CandidateView > input_cand_token_
constexpr bool isNotFinite(T x)
virtual void setPileup(float fEnergy)
Set pileup energy contribution as calculated by algorithm.
#define DEFINE_FWK_MODULE(type)
T const * get() const
Returns C++ pointer to the item.
virtual int status() const =0
status word
void writeSpecific(reco::CaloJet &jet, reco::Particle::LorentzVector const &p4, reco::Particle::Point const &point, std::vector< reco::CandidatePtr > const &constituents, CaloGeometry const &geometry, HcalTopology const &topology)
void produce(edm::Event &, const edm::EventSetup &) override
std::unique_ptr< std::vector< reco::GenJet > > jets_
static std::string const input
virtual bool isAnomalousTower(reco::CandidatePtr input)
virtual void setJetArea(float fArea)
set jet area
std::vector< fastjet::PseudoJet > fjInputs_
void inputTowers() override
std::vector< edm::Ptr< reco::Candidate > > inputs_
ClusterSequencePtr fjClusterSeq_
Abs< T >::type abs(const T &t)
Jets made from MC generator particles.
std::vector< int > nSubParticles_
virtual int pdgId() const =0
PDG identifier.
std::vector< std::vector< fastjet::PseudoJet > > subInputs_
math::PtEtaPhiELorentzVectorF LorentzVector
JetDefPtr fjJetDefinition_