Skip to content

Commit

Permalink
HeavyFlavorAnalysis consumes migration.
Browse files Browse the repository at this point in the history
  • Loading branch information
Volker Adler committed Mar 19, 2014
1 parent a29b121 commit d582151
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 49 deletions.
11 changes: 6 additions & 5 deletions HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/ConsumesCollector.h"
#include "FWCore/Utilities/interface/InputTag.h"

#include <DataFormats/TrackReco/interface/Track.h>
Expand All @@ -12,9 +13,9 @@
class Tau3MuReco
{
public:
Tau3MuReco(const edm::ParameterSet& iConfig);
Tau3MuReco(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC);
~Tau3MuReco();

bool doTau3MuReco(const edm::Event& iEvent, const edm::EventSetup& iSetup, reco::MuonCollection* muonCollection, reco::TrackCollection* trackCollection);

private:
Expand All @@ -32,9 +33,9 @@ class Tau3MuReco
const double m_kTauMass;
const double m_kMuonMass;

const edm::InputTag m_kMuonSource;
const edm::InputTag m_kTrackSource;
const edm::EDGetTokenT<reco::MuonCollection> m_kMuonSourceToken;
const edm::EDGetTokenT<reco::TrackCollection> m_kTrackSourceToken;

reco::MuonCollection* m_MuonCollection;
reco::TrackCollection* m_TrackCollection;
};
Expand Down
20 changes: 10 additions & 10 deletions HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
//
// Package: Tau3MuSkim
// Class: Tau3MuSkim
//
//
/**\class Tau3MuSkim Tau3MuSkim.cc HeavyFlavorAnalysis/Skimming/plugins/Tau3MuSkim.cc
Description: <one line class summary>
Expand All @@ -11,7 +11,7 @@
<Notes on implementation>
*/
//
// Original Author: Manuel Giffels <[email protected]>
// Original Author: Manuel Giffels <[email protected]>
// Created: Mon Jul 23 10:19:11 CEST 2007
//
//
Expand All @@ -26,7 +26,7 @@

