From: Djamel Ouerdane (ouerdane@nbi.dk)
Date: Mon Mar 03 2003 - 13:43:37 EST
Hi all,
As I warned more or less clearly earlier, I have updated brat quite a lot
in order to improve some TOF pid efficiency. The version is now 2.7.8, the
tag is BRAT-2-7-8. The bdst package has also been updated to contain some
missing information, the version is now 1.0.3, the tag is BDST-1-0-3
(configure will abort if the version of brat is older).
Now that this is done, my task on improving the soft is OVER for the next
two months (I spent two weeks doing data analyses, checks, bug fixes and
so on) so unless I introduced stupid bugs, in which case, I'll be glad to
fixe them, I now want to focus on the end of my PhD stuff (thesis). Peter
and I are gonna rebuild quickly the DSTs (some calibrations need to be
redone but with the tools mentioned below, it's gonna be fast) with a
priority on the FFS data (the y ~ 2 stuff is still shaky).
If you use this version of brat and bdst and notice some weird stuff
despite the indications I give, tell me asap. I haven't noticed any weird
behaviour (I recompiled from scratch, applied some checks up to DSTs but
who knows).
Ciao
Djam
---------------------------------------------
Changes to brat :
-----------------
* data/calib : BrTofCalibration
enabled ADC gap for TOF1, TOF2 and TOFW
* data/params : BrDetectorParamsTof
added a lot of methods dealing with the geometry
of a 3D line crossing a slat. This is mostly relevant
for H1 and H2 which have a more subtle configuration
than I naively thought.
* data/track : BrDetectorTrack
added non persistent member fTmpPos (vector3D) to ease
corrections. I use it a lot for T2 since it affects the
track-tof matching for the first slats.
* data/track : BrSpectrometerTracks
added a member in BrFsTrack (partial path) and
modified the pointed slat information. The pointed
slat member can now contain 2 slat candidates
GetPointedSlat() or GetBestPointedSlat() returns the best
GetSecondPointedSlat() returns the 2nd
(internally, there was no need to add a new member)
* scripts/calib/tof : added OfflineTofCal.C
I had this macro lying around for quite some time but I thought
I'd share it with others. Usually, a tof calibration job takes some time
especially if one starts from local tracking up to calibration
histograms. This macro is for the impatient like me : I usually have
a set of shell scripts generating LSF scripts for each sequence of
a run. Using the farm this way is really cool (if you don't drown it
with 1000s of jobs). At the end, I merge all histogram files and I use
this macro for "offline" calibration. Load it in bratroot. Then methods
are :
adcGap(<...>)
adcGain0(<...>)
timeOffset(<...>)
deltaDelay(<...>)
depending on your histogram file of course, you should pick up the right
method. You end up with an ascii file loadable for commitment
(standard procedure). In some cases, you also have a display of the
results but this is not finished for all cal.
The slewing is not included since the procedure is not histogram based.
(Trick : I wrote a histo merging program, based of the bm stuff and
root macro tutorial, called mergeHistFile. You can pick it up from
brahms_app/do_app/track. It also handles ntuples but _not_ complicated
trees like e.g. DSTs)
* modules/calib/tof :
adc gain : changed histogramming and simplified the peak finder
adc gap : added Event & Finish methods. Works fine provided
that you go through a LOT of data (20 runs at least)
tdc delay : since all slats are made of the same material and
since I saw that H1 and H2 showed the same effective
speed of light average, I allow the delay calibration to use
a constant speed of light. If you set the min and max cscint
before module initialization to the same value, this value will be used
as is for calibrating the delay between the bottom and top tubes
The value I use for H1 and H2 is 11.5 cm/ns. Since T5 and T2
agreed, I assumed that this value was right.
time offset & slewing & delay :
I am more strict with the hit selection. I remove
multiple hits found by the matching module and I
set a default max energy loss of 2 de_MIP (mostly relevant for the
time offset and delay)
* modules/pid : BrTofPidModule
added some more stuff in the ntuple, corrected some forgotten
check of the time 0 type (mrs counter)
* modules/rdo : BrTofRdoModule
added ntuple for track-tof matchings,
added SetUseAdcGap(<bool>)
(H1 and H2 calibrations are in the DB, use it safely
TOFW is not yet)
* modules/track/tpc :
added detectorTrack->SetTmpPos when copied from TpcTrack
* modules/track/combine :
BrModuleMatchTrack : fixed a missing if (HistOn())
BrFfsTrackingModule: added a TSpline3 member for
T2 position correction. You can use it by configuring
it like that : ffsModule->UseT2XCorrection();
It will pick up some data from an ascii file in
<install>/share/brat/params called dxT2T3.dat
I also changed the TOF pointing. It is now more reliable.
BrBfsTrackingModule : same thing for the TOF stuff
BrFsTrakingModule : keep track of new TOF stuff
BrDcEnhancement : apparently, nobody tried this module
without histos booked...fixed it.
BrMrsTrackingModule : save the intersection with the TOF
panels in the local coordinate frame (was global before,
which was a bit annoying...). Note that the mrs track has
a pointed panel member if in doubt.
* modules/util : added 2 new modules (did not remove the old
yet, I'll give some time for people to try the new modules),
namely BrFfsTof1MatchingModule
BrFsTof2MatchingModule.
They are based on the new track-TOF pointing (read comments at
top of implementation file). Added ntuples too.
BrMrsTofMatchingModule : updated according to mrs tracking module
tof pointing.
* modules/vertex : BrBbVertexModule
In some cases, left tube # 1 returned a NaN tof. A bit weird...
so I ignore tubes returning such odd thing in the time
average loop.
-----------
Changes to bdst
---------------
Basically, I add more information. Now the TOF hit position is
added, the track intersection with the TOF slats is added (and not the
difference dx and dy like before). I also save the top and bottom energy
of a tof hit and the multiple tof-track matchings.
Drawback : this version of bdst (1.0.3) is no more compatible with
the user's macros and classes (BdstFsAna, BdstMrsAna, Claus's DST reader
and other user's code unknown to me). If you use DST 1.0.3, you'd better
modify the DST reader you use and subsequent cut variables, etc.
To make it not so painful, open a DST, and use T1->MakeClass("whatever")
you'll get the latest branches and leaves in order.
------------------------------------------------------------------------
--
Djamel Ouerdane ------------------------------------------o
| Niels Bohr Institute | Home: |
| Blegdamsvej 17, DK-2100 Ø | Jagtvej 141 2D, |
| Fax: +45 35 32 50 16 | DK-2200 Copenhagen N |
| Tel: +45 35 32 52 69 | +45 35 86 19 74 |
| http://www.nbi.dk/~ouerdane |
| ouerdane@nbi.dk |
o---------------------------------------------------------o
This archive was generated by hypermail 2.1.5 : Mon Mar 03 2003 - 13:44:16 EST