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<< "("<