CMS 3D CMS Logo

SimplePi0DiscAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: RecoEgamma/Examples
4 // Class: SimplePi0DiscAnalyzer
5 //
13 //
14 // Original Author: Aristotelis Kyriakis NCSR "Demokritos" Athens
15 // D Maletic, "Vinca" Belgrade
16 // Created: May 26 13:22:06 CEST 2009
17 //
18 //
19 
32 
33 #include "CLHEP/Units/PhysicalConstants.h"
34 
35 #include "TMath.h"
36 #include "TFile.h"
37 #include "TH1F.h"
38 #include "TH1I.h"
39 #include "TH2F.h"
40 #include "TProfile.h"
41 #include "TTree.h"
42 
43 #include <iostream>
44 
46 public:
47  explicit SimplePi0DiscAnalyzer(const edm::ParameterSet& conf);
48 
49  ~SimplePi0DiscAnalyzer() override;
50 
51  void beginJob() override;
52  void endJob() override;
53  void analyze(const edm::Event& e, const edm::EventSetup& c) override;
54 
55 private:
56  // ----------member data ---------------------------
57 
60 
62  TFile* rootFile_;
63 
65 
78 };
79 
82 
83 using namespace reco;
84 
86  outputFile_ = conf.getParameter<std::string>("outputFile");
87  rootFile_ = new TFile(outputFile_.c_str(), "RECREATE");
88 
89  photonCollectionProducer_ = conf.getParameter<std::string>("phoProducer");
90  photonCollection_ = conf.getParameter<std::string>("photonCollection");
91 }
92 
94  // do anything here that needs to be done at desctruction time
95  // (e.g. close files, deallocate resources etc.)
96  rootFile_->Write();
97  rootFile_->Close();
98 }
99 
101  rootFile_->cd();
102  std::cout << "beginJob() -> Book the Histograms" << std::endl;
103 
104  hConv_ntracks_ = new TH1F("nConvTracks", "Number of tracks of converted Photons ", 10, 0., 10);
105  hAll_nnout_Assoc_ = new TH1F("All_nnout_Assoc", "NNout for All Photons(AssociationMap)", 100, 0., 1.);
106  hAll_nnout_NoConv_Assoc_ =
107  new TH1F("All_nnout_NoConv_Assoc", "NNout for Unconverted Photons(AssociationMap)", 100, 0., 1.);
108  hAll_nnout_NoConv_Assoc_R9_ =
109  new TH1F("All_nnout_NoConv_Assoc_R9", "NNout for Unconverted Photons with R9>0.93 (AssociationMap)", 100, 0., 1.);
110  hBarrel_nnout_Assoc_ = new TH1F("barrel_nnout_Assoc", "NNout for Barrel Photons(AssociationMap)", 100, 0., 1.);
111  hBarrel_nnout_NoConv_Assoc_ =
112  new TH1F("barrel_nnout_NoConv_Assoc", "NNout for Barrel Unconverted Photons(AssociationMap)", 100, 0., 1.);
113  hBarrel_nnout_NoConv_Assoc_R9_ = new TH1F(
114  "barrel_nnout_NoConv_Assoc_R9", "NNout for Barrel Unconverted Photons with R9>0.93 (AssociationMap)", 100, 0., 1.);
115  hEndcNoPresh_nnout_Assoc_ =
116  new TH1F("endcNoPresh_nnout_Assoc", "NNout for Endcap NoPresh Photons(AssociationMap)", 100, 0., 1.);
117  hEndcNoPresh_nnout_NoConv_Assoc_ = new TH1F(
118  "endcNoPresh_nnout_NoConv_Assoc", "NNout for Endcap Unconverted NoPresh Photons(AssociationMap)", 100, 0., 1.);
119  hEndcNoPresh_nnout_NoConv_Assoc_R9_ =
120  new TH1F("endcNoPresh_nnout_NoConv_Assoc_R9",
121  "NNout for Endcap Unconverted NoPresh Photons with R9>0.93 (AssociationMap)",
122  100,
123  0.,
124  1.);
125  hEndcWithPresh_nnout_Assoc_ =
126  new TH1F("endcWithPresh_nnout_Assoc", "NNout for Endcap WithPresh Photons(AssociationMap)", 100, 0., 1.);
127  hEndcWithPresh_nnout_NoConv_Assoc_ = new TH1F(
128  "endcWithPresh_nnout_NoConv_Assoc", "NNout for Endcap Unconverted WithPresh Photons(AssociationMap)", 100, 0., 1.);
129  hEndcWithPresh_nnout_NoConv_Assoc_R9_ =
130  new TH1F("endcWithPresh_nnout_NoConv_Assoc_R9",
131  "NNout for Endcap Unconverted WithPresh Photons with R9>0.93 (AssociationMap)",
132  100,
133  0.,
134  1.);
135 }
136 
138  rootFile_->cd();
139  std::cout << "endJob() -> Write the Histograms" << std::endl;
140  hConv_ntracks_->Write();
141 
142  hAll_nnout_Assoc_->Write();
143  hAll_nnout_NoConv_Assoc_->Write();
144  hAll_nnout_NoConv_Assoc_R9_->Write();
145  hBarrel_nnout_Assoc_->Write();
146  hBarrel_nnout_NoConv_Assoc_->Write();
147  hBarrel_nnout_NoConv_Assoc_R9_->Write();
148  hEndcNoPresh_nnout_Assoc_->Write();
149  hEndcNoPresh_nnout_NoConv_Assoc_->Write();
150  hEndcNoPresh_nnout_NoConv_Assoc_R9_->Write();
151  hEndcWithPresh_nnout_Assoc_->Write();
152  hEndcWithPresh_nnout_NoConv_Assoc_->Write();
153  hEndcWithPresh_nnout_NoConv_Assoc_R9_->Write();
154 }
155 
157  std::cout << std::endl;
158  std::cout << " -------------- NEW EVENT : Run, Event = " << iEvent.id() << std::endl;
159 
161  iEvent.getByLabel(photonCollectionProducer_, photonCollection_, PhotonHandle);
162  const reco::PhotonCollection photons = *(PhotonHandle.product());
163 
164  std::cout << "----> Photons size: " << photons.size() << std::endl;
165 
167  iEvent.getByLabel("piZeroDiscriminators", "PhotonPi0DiscriminatorAssociationMap", map);
169 
170  // int PhoInd = 0;
171 
172  for (reco::PhotonCollection::const_iterator iPho = photons.begin(); iPho != photons.end();
173  iPho++) { // Loop over Photons
174 
175  reco::Photon localPho(*iPho);
176 
177  float Photon_et = localPho.et();
178  float Photon_eta = localPho.eta();
179  float Photon_phi = localPho.phi();
180  float Photon_r9 = localPho.r9();
181  bool isPhotConv = localPho.hasConversionTracks();
182  // std::cout << "Photon Id = " << PhoInd
183  std::cout << "Photon Id = " << iPho - photons.begin() << " with Et = " << Photon_et << " Eta = " << Photon_eta
184  << " Phi = " << Photon_phi << " R9 = " << Photon_r9 << " and conv_id = " << isPhotConv << std::endl;
185 
186  auto it_super = localPho.superCluster(); // get the SC related to the Photon candidate
187 
188  // hConv_ntracks_->Fill(Ntrk_conv);
189 
190  float nn = -10;
191  // mapIter = map->find(edm::Ref<reco::PhotonCollection>(PhotonHandle,PhoInd));
192  mapIter = map->find(edm::Ref<reco::PhotonCollection>(PhotonHandle, iPho - photons.begin()));
193  if (mapIter != map->end()) {
194  nn = mapIter->val;
195  }
196  if (fabs(it_super->eta()) <= 1.442) {
197  hBarrel_nnout_Assoc_->Fill(nn);
198  hAll_nnout_Assoc_->Fill(nn);
199  std::cout << "AssociationMap Barrel NN = " << nn << std::endl;
200  if (!isPhotConv) {
201  hBarrel_nnout_NoConv_Assoc_->Fill(nn);
202  hAll_nnout_NoConv_Assoc_->Fill(nn);
203  }
204  if (Photon_r9 > 0.93) {
205  hBarrel_nnout_NoConv_Assoc_R9_->Fill(nn);
206  hAll_nnout_NoConv_Assoc_R9_->Fill(nn);
207  }
208  } else if ((fabs(it_super->eta()) >= 1.556 && fabs(it_super->eta()) < 1.65) || fabs(it_super->eta()) > 2.5) {
209  hEndcNoPresh_nnout_Assoc_->Fill(nn);
210  hAll_nnout_Assoc_->Fill(nn);
211  std::cout << "AssociationMap EndcNoPresh NN = " << nn << std::endl;
212  if (!isPhotConv) {
213  hEndcNoPresh_nnout_NoConv_Assoc_->Fill(nn);
214  hAll_nnout_NoConv_Assoc_->Fill(nn);
215  }
216  if (Photon_r9 > 0.93) {
217  hEndcNoPresh_nnout_NoConv_Assoc_R9_->Fill(nn);
218  hAll_nnout_NoConv_Assoc_R9_->Fill(nn);
219  }
220  } else if (fabs(it_super->eta()) >= 1.65 && fabs(it_super->eta()) <= 2.5) {
221  hEndcWithPresh_nnout_Assoc_->Fill(nn);
222  hAll_nnout_Assoc_->Fill(nn);
223  std::cout << "AssociationMap EndcWithPresh NN = " << nn << std::endl;
224  if (!isPhotConv) {
225  hEndcWithPresh_nnout_NoConv_Assoc_->Fill(nn);
226  hAll_nnout_NoConv_Assoc_->Fill(nn);
227  }
228  if (Photon_r9 > 0.93) {
229  hEndcWithPresh_nnout_NoConv_Assoc_R9_->Fill(nn);
230  hAll_nnout_NoConv_Assoc_R9_->Fill(nn);
231  }
232  }
233 
234  // PhoInd++;
235  } // End Loop over Photons
236 }
Handle.h
EDAnalyzer.h
reco::Photon::superCluster
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
MessageLogger.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
ESHandle.h
gather_cfg.cout
cout
Definition: gather_cfg.py:144
SimplePi0DiscAnalyzer::rootFile_
TFile * rootFile_
Definition: SimplePi0DiscAnalyzer.cc:62
SimplePi0DiscAnalyzer::hAll_nnout_NoConv_Assoc_
TH1F * hAll_nnout_NoConv_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:67
PhotonFwd.h
EDAnalyzer.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
SimplePi0DiscAnalyzer::photonCollection_
std::string photonCollection_
Definition: SimplePi0DiscAnalyzer.cc:59
edm::Handle< reco::PhotonCollection >
edm::Ref
Definition: AssociativeIterator.h:58
SimplePi0DiscAnalyzer::hEndcNoPresh_nnout_Assoc_
TH1F * hEndcNoPresh_nnout_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:70
MakerMacros.h
reco::Photon::hasConversionTracks
bool hasConversionTracks() const
Bool flagging photons with a vector of refereces to conversions with size >0.
Definition: Photon.h:66
Photon.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SimplePi0DiscAnalyzer::hBarrel_nnout_Assoc_
TH1F * hBarrel_nnout_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:68
SimplePi0DiscAnalyzer::hBarrel_nnout_NoConv_Assoc_
TH1F * hBarrel_nnout_NoConv_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:69
SimplePi0DiscAnalyzer::photonCollectionProducer_
std::string photonCollectionProducer_
Definition: SimplePi0DiscAnalyzer.cc:58
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EcalSubdetector.h
edm::helpers::KeyVal::val
V val
Definition: AssociationMapHelpers.h:33
SimplePi0DiscAnalyzer::hEndcWithPresh_nnout_Assoc_
TH1F * hEndcWithPresh_nnout_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:72
PhotonPi0DiscriminatorAssociation.h
edm::ParameterSet
Definition: ParameterSet.h:47
SimplePi0DiscAnalyzer::beginJob
void beginJob() override
Definition: SimplePi0DiscAnalyzer.cc:100
reco::Photon::r9
float r9() const
Definition: Photon.h:240
Event.h
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
SimplePi0DiscAnalyzer::hConv_ntracks_
TH1F * hConv_ntracks_
Definition: SimplePi0DiscAnalyzer.cc:64
SimplePi0DiscAnalyzer::hEndcNoPresh_nnout_NoConv_Assoc_
TH1F * hEndcNoPresh_nnout_NoConv_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:71
iEvent
int iEvent
Definition: GenABIO.cc:224
SimplePi0DiscAnalyzer::~SimplePi0DiscAnalyzer
~SimplePi0DiscAnalyzer() override
Definition: SimplePi0DiscAnalyzer.cc:93
SimplePi0DiscAnalyzer::hAll_nnout_NoConv_Assoc_R9_
TH1F * hAll_nnout_NoConv_Assoc_R9_
Definition: SimplePi0DiscAnalyzer.cc:74
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
edm::EventSetup
Definition: EventSetup.h:58
SimplePi0DiscAnalyzer::hEndcWithPresh_nnout_NoConv_Assoc_R9_
TH1F * hEndcWithPresh_nnout_NoConv_Assoc_R9_
Definition: SimplePi0DiscAnalyzer.cc:77
groupFilesInBlocks.nn
nn
Definition: groupFilesInBlocks.py:150
reco::Photon
Definition: Photon.h:21
reco::LeafCandidate::et
double et() const final
transverse energy
Definition: LeafCandidate.h:127
SimplePi0DiscAnalyzer::hAll_nnout_Assoc_
TH1F * hAll_nnout_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:66
SimplePi0DiscAnalyzer::outputFile_
std::string outputFile_
Definition: SimplePi0DiscAnalyzer.cc:61
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
SimplePi0DiscAnalyzer::hBarrel_nnout_NoConv_Assoc_R9_
TH1F * hBarrel_nnout_NoConv_Assoc_R9_
Definition: SimplePi0DiscAnalyzer.cc:75
SimplePi0DiscAnalyzer::endJob
void endJob() override
Definition: SimplePi0DiscAnalyzer.cc:137
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
reco::PhotonCollection
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
SimplePi0DiscAnalyzer
Definition: SimplePi0DiscAnalyzer.cc:45
genParticles_cff.map
map
Definition: genParticles_cff.py:11
ParameterSet.h
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
SimplePi0DiscAnalyzer::hEndcNoPresh_nnout_NoConv_Assoc_R9_
TH1F * hEndcNoPresh_nnout_NoConv_Assoc_R9_
Definition: SimplePi0DiscAnalyzer.cc:76
edm::Event
Definition: Event.h:73
SimplePi0DiscAnalyzer::hEndcWithPresh_nnout_NoConv_Assoc_
TH1F * hEndcWithPresh_nnout_NoConv_Assoc_
Definition: SimplePi0DiscAnalyzer.cc:73
edm::AssociationMap::const_iterator
const iterator
Definition: AssociationMap.h:76
SimplePi0DiscAnalyzer::analyze
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Definition: SimplePi0DiscAnalyzer.cc:156
SimplePi0DiscAnalyzer::SimplePi0DiscAnalyzer
SimplePi0DiscAnalyzer(const edm::ParameterSet &conf)
Definition: SimplePi0DiscAnalyzer.cc:85
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37