Re: [ROOT] Automatic HTML generation

From: Ingo Strauch (strauch@toots.physik.rwth-aachen.de)
Date: Fri Dec 08 2000 - 14:04:29 MET


Hi Rene!

> Unix.*.Root.Html.SourceDir:  ./:/x01/usr/strauch/testarea/particles/
> 
> The * means that this definition is valid for all Root applications.
> If you specify only "Unix.Root.Html.SourceDir:", the definition is only for he
> standard Root application called "TRint" (see Root main program).
> In case your application has a different name, you should specify
> Unix.MyApp.Root.html.SourceDir: to restrict the definition to MyApp only
> or
> Unix.*.Root..   to apply to all applications.
> 
> This is a general rule for all environment properties defined in .rootrc.

This helped, thank you.

But while doing a THtml::MakeAll() another problem ocurred:

When processing a certain class, ROOT ran wild with 99% CPU and was
generating a H1FtkrBank.cxx.html more than 30MB in size. I have attached
the .h and .C file, maybe you can see what the problem is.

Thanks in advance,
Ingo

// This file was automatically generated by bos2oop by Thomas Hadig
// Version $Revision: 1.1 $, compiled on Nov 29 2000($Id: main.h,v 1.1 2000/10/06 08:41:34 hadig Exp $)

// Do not change this file. All changes will be lost at next generation

#ifndef __BOSFTKR_CXX
#define __BOSFTKR_CXX

#include <iostream.h>
#include "H1Ftkr.h"
///////////////////////////////////////////////////////////////////////////
// FTKR                                                                  //
//                                                                       //
 // Forward Tracker Kombined Recon. S. Burke   22/5/91 parameters at start point //
///////////////////////////////////////////////////////////////////////////

//{{{  H1FtkrRow::H1FtkrRow()
H1FtkrRow::H1FtkrRow()
 {
  // default constructor
 }
//}}}

//{{{  H1FtkrRow::H1FtkrRow(...)
H1FtkrRow::H1FtkrRow(Int_t *iw)
 {
  // constructor for BOS input
  FillRowFromBOS(iw, GetRowSize()); 
 }
//}}}
//{{{  H1FtkrRow::~H1FtkrRow()
H1FtkrRow::~H1FtkrRow()
 {
  //default destructor
 }
//}}}
//{{{  H1FtkrRow::Fill...FromBOS(...)
void H1FtkrRow::FillRowFromBOS (Int_t *iw, Int_t length)
 {
  // get contents of bank from BOS (Row starts at iw)
  Float_t *rw = (Float_t *)iw;
  fKappa = CheckKappa(rw[0]); // signed inverse radius
  fPhi = CheckPhi(rw[1]); // track angle in xy-plane
  fTheta = CheckTheta(rw[2]); // polar angle
  fX = CheckX(rw[3]); // X
  fY = CheckY(rw[4]); // Y
  fZ = CheckZ(rw[5]); // Z at which parameters given (NOT a parameter)
  fIptyp = CheckIptyp(iw[6]); // type of parametrization (=2)
  fDkappa = CheckDkappa(rw[7]);
  fDphi = CheckDphi(rw[8]);
  fDtheta = CheckDtheta(rw[9]); // errors
  fDx = CheckDx(rw[10]);
  fDy = CheckDy(rw[11]);
  fC1 = CheckC1(rw[12]);
  fC2 = CheckC2(rw[13]); // packed covariance (with COVCP)
  fC3 = CheckC3(rw[14]);
  fC4 = CheckC4(rw[15]);
  fNdf = CheckNdf(iw[16]); // # degrees of freedom (NOT # of hits)
  fChsq = CheckChsq(rw[17]); // chisquare
  fNx = CheckNx(iw[18]); // pointer to parameterisation at end
  fNhit = CheckNhit(iw[19]); // packed nr of hits: 65536*NPLAN + 16777216*NRAD + MASK NB These tracks always come in pairs, with start and end parameters successive. Thus word 19 is alternately (row # + 1) and (-1). The parameters are given at the z coordinate of the first and last measured points. MASK is a bit map; bits 0, 1 and 2 are set if there are hits in radial supermodules 0, 1 or 2, and bits 3, 4 and 5 similarly for planar supermodules 0, 1 or 2. The next six bits (6 to 11) are different depending on whether the row contains the track start parameters (word 19 is positive, row number is odd) or the track end parameters. In the first case, bits 6, 7 and 8 indicate a secondary planar segment in modules 0, 1, 2, and similarly bits 9, 10 and 11 are set to indicate a tertiary planar segment. In the second case, the six bits form three two-bit numbers: aabbcc, where aa corresponds to radial module 2, bb to module 1 and cc to module 0. These numbers give the number of hits per radial module as follow: 0 -> 4/5 hits, 1 -> 6/7 hits, 2 -> 8/9 hits and 3 -> 10/11/12 hits. Note that the relevant bits will also be zero if there is no radial segment for that module. The second set of bits are valid from H1REC 7.01. COL REL.bank  TYPE  INT.bank   !Comments (COL)
  fFtpr = iw[20]; // pointer to pointering bank
 }

