FairRoot/PandaRoot
RhoCandidate.h
Go to the documentation of this file.
1 #ifndef RHOCANDIDATE_H
2 #define RHOCANDIDATE_H
3 // //
5 // RhoCandidate //
6 // //
7 // Contains (polymorphic) contents for RhoCandidate objects //
8 // Candidate "Tracks" or "Particles" for analysis use //
9 // //
10 // Author List: //
11 // Sascha Berger, RUB, Feb.99 //
12 // Marcel Kunze, RUB, Aug.99 //
13 // Copyright (C) 1999-2001, Ruhr-University Bochum. //
14 // Ralf Kliemt, HIM/GSI Feb.2013 (Cleanup & Restructuring) //
15 // //
17 
18 #include <iostream>
19 #include <vector>
20 
21 #include "TNtuple.h"
22 #include "TVector3.h"
23 #include "RhoMath/RhoVector3Err.h"
24 #include "TLorentzVector.h"
25 #include "TObject.h"
26 #include "RhoBase/RhoCandList.h"
29 #include "FairMultiLinkedData_Interface.h"
30 
31 //class VAbsVertex;
32 //class VAbsTruth;
33 class TParticlePDG;
34 class RhoError;
36 
37 #define MATRIXSIZE 28
38 #define MAXDAUG 10
39 
40 
41 // ---------------------
42 // -- Class Interface --
43 // ---------------------
44 class RhoCandidate : public FairMultiLinkedData_Interface
45 {
46 
47  protected:
48 
49  //--------------------
50  // Instance Members --
51  //--------------------
52 
53  // Fast mode : Do not use error matrix
55 
56  // Lock : if true, modifications are a fatal error
58 
59  // The mother
61  // Counted reference to the vertex
63 
64  // Identity
65  const TParticlePDG* fPdtEntry;
66  int fPdgCode;
67 
68  // is this a resonance ?
70 
71  // Monte-Carlo truth
72 // VAbsTruth* fTruth; //! Pointer to MCTruth info
73 
74  // Interface to objects storable in micro database
75  PndPidCandidate* fMicroCand; // !Pointer to micro data
76 
77  UInt_t fTrackNumber;
78  UInt_t fUid;
79 
80  // Daughters
81 // std::vector<RhoCandidate*> fDaughters; //! List of Daughters
83  Int_t fNDaug;
84  // Constraints
85 // TConstraint* fConstraints[5]; //! Array of constraints
86  Short_t fNCons;
87 
88  UInt_t fMarker[4];
89 
90  // added by K Goetzen
91  double fPidLH[30];
92 
93  private:
95 
96  //[ralfk:may2013] changed mc truth access to direct pointers
97  //int fMcIdx;
99 
101  // the params
102  Char_t fCharge; // The electrical charge
103  Float_t fXposition; // The origin in x
104  Float_t fYposition; // The origin in y
105  Float_t fZposition; // The origin in z
106  Double_t fXmomentum; // The momentum in x
107  Double_t fYmomentum; // The momentum in y
108  Double_t fZmomentum; // The momentum in z
109  Double_t fEnergy; // The total energy
110  Float_t fErrP7[MATRIXSIZE]; // The symmetric 7*7 error matrix
111 
112  public:
113 
114  //--------------------
115  // Public interface --
116  //--------------------
117 
118  //
119  // Constructors
120  //
121 
123  RhoCandidate();
124 
132  RhoCandidate ( const TLorentzVector& v,
133  Double_t charge = 0,
134  RhoVector3Err* vp = 0 );
135 
142  RhoCandidate ( const TVector3& v,
143  const TParticlePDG* pdt,
144  RhoVector3Err* vp=0 );
145 
146 
148  RhoCandidate ( const RhoCandidate& );
149  //RhoCandidate ( const RhoCandidate* );
150 
151  // Special constructor from MicroCandidate
152  RhoCandidate ( PndPidCandidate& a, Int_t n);
153  RhoCandidate ( PndPidCandidate& a, Int_t n, RhoVector3Err& vp, Bool_t fast= kFALSE );
154 
155 // RhoCandidate ( TLorentzVector p4,
156 // RhoError& p4Err,
157 // RhoCandListIterator& iterDau,
158 // RhoVector3Err& theVertex,
159 // const TParticlePDG* hypo = 0 );
160 
161  //
162  // Destructor
163  //
164  virtual ~RhoCandidate();
165 
166  //
167  // Accessors to contained information
168  //
169  Double_t Mass() const;
170  Double_t GetMass() const { return Mass(); }
171 
172  const TParticlePDG* PdtEntry() const;
173  int PdgCode() {return fPdgCode;}
174 
175  //
176  // By convention, the 4-momentum is given :
177  // - at the point of closest approach from the origin for non-composites
178  // - at the decay vertex for composite candidates
179  //
180 
181  // The accessors and modifiers have been noved from TFitParams
182  // accessors
183  Double_t GetCharge() const { return fCharge; }
184  Double_t Charge() const { return fCharge; }
185  TVector3 GetPosition() const { return TVector3 ( fXposition,fYposition,fZposition ); }
186  TVector3 Pos() const { return GetPosition(); } // Position where the fourmomentum is defined
187  TVector3 GetDecayPos() const { return TVector3(fDecayVtx); } // position of decay (set by vertexing, if applicable)
188  TVector3 GetMomentum() const { return TVector3 ( fXmomentum,fYmomentum,fZmomentum ); }
189  TVector3 GetVect() const { return TVector3 ( fXmomentum,fYmomentum,fZmomentum ); }
190  Double_t Px() const { return fXmomentum; }
191  Double_t Py() const { return fYmomentum; }
192  Double_t Pz() const { return fZmomentum; }
193  RhoVector3Err PosWCov() const;
194  RhoError PosCov() const;
195  TLorentzVector P4() const { return TLorentzVector ( fXmomentum,fYmomentum,fZmomentum,fEnergy ); }
196  RhoError P4Cov() const;
197  RhoError P4Err() const { return P4Cov(); }
198  RhoLorentzVectorErr P4WErr() const;
199  TVector3 P3() const { return GetMomentum(); }
200  RhoError P3Cov() const;
201  RhoVector3Err P3WErr() const;
202  Double_t E() const { return fEnergy; }
203  Double_t Energy() const { return fEnergy; }
204  Double_t GetEnergy() const { return fEnergy; }
205  Float_t* GetErrP7() { return fErrP7; }
206  Double_t EVar() const;
207  Double_t M() const;
208  Double_t P() const;
209  TMatrixD Cov7() const;
210  TMatrixD XPCov() const;
211  Double_t Pt() const { return TMath::Sqrt ( fXmomentum*fXmomentum+fYmomentum*fYmomentum ); }
212  TMatrixD GetDecayPosCov() const {return TMatrixD(fDecayVtx.CovMatrix());}
213 
214 
215  // Modifiers
216  //
217  // Set type of candidate from a particle data table entry.
218  // The setType function sets the type and therefore the mass
219  // for any RhoCandidate which has no daughter.
220  // Otherwise, i.e. for composite RhoCandidates,
221  // the setType function only sets the type, _the mass is not set_.
222  void SetType ( const TParticlePDG* pdt );
223  void SetType ( const char* name );
224  void SetType ( int pdgcode );
225 
226  // modifiers
227 
228 
229  void SetCharge ( Double_t charge ) { fCharge = ( Char_t ) charge; }
230  void SetMass ( Double_t mass );
231  void SetEnergy ( Double_t newE );// Set the energy (at constant mass, by default)
232  void SetE ( Double_t energy ) { fEnergy = energy; }
233  void SetMassAndEnergy ( Double_t mass, Double_t energy );
234  void SetPosition ( const TVector3& pos );
235  void SetPos ( const TVector3& pos ) { SetPosition ( pos ); }
236  void SetMomentum ( Double_t newP );// Set the momentum (at constant mass, by default)
237  void SetP3 ( const TVector3& p3 );
238  void SetVect ( const TVector3& p3 ) { SetP3 ( p3 ); }
239  void SetP4 ( Double_t mass, const TVector3& p3 );
240  void SetP4 ( const TLorentzVector& p4 );
241  void SetP7 ( const TVector3& pos, const TLorentzVector& p4 );
242  void SetCovPos ( const TMatrixD& covPos);
243  void SetCovP4 ( const TMatrixD& covP4 );
244  void SetCov7 ( const TMatrixD& cov7 );
245  void SetCov7 ( const TMatrixD& covPos, const TMatrixD& covP4 );
246  void SetCov7 ( const TMatrixD& covPos, const TMatrixD& covP4,const TMatrixD& covPosP4 );
247  void Set ( const TVector3& pos, const TLorentzVector& p4, const TMatrixD& cov7 );
248  void Set ( Double_t mass,const RhoVector3Err& posErr, const RhoVector3Err& p3Err, const TMatrixD& xpErr );
249  void SetErr ( Float_t* err ) {if ( err!=0 ) for ( int i=0; i<MATRIXSIZE; i++ ) { fErrP7[i] = err[i]; }}
250 
251  void SetRecoCandidate ( PndPidCandidate& micro ) { fMicroCand = &micro; }
252  // Allow the candidate to fly or not to fly
253  // This overrides the default which is to consider the
254  // candidate a resonance (a non-flying state) if it
255  // has a proper decay length c*tau of less than a nanometer
256  // according to the pdt table.
257  // This function MUST be called before any call to setVertex,
258  // or inconsistencies might occur. A inconsistent call to
259  // one of these functions when the decay vertex is already set
260  // will abort.
261  void SetFly();
262  void SetNoFly();
263 
264  void Boost ( Double_t bx, Double_t by, Double_t bz );
265  void Boost ( const TVector3& p ) { Boost ( p.X(),p.Y(),p.Z() ); }
266 
267  //
268  // Genealogy
269  //
270 
271  // access to the mother
272  const RhoCandidate* TheMother() const { return fTheMother; }
274  // access to daughters
275  Int_t NDaughters() const;
276  //RhoCandListIterator DaughterIterator() const;
277  //const RhoCandidate* Daughter ( Int_t n ) const;
278  RhoCandidate* Daughter ( Int_t n );
279  void RemoveAssociations();
280 
281  Bool_t IsComposite() const; // true when nDaugthers > 0
282  Bool_t IsAResonance() const; // true when c*tau is very small ( < 1nm )
283 
284  //
285  // Access to vertex information
286  //
287 
289 
290  Double_t Chi2() const {return fChi2;}
291  void SetChi2 ( Double_t chi2 ) {fChi2=chi2;}
292  void SetFit ( RhoCandidate* b ) {fFit=b;}
293  RhoCandidate* GetFit() const { return fFit;}
294  // recursive function that invalidates the vertex fit.
295  // it sets all the vertices to the UnFitted status.
296  // warning : the function may trig lots of copies and clones.
297  void InvalidateFit(); //defunct a.t.m.
298 
299  //
300  // Check for overlap
301  //
302 
303  // the function isCloneOf returns true if the two
304  // Candidates have shared in the past a common Base.
305  // For instance, an identified muon candidate is the
306  // clone of the original Candidate it originates from
307  // (note that "clone" must be taken in an enlarged sense
308  // here. In that example for instance, the two clones have
309  // different masses).
310  Bool_t IsCloneOf ( const RhoCandidate&, Bool_t checkType = kFALSE ) const;
311 
312  // two Candidates are equal if they share the same Base
313  Bool_t operator== ( const RhoCandidate* ) const;
314 
315  // and different if they don not
316  Bool_t operator!= ( RhoCandidate* ) const;
317 
318  // this function returns the pointer of the first clone
319  // of a given Candidate found in the decay tree of the
320  // present Candidate, if present, else the null pointer.
321  const RhoCandidate* CloneInTree ( const RhoCandidate& ) const;
322 
323  //
324  // Locks
325  //
326  // set the flag that prevents a cand from being changed
327 
328  void Lock() { fLocked = kTRUE; }
329  void UnLock() { fLocked = kFALSE; }
330  Bool_t IsLocked() {return fLocked;}
331  //
332  // Constraints
333  //
334 
335  // modifiers
336 // TConstraint& AddConstraint( TConstraint& );
337 // TConstraint& AddConstraint( TConstraint::Type );
338 // void RemoveConstraint( const TConstraint& );
339 // void RemoveConstraint( TConstraint::Type );
340 
341  // access
342 // Int_t NConstraints() const;
343 // Int_t NumberOfConstraints() const { return NConstraints(); }
344 // const TConstraint* Constraint( Int_t i ) ;
345 // const TConstraint* Constraint( TConstraint::Type ) const;
346 
347  //
348  // Origin Point
349  // - The origin point is the position of the production vertex
350  // when present, else the "origin" (0.,0.,0.)
351  // - The origin point is not necessarily the point
352  // where the 4-momentum P4() is defined. For composite
353  // candidates for instance, P4() is given at the decay point,
354  // not the production point.
355  // - To get the momentum and covariance at the origin point :
356  //
357  // TLorentzVector p4origin = cand->p4( cand->origin() );
358  //
359 
360  TVector3 Origin() const;
361 
362  //
363  // Operations
364  //
365 
367 
368  //
369  // Prints
370  //
371  void PrintOn ( std::ostream& o=std::cout ) const;
372 
373  void SetFast ( Bool_t yesno ) { fFastMode = yesno; }
374  Bool_t IsFast() const { return fFastMode; }
375 
377 
379  //************** added Combine for more candidates K.Goetzen, 05/2008
389 
390  // two Candidates overlap if they are identical
391  // (same pointers), equal (same Base),
392  // clones (same Uid), representing a same
393  // reconstructed object, or having daughters
394  // that are overlapping
395 
396  Bool_t Overlaps ( const RhoCandidate* c ) const {
397  return ( ( fMarker[0] & c->fMarker[0] ) !=0 || ( fMarker[1] & c->fMarker[1] ) !=0 ||
398  ( fMarker[2] & c->fMarker[2] ) !=0 || ( fMarker[3] & c->fMarker[3] ) !=0 );
399  }
400 
401  Bool_t Equals ( const RhoCandidate* c ) const {
402  return ( ( fMarker[0] == c->fMarker[0] ) && ( fMarker[1] == c->fMarker[1] ) &&
403  ( fMarker[2] == c->fMarker[2] ) && ( fMarker[3] == c->fMarker[3] ) );
404  }
405 
406  UInt_t GetMarker ( UInt_t m=0 ) const {
407  if ( m<4 ) {
408  return fMarker[m];
409  } else {
410  return 0;
411  }
412  }
413 
414  void SetMarker ( UInt_t l,UInt_t m );
415  void SetMarker ( UInt_t n );
416 
417  Int_t GetTrackNumber() const { return fTrackNumber; }
418  void SetTrackNumber ( Int_t trnum=-1 ) {fTrackNumber=trnum; };
419  Int_t Uid() const { return fUid; }
420  void SetUid ( UInt_t uid=0 );
421 
422 
423 // void SetTrajectory ( const TLorentzVector& p4, const RhoError& p4Err,
424 // Int_t charge,const TParticlePDG* hypo,
425 // RhoVector3Err dVtx );
426 
427 
428  void SetPidInfo ( double* pidinfo=0 );
429  void SetPidInfo ( int hypo, double value );
430  double GetPidInfo ( int hypo );
431  const double* GetPidInfo() const;
432 
433  //[ralfk:may2013] changed mc truth access to direct pointers
434  //void SetMcIdx ( int idx ) {fMcIdx=idx;}
435  //int GetMcIdx() {return fMcIdx;}
436  void SetMcTruth ( RhoCandidate* mct ) {fMcTruth=mct;}
437  RhoCandidate* GetMcTruth() const {return fMcTruth;}
438 
439  Bool_t IsLocal() const { return kTRUE; }
440 
441  // Set the decay vertex - operators can do that
442  void SetDecayVtx ( RhoVector3Err theVtx ) ;
443 
444  // Sets the mother link and adds a daughter link in the mother
445  void SetMotherLink ( RhoCandidate* m , bool verbose=true );
446 
447  // Drop the mother link
448  void DropMotherLink();
449 
450  // Add a daughter link and set the daughters mother link
451  //void AddDaughterLink ( const RhoCandidate* );
452 
453  // Add a daughter link without touching the daughters
454  void AddDaughterLinkSimple ( const RhoCandidate*, bool verbose=true );
455 
456  // Remove a daughter
457  void RemoveDaughter ( RhoCandidate* );
458 
459  Double_t Correlation ( Int_t x1,Int_t x2,const TMatrixD& m,const TMatrixD& cov ) const;
460 
461  ClassDef ( RhoCandidate,3 ) // Candidate base class
462 
463  //friend class TBooster;
464  //friend class TOperatorBase;
465 };
466 
467 // standalone print
469 
470 #endif
Bool_t IsAResonance() const
Double_t Mass() const
const RhoCandidate * CloneInTree(const RhoCandidate &) const
int fPdgCode
Pointer to particle database.
Definition: RhoCandidate.h:66
TVector3 pos
void AddDaughterLinkSimple(const RhoCandidate *, bool verbose=true)
UInt_t fTrackNumber
Definition: RhoCandidate.h:77
void SetP7(const TVector3 &pos, const TLorentzVector &p4)
c5
Definition: plot_dirc.C:75
TVector3 Origin() const
RhoCandidate * Combine(RhoCandidate *c)
Int_t GetTrackNumber() const
Definition: RhoCandidate.h:417
RhoError P3Cov() const
c4
Definition: plot_dirc.C:71
void SetPos(const TVector3 &pos)
Definition: RhoCandidate.h:235
Double_t GetCharge() const
Definition: RhoCandidate.h:183
Int_t i
Definition: run_full.C:25
__m128 m
Definition: P4_F32vec4.h:28
TTree * b
RhoVector3Err fDecayVtx
Do not stream.
Definition: RhoCandidate.h:62
void SetMotherLink(RhoCandidate *m, bool verbose=true)
void SetUid(UInt_t uid=0)
void SetMassAndEnergy(Double_t mass, Double_t energy)
Double_t GetEnergy() const
Definition: RhoCandidate.h:204
TVector3 GetVect() const
Definition: RhoCandidate.h:189
static T Sqrt(const T &x)
Definition: PndCAMath.h:37
TVector3 Pos() const
Definition: RhoCandidate.h:186
#define verbose
RhoLorentzVectorErr P4WErr() const
Double_t Pt() const
Definition: RhoCandidate.h:211
TCanvas * c10
RhoError PosCov() const
int n
Bool_t fLocked
Do not stream.
Definition: RhoCandidate.h:57
Double_t Correlation(Int_t x1, Int_t x2, const TMatrixD &m, const TMatrixD &cov) const
PndPidCandidate * GetRecoCandidate() const
Definition: RhoCandidate.h:376
Bool_t IsComposite() const
void SetVect(const TVector3 &p3)
Definition: RhoCandidate.h:238
Float_t * GetErrP7()
Definition: RhoCandidate.h:205
c2
Definition: plot_dirc.C:39
RhoCandidate * Daughter(Int_t n)
void RemoveDaughter(RhoCandidate *)
void Boost(Double_t bx, Double_t by, Double_t bz)
Float_t fErrP7[MATRIXSIZE]
Definition: RhoCandidate.h:110
RhoCandidate * fFit
pointer, objects created by RhoFactory
Definition: RhoCandidate.h:100
void DropMotherLink()
RhoCandidate * fTheMother
Do not stream.
Definition: RhoCandidate.h:60
Int_t Uid() const
Definition: RhoCandidate.h:419
void SetPosition(const TVector3 &pos)
__m128 v
Definition: P4_F32vec4.h:4
void SetE(Double_t energy)
Definition: RhoCandidate.h:232
Double_t p
Definition: anasim.C:58
TCanvas * c7
Double_t Py() const
Definition: RhoCandidate.h:191
void SetRecoCandidate(PndPidCandidate &micro)
Definition: RhoCandidate.h:251
Int_t fNDaug
List of Daughters.
Definition: RhoCandidate.h:83
Bool_t IsLocal() const
Definition: RhoCandidate.h:439
void SetFast(Bool_t yesno)
Definition: RhoCandidate.h:373
void SetType(const TParticlePDG *pdt)
Char_t fCharge
pointer, objects created by RhoFactory
Definition: RhoCandidate.h:102
void SetP4(Double_t mass, const TVector3 &p3)
std::ostream & operator<<(std::ostream &o, const RhoCandidate &)
const double * GetPidInfo() const
TMatrixD XPCov() const
Bool_t fIsAResonance
Definition: RhoCandidate.h:69
int uid(int lev, int lrun, int lmode)
Definition: autocutx.C:122
void SetMomentum(Double_t newP)
#define MAXDAUG
Definition: RhoCandidate.h:38
Int_t a
Definition: anaLmdDigi.C:126
Double_t Energy() const
Definition: RhoCandidate.h:203
Double_t GetMass() const
Definition: RhoCandidate.h:170
Double_t fYmomentum
Definition: RhoCandidate.h:107
PndPidCandidate * fMicroCand
Rsonance flag.
Definition: RhoCandidate.h:75
void SetP3(const TVector3 &p3)
TVector3 GetPosition() const
Definition: RhoCandidate.h:185
Double_t fZmomentum
Definition: RhoCandidate.h:108
void SetPidInfo(double *pidinfo=0)
void InvalidateFit()
double fPidLH[30]
Overlap.
Definition: RhoCandidate.h:91
RhoError P4Err() const
Definition: RhoCandidate.h:197
Double_t Pz() const
Definition: RhoCandidate.h:192
Double_t
Float_t fXposition
Definition: RhoCandidate.h:103
Bool_t Overlaps(const RhoCandidate *c) const
Definition: RhoCandidate.h:396
RhoCandidate * fMcTruth
Definition: RhoCandidate.h:98
Bool_t IsLocked()
Definition: RhoCandidate.h:330
const TParticlePDG * PdtEntry() const
void RemoveAssociations()
RhoCandidate * fDaughters[MAXDAUG]
unique number
Definition: RhoCandidate.h:82
RhoCandidate * TheMother()
Definition: RhoCandidate.h:273
Double_t fEnergy
Definition: RhoCandidate.h:109
TVector3 GetMomentum() const
Definition: RhoCandidate.h:188
void PrintOn(std::ostream &o=std::cout) const
TLorentzVector P4() const
Definition: RhoCandidate.h:195
void SetErr(Float_t *err)
Definition: RhoCandidate.h:249
void Set(const TVector3 &pos, const TLorentzVector &p4, const TMatrixD &cov7)
Double_t EVar() const
void SetChi2(Double_t chi2)
Definition: RhoCandidate.h:291
virtual ~RhoCandidate()
c1
Definition: plot_dirc.C:35
void SetMass(Double_t mass)
Double_t M() const
TString name
c3
Definition: plot_dirc.C:50
RhoCandidate * GetMcTruth() const
Definition: RhoCandidate.h:437
void Boost(const TVector3 &p)
Definition: RhoCandidate.h:265
Double_t E() const
Definition: RhoCandidate.h:202
Double_t P() const
Bool_t Equals(const RhoCandidate *c) const
Definition: RhoCandidate.h:401
RhoVector3Err PosWCov() const
RhoCandidate & operator=(const RhoCandidate &)
Float_t fYposition
Definition: RhoCandidate.h:104
RhoError P4Cov() const
void SetFit(RhoCandidate *b)
Definition: RhoCandidate.h:292
Double_t fXmomentum
Definition: RhoCandidate.h:106
void SetMcTruth(RhoCandidate *mct)
Definition: RhoCandidate.h:436
TMatrixD Cov7() const
void SetCovP4(const TMatrixD &covP4)
TMatrixD GetDecayPosCov() const
Definition: RhoCandidate.h:212
TVector3 GetDecayPos() const
Definition: RhoCandidate.h:187
void SetTrackNumber(Int_t trnum=-1)
Definition: RhoCandidate.h:418
#define MATRIXSIZE
Definition: RhoCandidate.h:37
void SetEnergy(Double_t newE)
Int_t NDaughters() const
Float_t fZposition
Definition: RhoCandidate.h:105
RhoCandidate * GetFit() const
Definition: RhoCandidate.h:293
Double_t Charge() const
Definition: RhoCandidate.h:184
const TParticlePDG * fPdtEntry
Vertex.
Definition: RhoCandidate.h:65
const RhoError & CovMatrix() const
Definition: RhoVector3Err.h:68
void SetCharge(Double_t charge)
Definition: RhoCandidate.h:229
void SetMarker(UInt_t l, UInt_t m)
Bool_t operator!=(RhoCandidate *) const
void SetDecayVtx(RhoVector3Err theVtx)
Bool_t IsCloneOf(const RhoCandidate &, Bool_t checkType=kFALSE) const
Double_t fChi2
Definition: RhoCandidate.h:94
Bool_t fFastMode
Definition: RhoCandidate.h:54
UInt_t fUid
Micro association.
Definition: RhoCandidate.h:78
Bool_t IsFast() const
Definition: RhoCandidate.h:374
void SetCovPos(const TMatrixD &covPos)
Bool_t operator==(const RhoCandidate *) const
RhoVector3Err P3WErr() const
UInt_t GetMarker(UInt_t m=0) const
Definition: RhoCandidate.h:406
TCanvas * c8
RhoVector3Err DecayVtx()
Definition: RhoCandidate.h:288
void SetCov7(const TMatrixD &cov7)
const RhoCandidate * TheMother() const
Definition: RhoCandidate.h:272
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52
TVector3 P3() const
Definition: RhoCandidate.h:199
UInt_t fMarker[4]
Number of constraints.
Definition: RhoCandidate.h:88
Double_t Chi2() const
Definition: RhoCandidate.h:290
Short_t fNCons
Definition: RhoCandidate.h:86
Double_t Px() const
Definition: RhoCandidate.h:190
Double_t energy
Definition: plot_dirc.C:15