File indexing completed on 2023-03-17 11:01:42
0001 #include "Fireworks/Core/interface/FWProxyBuilderBase.h"
0002
0003 #include "DataFormats/ParticleFlowReco/interface/PFRecHit.h"
0004 #include "DataFormats/ParticleFlowReco/interface/PFRecHitFwd.h"
0005 namespace reco {
0006 class PFCandidate;
0007 class PFRecHit;
0008 }
0009 class CaloRecHit;
0010
0011 class FWPFCandidateWithHitsProxyBuilder : public FWProxyBuilderBase {
0012 public:
0013 FWPFCandidateWithHitsProxyBuilder() {}
0014 ~FWPFCandidateWithHitsProxyBuilder() override {}
0015
0016 void build(const FWEventItem* iItem, TEveElementList* product, const FWViewContext*) override;
0017
0018 bool havePerViewProduct(FWViewType::EType) const override { return true; }
0019
0020 void scaleProduct(TEveElementList* parent, FWViewType::EType type, const FWViewContext* vc) override;
0021
0022 REGISTER_PROXYBUILDER_METHODS();
0023
0024 FWPFCandidateWithHitsProxyBuilder(const FWPFCandidateWithHitsProxyBuilder&) = delete;
0025 const FWPFCandidateWithHitsProxyBuilder& operator=(const FWPFCandidateWithHitsProxyBuilder&) = delete;
0026
0027 private:
0028 void addHitsForCandidate(const reco::PFCandidate& c, TEveElement* holder, const FWViewContext* vc);
0029 void initPFRecHitsCollections();
0030 const reco::PFRecHit* getHitForDetId(unsigned detId);
0031 void viewContextBoxScale(
0032 const float* corners, float scale, bool plotEt, std::vector<float>& scaledCorners, const reco::PFRecHit*);
0033
0034 const reco::PFRecHitCollection* m_collectionHCAL;
0035 };