FWL1MuonParticleProxyBuilder

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
// -*- C++ -*-
//
// Package:     Calo
// Class  :     FWL1MuonParticleProxyBuilder
//
// Implementation:
//     <Notes on implementation>
//
// Original Author:
//         Created:  Sun Jan  6 23:57:00 EST 2008
//

#include "Fireworks/Core/interface/FWSimpleProxyBuilderTemplate.h"
#include "Fireworks/Core/interface/BuilderUtils.h"

#include "DataFormats/L1Trigger/interface/L1MuonParticle.h"

class FWL1MuonParticleProxyBuilder : public FWSimpleProxyBuilderTemplate<l1extra::L1MuonParticle> {
public:
  FWL1MuonParticleProxyBuilder(void) {}
  ~FWL1MuonParticleProxyBuilder(void) override {}

  REGISTER_PROXYBUILDER_METHODS();

  FWL1MuonParticleProxyBuilder(const FWL1MuonParticleProxyBuilder&) = delete;                   // stop default
  const FWL1MuonParticleProxyBuilder& operator=(const FWL1MuonParticleProxyBuilder&) = delete;  // stop default

private:
  using FWSimpleProxyBuilderTemplate<l1extra::L1MuonParticle>::build;
  void build(const l1extra::L1MuonParticle& iData,
             unsigned int iIndex,
             TEveElement& oItemHolder,
             const FWViewContext*) override;
};

void FWL1MuonParticleProxyBuilder::build(const l1extra::L1MuonParticle& iData,
                                         unsigned int iIndex,
                                         TEveElement& oItemHolder,
                                         const FWViewContext*) {
  double scale = 10;

  fireworks::addDashedLine(iData.phi(), iData.theta(), iData.pt() * scale, &oItemHolder, this);
}

REGISTER_FWPROXYBUILDER(FWL1MuonParticleProxyBuilder,
                        l1extra::L1MuonParticle,
                        "L1MuonParticle",
                        FWViewType::kAllRPZBits);