Hello everyone. I have just updated the entire vtx-directory in BRAT, and
it is important that you read this message if you do any vertexing because
THIS CHANGE BREAKS OLD CODE! This is the change I warned you about in my
analysis-note a while back... Read below, and you will see why the change
was neceseary. (I state this a bit strongly so that noone will kill me
when their vertexing applications stop compiling ;-)
First of all, I have added the class BrVertexModule. This is (or will be,
as it is under construction) a superclass for vertexing. Currently it
generates a BrVertex-object for BB, ZDC, TPM1 TrackVtx and TPM1
ClusterVtx, plus it makes one "global vertex" with what is assumed to be
the "best" of these vertices. That means that this class can be used for
all purpouses and will in any type of event give the best reconstructed
vertex. Below I will describe how to use the module, but first:
These are the changes in old modules:
BrTPMTrackVertexModule:
As before, but now adds a BrVertex named
"TPM1 Track VtxData"
to outputnode, i.e. NOT "VtxData" as before!!!!
BrTPMClusterVertexModule:
Hevily reworked, code cleaned up a lot, and now works better and faster. A
bug that made it imposible to find a vertex outside +-40cm has been
removed, and the module seems to work at least over +-80cm from z=0. Works
as before, but now adds a BrVertex named
"TPM1 Cluster VtxData"
to outputnode, i.e. NOT "VtxData" as before!!!!
(Christian: You made some changes in this module to make it compile under
WinDoze - since I do not know just what that was I may have destroyed
these. Please check!)
BrRdoModuleBB: Near the end of event() I added if()-statements to two
lines that fill histograms. The lines caused a seg. fault if
DefineHistograms() had not been run (the histo's are then not created).
Now, how to use BrVertexModule:
First of all, create it like any other module:
BrVertexModule *fVertexModule = new BrVertexModule("VtxModule","Vertex
Module");
You can decide not to use one or more of the vertexing-modules by setting
fVertexModule->SetBBOff(), SetZDCOff(), SetTPM1cOff() or SetTPM1tOff(),
but by default they are all used.
Then, for each event, do:
1) Clusterfinding (needed for both TPM1-methods)
2) Tracking (needed for BrTPMTrackVertexMod.)
3) Do
fVertexModule->SetDetectorHits(fClusterFinder->GetDetectorHits()) (needed
for BrTPMClusterVertexMod.)
4) Do fVertexModule->Event(event,vtx_node); where event is the raw event
containing TPM1 tracks, BB- and ZDC-data and vtx_node is a new
BrEventNode. In vtx_node the following is put:
BrVertex called "BB VtxData"
BrVertex called "ZDC VtxData"
BrVertex called "TPM1 Cluster VtxData"
BrVertex called "TPM1 Track VtxData"
BrVertex called "VtxData"
The last one is the "global" vertex, and is filled in this way: If the
cluster-vtx has a good det. (below a settable cut) this z is put in. If
not, I check to see if the track-vtx is good - the reason for this
ordering is that the cluster-algorithm has the best efficiency even though
it is a bit slower. If none of these are present or good the BB data is
put in, and finally if it is the only one present the ZDC-data is
used. Which one was used can be tested by the method
Int_t BrVertex::GetVertexMethodUsed():
// 0 = none
// 1 = BrTPMClusterVertexModule
// 2 = BrTPMTrackVertexModule
// 3 = BB
// 4 = ZDC
I guess you can now see why I had to change the default names of the
BrVertex-objects - they had to be different to be put in the same node...
Now - what is still to be done? Well, the method described above for
selecting the "best" vertex is very primitive - I will, after discussing a
bit with Yury and Michael, make a better one...
Also note that I currently assume that there is no z-offset in either BB
or ZDC. We know that the ZDC at least has an offset, so if someone has an
"official" value for this I will include it. If not, I will make my own
best estimate via a gaussian fit to ZDC-data.
For those interested in how the code currently works, have a look at this
file:
www.fys.uio.no/~bjornhs/BrVertexModuleOutput.ps
It is a compilation of vtx-correlations from run 2235, seq 0 (10000
events). The top row shows the distributions of all found vertices for the
four methods, while the three bottom rows show error-distributions and
correlations for trigger 6-events with a few loose cuts on the
TPC-modules. Lastly I show the "multiplicity"-distr. from
BrTrackFollowFinder and the SumADC-distr (min-bias) from the tiles. This
figure is not meant as an analysis result - just to show you that all the
code still works and in some places better than before :-)
Well - that was a long mail. Please send me any questions and comments,
and stay tuned for updates of BrVertexModule.
Ping :-)
------------------------------------------------
Bjorn H. Samset
Master-student in Heavy Ion physics
Mob: +47 92 05 19 98 Office: +47 22 85 77 62
Adr: Kri 2A709 Sognsveien 218 0864 Oslo
This archive was generated by hypermail 2b29 : Tue Nov 07 2000 - 12:07:10 EST