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