FairRoot/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 //--------------------
68 // Instance Members --
69 //--------------------
70 
71  public:
72 
73  // Constructors
75  const TLorentzVector& ip4Reson, // set Y(4S) p4, usually.
76  const double imChild, // B0 mass.
77  const double imSought, // K mass (p4 not known).
78  const Bool_t izBoostApprox=kTRUE ); // Approximate boost along z?
79 
80  virtual ~RhoFindOmittedParticle( );
81 
82  TLorentzVector FitToSeen ( const TLorentzVector& p4Obs,
83  const TVector3& p3Seen );
84 
85  // Returns the second-choice fit vector.
86  TLorentzVector SecondVector( ) const;
87 
88  protected:
89 
90  void MakeCone ( const TLorentzVector& p4Obs );
91 
92  TLorentzVector ClosestFit ( const TVector3& p3Seen );
93 
94  //TLorentzVector p4Reson; // 4-momentum of resonance
95  //float mChild; // mass of Child
96  float mSought2;
97 
99  // the z direction, or use real boost?
100  // (Default = kTRUE).
101 
103 
104  //Caches value of p4Obs to avoid recalculating the code unnecessarily.
105  TLorentzVector p4ObsCache;
106 
107  //Stores value of worse fit so we can look at it.
108  TLorentzVector secondChoice;
109 
110  // BOOST vectors.
111  TVector3 beta;
112 
113  // The cone parameters.
114  TVector3 cmAxis;
115  double openCos;
116  double cmESought;
117  double cmpSought2;
118 
119  public:
120  ClassDef ( RhoFindOmittedParticle,1 ) // Finds the best candidate for the K0L 4-momentum
121 };
122 #endif
TVector3 beta
The other vector, stored.
double cmESought
cos of opening angle.
TLorentzVector p4ObsCache
energy, squared 3-momentum of Child.
TLorentzVector SecondVector() const
TVector3 cmAxis
From lab to CM (-beta CM to lab)
TLorentzVector FitToSeen(const TLorentzVector &p4Obs, const TVector3 &p3Seen)
double openCos
Axis of CM cone.
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)