//}}}
#ifndef __NOBOS
#include <ddl_adds/bank.h>
//{{{  H1FtkrRow::CreateBOSBank(...)
Int_t *H1FtkrRow::CreateBOSBank(Int_t bosnum, Int_t nrows)
 {
  // creates corresponding BOS bank
  c_bkfmt("FTKR","2I,(6F,I,9F,I,F,2I,I)");
  c_blist(Bcs.iw, "R+", "FTKR");
  Int_t i=c_nbank("FTKR",bosnum,GetRowSize()*nrows+2);
  if(i<=0) return (Int_t *) 0;
  Bcs.iw[i  ]=GetRowSize();
  Bcs.iw[i+1]=nrows;
  return Bcs.iw+i+2;
 }
//}}}

//{{{  H1FtkrRow::WriteBOSBank(...)
void H1FtkrRow::WriteBOSBank(Int_t *iw)
 {
  // fills corresponding BOS bank
  Float_t *rw = (Float_t *)iw;
  rw[0] = fKappa; // signed inverse radius
  rw[1] = fPhi; // track angle in xy-plane
  rw[2] = fTheta; // polar angle
  rw[3] = fX; // X
  rw[4] = fY; // Y
  rw[5] = fZ; // Z at which parameters given (NOT a parameter)
  iw[6] = fIptyp; // type of parametrization (=2)
  rw[7] = fDkappa;
  rw[8] = fDphi;
  rw[9] = fDtheta; // errors
  rw[10] = fDx;
  rw[11] = fDy;
  rw[12] = fC1;
  rw[13] = fC2; // packed covariance (with COVCP)
  rw[14] = fC3;
  rw[15] = fC4;
  iw[16] = fNdf; // # degrees of freedom (NOT # of hits)
  rw[17] = fChsq; // chisquare
  iw[18] = fNx; // pointer to parameterisation at end
  iw[19] = fNhit; // packed nr of hits: 65536*NPLAN + 16777216*NRAD + MASK NB These tracks always come in pairs, with start and end parameters successive. Thus word 19 is alternately (row # + 1) and (-1). The parameters are given at the z coordinate of the first and last measured points. MASK is a bit map; bits 0, 1 and 2 are set if there are hits in radial supermodules 0, 1 or 2, and bits 3, 4 and 5 similarly for planar supermodules 0, 1 or 2. The next six bits (6 to 11) are different depending on whether the row contains the track start parameters (word 19 is positive, row number is odd) or the track end parameters. In the first case, bits 6, 7 and 8 indicate a secondary planar segment in modules 0, 1, 2, and similarly bits 9, 10 and 11 are set to indicate a tertiary planar segment. In the second case, the six bits form three two-bit numbers: aabbcc, where aa corresponds to radial module 2, bb to module 1 and cc to module 0. These numbers give the number of hits per radial module as follow: 0 -> 4/5 hits, 1 -> 6/7 hits, 2 -> 8/9 hits and 3 -> 10/11/12 hits. Note that the relevant bits will also be zero if there is no radial segment for that module. The second set of bits are valid from H1REC 7.01. COL REL.bank  TYPE  INT.bank   !Comments (COL)
  iw[20] = fFtpr; // pointer to pointering bank
 }
//}}}
#endif

