#ifndef ROOT_TEveJetCone
#define ROOT_TEveJetCone
#include "TEveElement.h"
#include "TEveVSDStructs.h"
#include "TAttBBox.h"
class TEveJetCone : public TEveElementList,
public TAttBBox
{
friend class TEveJetConeGL;
private:
TEveJetCone(const TEveJetCone&);
TEveJetCone& operator=(const TEveJetCone&);
void FillTEveVectorFromEtaPhi( TEveVector &vec, const Float_t& eta, const Float_t& phi );
Float_t GetArcCosConeOpeningAngle( const TEveVector& axis, const TEveVector& contour );
protected:
typedef std::vector<TEveVector> vTEveVector_t;
typedef vTEveVector_t::iterator vTEveVector_i;
typedef vTEveVector_t::const_iterator vTEveVector_ci;
TEveVector fApex;
vTEveVector_t fBasePoints;
TEveVector fCylinderBorder;
Float_t fThetaC;
public:
TEveJetCone(const Text_t* n="TEveJetCone", const Text_t* t="");
virtual ~TEveJetCone() {}
void SetApex(const TEveVector& a) { fApex = a; }
void SetCylinder( const Float_t& r, const Float_t& z ) {
fCylinderBorder.Set( r, 0.f, z ); fThetaC = fCylinderBorder.Theta(); }
Int_t AddCone(Float_t eta, Float_t phi, Float_t coneRadius, Float_t height=-1);
Int_t AddEllipticCone(Float_t eta, Float_t phi, Float_t reta, Float_t rphi, Float_t height=-1);
virtual Bool_t CanEditMainTransparency() const { return kTRUE; }
virtual void ComputeBBox();
virtual void Paint(Option_t* option="");
ClassDef(TEveJetCone, 0);
};
#endif