28 : showEmCands(iConfig.getUntrackedParameter<bool>(
"showEmCands")),
29 showRegionSums(iConfig.getUntrackedParameter<bool>(
"showRegionSums")),
30 ecalDigisLabel(iConfig.getParameter<edm::
InputTag>(
"ecalDigisLabel")),
31 hcalDigisLabel(iConfig.getParameter<edm::
InputTag>(
"hcalDigisLabel")),
32 rctDigisLabel(iConfig.getParameter<edm::
InputTag>(
"rctDigisLabel")) {
37 emTree = fs->
make<TTree>(
"emTree",
"L1 RCT EM tree");
47 h_emRank = fs->
make<TH1F>(
"emRank",
"emRank", 64, 0., 64.);
49 h_emIeta = fs->
make<TH1F>(
"emIeta",
"emIeta", 22, 0., 22.);
50 h_emIphi = fs->
make<TH1F>(
"emIphi",
"emIphi", 18, 0., 18.);
51 h_emIso = fs->
make<TH1F>(
"emIso",
"emIso", 2, 0., 2.);
84 #ifdef THIS_IS_AN_EVENT_EXAMPLE
89 #ifdef THIS_IS_AN_EVENTSETUP_EXAMPLE
91 iSetup.
get<SetupRecord>().
get(pSetup);
100 L1CaloEmCollection::const_iterator em;
101 L1CaloRegionCollection::const_iterator rgn;
113 for (
ecal = ecalColl->begin();
ecal != ecalColl->end();
ecal++) {
119 for (
hcal = hcalColl->begin();
hcal != hcalColl->end();
hcal++) {
129 for (em = rctEmCands->begin(); em != rctEmCands->end(); em++) {
133 (*myL1EmColl).push_back(*myL1EmCand);
137 if ((*em).bx() == 0) {
138 unsigned short n_emcands = 0;
141 if ((*em).rank() > 0) {
143 h_emIeta->Fill((*em).regionId().ieta());
144 h_emIphi->Fill((*em).regionId().iphi());
145 h_emIso->Fill((*em).isolated());
146 h_emRankInIetaIphi->Fill((*em).regionId().ieta(), (*em).regionId().iphi(), (*em).rank());
147 if ((*em).isolated()) {
155 if ((*em).rank() > 0) {
157 unsigned short rgnPhi = 999;
158 unsigned short rgn = (
unsigned short)(*em).rctRegion();
159 unsigned short card = (
unsigned short)(*em).rctCard();
160 unsigned short crate = (
unsigned short)(*em).rctCrate();
164 }
else if (card < 6) {
167 std::cout <<
"rgnPhi not assigned (still " << rgnPhi <<
") -- Weird card number! " << card;
171 short eta_bin = (card / 2) * 2 + 1;
173 eta_bin = eta_bin + rgn;
197 std::sort(myL1EmColl->begin(), myL1EmColl->end(),
compareEmCands);
198 std::reverse(myL1EmColl->begin(), myL1EmColl->end());
199 for (em = myL1EmColl->begin(); em != myL1EmColl->end(); em++) {
200 emRank.push_back((*em).rank());
201 emIeta.push_back((*em).regionId().ieta());
202 emIphi.push_back((*em).regionId().iphi());
203 emIso.push_back((*em).isolated());
210 for (rgn = rctRegions->begin(); rgn != rctRegions->end(); rgn++) {
211 if ((*rgn).bx() == 0) {
215 if ((*rgn).et() > 0) {
238 return (cand1.
rank() < cand2.
rank());
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< int > emIeta
std::vector< L1CaloEmCand > L1CaloEmCollection
TH2F * h_regionSumInIetaIphi
static bool compareEmCands(const L1CaloEmCand &cand1, const L1CaloEmCand &cand2)
std::vector< T >::const_iterator const_iterator
Level-1 Region Calorimeter Trigger EM candidate.
T * make(const Args &...args) const
make new ROOT object
TH2F * h_emRankInIetaIphi
TH1F * h_emCandTimeSample
TH2F * h_emNonIsoInIetaIphi
~L1RCTTestAnalyzer() override
std::vector< int > emRank
unsigned rank() const
get rank bits
edm::InputTag rctDigisLabel
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
L1RCTTestAnalyzer(const edm::ParameterSet &)
edm::InputTag hcalDigisLabel
TH2F * h_regionFGInIetaIphi
edm::InputTag ecalDigisLabel
std::vector< int > emIphi