20 std::cout <<
"CastorRecHitMonitor Constructor: " <<
this << std::endl;
32 std::cout <<
"CastorRecHitMonitor::bookHistograms" << std::endl;
37 float ySec[nySec + 1];
38 float xSec[N_Sec + 1];
39 double E0sec = 1. / 1024.;
42 double lnBsec =
log(2.);
43 for (
int j = 1; j < nySec; j++)
44 ySec[j + 1] = E0sec *
exp(j * lnBsec);
45 for (
int i = 0;
i <= N_Sec;
i++)
48 sprintf(s,
"Castor Energy by Sectors #Phi");
49 h2RHvsSec = ibooker.
book2D(s, s, N_Sec, xSec, nySec, ySec);
50 h2RHvsSec->
getTH2F()->GetXaxis()->SetTitle(
"sector #Phi");
51 h2RHvsSec->getTH2F()->GetYaxis()->SetTitle(
"RecHit / GeV");
52 h2RHvsSec->getTH2F()->SetOption(
"colz");
58 for (
int i = 0;
i <= nxCh;
i++)
60 double E0 = 1. / 1024.;
64 for (
int j = 1; j < nyE; j++)
65 yErh[j + 1] = E0 *
exp(j * lnA);
67 string st =
"Castor Cell Energy Map (cell-wise)";
68 h2RHchan = ibooker.
book2D(st, st +
";moduleZ*16 + sector #Phi;RecHit / GeV", nxCh, xCh, nyE, yErh);
69 h2RHchan->
getTH2F()->SetOption(
"colz");
71 sprintf(s,
"Castor Cell Energy");
72 hallchan = ibooker.
book1D(s, s, nyE, yErh);
73 hallchan->
getTH1F()->GetXaxis()->SetTitle(
"GeV");
75 st =
"Castor cell avr Energy per event Map Z-Phi";
76 h2RHoccmap = ibooker.
bookProfile2D(st, st +
";module Z;sector Phi", 14, 0, 14, 16, 0, 16, 0., 1.e10,
"");
79 sprintf(s,
"CastorRecHitEntriesMap");
80 h2RHentriesMap = ibooker.
book2D(s, s, 14, 0, 14, 16, 0, 16);
81 h2RHentriesMap->
getTH2F()->GetXaxis()->SetTitle(
"moduleZ");
82 h2RHentriesMap->getTH2F()->GetYaxis()->SetTitle(
"sector #Phi");
83 h2RHentriesMap->getTH2F()->SetOption(
"colz");
85 sprintf(s,
"CastorRecHitTime");
86 hRHtime = ibooker.
book1D(s, s, 301, -101., 200.);
88 sprintf(s,
"CASTORTowerDepth");
89 hTowerDepth = ibooker.
book1D(s, s, 130, -15500., -14200.);
90 hTowerDepth->
getTH1F()->GetXaxis()->SetTitle(
"mm");
92 sprintf(s,
"CASTORTowerMultiplicity");
93 hTowerMultipl = ibooker.
book1D(s, s, 20, 0., 20.);
96 float EhadTow[NEtow + 1];
97 float EMTow[NEtow + 1];
98 float ETower[NEtow + 2];
99 double E0tow = 1. / 1024.;
106 double lnBtow =
log(2.);
107 for (
int j = 1; j < NEtow; j++)
108 EMTow[j + 1] = E0tow *
exp(j * lnBtow);
109 for (
int j = 1; j < NEtow; j++)
110 EhadTow[j + 1] = E0tow *
exp(j * lnBtow);
111 for (
int j = 1; j <= NEtow; j++)
112 ETower[j + 1] = E0tow *
exp(j * lnBtow);
114 sprintf(s,
"CASTORTowerEMvsEhad");
115 h2TowerEMhad = ibooker.
book2D(s, s, NEtow, EhadTow, NEtow, EMTow);
116 h2TowerEMhad->
getTH2F()->GetXaxis()->SetTitle(
"Ehad / GeV");
117 h2TowerEMhad->getTH2F()->GetYaxis()->SetTitle(
"EM / GeV");
118 h2TowerEMhad->getTH2F()->SetOption(
"colz");
120 sprintf(s,
"CASTORTowerTotalEnergy");
121 hTowerE = ibooker.
book1D(s, s, NEtow + 1, ETower);
122 hTowerE->
getTH1F()->GetXaxis()->SetTitle(
"GeV");
124 sprintf(s,
"CASTORJetsMultiplicity");
125 hJetsMultipl = ibooker.
book1D(s, s, 16, 0., 16.);
127 sprintf(s,
"CASTORJetEnergy");
128 hJetEnergy = ibooker.
book1D(s, s, 5000, 0., 500.);
130 sprintf(s,
"CASTORJetEta");
131 hJetEta = ibooker.
book1D(s, s, 126, -6.3, 6.3);
133 sprintf(s,
"CASTORJetPhi");
134 hJetPhi = ibooker.
book1D(s, s, 63, -3.15, 3.15);
137 std::cout <<
"CastorRecHitMonitor::bookHistograms(end)" << std::endl;
142 if (castorTowers.empty())
146 for (reco::CastorTowerCollection::const_iterator iTower = castorTowers.begin(); iTower != castorTowers.end();
148 hTowerE->Fill(iTower->energy() * 0.001);
149 h2TowerEMhad->Fill(iTower->hadEnergy() * 0.001, iTower->emEnergy() * 0.001);
150 hTowerDepth->Fill(iTower->depth());
153 hTowerMultipl->Fill(nTowers);
158 std::cout <<
"CastorRecHitMonitor::processEvent (begin)" << std::endl;
160 for (
int z = 0; z < 14; z++)
161 for (
int phi = 0; phi < 16; phi++)
162 energyInEachChannel[z][phi] = 0.;
167 if (castorHits.
empty())
170 for (CASTORiter = castorHits.
begin(); CASTORiter != castorHits.
end(); ++CASTORiter) {
171 float energy = CASTORiter->energy();
172 float time = CASTORiter->time();
176 hRHtime->Fill(time2);
181 int sector = (
int)
id.sector();
183 energyInEachChannel[module - 1][sector - 1] +=
energy;
185 h2RHentriesMap->Fill(module - 1, sector - 1);
189 for (
int phi = 0; phi < 16; phi++) {
191 for (
int z = 0; z < 14; z++) {
192 float rh = energyInEachChannel[z][phi] * 0.001;
193 int ind = z * 16 + phi + 1;
195 h2RHchan->Fill(ind, rh);
199 h2RHoccmap->Fill(z, phi, rh);
202 h2RHvsSec->Fill(phi, es);
207 std::cout <<
"CastorRecHitMonitor::processEvent (end)" << std::endl;
213 for (reco::BasicJetCollection::const_iterator ibegin = Jets.begin(), iend = Jets.end(), ijet = ibegin; ijet != iend;
216 float energy = ijet->energy() * 0.001;
217 hJetEnergy->Fill(energy);
218 hJetEta->Fill(ijet->eta());
219 hJetPhi->Fill(ijet->phi());
221 hJetsMultipl->Fill(nJets);
T getUntrackedParameter(std::string const &, T const &) const
TProfile2D * getTProfile2D() const
std::vector< T >::const_iterator const_iterator
void processEventJets(const reco::BasicJetCollection &Jets)
void setCurrentFolder(std::string const &fullpath)
MonitorElement * bookProfile2D(Args &&...args)
CastorRecHitMonitor(const edm::ParameterSet &ps)
MonitorElement * book1D(Args &&...args)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
const_iterator end() const
MonitorElement * book2D(Args &&...args)
void processEventTowers(const reco::CastorTowerCollection &castorTowers)
void processEvent(const CastorRecHitCollection &castorHits)
std::vector< CastorTower > CastorTowerCollection
collection of CastorTower objects
const_iterator begin() const
std::vector< BasicJet > BasicJetCollection
collection of BasicJet objects