//{{{  H1FtkrRow::Print(const Char_t *)
void H1FtkrRow::Print(const Char_t *)
 {
  // prints the data members
  cout<<"  Kappa : "<< fKappa << endl;
  cout<<"  Phi : "<< fPhi << endl;
  cout<<"  Theta : "<< fTheta << endl;
  cout<<"  X : "<< fX << endl;
  cout<<"  Y : "<< fY << endl;
  cout<<"  Z : "<< fZ << endl;
  cout<<"  Iptyp : "<< fIptyp << endl;
  cout<<"  Dkappa : "<< fDkappa << endl;
  cout<<"  Dphi : "<< fDphi << endl;
  cout<<"  Dtheta : "<< fDtheta << endl;
  cout<<"  Dx : "<< fDx << endl;
  cout<<"  Dy : "<< fDy << endl;
  cout<<"  C1 : "<< fC1 << endl;
  cout<<"  C2 : "<< fC2 << endl;
  cout<<"  C3 : "<< fC3 << endl;
  cout<<"  C4 : "<< fC4 << endl;
  cout<<"  Ndf : "<< fNdf << endl;
  cout<<"  Chsq : "<< fChsq << endl;
  cout<<"  Nx : "<< fNx << endl;
  cout<<"  Nhit : "<< fNhit << endl;
  cout<<"  Ftpr : "<< fFtpr << endl;
 }
//}}}

Float_t H1FtkrRow::GetKappa() const { return fKappa; }
Float_t H1FtkrRow::GetPhi() const { return fPhi; }
Float_t H1FtkrRow::GetTheta() const { return fTheta; }
Float_t H1FtkrRow::GetX() const { return fX; }
Float_t H1FtkrRow::GetY() const { return fY; }
Float_t H1FtkrRow::GetZ() const { return fZ; }
Int_t H1FtkrRow::GetIptyp() const { return fIptyp; }
Float_t H1FtkrRow::GetDkappa() const { return fDkappa; }
Float_t H1FtkrRow::GetDphi() const { return fDphi; }
Float_t H1FtkrRow::GetDtheta() const { return fDtheta; }
Float_t H1FtkrRow::GetDx() const { return fDx; }
Float_t H1FtkrRow::GetDy() const { return fDy; }
Float_t H1FtkrRow::GetC1() const { return fC1; }
Float_t H1FtkrRow::GetC2() const { return fC2; }
Float_t H1FtkrRow::GetC3() const { return fC3; }
Float_t H1FtkrRow::GetC4() const { return fC4; }
Int_t H1FtkrRow::GetNdf() const { return fNdf; }
Float_t H1FtkrRow::GetChsq() const { return fChsq; }
Int_t H1FtkrRow::GetNx() const { return fNx; }
Int_t H1FtkrRow::GetNhit() const { return fNhit; }
Int_t H1FtkrRow::GetFtpr() const { return fFtpr; }

Int_t H1FtkrRow::GetRowSize()
 {
  return 21;
 }
Int_t H1FtkrRow::GetMinimalRowSize()
 {
  return 21;
 }
eBankSize H1FtkrRow::GetBankSize()
 {
  return kB32;
 }


//{{{  H1FtkrBank::H1FtkrBank()
H1FtkrBank::H1FtkrBank() : H1SingleBank("FTKR","H1FtkrRow",20)
 {
  // default constructor
 }
//}}}

//{{{  H1FtkrBank::H1FtkrBank(...)
H1FtkrBank::H1FtkrBank(Int_t bosnum) : H1SingleBank("FTKR","H1FtkrRow",20)
 {
  // constructor for BOS input
  FillFromBOS(bosnum);
 }
//}}}
//{{{  H1FtkrBank::~H1FtkrBank()
H1FtkrBank::~H1FtkrBank()
 {
  //default destructor
 }
//}}}
//{{{  H1FtkrBank::FillFromBOS(...)
void H1FtkrBank::FillFromBOS(const Int_t banknumber)
 {
  // fills bosbank with number
#ifndef __NOBOS
  Bank *bb;
  if (banknumber==-1) // get first bank
    bb = new Bank("FTKR");
  else
    bb = new Bank("FTKR",banknumber);
  if (!bb->is_open()) return;
  Int_t length = bb->ncols();
  Int_t nrows = bb->nrows();
  if (length!=21)
   {
    cerr<<"Wrong bank length for bank FTKR (expected: 21 found : "<<length<<")"<<endl;
    return;
   }
  Int_t   *iw = (Int_t *)bb->BeginData();
  FillFromBOS(bb->bosnumber(), iw+2, length, nrows);
#else
  cerr<<"No BOS code available !"<<endl;
#endif
 }
//}}}

