[BLAST_ANAWARE] new BLAST reconstruction geometry... FINISHED!!!

From: Aaron Joseph Maschinot (ajmasch@MIT.EDU)
Date: Wed Oct 16 2002 - 13:21:49 EDT


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