Re: Adding Your Own Classes to ROOT

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Jan 18 1999 - 10:24:19 MET


Hi Simon,
To get your class working, move the definition of static members
from the public to private or protected area.
The problem has been reported to Masa.

Rene Brun

S.J.M. Peeters wrote:
> 
> Hi ROOTers,
> 
> I would like CINT to recognize my class, but it will not, whatever I do.
> I followed the example, used the standard MyClass as stated there and that
> works. When I use my class (Geometry) it will not recognize it:
> 
> root [0] Geometry a;
> Error: No symbol Geometrya in current scope  FILE:/var/tmp/aaaa18497
> LINE:1
> *** Interpreter error recovered ***
> 
> I suspect the problems is in the statics I use, but I'm not sure.
> Is this the problem? If so, what can I do about it?
> If not so, can anybody see the problem?
> 
> This is the header file:
> (the statics are at the bottom)
> 
> #ifndef __GEOMETRY_H__
> #define __GEOMETRY_H__
> 
> #include "config.h"
> #include "TMath.h"
> 
> class Geometry
> {
> private:
> 
>    int m_dice1;
>    int m_dice2;
>    int m_dice3;
> 
> public:
> 
>    Geometry(int dice1, int dice2, int dice3);
>    Geometry();
> 
>    // set member variables
>    void set_dice1(int dice1);
>    void set_dice2(int dice2);
>    void set_dice3(int dice3);
> 
>    // return ring number
>    // 1 - x
>    // Count from IP to outside
>    int pixel_barrel_ring(void);
>    int pixel_disk_ring(void);
>    int sct_barrel_ring(void);
>    int sct_disk_ring(void);
>    int ring(void);
> 
>    // return subring: 0 or 1
>    int sct_disk_subring(void);
>    int subring(void);
> 
>    // return sign z axes of module position
>    // pixelbarrel has 0
>    int pixel_disk_z_sign(void);
>    int sct_disk_z_sign(void);
>    int z_sign(void);
> 
>    // if (tilt) the module is tilted
>    int tilt(void);
> 
>    // return r of z coordinate
>    float r_ring(void);
>    float z_ring(void);
> 
>    // return eta at (r,z)
>    float eta(float r, float z);
> 
>    // return pseudo rapidity range of module
>    float D_eta(void);
> 
>    // return number of subdetectors in subsystem (for looping)
>    int number_of_detectors(void);
>    int number_of_subdetectors(void);
>    int number_of_rings(void);
> 
>    // return code as function of counter (for looping)
>    int dice1_code(int cntr);
>    int dice2_code(int cntr);
>    int dice3_code(int cntr);
> 
>    static int m_pixel_b_layer[26];
>    static int m_pixel_barrel_1[26];
>    static int m_pixel_barrel_2[22];
>    static int m_sct_barrel_1[24];
>    static int m_sct_barrel_2[24];
>    static int m_sct_barrel_3[24];
>    static int m_sct_barrel_4[24];
>    static int m_pixel_disk_1[8];
>    static int m_pixel_disk_2[8];
>    static int m_pixel_disk_3[8];
>    static int m_pixel_disk_4[4];
>    static int m_sct_disk_1[24];
>    static int m_sct_disk_2[16];
>    static int m_sct_disk_3[24];
>    static int m_sct_disk_4[24];
>    static int m_sct_disk_5[24];
>    static int m_sct_disk_6[24];
>    static int m_sct_disk_7[16];
>    static int m_sct_disk_8[16];
>    static int m_sct_disk_9[8];
> 
> };
> #endif
> 
> --
>     NIKHEF, National Institute for Nuclear and High Energy Physics
>     Kruislaan 409, office H-044 Tel:(+31-20-592) 5140
>     P.O. Box 41882, 1009 DB Amsterdam (NL) Fax:(+31-20-592) 5155
>     CERN, building 40, office 2-D06 Tel:(+41-22-76) 71157



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:28 MET