CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TauTagValidation.h
Go to the documentation of this file.
1 #ifndef TauTagValidation_h
2 #define TauTagValidation_h
3 
4 // -*- C++ -*-
5 //
6 // Package: TauTagValidation
7 // Class: TauTagValidation
8 //
9 /* *\class TauTagValidation TauTagValidation.cc
10 
11  Description: EDAnalyzer to validate the Collections from the ConeIsolation Producer
12  It is supposed to be used for Offline Tau Reconstrction, so PrimaryVertex should be used.
13  Implementation:
14 
15 */
16 // Original Author: Ricardo Vasquez Sierra On August 29, 2007
17 // user include files
18 
19 
33 
35 
36 // Math
37 #include "Math/GenVector/VectorUtil.h"
38 #include "Math/GenVector/PxPyPzE4D.h"
39 #include "TLorentzVector.h"
40 #include "TH1D.h"
41 #include "TH1.h"
42 #include "TH1F.h"
43 #include <vector>
44 #include <string>
45 
46 // Include DQM core
49 
51 typedef std::vector<LV> LVCollection;
52 
53 struct hinfo{
54  int nbins;
55  double min;
56  double max;
57  hinfo(int n, double m, double M){
58  nbins = n;
59  min = m;
60  max = M;
61  }
63  nbins = config.getParameter<int>("nbins");
64  min = config.getParameter<double>("min");
65  max = config.getParameter<double>("max");
66  }
67 };
68 
69 // class declaration
71 
72 public:
73  explicit TauTagValidation(const edm::ParameterSet&);
75 
76  virtual void analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup);
77  virtual void beginJob();
78  virtual void endJob();
79  virtual void beginRun(edm::Run const&, edm::EventSetup const&);
80  virtual void endRun(edm::Run const&, edm::EventSetup const&);
81  virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
82  virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&);
83 
84 private:
86  std::string moduleLabel_;
88  double getSumPt(const reco::PFCandidateRefVector & candidates);
90  bool stripDiscriminatorLabel(const std::string& discriminatorLabel, std::string & newLabel);
91 
95 
97  std::string dataType_;
98 
99  // Matching criteria
102  double TauPtCut_;
103 
104  //optional: filter candidates by passed cuts
105  std::string recoCuts_, genCuts_;
106 
107  // output histograms
109 
110  // Reference Collection
112  std::string refCollection_;
113 
114  // In case you need to distinguish the output file
115  std::string extensionName_;
116 
117  // Reconstructed product of interest
119  std::string TauProducer_;
120 
121  // std::vector<std::string> TauProducerDiscriminators_;
122  // std::vector<double> TauDiscriminatorCuts_;
123 
124  std::vector< edm::ParameterSet > discriminators_;
125 
126  // CMSSW version
127 
128  std::string tversion;
129  std::string outPutFile_;
130 
131  std::map<std::string, MonitorElement *> ptTauVisibleMap;
132  std::map<std::string, MonitorElement *> etaTauVisibleMap;
133  std::map<std::string, MonitorElement *> phiTauVisibleMap;
134  std::map<std::string, MonitorElement *> pileupTauVisibleMap;
135  std::map<std::string, MonitorElement *> plotMap_;
136 
137  // All the extra MonitorElements that we would like to add for each Tau Tagging step
138  // First for the PFTaus
139  // Number of PFTau Candidates with a leading charged hadron in it (within a cone of 0.1 avound the jet axis and a minimum pt of 6 GeV)
140 
147 
148  // Isolated PFTau with a Leading charged hadron with no Charged Hadrons inside the isolation annulus
149 
155 
156  // Isolated PFTau with a Leading charge hadron with no Charged Hadron inside the isolation annulus with no Ecal/Gamma candidates in the isolation annulus
157 
162 
163 
164  // Second for the CaloTaus
165  // Number of CaloJets with a Leading Track (within a cone of 0.1 around the jet axis and a minimum pt of 5. GeV)
166 
171 
172  // Track Isolated CaloTau with a Leading Track
173 
177 
178  // EM Isolated CaloTau with a Leading with no tracks in the Isolation Annulus
179 
182 
183  // book-keeping variables
184 
187 
188  protected:
189 
191 
192  private:
194 
195 };
196 
197 #endif
std::map< std::string, MonitorElement * > ptTauVisibleMap
T getParameter(std::string const &) const
MonitorElement * nPFJet_LeadingChargedHadron_ChargedHadronsIsolAnnulus_
MonitorElement * nCaloJet_LeadingTrack_isolationTracks_
std::vector< LV > LVCollection
std::map< std::string, MonitorElement * > plotMap_
double getSumPt(const reco::PFCandidateRefVector &candidates)
sum the transversal momentum of all candidates
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:15
double max
MonitorElement * nPFJet_LeadingChargedHadron_NeutralHadronsIsolAnnulus_
MonitorElement * nCaloJet_LeadingTrack_isolationECALhitsEtSum_
MonitorElement * nEMIsolated_signalTracksInvariantMass_
edm::InputTag TauProducerInputTag_
MonitorElement * nTrackIsolated_signalTracksInvariantMass_
Provides a code based selection for trigger and DCS information in order to have no failing filters i...
virtual void endJob()
std::string refCollection_
MonitorElement * nTrackIsolated_isolationECALhitsEtSum_
std::string outPutFile_
MonitorElement * nPFJet_LeadingChargedHadron_GammasSignal_
std::vector< edm::ParameterSet > discriminators_
MonitorElement * nPFJet_LeadingChargedHadron_ChargedHadronsSignal_
math::XYZTLorentzVectorD LV
hinfo(int n, double m, double M)
int iEvent
Definition: GenABIO.cc:243
std::string tversion
GenericTriggerEventFlag * genericTriggerEventFlag_
generic access to dynamic trigger table
MonitorElement * nIsolated_NoChargedNoGammas_ChargedHadronsSignal_
std::string dataType_
What&#39;s the reference for the Validation Leptons or Jets.
std::string TauProducer_
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
MonitorElement * nIsolated_NoChargedHadrons_GammasSignal_
MonitorElement * nIsolated_NoChargedHadrons_GammasIsolAnnulus_
std::string genCuts_
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
virtual void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup)
std::map< std::string, MonitorElement * > etaTauVisibleMap
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
MonitorElement * nIsolated_NoChargedNoGammas_NeutralHadronsSignal_
double min
MonitorElement * nIsolated_NoChargedNoGammas_NeutralHadronsIsolAnnulus_
MonitorElement * nIsolated_NoChargedHadrons_NeutralHadronsSignal_
MonitorElement * nTrackIsolated_signalTracks_
std::string extensionName_
MonitorElement * nIsolated_NoChargedHadrons_NeutralHadronsIsolAnnulus_
std::string moduleLabel_
label of the current module
MonitorElement * nEMIsolated_signalTracks_
edm::InputTag refCollectionInputTag_
virtual void endRun(edm::Run const &, edm::EventSetup const &)
bool stripDiscriminatorLabel(const std::string &discriminatorLabel, std::string &newLabel)
get rid of redundant parts to shorten the label
edm::InputTag PrimaryVertexCollection_
MonitorElement * nIsolated_NoChargedHadrons_ChargedHadronsSignal_
MonitorElement * nCaloJet_LeadingTrack_signalTracksInvariantMass_
std::map< std::string, MonitorElement * > phiTauVisibleMap
MonitorElement * nPFJet_LeadingChargedHadron_NeutralHadronsSignal_
TauTagValidation(const edm::ParameterSet &)
edm::ParameterSet histoSettings_
MonitorElement * nPFJet_LeadingChargedHadron_GammasIsolAnnulus_
std::string recoCuts_
std::map< std::string, MonitorElement * > pileupTauVisibleMap
MonitorElement * nIsolated_NoChargedNoGammas_GammasSignal_
PFBenchmarkAlgo * algo_
hinfo(const edm::ParameterSet &config)
virtual void beginJob()
Definition: Run.h:33
MonitorElement * nCaloJet_LeadingTrack_signalTracks_