94   vx0   = 
v[0] * 
m[0] + 
v[1] * 
m[1] + 
v[2] * 
m[2];
 
   95   vy0   = 
v[0] * 
m[3] + 
v[1] * 
m[4] + 
v[2] * 
m[5];
 
   96   vz0   = 
v[0] * 
m[6] + 
v[1] * 
m[7] + 
v[2] * 
m[8];
 
  100   fX0   = xyz[0] * 
m[0] +  xyz[1] * 
m[1] +  xyz[2] * 
m[2];
 
  101   fY0   = xyz[0] * 
m[3] +  xyz[1] * 
m[4] +  xyz[2] * 
m[5];
 
  102   fZ0   = xyz[0] * 
m[6] +  xyz[1] * 
m[7] +  xyz[2] * 
m[8];
 
 
  164      r[0] = 0.0;        
r[1] = 1.0;
 
 
  192      for(
Int_t i=0; i<3; i++)
 
  196      for(
Int_t i=0; i<2; i++)
 
 
  236   for (
Int_t i=0; i<3; i++)
 
  240      delete ((
THelix&)obj).fRotMat;
 
 
  270   std::cout <<
"    THelix Printing N=" <<
fN<<
" Option="<<
option<<std::endl;
 
 
  280                            TString::Format(
"%g, %g, %g, %g, %g, %g, %g", 
fX0, 
fY0, 
fZ0, 
fVt * 
TMath::Cos(
fPhi0),
 
  284      out << 
"   helix->SetRange(" << 
fRange[0] << 
", " << 
fRange[1] << 
", kHelixT);\n";
 
  287      out << 
"   helix->SetAxis(" << 
fAxis[0] << 
", " << 
fAxis[1] << 
", " << 
fAxis[2] << 
");\n";
 
 
  304         Error(
"SetAxis()", 
"Impossible! axis length %lf <= 0!", 
len);
 
 
  326   Double_t axis[3];    axis[0] = 
x;    axis[1] = 
y;    axis[2] = z;
 
 
  343   if ( 
fW != 0 && 
fVz != 0 ) {         
 
  349            for (i=0; i<2; i++ ) {
 
  351               if ( 
a[i] < -1 || 
a[i] > 1 ) {
 
  353                        "range out of bound (%lf:%lf): %lf.  Default used: %lf",
 
  363            for (i=0; i<2; i++ ) {
 
  365               if ( 
a[i] < -1 || 
a[i] > 1 ) {
 
  367                        "range out of bound (%lf:%lf): %lf.  Default used: %lf",
 
  378               for (i=0; i<2; i++ ) {
 
  383                     "Vz = 0 and attempts to set range along helix axis!");
 
  391            printf(
"setting range in lab axes is not implemented yet\n");
 
  394            Error(
"SetRange()",
"unknown range type %d", 
rType);
 
  397   } 
else if ( 
fW == 0 ) {                
 
  408                     "Vx = 0 and attempts to set range on helix x axis!");
 
  418                     "Vy = 0 and attempts to set range on helix y axis!");
 
  428                     "Vz = 0 and attempts to set range on helix z axis!");
 
  435            printf(
"setting range in lab axes is not implemented yet\n");
 
  438            Error(
"SetRange()",
"unknown range type %d", 
rType);
 
  441   } 
else if ( 
fVz == 0 ) {               
 
  451                     "Vx = 0 and attempts to set range on helix x axis!");
 
  461                     "Vy = 0 and attempts to set range on helix y axis!");
 
  467                  "Vz = 0 and attempts to set range on helix z axis!");
 
  472            printf(
"setting range in lab axes is not implemented yet\n");
 
  475            Error(
"SetRange()",
"unknown range type %d", 
rType);
 
  499   for (i=0; i<=
nSeg; i++) {                    
 
  513   for (i=0; i<=
nSeg; i++) {                    
 
  520   delete[] 
xl;  
delete[] 
yl;    
delete[] 
zl;
 
 
  599   if (
R__b.IsReading()) {
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
 
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
 
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
 
Buffer base class used for serializing objects.
 
THelix has two different constructors.
 
void Print(Option_t *option="") const override
Dump this helix with its attributes.
 
void Copy(TObject &helix) const override
Copy this helix to obj.
 
void SetHelix(Double_t const *xyz, Double_t const *v, Double_t w, Double_t const *range=nullptr, EHelixRangeType type=kUnchanged, Double_t const *axis=nullptr)
Set all helix parameters.
 
THelix & operator=(const THelix &)
assignment operator
 
~THelix() override
Helix destructor.
 
virtual void SetAxis(Double_t const *axis)
Set a new axis for the helix. This will make a new rotation matrix.
 
TClass * IsA() const override
 
void Streamer(TBuffer &) override
Stream an object of class THelix.
 
virtual void SetRange(Double_t *range, EHelixRangeType rtype=kHelixZ)
Set a new range for the helix. This will remake the polyline.
 
THelix()
Helix default constructor.
 
Double_t FindClosestPhase(Double_t phi0, Double_t cosine)
Finds the closest phase to phi0 that gives cos(phase) = cosine.
 
void SetRotMatrix()
Set the rotational matrix according to the helix axis.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
 
void Draw(Option_t *option="") override
Draw this helix with its current attributes.
 
Mother of all ROOT objects.
 
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
 
virtual void Copy(TObject &object) const
Copy this to obj.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
static void SavePrimitiveDraw(std::ostream &out, const char *variable_name, Option_t *option=nullptr)
Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
 
static void SavePrimitiveConstructor(std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE)
Save object constructor in the output stream "out".
 
A 3-dimensional polyline.
 
TPolyLine3D & operator=(const TPolyLine3D &polylin)
assignment operator
 
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
Set point n to x, y, z.
 
Int_t fN
Number of points.
 
virtual void SetPolyLine(Int_t n, Option_t *option="")
Re-initialize polyline with n points (0,0,0).
 
void Streamer(TBuffer &) override
Stream a 3-D polyline object.
 
Manages a detector rotation matrix.
 
virtual Double_t * GetMatrix()
 
TString & ReplaceSpecialCppChars()
Find special characters which are typically used in printf() calls and replace them by appropriate es...
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
Double_t ACos(Double_t)
Returns the principal value of the arc cosine of x, expressed in radians.
 
Double_t ATan2(Double_t y, Double_t x)
Returns the principal value of the arc tangent of y/x, expressed in radians.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
 
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.