Adding Your Own Classes to ROOT

S.J.M. Peeters (Simon.Peeters@cern.ch)
Sat, 16 Jan 1999 19:44:40 +0100 (MET)


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