Frequently Asked Questions


Questions


Q1: I get complaints about all the ROOT classes not being found. What do I do? (outdated)
Q2: For some reason when I compile I keep having undefined variables that I have defined in the .h?
Q3: My execute method is taking way too long or never finishes?
Q4: How do I make nice Changelog Entries?
Q5: How do I make things build faster on a multi CPU machine?
Q6: How do I make cvs use an editor other then vi when I checkin?
Q7: When I divide a canvas things don't draw the way I expected?
Q8: I did a 'cvs update' and I now get a host of undefined references?
        

Answers


Q1: I get complaints about all the ROOT classes not being found. What do I do?

A: The problem is that the include path to the location of your root install is wrong. To fix this problem you will need to edit the Makefile. Edit the ROOTSYS variable to point to your ROOT install.

Q2: For some reason when I compile I keep having undefined variables that I have defined in the .h?

A:  You've most likely forgoten to save your .h file.

Q3: My execute method is taking way too long or never finishes?

A: The problem could be that you're doing something in execute that doesn't belong there like writing a histogram that's still in the process of being filled. This would cause the histogram to be written to disk for every single event resulting in your algorithm finishing some time shortly before the big crunch.

Q4: How do I make nice Changelog Entries?

The best way to make nice ChangeLog entries is to use emacs. The Command 'M-x add-change-log-entry' will do it. It's also nice to use 'M-x auto-fill-mode'.

Q5: How do I make things build faster on a multi CPU machine?

Since a programs are by built making object files out of source files and then linking them all together it is possible to have different source files built on different CPUs. To tell make to do this add the '-jN' where 'N' is the number of CPUs you would like to use. For example of the fate machines you would want to use '-j2'. You can tell how many CPUs a machine has and how fast they are by looking at the file '/proc/cpuinfo'.

Q6: How do I make cvs use an editor other then vi when I checkin.

You set the environment variable $CVSEDITOR to the editor of your choice. For eaxmple:

export CVSEDITOR='emacs'

Q7: When I divide a canvas thigs don't draw the way I expected?

Once you divide a canvas with can->Divide(X,Y) you must can->cd(1) and not can->cd(0). The canvas numbered '0' is the origional canvas and not the divided pad.

Q8: I did a 'cvs update' and I now get a host of undefined references?

Likely what has happend is that a new file has been added to the package. This means that the Makefile must be regenerated by running ./configure again.