In BaBar code, all particle candidates are stored as BtaCandidates. As members of the BtaCandidate C++ class, they automatically come with lots of physics information. For example, you can get the four-momentum and charge of any BtaCandidate.
The following are some of the most useful kinematic and other variables for BtaCandidates. For a complete list of quantities and functions available for BtaCandidates, a good place to look is the BtaCandidate header file, BtaCandidate.hh.
BtaCandidate InfoBegin with a pointer to a BtaCandidate: BtaCandidate* MyBtaCand; |
||
| Quantity | Type | Description |
| MyBtaCand->charge() | int | charge (-1, 0, +1) of the candidate as determined by the direction of its curvature in the BaBar solenoid. |
| MyBtaCand->energy() | double | energy (GeV) of the candidate in the lab frame: for neutrals, it is the (uncalibrated) energy deposited in the calorimeter for charged tracks, it is the relativistic energy, assuming the pion mass hypothesis if none has been assigned yet. |
| MyBtaCand->p4() MyBtaCand->p4(HepPoint) |
HepLorentzVector | 4-momentum of the candidate in the lab frame: for neutrals, as determined from the energy and mass for charged tracks, as determined by the curvature of the track (track based on hits in both the drift chamber AND the SVT) |
| MyBtaCand->p4().x()
MyBtaCand->p4().y() MyBtaCand->p4().z() MyBtaCand->p4().rho() MyBtaCand->p4().e() |
double | Components of the 4-momentum of the candidate in the lab frame.
First three variables are px, py, pz. rho() is the the magnitude of the 3-momentum vector. e() is the energy component. |
| MyBtaCand->p4().theta()
MyBtaCand->p4().phi() |
double | Angles for spherical coordinates |
| MyBtaCand->p4Err() MyBtaCand->p4Err(HepPoint) |
BbrError | covariance. Note, for neutrals, you must use the method which takes a HepPoint as its argument. |
| MyBtaCand->p4WCov() | BbrLorentzVectorErr | 4-momentum with errors |
| MyBtaCand->decayVtx() | BtaAbsVertex | Information on the decay vertex of this candidate. |
| MyBtaCand->recoTrk()->fitResult()->helix(0).covariance() | HepSymMatrix | error matrix of the helix fit parameters |
| MyBtaCand->doca(HepPoint) | double | doca of the track to a given point in 3D |
| MyBtaCand->docaXY(HepPoint) | double | doca of the track to a given point in 2D |
| MyBtaCand->docaErr(HepPoint) | double | error on doca of the track to a given point in 3D |
| MyBtaCand->docaXYErr(HepPoint) | double | error on doca of the track to a given point in 2D |
| MyBtaCand->docaErr(BbrPointErr) | double | same as with HepPoint, but allowing error on the point with respect to which the DOCA is made |
| MyBtaCand->docaXYErr(BbrPointErr) | double | same as with HepPoint, but allowing error on the point with respect to which the DOCA is made |
| MyBtaCand->recoObject()->position(HepPoint) | HepPoint | the POCA (to the HepPoint) of the BtaCandidate (add BtaAbsRecoObject::XY as second argument if the POCA must be in 2D) |
| MyBtaCand->recoObject()->positionErr(HepPoint) | BbrPointErr | error on the POCA (to the HepPoint) of the BtaCandidate (add BtaAbsRecoObject::XY as second argument if the POCA must be in 2D) |
| MyBtaCand->recoObject()->momentum(HepPoint) | Hep3Vector | value of the BtaCandidate momentum after it has been swum to the POCA of the HepPoint. (add BtaAbsRecoObject::XY as second argument if the POCA must be in 2D) In many cases, this is the same as MyBtaCand->momentum(HepPoint) |
| MyBtaCand->recoObject()->momentumErr(HepPoint) | BbrVectorErr | value of the BtaCandidate momentum error matrix after it has been swum to the POCA of the HepPoint. (add BtaAbsRecoObject::XY as second argument if the POCA must be in 2D) |
You can also get detector-level information about the BtaCandidates.