From ad3445c95f8d633e5b9b1d7ee190b6efbdc224cf Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 17 Oct 2021 10:35:49 -0500 Subject: [PATCH] WIP: update --- RecoMuon/MuonShowerProducer/BuildFile.xml | 10 ++++ .../plugins/CSCRechitClusterProducer.cc | 59 ++++++++++++++----- .../python/cscRechitCluster_cfi.py | 18 +++++- 3 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 RecoMuon/MuonShowerProducer/BuildFile.xml diff --git a/RecoMuon/MuonShowerProducer/BuildFile.xml b/RecoMuon/MuonShowerProducer/BuildFile.xml new file mode 100644 index 0000000000000..f201c679230ac --- /dev/null +++ b/RecoMuon/MuonShowerProducer/BuildFile.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/RecoMuon/MuonShowerProducer/plugins/CSCRechitClusterProducer.cc b/RecoMuon/MuonShowerProducer/plugins/CSCRechitClusterProducer.cc index 0697e34b20239..88b54391ab872 100644 --- a/RecoMuon/MuonShowerProducer/plugins/CSCRechitClusterProducer.cc +++ b/RecoMuon/MuonShowerProducer/plugins/CSCRechitClusterProducer.cc @@ -28,6 +28,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/StreamID.h" @@ -63,9 +64,15 @@ class CSCRechitClusterProducer : public edm::stream::EDProducer<> { // ----------member data --------------------------- protected: - - std::vector > inputs_; - std::vector > getConstituents(const std::vector& fjConstituents); + + double rParam_ ; // distance paramter + //std::string jetAlgorithm_; // jetAlgorithm + int nRechitMin_; // min number of rechits + //std::vector > inputs_; + //std::vector > getConstituents(const std::vector& fjConstituents); + std::vector inputs_; + std::vector getConstituents(const std::vector& fjConstituents); + }; // @@ -83,8 +90,11 @@ CSCRechitClusterProducer::CSCRechitClusterProducer(const edm::ParameterSet& iCon : m_cscGeometryToken(esConsumes()) { + rParam_ = iConfig.getParameter("rParam"); + //jetAlgorithm_ = iConfig.getParameter("jetAlgorithm"); + nRechitMin_ = iConfig.getParameter("nRechitMin"); + cscRechitInputToken_ = consumes(edm::InputTag("csc2DRecHits")), - produces(); } @@ -111,7 +121,7 @@ CSCRechitClusterProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) std::vector fjInput; - fastjet::JetDefinition jet_def(fastjet::cambridge_algorithm, 0.4); + fastjet::JetDefinition jet_def(fastjet::cambridge_algorithm, rParam_); int nRecHits = cscRechits->size(); CSCRecHit2DCollection::const_iterator recIt; @@ -132,6 +142,7 @@ CSCRechitClusterProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) //TODO: Find a way to construct edm::Ptr //edm::Ptr ptr = edm::Ptr(&cscRechit); //inputs_.push_back( ptr ); + inputs_.push_back( cscRechit ); fjInput.push_back(fastjet::PseudoJet( x, y, z, 1.0)); fjInput.back().set_user_index(recIt-cscRechits->begin()); } @@ -141,36 +152,44 @@ CSCRechitClusterProducer::produce(edm::Event& ev, const edm::EventSetup& iSetup) double ptmin = 0.0; std::vector fjJets = fastjet::sorted_by_pt(clus_seq.inclusive_jets(ptmin)); - auto CSCclusters = std::make_unique(fjJets.size()); + auto CSCclusters = std::make_unique(); if (!fjJets.empty()){ for (unsigned int ijet = 0; ijet < fjJets.size(); ++ijet) { // get the fastjet jet const fastjet::PseudoJet& fjJet = fjJets[ijet]; + + //std::cout<<"CSCrechitCluster" << " fjJet size = " << (fjJet.constituents().size()) < const& fjConstituents = fastjet::sorted_by_pt(fjJet.constituents()); - std::vector > const& rechits = getConstituents(fjConstituents); + std::vector const& rechits = getConstituents(fjConstituents); //Derive cluster properties - float time=0;float eta=0;float phi=0; - float x=0;float y=0;float z=0; + float time=0.0;float eta=0.0;float phi=0.0; + float x=0.0;float y=0.0;float z=0.0; int nME11_12 =0; + //std::cout<<"CSCrechitCluster" << " rec time = [" ; for (auto & rechit : rechits){ - LocalPoint cscRecHitLocalPosition = (*rechit).localPosition(); - CSCDetId cscdetid = (*rechit).cscDetId(); + //LocalPoint cscRecHitLocalPosition = (*rechit).localPosition(); + //CSCDetId cscdetid = (*rechit).cscDetId(); + LocalPoint cscRecHitLocalPosition = rechit.localPosition(); + CSCDetId cscdetid = rechit.cscDetId(); const CSCChamber* cscchamber = cscG->chamber(cscdetid()); int endcap = CSCDetId::endcap(cscdetid) == 1 ? 1 : -1; GlobalPoint globalPosition = cscchamber->toGlobal(cscRecHitLocalPosition); x += globalPosition.x(); y += globalPosition.y(); z += globalPosition.z(); - int chamber = endcap * (CSCDetId::station(cscdetid)*10 + CSCDetId::ring(cscdetid)); if( abs(chamber)==11 || abs(chamber)==12) nME11_12++; - time+= (*rechit).tpeak() + (*rechit).wireTime(); + time+= (rechit.tpeak() + rechit.wireTime()); + //std::cout<< "("<