Checklist:
This list the items that need to be implemted or QAed to include BTOF information in the PPV.
Coding: - almost done, need review by experts
1) BTOF hits (StBTofHitMaker) to be loaded before PPV - done
2) BTOF geometry need to be initialized for the PPV - done
As PPV is executed before the StBTofMatchMaker, I think in the future, the BTOF geometry will be firstly initialized in PPV in the chain and added to the memory. StBTofMatchMaker will then load this directly w/o creating its own BTof geometry.
3) Creation of BtofHitList - done
The BTOF part is rather segmented accroding to tray/module/cell, but BTOF modules don't have the same deta coverage. The binning is segmented according to module numbers.
The justification of match and veto is different from other sub-systems as we now allow one track to project onto multiple modules considering the Vz spread and track curvature.
Define: Match - any of these projected modules has a valid BTOF hit. Veto - At least one projected module is active and none of the active projected modules has a valid BTOF hit.
4) Update on TrackData VertexData to include BTOF variables - done
5) Main matching function: matchTrack2BTOF(...) - done
Currently, the match/veto is done at the module level. I set a localZ cut (|z|<3cm currently and also possibly remove cell 1 and 6 to require the track pointing to the center of the module). But this can be tuned in the future. Also whether we need to to match at the cell level can also be discussed.
6) Update on StEvent/StPrimaryVertex, add mNumMatchesWithBTOF - done (need update in CVS)
7) A switch to decide whether to use BTOF or not. - done (but need to add an additional bfc option)
The lastest version is located in /star/u/dongx/lbl/tof/NewEvent/Run9/PPV/StRoot
QA: - ongoing