CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
MCEmbeddingValidationAnalyzer::tauDistributionExtra Struct Reference

Public Member Functions

void bookHistograms (DQMStore &dqmStore)
 
void fillHistograms (int numJets, const edm::Event &evt, double evtWeight)
 
 tauDistributionExtra (int minJets, int maxJets, const edm::InputTag &srcGen, const std::string &cutGen, const edm::InputTag &srcRec, const std::string &cutRec, double dRmatch, const std::string &dqmDirectory)
 
 ~tauDistributionExtra ()
 

Public Attributes

StringCutObjectSelector
< reco::Candidate > * 
cutGen_
 
StringCutObjectSelector
< pat::Tau > * 
cutRec_
 
std::string dqmDirectory_
 
double dRmatch_
 
MonitorElementhistogramGenTauDecayMode_
 
MonitorElementhistogramRecTauDecayMode_
 
int maxJets_
 
int minJets_
 
edm::InputTag srcGen_
 
edm::InputTag srcRec_
 

Detailed Description

Definition at line 952 of file MCEmbeddingValidationAnalyzer.h.

Constructor & Destructor Documentation

MCEmbeddingValidationAnalyzer::tauDistributionExtra::tauDistributionExtra ( int  minJets,
int  maxJets,
const edm::InputTag srcGen,
const std::string &  cutGen,
const edm::InputTag srcRec,
const std::string &  cutRec,
double  dRmatch,
const std::string &  dqmDirectory 
)
inline

Definition at line 954 of file MCEmbeddingValidationAnalyzer.h.

References cutGen_, cutRec_, dqmDirectory_, maxJets_, and minJets_.

956  : minJets_(minJets),
957  maxJets_(maxJets),
958  srcGen_(srcGen),
959  cutGen_(0),
960  srcRec_(srcRec),
961  cutRec_(0),
962  dRmatch_(dRmatch)
963  {
964  if ( cutGen != "" ) cutGen_ = new StringCutObjectSelector<reco::Candidate>(cutGen);
965  if ( cutRec != "" ) cutRec_ = new StringCutObjectSelector<pat::Tau>(cutRec);
966  dqmDirectory_ = dqmDirectory;
967  if ( minJets_ < 0 && maxJets_ < 0 ) dqmDirectory_.append("");
968  else if ( maxJets_ < 0 ) dqmDirectory_.append(Form("_numJetsGe%i", minJets_));
969  else if ( minJets_ < 0 ) dqmDirectory_.append(Form("_numJetsLe%i", maxJets_));
970  else if ( maxJets_ == minJets_ ) dqmDirectory_.append(Form("_numJetsEq%i", minJets_));
971  else dqmDirectory_.append(Form("_numJets%ito%i", minJets_, maxJets_));
972  }
StringCutObjectSelector< reco::Candidate > * cutGen_
MCEmbeddingValidationAnalyzer::tauDistributionExtra::~tauDistributionExtra ( )
inline

Definition at line 973 of file MCEmbeddingValidationAnalyzer.h.

References cutGen_, and cutRec_.

974  {
975  delete cutGen_;
976  delete cutRec_;
977  }
StringCutObjectSelector< reco::Candidate > * cutGen_

Member Function Documentation

void MCEmbeddingValidationAnalyzer::tauDistributionExtra::bookHistograms ( DQMStore dqmStore)
inline

Definition at line 978 of file MCEmbeddingValidationAnalyzer.h.

References DQMStore::book1D(), dqmDirectory_, histogramGenTauDecayMode_, histogramRecTauDecayMode_, and DQMStore::setCurrentFolder().

979  {
980  dqmStore.setCurrentFolder(dqmDirectory_.data());
981  histogramGenTauDecayMode_ = dqmStore.book1D("genTauDecayMode", "genTauDecayMode", 21, -1.5, +19.5);
982  histogramRecTauDecayMode_ = dqmStore.book1D("recTauDecayMode", "recTauDecayMode", 21, -1.5, +19.5);
983  }
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void MCEmbeddingValidationAnalyzer::tauDistributionExtra::fillHistograms ( int  numJets,
const edm::Event evt,
double  evtWeight 
)
inline

Definition at line 984 of file MCEmbeddingValidationAnalyzer.h.