//{{{  H1FtkrBank::FillFromBOS(...)
void H1FtkrBank::FillFromBOS(const Int_t banknumber, Int_t *iw, Int_t length, Int_t nrows)
 {
  // fills bosbank with number
#ifdef __NOBOS
  cout<<"Sorry, no BOS code available !"<<endl;
#else
  SetBankNumber(banknumber);
  Int_t i=0;
  while(i<nrows)
   {
     new(fRows[i]) H1FtkrRow(iw+i*length);
     i++;
   }
#endif
 }
//}}}

//{{{  H1FtkrBank::GetRowSize()
Int_t H1FtkrBank::GetRowSize() const
 {
  // returns length of a row
  return H1FtkrRow::GetRowSize();
 }
//}}}


ClassImp(H1FtkrRow) // Forward Tracker Kombined Recon. S. Burke   22/5/91 parameters at start point
ClassImp(H1FtkrBank) // Forward Tracker Kombined Recon. S. Burke   22/5/91 parameters at start point

#endif



// This file was automatically generated by bos2oop by Thomas Hadig
// Version $Revision: 1.1 $, compiled on Nov 29 2000($Id: main.h,v 1.1 2000/10/06 08:41:34 hadig Exp $)
// Do not change this file. All changes will be lost at next generation

#ifndef __BOSFTKR_H
#define __BOSFTKR_H


#include <ddl_adds/h1bank.h>
#include <limits.h>
#include <iostream.h>
#define IsNANorINF(a) ((*(long *)(&a)& 0x7f800000) == 0x7f800000)
#include <float.h>
#ifndef __NOBOS
#ifndef __CINT__
#include <ddl_adds/bank.h>
#endif
#endif


// includes from bank DDL
#include <TVector.h>
#include <TMatrix.h>
class H1FtkrRow : public H1Row
 {
  private:
    Float_t        fKappa; // signed inverse radius
    Float_t        fPhi; // track angle in xy-plane
    Float_t        fTheta; // polar angle
    Float_t        fX; // X
    Float_t        fY; // Y
    Float_t        fZ; // Z at which parameters given (NOT a parameter)
    Int_t          fIptyp; // type of parametrization (=2)
    Float_t        fDkappa;
    Float_t        fDphi;
    Float_t        fDtheta; // errors
    Float_t        fDx;
    Float_t        fDy;
    Float_t        fC1;
    Float_t        fC2; // packed covariance (with COVCP)
    Float_t        fC3;
    Float_t        fC4;
    Int_t          fNdf; // # degrees of freedom (NOT # of hits)
    Float_t        fChsq; // chisquare
    Int_t          fNx; // pointer to parameterisation at end
    Int_t          fNhit; // packed nr of hits: 65536*NPLAN + 16777216*NRAD + MASK NB These tracks always come in pairs, with start and end parameters successive. Thus word 19 is alternately (row # + 1) and (-1). The parameters are given at the z coordinate of the first and last measured points. MASK is a bit map; bits 0, 1 and 2 are set if there are hits in radial supermodules 0, 1 or 2, and bits 3, 4 and 5 similarly for planar supermodules 0, 1 or 2. The next six bits (6 to 11) are different depending on whether the row contains the track start parameters (word 19 is positive, row number is odd) or the track end parameters. In the first case, bits 6, 7 and 8 indicate a secondary planar segment in modules 0, 1, 2, and similarly bits 9, 10 and 11 are set to indicate a tertiary planar segment. In the second case, the six bits form three two-bit numbers: aabbcc, where aa corresponds to radial module 2, bb to module 1 and cc to module 0. These numbers give the number of hits per radial module as follow: 0 -> 4/5 hits, 1 -> 6/7 hits, 2 -> 8/9 hits and 3 -> 10/11/12 hits. Note that the relevant bits will also be zero if there is no radial segment for that module. The second set of bits are valid from H1REC 7.01. COL REL.bank  TYPE  INT.bank   !Comments (COL)
    Int_t          fFtpr; // pointer to pointering bank
  public:
    void              FillRowFromBOS(Int_t *,Int_t); // fill class from BOS common
  // constructors
                      H1FtkrRow();  // default constructor
                      H1FtkrRow(Int_t *); // constructor of BOS input
                     ~H1FtkrRow();     // default desctructor
    virtual void      Print(const Char_t *i=0); // prints the class members
#ifndef __NOBOS
    virtual Int_t    *CreateBOSBank (Int_t, Int_t);  // creates the corresponding BOS bank
    virtual void      WriteBOSBank (Int_t *);
#endif
    static  Int_t     GetRowSize();
    static  Int_t     GetMinimalRowSize();
    static  eBankSize GetBankSize();
  // get routines
    Float_t           GetKappa() const;
    Float_t           GetPhi() const;
    Float_t           GetTheta() const;
    Float_t           GetX() const;
    Float_t           GetY() const;
    Float_t           GetZ() const;
    Int_t             GetIptyp() const;
    Float_t           GetDkappa() const;
    Float_t           GetDphi() const;
    Float_t           GetDtheta() const;
    Float_t           GetDx() const;
    Float_t           GetDy() const;
    Float_t           GetC1() const;
    Float_t           GetC2() const;
    Float_t           GetC3() const;
    Float_t           GetC4() const;
    Int_t             GetNdf() const;
    Float_t           GetChsq() const;
    Int_t             GetNx() const;
    Int_t             GetNhit() const;
    Int_t             GetFtpr() const;
    Float_t              CheckKappa(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.40282e+38)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Kappa in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckPhi(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.1415)||(a>3.1415)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Phi in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckTheta(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>3.1415)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Theta in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckX(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-99)||(a>99)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable X in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckY(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-99)||(a>99)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Y in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckZ(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<100)||(a>300)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Z in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Int_t             CheckIptyp(Int_t a)
#ifdef __DO_CHECKS
                       { if ((a<1)||(a>2)) { cerr<<"Integer limit exceeded for variable Iptyp in bank FTKR (value was : " << a << ")" <<endl; return INT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckDkappa(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Dkappa in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckDphi(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>6.283)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Dphi in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckDtheta(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>3.1415)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Dtheta in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckDx(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>999)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Dx in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckDy(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>999)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Dy in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckC1(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.40282e+38)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable C1 in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckC2(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.40282e+38)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable C2 in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckC3(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.40282e+38)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable C3 in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckC4(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<-3.40282e+38)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable C4 in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Int_t             CheckNdf(Int_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>108)) { cerr<<"Integer limit exceeded for variable Ndf in bank FTKR (value was : " << a << ")" <<endl; return INT_MAX; } return a; }
#else
                       { return a; }
#endif
    Float_t              CheckChsq(Float_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)||(a>3.40282e+38)||(IsNANorINF(a))) { cerr<<"Float limit exceeded for variable Chsq in bank FTKR (value was : " << a << ")" <<endl; return FLT_MAX; } return a; }
