107 std::unique_ptr<const CaloSubdetectorTopology>
topology;
123 std::vector<EcalEtaPhiRegion> regions;
133 auto uhits = std::make_unique<EcalUncalibratedRecHitCollection>();
136 if (!(urhcH[i].isValid())) {
137 edm::LogError(
"ProductNotFound")<<
"could not get a handle on the EcalRecHitCollection! (" <<
hitLabels[
i].encode() <<
")" << std::endl;
142 if (uncalibRecHits->
size() > 0) {
143 if ((*uncalibRecHits)[0].id().subdetId() ==
EcalBarrel) {
145 topology = std::make_unique<EcalBarrelTopology>(geoHandle);
146 }
else if ((*uncalibRecHits)[0].id().subdetId() ==
EcalEndcap) {
148 topology = std::make_unique<EcalEndcapTopology>(geoHandle);
149 }
else if ((*uncalibRecHits)[0].id().subdetId() ==
EcalPreshower) {
151 topology = std::make_unique<EcalPreshowerTopology>(geoHandle);
152 }
else throw(std::runtime_error(
"\n\nProducer encountered invalied ecalhitcollection type.\n\n"));
154 if(regions.size() != 0) {
157 for (it = uncalibRecHits->
begin(); it != uncalibRecHits->
end(); it++){
160 std::vector<EcalEtaPhiRegion>::const_iterator
region;
161 for (region=regions.begin(); region!=regions.end(); region++) {
162 if (region->inRegion(this_cell.
etaPos(),this_cell.
phiPos())) {
163 uhits->push_back(*it);
177 for (
unsigned int i=0; i<
hitLabels.size(); i++) {
178 auto hits = std::make_unique<EcalRecHitCollection>();
181 if (!(rhcH[i].isValid())) {
182 edm::LogError(
"ProductNotFound")<<
"could not get a handle on the EcalRecHitCollection! (" <<
hitLabels[
i].encode() <<
")" << std::endl;
187 if (recHits->
size() > 0) {
188 if ((*recHits)[0].id().subdetId() ==
EcalBarrel) {
190 topology = std::make_unique<EcalBarrelTopology>(geoHandle);
191 }
else if ((*recHits)[0].id().subdetId() ==
EcalEndcap) {
193 topology = std::make_unique<EcalEndcapTopology>(geoHandle);
196 topology = std::make_unique<EcalPreshowerTopology>(geoHandle);
197 }
else throw(std::runtime_error(
"\n\nProducer encountered invalied ecalhitcollection type.\n\n"));
199 if(regions.size() != 0) {
201 for (it = recHits->
begin(); it != recHits->
end(); it++){
204 std::vector<EcalEtaPhiRegion>::const_iterator
region;
205 for (region=regions.begin(); region!=regions.end(); region++) {
206 if (region->inRegion(this_cell.
etaPos(),this_cell.
phiPos())) {
207 hits->push_back(*it);
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const std::vector< edm::InputTag > hitLabels
CaloTopology const * topology(0)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const std::vector< std::string > productLabels
std::vector< EcalUncalibratedRecHit >::const_iterator const_iterator
const edm::EDGetTokenT< T1Collection > l1TokenIsolated_
std::vector< edm::EDGetTokenT< EcalRecHitCollection > > hitTokens
const_iterator end() const
T const * product() const
ESHandle< TrackerGeometry > geometry
const edm::EDGetTokenT< T1Collection > l1TokenNonIsolated_
const double l1LowerThrIgnoreIsolation_
void getEtaPhiRegions(std::vector< EcalEtaPhiRegion > *, T1Collection, const L1CaloGeometry &, bool)
const_iterator begin() const
std::vector< edm::EDGetTokenT< EcalUncalibratedRecHitCollection > > uncalibHitTokens