42 #include <TLorentzVector.h>
79 muonSrc_ ( iConfig.getParameter<edm::InputTag>(
"muonSrc") )
81 produces<std::vector<pat::CompositeCandidate> > ();
101 std::auto_ptr<std::vector<pat::CompositeCandidate> > jpsiCands(
new std::vector<pat::CompositeCandidate> );
105 if ( h_muons.
isValid() && h_muons->size() > 1 ) {
108 muonsEnd = h_muons->end(), imuon = muonsBegin;
109 imuon != muonsEnd - 1; ++imuon ) {
112 jmuon != muonsEnd; ++jmuon ) {
113 if ( imuon->charge() * jmuon->charge() < 0 ) {
123 double dR = reco::deltaR<pat::Muon,pat::Muon>( *imuon, *jmuon );
128 jpsiCands->push_back( jpsi );
134 iEvent.
put( jpsiCands );
Analysis-level particle class.
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
#define DEFINE_FWK_MODULE(type)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
void addUserFloat(const std::string &label, float data)
Set user-defined float.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void addDaughter(const Candidate &, const std::string &s="")
add a clone of the passed candidate as daughter
virtual void produce(edm::Event &, const edm::EventSetup &)
PatJPsiProducer(const edm::ParameterSet &)
void set(reco::Candidate &c) const
set up a candidate