#else
                       { return a; }
#endif
    Int_t             CheckNx(Int_t a)
#ifdef __DO_CHECKS
                       { if ((a<-1)) { cerr<<"Integer limit exceeded for variable Nx in bank FTKR (value was : " << a << ")" <<endl; return INT_MAX; } return a; }
#else
                       { return a; }
#endif
    Int_t             CheckNhit(Int_t a)
#ifdef __DO_CHECKS
                       { if ((a<0)) { cerr<<"Integer limit exceeded for variable Nhit in bank FTKR (value was : " << a << ")" <<endl; return INT_MAX; } return a; }
#else
                       { return a; }
#endif

  // includes from bank DDL
  public:
    friend class H1ForwardTrack;
    TVector      GetParam() const;
    TMatrix      GetParamCovar() const;
    inline Int_t GetNhitPlanars() const {return (fNhit >> 16) & 0xFF;};
    inline Int_t GetNhitRadials() const {return (fNhit >> 24) & 0xFF;};
    inline Int_t GetMask() const {return fNhit & 0xFFFF;};

  ClassDef(H1FtkrRow,1) // Forward Tracker Kombined Recon. S. Burke   22/5/91 parameters at start point
 };

class H1FtkrBank : public H1SingleBank
 {
  public:
  // constructors
                    H1FtkrBank();  // default constructor
                    H1FtkrBank(Int_t); // constructor of BOS input
                   ~H1FtkrBank();     // default desctructor
    virtual void    FillFromBOS(const Int_t banknumber=-1); // fills the bank from BOS
    virtual void    FillFromBOS(const Int_t banknumber, Int_t *iw, Int_t length, Int_t nrows); // fills the bank from BOS
    virtual Int_t   GetRowSize() const;

  ClassDef(H1FtkrBank,1) // Forward Tracker Kombined Recon. S. Burke   22/5/91 parameters at start point
 };

#endif



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:38 MET