CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GenMuonRadCorrAnalyzer.h
Go to the documentation of this file.
1 #ifndef TauAnalysis_MCEmbeddingTools_GenMuonRadCorrAnalyzer_h
2 #define TauAnalysis_MCEmbeddingTools_GenMuonRadCorrAnalyzer_h
3 
9 
13 
16 
18 
19 #include <TH2.h>
20 
21 #include <string>
22 #include <vector>
23 
25 {
26  public:
29 
30  void analyze(const edm::Event&, const edm::EventSetup&);
31  void beginJob();
32 
33  private:
36 
37  typedef std::vector<edm::InputTag> vInputTag;
39 
41 
43  {
44  plotEntryType(double minMuPlusEn, double maxMuPlusEn, double minMuMinusEn, double maxMuMinusEn,
45  unsigned numBinsRadDivMuonEn, double minRadDivMuonEn, double maxRadDivMuonEn)
46  : minMuPlusEn_(minMuPlusEn),
47  maxMuPlusEn_(maxMuPlusEn),
48  minMuMinusEn_(minMuMinusEn),
49  maxMuMinusEn_(maxMuMinusEn),
50  numBinsRadDivMuonEn_(numBinsRadDivMuonEn),
51  minRadDivMuonEn_(minRadDivMuonEn),
52  maxRadDivMuonEn_(maxRadDivMuonEn),
53  histogram_(0)
54  {}
56 
58  {
59  std::string histogramName = "genMuonRadCorr";
60  if ( minMuPlusEn_ < 0. && maxMuPlusEn_ < 0. ) histogramName.append("");
61  else if ( maxMuPlusEn_ < 0. ) histogramName.append(Form("_muPlusEnGt%1.0f", minMuPlusEn_));
62  else if ( minMuPlusEn_ < 0. ) histogramName.append(Form("_muPlusEnLt%1.0f", maxMuPlusEn_));
63  else histogramName.append(Form("_muPlusEn%1.0fto%1.0f", minMuPlusEn_, maxMuPlusEn_));
64  if ( minMuMinusEn_ < 0. && maxMuMinusEn_ < 0. ) histogramName.append("");
65  else if ( maxMuMinusEn_ < 0. ) histogramName.append(Form("_muMinusEnGt%1.0f", minMuMinusEn_));
66  else if ( minMuMinusEn_ < 0. ) histogramName.append(Form("_muMinusEnLt%1.0f", maxMuMinusEn_));
67  else histogramName.append(Form("_muMinusEn%1.0fto%1.0f", minMuMinusEn_, maxMuMinusEn_));
69  }
70  void fillHistograms(double muPlusEn, double muPlusRad, double muMinusEn, double muMinusRad, double evtWeight)
71  {
72  if ( (minMuPlusEn_ <= 0. || muPlusEn > minMuPlusEn_ ) &&
73  (maxMuPlusEn_ <= 0. || muPlusEn < maxMuPlusEn_ ) &&
74  (minMuMinusEn_ <= 0. || muMinusEn > minMuMinusEn_ ) &&
75  (maxMuMinusEn_ <= 0. || muMinusEn < maxMuMinusEn_ ) ) {
76  histogram_->Fill(muPlusRad, muMinusRad, evtWeight);
77  }
78  }
79 
80  double minMuPlusEn_;
81  double maxMuPlusEn_;
82  double minMuMinusEn_;
83  double maxMuMinusEn_;
87 
88  TH2* histogram_;
89  };
90  std::vector<plotEntryType*> plotEntries_;
91 
92  double beamEnergy_;
93 
95 
97 
99 };
100 
101 #endif
GenMuonRadiationAlgorithm * muonRadiationAlgo_
plotEntryType(double minMuPlusEn, double maxMuPlusEn, double minMuMinusEn, double maxMuMinusEn, unsigned numBinsRadDivMuonEn, double minRadDivMuonEn, double maxRadDivMuonEn)
void analyze(const edm::Event &, const edm::EventSetup &)
GenMuonRadCorrAnalyzer(const edm::ParameterSet &)
T * make(const Args &...args) const
make new ROOT object
std::vector< edm::InputTag > vInputTag
void fillHistograms(double muPlusEn, double muPlusRad, double muMinusEn, double muMinusRad, double evtWeight)
dbl *** dir
Definition: mlp_gen.cc:35
std::vector< plotEntryType * > plotEntries_