2 #include "Math/GenVector/VectorUtil.h"
11 std::vector<edm::InputTag> inputCollVector_ = iConfig.
getParameter< std::vector<InputTag> >(
"InputCollections");
12 for(
unsigned int ii=0;
ii<inputCollVector_.size(); ++
ii)
14 inputColl_.push_back( consumes<LorentzVectorCollection>(inputCollVector_[
ii]) );
16 matchDeltaR_ = iConfig.
getParameter<
double>(
"MatchDeltaR");
17 outName_ = iConfig.
getParameter<
string>(
"OutputCollection");
19 produces<LorentzVectorCollection> ( outName_);
29 std::vector< Handle<LorentzVectorCollection> > handles;
31 bool allCollectionsExist =
true;
33 for(
size_t i = 0;
i<inputColl_.size();++
i)
38 handles.push_back(tmp);
42 allCollectionsExist =
false;
48 if(allCollectionsExist)
51 for(
size_t i = 0;
i < (handles[0])->
size();++
i)
53 bool MatchedObj =
true;
59 for(
size_t j = 1;
j < handles.size();++
j)
61 if(!
match(lvRef,*(handles[
j])))
69 out_product->push_back(lvRef);
76 iEvent.
put(out_product,outName_);
93 for(LorentzVectorCollection::const_iterator it = lvcol.begin();it!=lvcol.end();++it)
95 double delta = ROOT::Math::VectorUtil::DeltaR(lv,*it);
96 if(delta<matchDeltaR_)
T getParameter(std::string const &) const
bool match(const LorentzVector &, const LorentzVectorCollection &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< LorentzVector > LorentzVectorCollection
virtual void produce(edm::Event &, const edm::EventSetup &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
HLTTauRefCombiner(const edm::ParameterSet &)
std::vector< std::vector< double > > tmp
math::XYZTLorentzVectorD LorentzVector
tuple size
Write out results.
std::string match(BranchDescription const &a, BranchDescription const &b, std::string const &fileName)