Tau3MuSkim::Tau3MuSkim(const edm::ParameterSet& iConfig)
{
m_Tau3MuReco = new Tau3MuReco(iConfig);
m_Tau3MuReco = new Tau3MuReco(iConfig, consumesCollector());

produces<reco::MuonCollection,edm::InEvent>("tau3MuCandidateMuons");
produces<reco::TrackCollection,edm::InEvent>("tau3MuCandidateTracks");
Expand All @@ -49,24 +49,24 @@ Tau3MuSkim::filter(edm::Event& iEvent, const edm::EventSetup& iSetup)
{
std::auto_ptr<reco::MuonCollection> tau3MuCandidateMuons(new reco::MuonCollection);
std::auto_ptr<reco::TrackCollection> tau3MuCandidateTracks(new reco::TrackCollection);

bool accept = m_Tau3MuReco->doTau3MuReco(iEvent, iSetup, tau3MuCandidateMuons.get(), tau3MuCandidateTracks.get());

iEvent.put(tau3MuCandidateMuons, "tau3MuCandidateMuons");
iEvent.put(tau3MuCandidateTracks, "tau3MuCandidateTracks");

return accept;
}

// ------------ method called once each job just before starting event loop ------------
void
void
Tau3MuSkim::beginJob()
{
{
}

// ------------ method called once each job just after ending the event loop ------------
void
Tau3MuSkim::endJob()
void
Tau3MuSkim::endJob()
{
}

Expand Down
68 changes: 34 additions & 34 deletions HeavyFlavorAnalysis/Skimming/src/Tau3MuReco.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@

#include "HeavyFlavorAnalysis/Skimming/interface/Tau3MuReco.h"

Tau3MuReco::Tau3MuReco(const edm::ParameterSet& iConfig):m_kMatchingDeltaR(iConfig.getParameter<double>("RecoAnalysisMatchingDeltaR")),
Tau3MuReco::Tau3MuReco(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC):m_kMatchingDeltaR(iConfig.getParameter<double>("RecoAnalysisMatchingDeltaR")),
m_kMatchingPt(iConfig.getParameter<double>("RecoAnalysisMatchingPt")),
m_kTauMassCut(iConfig.getParameter<double>("RecoAnalysisTauMassCut")),
m_kTauMass(iConfig.getParameter<double>("RecoAnalysisTauMass")),
m_kMuonMass(iConfig.getParameter<double>("RecoAnalysisMuonMass")),
m_kMuonSource(iConfig.getParameter<edm::InputTag>("MuonSourceTag")),
m_kTrackSource(iConfig.getParameter<edm::InputTag>("TrackSourceTag"))
m_kMuonSourceToken(iC.consumes<reco::MuonCollection>(iConfig.getParameter<edm::InputTag>("MuonSourceTag"))),
m_kTrackSourceToken(iC.consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("TrackSourceTag")))
{
}

Expand All @@ -25,15 +25,15 @@ bool Tau3MuReco::doTau3MuReco(const edm::Event& iEvent, const edm::EventSetup& i
{
m_MuonCollection = muonCollection;
m_TrackCollection = trackCollection;

edm::Handle<reco::MuonCollection> muons;
edm::Handle<reco::TrackCollection> tracks;

reco::MuonCollection::const_iterator muon;

iEvent.getByLabel(m_kMuonSource, muons);
iEvent.getByLabel(m_kTrackSource, tracks);
iEvent.getByToken(m_kMuonSourceToken, muons);
iEvent.getByToken(m_kTrackSourceToken, tracks);

for( muon = muons->begin(); muon != muons->end(); ++muon )
{
m_TrackCollection->push_back(*(muon->track().get()));
Expand All @@ -48,7 +48,7 @@ bool Tau3MuReco::doTau3MuReco(const edm::Event& iEvent, const edm::EventSetup& i
LogDebug("Tau3MuReco") << "Could not find correct combination!" << std::endl;
return false;
}

return true;
}

Expand All @@ -58,7 +58,7 @@ bool Tau3MuReco::doTau3MuReco(const edm::Event& iEvent, const edm::EventSetup& i
return true;
else//throw away one muon which don't match
removeIncorrectMuon();

}

if( m_TrackCollection->size() == 2)
Expand All @@ -76,9 +76,9 @@ bool Tau3MuReco::doTau3MuReco(const edm::Event& iEvent, const edm::EventSetup& i
}

// cannot use this event, because less than 2 muons have been found

LogDebug("Tau3MuReco") << "Not enough (" << m_TrackCollection->size() << ") muons found! Event skipped!" << std::endl;

return false;
}

Expand Down Expand Up @@ -110,23 +110,23 @@ bool Tau3MuReco::find3rdTrack(const edm::Event& iEvent, const edm::EventSetup& i
//check size of TrackVector (should be two!)
if(m_TrackCollection->size()!=2)
return false;

//more then two tracks should be in the event
if(Tracks.size()<=2)
return false;

double SumDeltaR = 0;

double MuonDeltaR = getDeltaR(m_TrackCollection->at(0),m_TrackCollection->at(1));

//Loop overall tracks

LogDebug("Tau3MuReco") << "Number of tracks found: " << Tracks.size() << std::endl;

std::multimap<double, const reco::Track> TrackMultiMap;

unsigned short muonCounter = 0;

reco::TrackCollection::const_iterator track;

for(track=Tracks.begin(); track!=Tracks.end(); track++)
Expand All @@ -136,7 +136,7 @@ bool Tau3MuReco::find3rdTrack(const edm::Event& iEvent, const edm::EventSetup& i
muonCounter++;
continue;
}

SumDeltaR = MuonDeltaR;

SumDeltaR += getDeltaR(m_TrackCollection->at(1), *track);
Expand Down Expand Up @@ -183,7 +183,7 @@ bool Tau3MuReco::find3rdTrack(const edm::Event& iEvent, const edm::EventSetup& i
count++;

LogDebug("Tau3MuReco") << "Track canidate: " << count << std::endl;

if(Charge > 0 && ((*it).second).charge()!=(m_TrackCollection->at(0)).charge())
LogDebug("Tau3MuReco") << "\tWrong charge!" << std::endl;
LogDebug("Tau3MuReco") << "\tInvariant Mass deviation! " << fabs(getInvariantMass(m_TrackCollection)-m_kTauMass) << std::endl;
Expand Down Expand Up @@ -232,10 +232,10 @@ bool Tau3MuReco::findCorrectPairing()
return false;

Charge = 0;

tempMuonCollection.clear();
tempTrackCollection.clear();

for(UInt_t i=0; i< (*it).size(); i++)
{
Charge += m_TrackCollection->at((*it).at(i)).charge();
Expand All @@ -258,24 +258,24 @@ bool Tau3MuReco::findCorrectPairing()

bool Tau3MuReco::removeIncorrectMuon()
{

double deltaR12 = getDeltaR(m_TrackCollection->at(0),m_TrackCollection->at(1));
double deltaR23 = getDeltaR(m_TrackCollection->at(1),m_TrackCollection->at(2));
double deltaR31 = getDeltaR(m_TrackCollection->at(2),m_TrackCollection->at(0));

//if DeltaR12 is the smallest, than the 3rd one seems to be wrong
//if DeltaR23 is the smallest, than the 2nd one seems to be wrong
//if DeltaR31 is the smallest, than the 1st one seems to be wrong

unsigned char temp;
double junk;

deltaR12 < deltaR23 ? temp=3 : temp=1;
deltaR12 < deltaR23 ? junk=deltaR12 : junk=deltaR23;

if(deltaR31 < junk)
temp=2;

m_TrackCollection->erase(m_TrackCollection->begin()+temp-1);

return true;
Expand All @@ -284,34 +284,34 @@ bool Tau3MuReco::removeIncorrectMuon()
double Tau3MuReco::getInvariantMass(const reco::TrackCollection* tracks, const double MuonMass)
{
unsigned int numOfParticles = tracks->size();

double SumPx = 0;
double SumPy = 0;
double SumPz = 0;

double SumE = 0;

for(unsigned int i=0; i<numOfParticles; i++)
{
SumPx += tracks->at(i).px();
SumPy += tracks->at(i).py();
SumPz += tracks->at(i).pz();

SumE += sqrt(pow(tracks->at(i).p(),2)+pow(MuonMass,2));
}

double invmass = sqrt(pow(SumE,2)-pow(SumPx,2)-pow(SumPy,2)-pow(SumPz,2));

return invmass;
}

double Tau3MuReco::getDeltaR(const reco::Track& track1, const reco::Track& track2)
{
double dEta = track1.eta() - track2.eta();
double dPhi = track1.phi() - track2.phi();

while(dPhi >= TMath::Pi()) dPhi -= (2.0*TMath::Pi());
while(dPhi < (-1.0*TMath::Pi())) dPhi += (2.0*TMath::Pi());

return sqrt(pow(dEta,2)+pow(dPhi,2));
}

0 comments on commit d582151

Please sign in to comment.