12 #ifndef ROOT7_REveJetCone
13 #define ROOT7_REveJetCone
19 namespace Experimental {
25 class REveJetCone :
public REveShape,
26 public REveProjectable
28 friend class REveJetConeProjected;
31 REveJetCone(
const REveJetCone &);
32 REveJetCone &operator=(
const REveJetCone &);
43 REveVector CalcEtaPhiVec(Float_t eta, Float_t phi)
const;
44 REveVector CalcBaseVec(Float_t eta, Float_t phi)
const;
45 REveVector CalcBaseVec(Float_t alpha)
const;
46 Bool_t IsInTransitionRegion()
const;
49 REveJetCone(
const Text_t *n =
"REveJetCone",
const Text_t *t =
"");
50 virtual ~REveJetCone() {}
52 Int_t WriteCoreJson(nlohmann::json &j, Int_t rnr_offset)
override;
53 void BuildRenderData()
override;
55 void ComputeBBox()
override;
56 TClass *ProjectedClass(
const REveProjection *p)
const override;
58 void SetApex(
const REveVector &a) { fApex = a; }
59 void SetCylinder(Float_t r, Float_t z)
62 fThetaC = fLimits.Theta();
64 void SetRadius(Float_t r)
70 Int_t GetNDiv()
const {
return fNDiv; }
71 void SetNDiv(Int_t n);
73 Int_t AddCone(Float_t eta, Float_t phi, Float_t cone_r, Float_t length = 0);
74 Int_t AddEllipticCone(Float_t eta, Float_t phi, Float_t reta, Float_t rphi, Float_t length = 0);
82 class REveJetConeProjected :
public REveShape,
86 REveJetConeProjected(
const REveJetConeProjected &);
87 REveJetConeProjected &operator=(
const REveJetConeProjected &);
90 void SetDepthLocal(Float_t d)
override;
93 REveJetConeProjected(
const std::string &n =
"REveJetConeProjected",
const std::string& t =
"");
94 virtual ~REveJetConeProjected();
96 void BuildRenderData()
override;
99 void ComputeBBox()
override;
102 void SetProjection(REveProjectionManager *mng, REveProjectable *model)
override;
103 void UpdateProjection()
override;
105 REveElement *GetProjectedAsElement()
override {
return this; }