44 DumpLevel( cfg.getParameter<
string>(
"DumpLevel" ) ),
45 CaloJetAlg( cfg.getParameter<
string>(
"CaloJetAlg" ) ),
46 DebugLevel( cfg.getParameter<int>(
"DebugLevel" ) ),
47 ShowECal( cfg.getParameter<bool>(
"ShowECal" ) )
54 cout <<
"Dump of Jets" << endl;
59 cout <<
"Dump of Jets and constituent CaloTowers" << endl;
64 cout <<
"Dump of Jets, constituent CaloTowers, and constituent RecHits" << endl;
69 cout <<
"Dump of Jets, constituent CaloTowers, constituent RecHits and associated Digis" << endl;
107 evt.
getByLabel(
"ecalRecHit",
"EcalRecHitsEB", EBRecHits );
108 evt.
getByLabel(
"ecalRecHit",
"EcalRecHitsEE", EERecHits );
109 if (
DebugLevel)
cout<<
"# of hits gotten - HBHE: "<<HBHERecHits->size()<<endl;
113 if (
DebugLevel)
cout<<
"# of digis gotten - HBHE: "<<HBHEDigis->size()<<endl;
115 evt.
getByLabel(
"ecalDigis",
"ebDigis", EBDigis );
116 evt.
getByLabel(
"ecalDigis",
"eeDigis", EEDigis );
120 cout << endl <<
"Evt: "<<
evtCount <<
", Num Jets=" <<caloJets->end() - caloJets->begin() << endl;
121 if(
Dump>=1)
cout <<
" *********************************************************" <<endl;
123 if(
Dump>=1)
for( CaloJetCollection::const_iterator
jet = caloJets->begin();
jet != caloJets->end(); ++
jet ) {
126 std::vector <CaloTowerPtr> towers =
jet->getCaloConstituents ();
127 int nConstituents= towers.size();
128 cout <<
" Jet: "<<jetInd<<
", eta="<<
jet->eta()<<
", phi="<<
jet->phi()<<
", pt="<<
jet->pt()<<\
129 ",E="<<
jet->energy()<<
", EB E="<<
jet->emEnergyInEB()<<
" ,HB E="<<
jet->hadEnergyInHB()<<\
130 ", HO E="<<
jet->hadEnergyInHO()<<
" ,EE E="<<
jet->emEnergyInEE()\
131 <<
", HE E="<<
jet->hadEnergyInHE()<<
", HF E="<<
jet->hadEnergyInHF()+
jet->emEnergyInHF()<<
", Num Towers="<<nConstituents<<endl;
132 if(
Dump>=2)
cout <<
" ====================================================="<<endl;
133 float sumTowerE = 0.0;
134 if(
Dump>=2)
for (
int i = 0;
i <nConstituents ;
i++) {
136 if (theTower == caloTowers->end()) {
cerr<<
"Bug? Can't find the tower"<<endl;
return;}
137 int ietaTower = towers[
i]->id().ieta();
138 int iphiTower = towers[
i]->id().iphi();
139 sumTowerE += theTower->energy();
140 size_t numRecHits = theTower->constituentsSize();
141 cout <<
" Tower " <<
i <<
": ieta=" << ietaTower <<
", eta=" << theTower->eta() <<
", iphi=" << iphiTower <<
", phi=" << theTower->phi() << \
142 ", energy=" << theTower->energy() <<
", EM=" << theTower->emEnergy()<<
", HAD=" << theTower->hadEnergy()\
143 <<
", HO=" << theTower->outerEnergy() <<
", Num Rec Hits =" << numRecHits << endl;
144 if(
Dump>=3)
cout <<
" ------------------------------------------------"<<endl;
145 float sumRecHitE = 0.0;
146 if(
Dump>=3)
for(
size_t j = 0;
j <numRecHits ;
j++) {
147 DetId RecHitDetID=theTower->constituent(
j);
155 sumRecHitE += theRecHit->energy();
157 cout <<
" RecHit: " <<
j <<
": HB, ieta=" << HcalID.
ieta() <<
", iphi=" << HcalID.
iphi()<<
158 ", depth=" << HcalID.
depth() <<
", energy=" << theRecHit->energy() <<
", time=" <<\
159 theRecHit->time() <<
", All Digis=" << theDigis->size() <<
", presamples =" <<\
160 theDigis->presamples() <<endl;
166 float SumDigiCharge = 0.0;
167 float EstimatedPedestal=0.0;
168 int SamplesToAdd = 4;
169 if(
Dump>=4)
cout <<
" ......................................"<<endl;
170 if(
Dump>=4)
for(
int k=0;
k<theDigis->size();
k++){
172 if(
k>=theDigis->presamples()&&
k<theDigis->presamples()+SamplesToAdd)SumDigiCharge+=QIE.
nominal_fC();
173 if(k<theDigis->presamples()-1)EstimatedPedestal+=QIE.
nominal_fC()*SamplesToAdd/(theDigis->presamples()-1);
174 cout <<
" Digi: " <<
k <<
", cap ID = " << QIE.
capid() <<
": ADC Counts = " << QIE.
adc() <<
", nominal fC = " << QIE.
nominal_fC() <<endl;
176 if(
Dump>=4)
cout <<
" 4 Digi fC ="<<SumDigiCharge<<
", est. ped. fC="<<EstimatedPedestal<<
", est. GeV/fc="<<theRecHit->energy()/(SumDigiCharge-EstimatedPedestal) << endl;
177 if(
Dump>=4)
cout <<
" ......................................"<<endl;
182 sumRecHitE += theRecHit->energy()/2;
185 sumRecHitE += theRecHit->energy();
188 cout <<
" RecHit: " <<
j <<
": HE, ieta=" << HcalID.
ieta() <<
", iphi=" << HcalID.
iphi()<<
189 ", depth=" << HcalID.
depth() <<
", energy=" << theRecHit->energy() <<
", time=" <<\
190 theRecHit->time() <<
", All Digis=" << theDigis->size() <<
", presamples =" <<\
191 theDigis->presamples() <<endl;
192 float SumDigiCharge = 0.0;
193 float EstimatedPedestal=0.0;
194 int SamplesToAdd = 4;
195 if(
Dump>=4)
cout <<
" ......................................"<<endl;
196 if(
Dump>=4)
for(
int k=0;
k<theDigis->size();
k++){
198 if(
k>=theDigis->presamples()&&
k<theDigis->presamples()+SamplesToAdd)SumDigiCharge+=QIE.
nominal_fC();
199 if(k<theDigis->presamples()-1)EstimatedPedestal+=QIE.
nominal_fC()*SamplesToAdd/(theDigis->presamples()-1);
200 cout <<
" Digi: " <<
k <<
", cap ID = " << QIE.
capid() <<
": ADC Counts = " << QIE.
adc() <<
", nominal fC = " << QIE.
nominal_fC() <<endl;
202 if(
Dump>=4)
cout <<
" 4 Digi fC ="<<SumDigiCharge<<
", est. ped. fC="<<EstimatedPedestal<<
", est. GeV/fc="<<theRecHit->energy()/(SumDigiCharge-EstimatedPedestal) << endl;
203 if(
Dump>=4)
cout <<
" ......................................"<<endl;
207 sumRecHitE += theRecHit->energy();
209 cout <<
" RecHit: " <<
j <<
": HO, ieta=" << HcalID.
ieta() <<
", iphi=" << HcalID.
iphi()<<
210 ", depth=" << HcalID.
depth() <<
", energy=" << theRecHit->energy() <<
", time=" <<\
211 theRecHit->time() <<
", All Digis=" << theDigis->size() <<
", presamples =" <<\
212 theDigis->presamples() <<endl;
213 float SumDigiCharge = 0.0;
214 float EstimatedPedestal=0.0;
215 int SamplesToAdd = 4;
216 if(
Dump>=4)
cout <<
" ......................................"<<endl;
217 if(
Dump>=4)
for(
int k=0;
k<theDigis->size();
k++){
219 if(
k>=theDigis->presamples()&&
k<theDigis->presamples()+SamplesToAdd)SumDigiCharge+=QIE.
nominal_fC();
220 if(k<theDigis->presamples()-1)EstimatedPedestal+=QIE.
nominal_fC()*SamplesToAdd/(theDigis->presamples()-1);
221 cout <<
" Digi: " <<
k <<
", cap ID = " << QIE.
capid() <<
": ADC Counts = " << QIE.
adc() <<
", nominal fC = " << QIE.
nominal_fC() <<endl;
223 if(
Dump>=4)
cout <<
" 4 Digi fC ="<<SumDigiCharge<<
", est. ped. fC="<<EstimatedPedestal<<
", est. GeV/fc="<<theRecHit->energy()/(SumDigiCharge-EstimatedPedestal) << endl;
224 if(
Dump>=4)
cout <<
" ......................................"<<endl;
228 sumRecHitE += theRecHit->energy();
230 cout <<
" RecHit: " <<
j <<
": HF, ieta=" << HcalID.
ieta() <<
", iphi=" << HcalID.
iphi()<<
231 ", depth=" << HcalID.
depth() <<
", energy=" << theRecHit->energy() <<
", time=" <<\
232 theRecHit->time() <<
", All Digis=" << theDigis->size() <<
", presamples =" <<\
233 theDigis->presamples() <<endl;
234 float SumDigiCharge = 0.0;
235 float EstimatedPedestal=0.0;
236 int SamplesToAdd = 1;
237 if(
Dump>=4)
cout <<
" ......................................"<<endl;
238 if(
Dump>=4)
for(
int k=0;
k<theDigis->size();
k++){
240 if(
k>=theDigis->presamples()&&
k<theDigis->presamples()+SamplesToAdd)SumDigiCharge+=QIE.
nominal_fC();
241 if(k<theDigis->presamples()-1)EstimatedPedestal+=QIE.
nominal_fC()*SamplesToAdd/(theDigis->presamples()-1);
242 cout <<
" Digi: " <<
k <<
", cap ID = " << QIE.
capid() <<
": ADC Counts = " << QIE.
adc() <<
", nominal fC = " << QIE.
nominal_fC() <<endl;
244 if(
Dump>=4)
cout <<
" 1 Digi fC ="<<SumDigiCharge<<
", est. ped. fC="<<EstimatedPedestal<<
", est. GeV/fc="<<theRecHit->energy()/(SumDigiCharge-EstimatedPedestal) << endl;
245 if(
Dump>=4)
cout <<
" ......................................"<<endl;
249 int EcalNum = RecHitDetID.
subdetId();
254 sumRecHitE += theRecHit->energy();
255 cout <<
" RecHit " <<
j <<
": EB, ieta=" << EcalID.
ieta() <<
", iphi=" << EcalID.
iphi() <<
", SM=" << EcalID.
ism() <<
", energy=" << theRecHit->energy() <<
", All Digis=" << theDigis->size()<< endl;
256 if(
Dump>=4)
cout <<
" ......................................"<<endl;
257 if(
Dump>=4)
for(
unsigned int k=0;
k<theDigis->size();
k++){
260 cout <<
" Digi: " <<
k <<
": ADC Sample = " << MGPA.
adc() <<
", Gain ID = "<< MGPA.
gainId() <<endl;
262 if(
Dump>=4)
cout <<
" ......................................"<<endl;
264 else if( EcalNum == 2 ){
268 sumRecHitE += theRecHit->energy();
269 cout <<
" RecHit " <<
j <<
": EE, ix=" << EcalID.
ix() <<
", iy=" << EcalID.
iy() <<
", energy=" << theRecHit->energy() <<
", All Digis=" << theDigis->size()<< endl;
270 if(
Dump>=4)
cout <<
" ......................................"<<endl;
271 if(
Dump>=4)
for(
unsigned int k=0;
k<theDigis->size();
k++){
274 cout <<
" Digi: " <<
k <<
": ADC Sample = " << MGPA.
adc() <<
", Gain ID = "<< MGPA.
gainId() <<endl;
276 if(
Dump>=4)
cout <<
" ......................................"<<endl;
281 if(
abs(ietaTower)==28||
abs(ietaTower)==29){
282 cout <<
" Splitted Sum of RecHit Energies=" << sumRecHitE <<
", CaloTower energy=" << theTower->energy() << endl;
285 cout <<
" Sum of RecHit Energies=" << sumRecHitE <<
", CaloTower energy=" << theTower->energy() << endl;
288 if(
Dump>=3)
cout <<
" ------------------------------------------------"<<endl;
290 if(
Dump>=2)
cout <<
" Sum of tower energies=" << sumTowerE <<
", CaloJet energy=" <<
jet->energy() << endl;
292 if(
Dump>=2)
cout <<
" ====================================================="<<endl;
295 if(
Dump>=1)
cout <<
" *********************************************************" <<endl;
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
HcalSubdetector subdet() const
get the subdetector
#define DEFINE_FWK_MODULE(type)
int adc() const
get the ADC sample
std::vector< CaloTower >::const_iterator const_iterator
EcalMGPASample sample(int i) const
int gainId() const
get the gainId (2 bits)
int ism() const
get the ECAL/SM id
int iphi() const
get the crystal iphi
int depth() const
get the tower depth
int ieta() const
get the cell ieta
int ieta() const
get the crystal ieta
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
int iphi() const
get the cell iphi
int capid() const
get the Capacitor id
double nominal_fC() const
get the nominal FC (no calibrations applied)
void analyze(const edm::Event &, const edm::EventSetup &)
Detector det() const
get the detector field from this detid
JetToDigiDump(const edm::ParameterSet &)
int adc() const
get the ADC sample (12 bits)