PandaRoot
RhoFindOmittedParticle.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: RhoFindOmittedParticle.h,v 1.1.1.1 2001-05-04 16:20:06 marcel Exp $
4 //
5 // Description:
6 // Class RhoFindOmittedParticle.
7 // Given resonance (Y(4S)) momentum, B0 momentum, and
8 // K0L mass at creation, this object then finds the best
9 // candidate for the K0L 4-momentum given the 4-momentum
10 // of the J/psi and the direction of the neutral cluster.
11 //
12 // Because this is a general utility class, B0 is labeled Child,
13 // Y(4S) is labeled Reson (for Resonance), J/psi is labeled Obs
14 // (for Observed), and K0L is labeled Sought (for the calculated
15 // values) or Seen (for the actual IFR/EMC cluster).
16 //
17 // Constructor takes CM 4-momentum, Child mass, and Sought mass.
18 //
19 // fitToSeen() calls makeCone(), then closestFit().
20 //
21 // makeCone() finds the possible Sought 4-momenta given the Observed
22 // momentum.
23 //
24 // closestFit() finds the best fit between the cone of possibilities
25 // and the Seen neutral cluster.
26 //
27 // secondVector() returns the second momentum found by closestFit()
28 // but rejected as an inferior fit, for diagnostic purposes.
29 //
30 // If there is demand, a function may be added to extract the
31 // parameters of the cone describing possible Sought momenta;
32 // makeCone() and closestFit() would then be made public;
33 // or perhaps a subclass could implement this functionality.
34 //
35 // Note: this class by default currently only works in
36 // coordinate systems with the boost along the z-axis.
37 // Setting zBoostApprox to false overrides this.
38 // Note: this class currently assumes (as is the case for B0->J/psi KL)
39 // that in the resonance CM (Y(4S)) frame, the 3-momentum of the
40 // observed (J/psi) particle is much larger than the child (B0)
41 // 3-momentum, insuring that the CM angle between the observed and
42 // sought (KL) is greater than pi/2. (In the language of this class,
43 // openCos>0, since we use the opposite of the observed momentum).
44 //
45 // Environment:
46 // Software developed for the BaBar Detector at the SLAC B-Factory.
47 //
48 // Author List:
49 // Adam Breon Original Author
50 //
51 // Copyright Information:
52 // Copyright (C) 1997-1999 Lawrence Berkeley Laboratory
53 //
54 // ROOT Version by Marcel Kunze, RUB
55 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring)
56 //------------------------------------------------------------------------
57 
58 #ifndef RHOFINDOMITTEDPARTICLE_H
59 #define RHOFINDOMITTEDPARTICLE_H
60 
61 #include "TVector3.h"
62 #include "TLorentzVector.h"
63 
64 class RhoFindOmittedParticle : public TObject {
65 
66  //--------------------
67  // Instance Members --
68  //--------------------
69 
70  public:
71  // Constructors
72  RhoFindOmittedParticle(const TLorentzVector &ip4Reson, // set Y(4S) p4, usually.
73  const double imChild, // B0 mass.
74  const double imSought, // K mass (p4 not known).
75  const Bool_t izBoostApprox = kTRUE); // Approximate boost along z?
76 
77  virtual ~RhoFindOmittedParticle();
78 
79  TLorentzVector FitToSeen(const TLorentzVector &p4Obs, const TVector3 &p3Seen);
80 
81  // Returns the second-choice fit vector.
82  TLorentzVector SecondVector() const;
83 
84  protected:
85  void MakeCone(const TLorentzVector &p4Obs);
86 
87  TLorentzVector ClosestFit(const TVector3 &p3Seen);
88 
89  // TLorentzVector p4Reson; // 4-momentum of resonance
90  // float mChild; // mass of Child
91  float mSought2;
92 
93  Bool_t zBoostApprox;
94  // the z direction, or use real boost?
95  // (Default = kTRUE).
96 
98 
99  // Caches value of p4Obs to avoid recalculating the code unnecessarily.
100  TLorentzVector p4ObsCache;
101 
102  // Stores value of worse fit so we can look at it.
103  TLorentzVector secondChoice;
104 
105  // BOOST vectors.
106  TVector3 beta;
107 
108  // The cone parameters.
109  TVector3 cmAxis;
110  double openCos;
111  double cmESought;
112  double cmpSought2;
113 
114  public:
115  ClassDef(RhoFindOmittedParticle, 1) // Finds the best candidate for the K0L 4-momentum
116 };
117 #endif
TVector3 beta
The other vector, stored.
TLorentzVector SecondVector() const
double cmESought
cos of opening angle.
TLorentzVector p4ObsCache
energy, squared 3-momentum of Child.
TVector3 cmAxis
From lab to CM (-beta CM to lab)
TLorentzVector FitToSeen(const TLorentzVector &p4Obs, const TVector3 &p3Seen)
double openCos
Axis of CM cone.
virtual ~RhoFindOmittedParticle()
RhoFindOmittedParticle(const TLorentzVector &ip4Reson, const double imChild, const double imSought, const Bool_t izBoostApprox=kTRUE)
void MakeCone(const TLorentzVector &p4Obs)
float cmEChild
Flag: do we approximate boost in.
Bool_t zBoostApprox
squared mass of Sought
double cmpSought2
CM energy of sought particle.
TLorentzVector ClosestFit(const TVector3 &p3Seen)