References cutGen_, cutRec_, deltaR(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, dRmatch_, MonitorElement::Fill(), JetMCTagUtils::genTauDecayMode(), edm::Event::getByLabel(), histogramGenTauDecayMode_, histogramRecTauDecayMode_, maxJets_, minJets_, srcGen_, srcRec_, AlCaHLTBitMon_QueryRunRegistry::string, reco::PFTauDecayMode::tauDecay1ChargedPion0PiZero, reco::PFTauDecayMode::tauDecay1ChargedPion1PiZero, reco::PFTauDecayMode::tauDecay1ChargedPion2PiZero, reco::PFTauDecayMode::tauDecay1ChargedPion3PiZero, reco::PFTauDecayMode::tauDecay3ChargedPion0PiZero, reco::PFTauDecayMode::tauDecay3ChargedPion1PiZero, reco::PFTauDecayMode::tauDecay3ChargedPion2PiZero, reco::PFTauDecayMode::tauDecayMuon, reco::PFTauDecayMode::tauDecayOther, and reco::PFTauDecayMode::tauDecaysElectron.

986  {
987  if ( (minJets_ == -1 || numJets >= minJets_) &&
988  (maxJets_ == -1 || numJets <= maxJets_) ) {
990  edm::Handle<CandidateView> genLeptons;
991  evt.getByLabel(srcGen_, genLeptons);
992  typedef std::vector<pat::Tau> recLeptonCollection;
994  evt.getByLabel(srcRec_, recLeptons);
995  for ( CandidateView::const_iterator genLepton = genLeptons->begin();
996  genLepton != genLeptons->end(); ++genLepton ) {
997  if ( cutGen_ && !(*cutGen_)(*genLepton) ) continue;
998  const reco::CompositePtrCandidate* genLepton_composite = dynamic_cast<const reco::CompositePtrCandidate*>(&(*genLepton));
999  for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1000  recLepton != recLeptons->end(); ++recLepton ) {
1001  if ( cutRec_ && !(*cutRec_)(*recLepton) ) continue;
1002  double dR = deltaR(genLepton->p4(), recLepton->p4());
1003  if ( dR < dRmatch_ ) {
1004  std::string genTauDecayMode_string = JetMCTagUtils::genTauDecayMode(*genLepton_composite);
1005  //std::cout << "--> genTauDecayMode: = " << genTauDecayMode_string << std::endl;
1006  int genTauDecayMode = -1;
1007  if ( genTauDecayMode_string == "electron" ) genTauDecayMode = reco::PFTauDecayMode::tauDecaysElectron;
1008  else if ( genTauDecayMode_string == "muon" ) genTauDecayMode = reco::PFTauDecayMode::tauDecayMuon;
1009  else if ( genTauDecayMode_string == "oneProng0Pi0" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay1ChargedPion0PiZero;
1010  else if ( genTauDecayMode_string == "oneProng1Pi0" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay1ChargedPion1PiZero;
1011  else if ( genTauDecayMode_string == "oneProng2Pi0" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay1ChargedPion2PiZero;
1012  else if ( genTauDecayMode_string == "oneProngOther" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay1ChargedPion3PiZero;
1013  else if ( genTauDecayMode_string == "threeProng0Pi0" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay3ChargedPion0PiZero;
1014  else if ( genTauDecayMode_string == "threeProng1Pi0" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay3ChargedPion1PiZero;
1015  else if ( genTauDecayMode_string == "threeProngOther" ) genTauDecayMode = reco::PFTauDecayMode::tauDecay3ChargedPion2PiZero;
1016  else if ( genTauDecayMode_string == "rare" ) genTauDecayMode = reco::PFTauDecayMode::tauDecayOther;
1017  histogramGenTauDecayMode_->Fill(genTauDecayMode, evtWeight);
1018  int recTauDecayMode = recLepton->decayMode();
1019  histogramRecTauDecayMode_->Fill(recTauDecayMode, evtWeight);
1020  }
1021  }
1022  }
1023  //edm::Handle<reco::GenParticleCollection> genParticles;
1024  //evt.getByLabel("genParticles", genParticles);
1025  //for ( reco::GenParticleCollection::const_iterator genParticle = genParticles->begin();
1026  // genParticle != genParticles->end(); ++genParticle ) {
1027  // if ( TMath::Abs(genParticle->pdgId()) == 15 ) {
1028  // for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1029  // recLepton != recLeptons->end(); ++recLepton ) {
1030  // if ( cutRec_ && !(*cutRec_)(*recLepton) ) continue;
1031  // double dR = deltaR(genParticle->p4(), recLepton->p4());
1032  // if ( dR < dRmatch_ ) {
1033  // std::string genTauDecayMode_string = getGenTauDecayMode(&(*genParticle));
1034  // std::cout << "--> genTauDecayMode: = " << genTauDecayMode_string << std::endl;
1035  // }
1036  // }
1037  // }
1038  //}
1039  }
1040  }
std::string genTauDecayMode(const reco::CompositePtrCandidate &c)
Definition: JetMCTag.cc:81
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
void Fill(long long x)
edm::View< reco::Candidate > CandidateView
StringCutObjectSelector< reco::Candidate > * cutGen_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17

Member Data Documentation

StringCutObjectSelector<reco::Candidate>* MCEmbeddingValidationAnalyzer::tauDistributionExtra::cutGen_
StringCutObjectSelector<pat::Tau>* MCEmbeddingValidationAnalyzer::tauDistributionExtra::cutRec_
std::string MCEmbeddingValidationAnalyzer::tauDistributionExtra::dqmDirectory_

Definition at line 1048 of file MCEmbeddingValidationAnalyzer.h.

Referenced by bookHistograms(), and tauDistributionExtra().

double MCEmbeddingValidationAnalyzer::tauDistributionExtra::dRmatch_

Definition at line 1047 of file MCEmbeddingValidationAnalyzer.h.

Referenced by fillHistograms().

MonitorElement* MCEmbeddingValidationAnalyzer::tauDistributionExtra::histogramGenTauDecayMode_

Definition at line 1049 of file MCEmbeddingValidationAnalyzer.h.

Referenced by bookHistograms(), and fillHistograms().

MonitorElement* MCEmbeddingValidationAnalyzer::tauDistributionExtra::histogramRecTauDecayMode_

Definition at line 1050 of file MCEmbeddingValidationAnalyzer.h.

Referenced by bookHistograms(), and fillHistograms().

int MCEmbeddingValidationAnalyzer::tauDistributionExtra::maxJets_

Definition at line 1042 of file MCEmbeddingValidationAnalyzer.h.

Referenced by fillHistograms(), and tauDistributionExtra().

int MCEmbeddingValidationAnalyzer::tauDistributionExtra::minJets_

Definition at line 1041 of file MCEmbeddingValidationAnalyzer.h.

Referenced by fillHistograms(), and tauDistributionExtra().

edm::InputTag MCEmbeddingValidationAnalyzer::tauDistributionExtra::srcGen_

Definition at line 1043 of file MCEmbeddingValidationAnalyzer.h.

Referenced by fillHistograms().

edm::InputTag MCEmbeddingValidationAnalyzer::tauDistributionExtra::srcRec_

Definition at line 1045 of file MCEmbeddingValidationAnalyzer.h.

Referenced by fillHistograms().