47 src_( iConfig.getParameter<
edm::InputTag>(
"src") ),
48 srcClust_( iConfig.getParameter<
edm::InputTag>(
"Clustersrc") ),
53 produces<AliClusterValueMap>();
72 std::vector<AlignmentClusterFlag> pixelvalues(pixelclusters->dataSize(), iniflag);
76 std::vector<AlignmentClusterFlag> stripvalues(stripclusters->dataSize(), iniflag);
88 std::vector<TrajectoryMeasurement> tmColl =myTrajectory->
measurements();
98 for(std::vector<TrajectoryMeasurement>::const_iterator itTrajMeas = tmColl.begin(); itTrajMeas!=tmColl.end(); ++itTrajMeas){
101 if ( previousTM!=
nullptr ) {
103 if(!previousTM->
recHit()->isValid()){
122 if ( ( previousTM!=
nullptr )&& (layer!=-1 )) {
123 for (std::vector<TrajectoryMeasurement>::const_iterator itmCompare =itTrajMeas-1;itmCompare >= tmColl.begin() && itmCompare > itTrajMeas - 4;--itmCompare){
124 DetId compareId = itmCompare->recHit()->geographicalId();
126 if (!itmCompare->recHit()->isValid())
continue;
144 if(transstriphit1D!=
nullptr){
147 if(striphit!=
nullptr){
150 if(stripclust.id()==stripclusters.id()){
151 stripvalues[stripclust.key()]=hitflag;
154 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: ProdId of Strip clusters mismatched: "<<stripclust.id()<<
" vs "<<stripclusters.id();
158 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: Dynamic cast of Strip RecHit failed! TypeId of the RecHit: "<<
className(*hit);
161 else if(transstriphit2D!=
nullptr){
165 if(striphit!=
nullptr){
168 if(stripclust.id()==stripclusters.id()){
169 stripvalues[stripclust.key()]=hitflag;
174 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: ProdId of Strip clusters mismatched: "<<stripclust.id()<<
" vs "<<stripclusters.id();
180 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: Dynamic cast of Strip RecHit failed! TypeId of the RecHit: "<<
className(*hit);
184 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: Impossible to determine the type of SiStripRecHit. TypeId of the RecHit: "<<
className(*hit);
190 if(transpixelhit!=
nullptr){
194 if(pixclust.id()==pixelclusters.
id()){
195 pixelvalues[pixclust.key()]=hitflag;
199 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: ProdId of Pixel clusters mismatched: "<<pixclust.id()<<
" vs "<<pixelclusters.
id();
203 edm::LogError(
"TkAlCaOverlapTagger")<<
"ERROR in <TkAlCaOverlapTagger::produce>: Dynamic cast of Pixel RecHit failed! TypeId of the RecHit: "<<
className(*hit);
213 previousTM = &(* itTrajMeas);
223 auto hitvalmap = std::make_unique<AliClusterValueMap>();
227 mapfiller.insert(fakePixelHandle, pixelvalues.begin(), pixelvalues.end());
230 mapfiller.insert(fakeStripHandle, stripvalues.begin(), stripvalues.end());
ClusterRef cluster() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
unsigned int tibLayer(const DetId &id) const
ConstRecHitPointer const & recHit() const
friend struct const_iterator
const_iterator end() const
last iterator over the map (read only)
unsigned int pxfDisk(const DetId &id) const
int layerFromId(const DetId &id, const TrackerTopology *tTopo) const
unsigned int tidWheel(const DetId &id) const
std::vector< unsigned int > BadModsList_
key_type key() const
Accessor for product key.
DataContainer const & measurements() const
#define DEFINE_FWK_MODULE(type)
unsigned int tidSide(const DetId &id) const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
TkAlCaOverlapTagger(const edm::ParameterSet &iConfig)
ClusterRef cluster() const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
unsigned int pxbLayer(const DetId &id) const
Detector identifier class for the strip tracker.
~TkAlCaOverlapTagger() override
ClusterRef cluster() const
unsigned int pxfSide(const DetId &id) const
const_iterator begin() const
first iterator over the map (read only)
DetId geographicalId() const
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
unsigned int tecWheel(const DetId &id) const
T const * product() const
std::string className(const T &t)
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const