Hello, All:
I have finished implementing the "new" BLAST geometry into the
reconstruction library. You should update your CVS download and check
everything out. As soon as you understand what is going on, you can
go ahead and start modifying the existing classes within the
reconstruction library. Some comments:
1. Before you spend any time looking at the new geometry classes, FIRST
read over the attached blastGeom.ps documentation file. I have
received many questions from people that are easily answerable if they
just read this file!!!!! (hmmmm... maybe the blastGeom.ps file should
go into CVS...)
2. After reading the attached blastGeom.ps file, next take a look at
the blast.geom file inside of the Blast_Params directory in CVS. If
you don't read the blastGeom.ps file first, this file won't make too much
sense. If you don't read the blast.geom file second, the rest of the
"new" geometry classes in the libBlast library (to be discussed next)
won't make much sense.
3. All of the geometry code is very readable and well-documented. Can we
please try to keep it up?
4. There are six detector geometry classes, one for each detector:
TBLGeomCC, TBLGeomLG, TBLGeomNC, TBLGeomRD, TBLGeomSC, TBLGeomWC
All six of these classes inherit general variables (as fully described
in the blastGeom.ps file as well as in the blast.geom file) from the
class TBLGeomGen. Variables specific to each detector are defined
within their respective detector class (e.g. variables specific to
the scintillators are defined within TBLGeomSC.h and TBLGeomSC.cc).
5. The class TBLGeometry is still the "master" geometry file governing
all the others. The class looks quite different from before, though.
It is slightly easier to use than before in that all you need to
include in your ROOT scripts in order to read-in all the geometry
information is the following line:
TBLGeometry geom=TBLGeometry("blast.geom");
This constructor will then read-in all geometry information.
6. To see the new geometry code in work, create the new BlastLib library
and run the following ROOT script, which will print out all of the
detector's variables:
{
gROOT->Reset();
gSystem.Load("./libBlast.so");
TBLGeometry geom=TBLGeometry("blast.geom");
geom.DumpAll();
}
For this script to work, the "new" blast.geom file must either be
within your run directory (or wherever the libBlast.so file is) or
else you need to redefine your BLAST_PARAM environmental variable so
that it points to the directory containing the blast.geom file.
7. The lead glass calorimeters have not yet been added into the
reconstruction library. SOMEONE WHO UNDERSTANDS THEM (AND WHAT
THEY'LL LOOK LIKE) NEEDS TO CONTACT ME BEFORE THEY'LL BE ENTERED!!!!
8. The Monte Carlo has NOT been implmented yet for this new geometry.
Given that Adrian and myself probably know the most about the Monte
Carlo, we shall handle updating the Monte Carlo.
9. All member variables in the geometry classes have been declared either
private or protected. DO NOT CHANGE THIS! If you want to access such
variables, use the supplied "Get"ter and "Set"ter functions. It keeps
things logically contained...
10. Any new geometry functions that you deem necessary should be added to
the appropriate detector's class. Do not add them ad hoc to other
classes. Doing so makes it incredibly hard to modify the code if
later deemed necessary.
11. If you think you see an error in what I have done, please contact me
about it rather than change it. There might be reason in my madness
that my documention has not fully described.
12. I have also included a vector manipulation class named TBLVector. I
encourage everyone to use it. It is straight-forward to use and
fairly well documented. If people do NOT use this class for detector
positioning purposes, then MISTAKES WILL APPEAR! I'm not trying to
be cocky. It's just that totally-arbitrary rotations and
translations are (much) more complicated that initial thinking on the
matter suggests. Any and all rotation, translation, and
coordinate-system-changing functions that you could ever possibly
need are already worked out within the TBLVector class. Use them,
dammit, not your own!
13. If you have any questions on geometry matter in BLAST, please contact
me.
Aaron
This archive was generated by hypermail 2.1.2 : Mon Feb 24 2014 - 14:07:28 EST