CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ProducerAnalyzer.cc
Go to the documentation of this file.
1 // system include files
2 
3 // user include files
4 
16 
17 #include <map>
18 
19 using namespace std;
20 using namespace reco;
21 
22 namespace cms
23 {
24 
25 //
26 // constructors and destructor
27 //
28 ProducerAnalyzer::ProducerAnalyzer(const edm::ParameterSet& iConfig)
29 {
30  // get name of output file with histogramms
31 
32  nameProd_ = iConfig.getUntrackedParameter<std::string>("nameProd");
33  jetCalo_ = iConfig.getUntrackedParameter<std::string>("jetCalo","GammaJetJetBackToBackCollection");
34  gammaClus_ = iConfig.getUntrackedParameter<std::string>("gammaClus","GammaJetGammaBackToBackCollection");
35  ecalInput_=iConfig.getUntrackedParameter<std::string>("ecalInput","GammaJetEcalRecHitCollection");
36  hbheInput_ = iConfig.getUntrackedParameter<std::string>("hbheInput");
37  hoInput_ = iConfig.getUntrackedParameter<std::string>("hoInput");
38  hfInput_ = iConfig.getUntrackedParameter<std::string>("hfInput");
39  Tracks_ = iConfig.getUntrackedParameter<std::string>("Tracks","GammaJetTracksCollection");
40 
41  tok_hovar_ = consumes<HOCalibVariableCollection>( edm::InputTag(nameProd_,hoInput_) );
42  tok_horeco_ = consumes<HORecHitCollection>( edm::InputTag("horeco") );
43  tok_ho_ = consumes<HORecHitCollection>( edm::InputTag(hoInput_) );
44  tok_hoProd_ = consumes<HORecHitCollection>( edm::InputTag(nameProd_,hoInput_) );
45 
46  tok_hf_ = consumes<HFRecHitCollection>( edm::InputTag(hfInput_) );
47 
48  tok_jets_ = consumes<reco::CaloJetCollection>( edm::InputTag(nameProd_,jetCalo_) );
49  tok_gamma_ = consumes<reco::SuperClusterCollection>( edm::InputTag(nameProd_,gammaClus_) );
50  tok_muons_ = consumes<reco::MuonCollection>(edm::InputTag(nameProd_,"SelectedMuons"));
51  tok_ecal_ = consumes<EcalRecHitCollection>( edm::InputTag(nameProd_,ecalInput_) );
52  tok_tracks_ = consumes<reco::TrackCollection>( edm::InputTag(nameProd_,Tracks_) );
53 
54  tok_hbheProd_ = consumes<HBHERecHitCollection>( edm::InputTag(nameProd_,hbheInput_) );
55  tok_hbhe_ = consumes<HBHERecHitCollection>( edm::InputTag(hbheInput_) );
56 
57 }
58 
59 ProducerAnalyzer::~ProducerAnalyzer()
60 {
61 
62  // do anything here that needs to be done at desctruction time
63  // (e.g. close files, deallocate resources etc.)
64 
65 }
66 
68 {
69 }
70 
71 void ProducerAnalyzer::endJob()
72 {
73 }
74 
75 
76 //
77 // member functions
78 //
79 
80 // ------------ method called to produce the data ------------
81 void
83 {
84 
85  using namespace edm;
86 
87  const CaloGeometry* geo;
89  iSetup.get<CaloGeometryRecord>().get(pG);
90  geo = pG.product();
91 
92 
93  std::vector<StableProvenance const*> theProvenance;
94  iEvent.getAllStableProvenance(theProvenance);
95  for(auto const& provenance : theProvenance)
96  {
97  cout<<" Print all module/label names "<<provenance->moduleName()<<" "<<provenance->moduleLabel()<<
98  " "<<provenance->productInstanceName()<<endl;
99  }
100 
101 
102  if(nameProd_ == "hoCalibProducer")
103  {
105  iEvent.getByToken(tok_hovar_, ho);
106  const HOCalibVariableCollection Hitho = *(ho.product());
107  std::cout<<" Size of HO "<<(Hitho).size()<<std::endl;
108  }
109 
110  if(nameProd_ == "ALCARECOMuAlZMuMu" )
111  {
112 
114  iEvent.getByToken(tok_horeco_, ho);
115  const HORecHitCollection Hitho = *(ho.product());
116  std::cout<<" Size of HO "<<(Hitho).size()<<std::endl;
118  iEvent.getByToken(tok_muons_, mucand);
119  std::cout<<" Size of muon collection "<<mucand->size()<<std::endl;
120  for(MuonCollection::const_iterator it = mucand->begin(); it != mucand->end(); it++)
121  {
122  TrackRef mu = (*it).combinedMuon();
123  std::cout<<" Pt muon "<<mu->innerMomentum()<<std::endl;
124  }
125 
126  }
127 
128  if(nameProd_ != "IsoProd" && nameProd_ != "ALCARECOMuAlZMuMu" && nameProd_ != "hoCalibProducer")
129  {
131  iEvent.getByToken(tok_hbhe_, hbhe);
132  const HBHERecHitCollection Hithbhe = *(hbhe.product());
133  std::cout<<" Size of HBHE "<<(Hithbhe).size()<<std::endl;
134 
135 
137  iEvent.getByToken(tok_ho_, ho);
138  const HORecHitCollection Hitho = *(ho.product());
139  std::cout<<" Size of HO "<<(Hitho).size()<<std::endl;
140 
141 
143  iEvent.getByToken(tok_hf_, hf);
144  const HFRecHitCollection Hithf = *(hf.product());
145  std::cout<<" Size of HF "<<(Hithf).size()<<std::endl;
146  }
147  if(nameProd_ == "IsoProd")
148  {
149  cout<<" We are here "<<endl;
151  iEvent.getByToken(tok_tracks_,tracks);
152 
153 
154  std::cout<<" Tracks size "<<(*tracks).size()<<std::endl;
155  reco::TrackCollection::const_iterator track = tracks->begin ();
156 
157  for (; track != tracks->end (); track++)
158  {
159  cout<<" P track "<<(*track).p()<<" eta "<<(*track).eta()<<" phi "<<(*track).phi()<<" Outer "<<(*track).outerMomentum()<<" "<<
160  (*track).outerPosition()<<endl;
161  TrackExtraRef myextra = (*track).extra();
162  cout<<" Track extra "<<myextra->outerMomentum()<<" "<<myextra->outerPosition()<<endl;
163  }
164 
166  iEvent.getByToken(tok_ecal_,ecal);
167  const EcalRecHitCollection Hitecal = *(ecal.product());
168  std::cout<<" Size of Ecal "<<(Hitecal).size()<<std::endl;
170 
171  double energyECAL = 0.;
172  double energyHCAL = 0.;
173 
174  for (; hite != (ecal.product())->end (); hite++)
175  {
176 
177 // cout<<" Energy ECAL "<<(*hite).energy()<<endl;
178 
179 
180 // " eta "<<(*hite).detid()<<" phi "<<(*hite).detid().getPosition().phi()<<endl;
181 
182  GlobalPoint posE = geo->getPosition((*hite).detid());
183 
184  cout<<" Energy ECAL "<<(*hite).energy()<<
185  " eta "<<posE.eta()<<" phi "<<posE.phi()<<endl;
186 
187  energyECAL = energyECAL + (*hite).energy();
188 
189  }
190 
192  iEvent.getByToken(tok_hbheProd_,hbhe);
193  const HBHERecHitCollection Hithbhe = *(hbhe.product());
194  std::cout<<" Size of HBHE "<<(Hithbhe).size()<<std::endl;
196 
197  for (; hith != (hbhe.product())->end (); hith++)
198  {
199 
200  GlobalPoint posH = geo->getPosition((*hith).detid());
201 
202  cout<<" Energy HCAL "<<(*hith).energy()<<
203  " eta "<<posH.eta()<<" phi "<<posH.phi()<<endl;
204 
205  energyHCAL = energyHCAL + (*hith).energy();
206 
207  }
208 
209  cout<<" Energy ECAL "<< energyECAL<<" Energy HCAL "<< energyHCAL<<endl;
210 
212  iEvent.getByToken(tok_hoProd_,ho);
213  const HORecHitCollection Hitho = *(ho.product());
214  std::cout<<" Size of HO "<<(Hitho).size()<<std::endl;
216 
217  for (; hito != (ho.product())->end (); hito++)
218  {
219 // cout<<" Energy HO "<<(*hito).energy()<<endl;
220 // " eta "<<(*hite).eta()<<" phi "<<(*hite).phi()<<endl;
221  }
222 
223  }
224 
225 
226  if(nameProd_ == "GammaJetProd" || nameProd_ == "DiJProd")
227  {
228  cout<<" we are in GammaJetProd area "<<endl;
230  iEvent.getByToken(tok_ecal_, ecal);
231  std::cout<<" Size of ECAL "<<(*ecal).size()<<std::endl;
232 
234  iEvent.getByToken(tok_jets_, jets);
235  std::cout<<" Jet size "<<(*jets).size()<<std::endl;
236  reco::CaloJetCollection::const_iterator jet = jets->begin ();
237  for (; jet != jets->end (); jet++)
238  {
239  cout<<" Et jet "<<(*jet).et()<<" eta "<<(*jet).eta()<<" phi "<<(*jet).phi()<<endl;
240  }
241 
243  iEvent.getByToken(tok_tracks_, tracks);
244  std::cout<<" Tracks size "<<(*tracks).size()<<std::endl;
245  }
246  if( nameProd_ == "GammaJetProd")
247  {
249  iEvent.getByToken(tok_gamma_, eclus);
250  std::cout<<" GammaClus size "<<(*eclus).size()<<std::endl;
251  reco::SuperClusterCollection::const_iterator iclus = eclus->begin ();
252  for (; iclus != eclus->end (); iclus++)
253  {
254  cout<<" Et gamma "<<(*iclus).energy()/cosh((*iclus).eta())<<" eta "<<(*iclus).eta()<<" phi "<<(*iclus).phi()<<endl;
255  }
256  }
257 
258 }
259 //define this as a plug-in
260 //DEFINE_FWK_MODULE(ProducerAnalyzer)
261 }
T getUntrackedParameter(std::string const &, T const &) const
double energyECAL(std::vector< DetId > &vdets, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
std::vector< EcalRecHit >::const_iterator const_iterator
void beginJob()
Definition: Breakpoints.cc:15
int iEvent
Definition: GenABIO.cc:230
vector< PseudoJet > jets
const int mu
Definition: Constants.h:22
#define end
Definition: vmac.h:37
double energyHCAL(std::vector< DetId > &vdets, edm::Handle< T > &hits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, bool useRaw=false, bool debug=false)
T const * product() const
Definition: Handle.h:81
tuple tracks
Definition: testEve_cfg.py:39
const T & get() const
Definition: EventSetup.h:56
std::vector< HOCalibVariables > HOCalibVariableCollection
collection of HOcalibration variabale
T eta() const
Definition: PV3DBase.h:76
#define begin
Definition: vmac.h:30
tuple cout
Definition: gather_cfg.py:145
tuple size
Write out results.
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Event.cc:96