CMS 3D CMS Logo

ECALRegFEDSelector.cc
Go to the documentation of this file.
1 
7 
9  tok_seed_ = consumes<trigger::TriggerFilterObjectWithRefs>(iConfig.getParameter<edm::InputTag>("regSeedLabel"));
10  delta_ = iConfig.getParameter<double>("delta");
11 
12  tok_raw_ = consumes<FEDRawDataCollection>(iConfig.getParameter<edm::InputTag>("rawInputLabel"));
13 
14  ec_mapping = std::make_unique<EcalElectronicsMapping>();
15 
16  produces<FEDRawDataCollection>();
17  produces<EcalListOfFEDS>();
18 
19  for (int p = 0; p < 1200; p++) {
20  fedSaved[p] = false;
21  }
22 }
23 
25 
27  for (int p = 0; p < 1200; p++) {
28  fedSaved[p] = false;
29  }
30 
31  auto producedData = std::make_unique<FEDRawDataCollection>();
32 
33  auto fedList = std::make_unique<EcalListOfFEDS>();
34 
36  iEvent.getByToken(tok_seed_, trigSeedTrks);
37 
38  std::vector<edm::Ref<reco::IsolatedPixelTrackCandidateCollection> > isoPixTrackRefs;
39  trigSeedTrks->getObjects(trigger::TriggerTrack, isoPixTrackRefs);
40 
42  iEvent.getByToken(tok_raw_, rawIn);
43 
44  // std::vector<int> EC_FED_IDs;
45 
46  for (uint32_t p = 0; p < isoPixTrackRefs.size(); p++) {
47  double etaObj_ = isoPixTrackRefs[p]->track()->eta();
48  double phiObj_ = isoPixTrackRefs[p]->track()->phi();
49 
50  RectangularEtaPhiRegion ecEtaPhi(etaObj_ - delta_, etaObj_ + delta_, phiObj_ - delta_, phiObj_ + delta_);
51 
52  const std::vector<int> EC_FED_IDs = ec_mapping->GetListofFEDs(ecEtaPhi);
53 
54  const FEDRawDataCollection* rdc = rawIn.product();
55 
56  for (int j = 0; j < FEDNumbering::MAXFEDID; j++) {
57  bool rightFED = false;
58  for (uint32_t k = 0; k < EC_FED_IDs.size(); k++) {
59  if (j == EcalRegionCabling::fedIndex(EC_FED_IDs[k])) {
60  if (!fedSaved[j]) {
61  fedList->AddFED(j);
62  rightFED = true;
63  fedSaved[j] = true;
64  }
65  }
66  }
68  fedSaved[j] = true;
69  rightFED = true;
70  }
71  if (!rightFED)
72  continue;
73  const FEDRawData& fedData = rdc->FEDData(j);
74  size_t size = fedData.size();
75 
76  if (size > 0) {
77  // this fed has data -- lets copy it
78  FEDRawData& fedDataProd = producedData->FEDData(j);
79  if (fedDataProd.size() != 0) {
80  // std::cout << " More than one FEDRawDataCollection with data in FED ";
81  // std::cout << j << " Skipping the 2nd\n";
82  continue;
83  }
84  fedDataProd.resize(size);
85  unsigned char* dataProd = fedDataProd.data();
86  const unsigned char* data = fedData.data();
87  for (unsigned int k = 0; k < size; ++k) {
88  dataProd[k] = data[k];
89  }
90  }
91  }
92  }
93 
94  iEvent.put(std::move(producedData));
95  iEvent.put(std::move(fedList));
96 }
97 
99 
ECALRegFEDSelector::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: ECALRegFEDSelector.cc:26
ECALRegFEDSelector::ec_mapping
std::unique_ptr< const EcalElectronicsMapping > ec_mapping
Definition: ECALRegFEDSelector.h:34
edm::Handle::product
T const * product() const
Definition: Handle.h:70
hcaldqm::constants::fedList
const std::vector< unsigned int > fedList
Definition: Constants.h:62
RectangularEtaPhiRegion.h
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
FEDNumbering::MINPreShowerFEDID
Definition: FEDNumbering.h:31
trigger::TriggerTrack
Definition: TriggerTypeDefs.h:76
IsolatedPixelTrackCandidate.h
edm::Handle< trigger::TriggerFilterObjectWithRefs >
ECALRegFEDSelector::tok_raw_
edm::EDGetTokenT< FEDRawDataCollection > tok_raw_
Definition: ECALRegFEDSelector.h:39
RectangularEtaPhiRegion
Definition: RectangularEtaPhiRegion.h:6
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:452
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
FEDRawData
Definition: FEDRawData.h:19
EcalRegionCabling::fedIndex
static int fedIndex(const uint32_t index)
Definition: EcalRegionCabling.h:56
ECALRegFEDSelector::fedSaved
bool fedSaved[1200]
Definition: ECALRegFEDSelector.h:37
dqmdumpme.k
k
Definition: dqmdumpme.py:60
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
edm::ParameterSet
Definition: ParameterSet.h:47
ECALRegFEDSelector::~ECALRegFEDSelector
~ECALRegFEDSelector() override
Definition: ECALRegFEDSelector.cc:24
iEvent
int iEvent
Definition: GenABIO.cc:224
ECALRegFEDSelector::tok_seed_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_seed_
Definition: ECALRegFEDSelector.h:40
edm::EventSetup
Definition: EventSetup.h:57
FEDNumbering::MAXPreShowerFEDID
Definition: FEDNumbering.h:32
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
ECALRegFEDSelector.h
ECALRegFEDSelector::ECALRegFEDSelector
ECALRegFEDSelector(const edm::ParameterSet &)
Definition: ECALRegFEDSelector.cc:8
ECALRegFEDSelector::endJob
void endJob() override
Definition: ECALRegFEDSelector.cc:100
eostools.move
def move(src, dest)
Definition: eostools.py:511
FEDRawData::resize
void resize(size_t newsize)
Definition: FEDRawData.cc:28
ECALRegFEDSelector::delta_
double delta_
Definition: ECALRegFEDSelector.h:36
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
EcalRegionCabling.h
edm::Event
Definition: Event.h:73
ECALRegFEDSelector::beginJob
void beginJob() override
Definition: ECALRegFEDSelector.cc:98
IsolatedPixelTrackCandidateFwd.h
edm::InputTag
Definition: InputTag.h:15
FEDNumbering::MAXFEDID
Definition: FEDNumbering.h:26
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443