//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepParticle.h,v 1.32 2017/01/30 21:02:59 kind Exp $
// Copyright: 2008 (C) Oliver Maria Kind
//
#ifndef HEP_HepParticle
#define HEP_HepParticle
#ifndef ROOT_TObject
#include <TObject.h>
#endif
#ifndef ROOT_TLorentzVector
#include <TLorentzVector.h>
#endif
#ifndef HEP_HepDatabasePDG
#include <HepDatabasePDG.h>
#endif
#ifndef ROOT_TMath
#include <TMath.h>
#endif
#ifndef ROOT_TMatrixD
#include <TMatrixD.h>
#endif

class HepJet;
class TSystem;

class HepParticle : public TObject {

  protected:
    Int_t                  fId;       // Id number (for convenience only)
    TLorentzVector         fP;        // 4-momentum (Px, Py, Pz, E) in GeV
    Int_t                  fPdgCode;  // PDG code
    static HepDatabasePDG *fDbasePDG; //! PDG database

  private:
    Bool_t                 fCompute;  //! Compute the transient variables
                                      //  at the next possibility
    Float_t                fPmag;     //! Magnitude of the 3-mom. vector (GeV)
    Float_t                fPt;       //! Transverse momentum (GeV)
    Float_t                fTheta;    //! Polar angle of the 3-momentum (rad)
    Float_t                fCosTheta; //! Cosine of the polar angle
    Float_t                fPhi;      //! Azimuth of the 3-momentum (rad)
    Float_t                fEta;      //! Pseudo-rapidity of the 3-momentum
    
  public:
    HepParticle();
    HepParticle(Int_t Id, Float_t Px, Float_t Py, Float_t Pz, Float_t E,
		Int_t PdgCode);
    virtual ~HepParticle();
    virtual void Clear(Option_t *option = "");
    virtual void Print(Option_t *option = "");
    static void PrintHeader();
    static void PrintFooter();
    Double_t Mass(Option_t *option = "PDG") const;
    virtual Int_t Compare(const TObject *obj) const;
    const char* GetPdgName() const;
    Bool_t HasInvalidPdgCode() const;
    Float_t Charge() const;
    Float_t DeltaPhi(HepParticle *prt) const;
    Float_t DeltaPhi(HepJet *jet) const;
    Float_t DeltaEta(HepParticle *prt);
    Float_t DeltaEta(HepJet *jet);
    Float_t DeltaR(HepParticle *prt);
    Float_t DeltaR(HepJet *jet);
    Float_t Mperp2() const;
    Float_t DeltaPtFrac(HepParticle *prt);
    Float_t DeltaPtFrac(HepJet *jet);
    Float_t InvDeltaPtFrac(HepParticle *prt);
    virtual void GetCovMatrixPtEtaPhi(TMatrixD& CovMatPtEtaPhi) const;
    
    inline Int_t GetId() const { return fId; }
    inline Int_t GetPdgCode() const { return fPdgCode; }
    inline Bool_t IsPositive() const
	    { return ( Charge() > 0. ) ? kTRUE : kFALSE; }
    inline Bool_t IsNegative() const
	    { return ( Charge() < 0. ) ? kTRUE : kFALSE; }
    inline Bool_t IsNeutral() const
	    { return ( Charge() == 0. ) ? kTRUE : kFALSE; }
    inline virtual Bool_t IsSortable() const { return kTRUE; }

    inline Bool_t IsChargedLepton() const {
	// Particle is electron, mu or tau
	return ( IsElectron() || IsMuon() || IsTau() ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsNeutrino() const {
	// Particle is neutrino or antineutrino
	return ( fPdgCode == 12 || fPdgCode == -12 || fPdgCode == 14 || fPdgCode == -14  || fPdgCode == 16 || fPdgCode == -16) ? kTRUE : kFALSE;
	// Particle is a neutrino
	return ( IsElectronNeutrino() || IsMuonNeutrino()
		 || IsTauNeutrino() ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsPhoton() const {
	// Particle is Gamma
	return ( fPdgCode == 22 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsElectron() const {
	// Particle is e+ or e-
	return ( fPdgCode == 11 || fPdgCode == -11 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsEMinus() const {
	// Particle is e-
	return ( fPdgCode ==  11 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsEPlus() const {
	// Particle is e+
	return ( fPdgCode == -11 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsElectronNeutrino() const {
	// Particle is electron neutrino
	return ( fPdgCode == 12 || fPdgCode == -12 ) ? kTRUE : kFALSE;
    }


    inline Bool_t IsMuon() const {
	// Particle is mu+ or mu-
	return ( fPdgCode ==  13 || fPdgCode == -13 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsMuPlus() const {
	// Particle is mu+-
	return ( fPdgCode == -13 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsMuMinus() const {
	// Particle is mu-
	return ( fPdgCode ==  13 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsMuonNeutrino() const {
	// Particle is muon neutrino
	return ( fPdgCode == 14 || fPdgCode == -14 ) ? kTRUE : kFALSE;
    }

    
    inline Bool_t IsTau() const {
      // Particle is tau+ or tau-
      return ( fPdgCode == 15 || fPdgCode == -15 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTauMinus() const {
      // Particle is tau-
      return ( fPdgCode ==  15 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTauPlus() const {
      // Particle is tau+
      return ( fPdgCode == - 15 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTauNeutrino() const {
      // Particle is tau neutrino
      return ( fPdgCode == 16 || fPdgCode == -16 ) ? kTRUE : kFALSE;
    }

    
    inline Bool_t IsPion() const {
	// Particle is Pi+ or Pi-
	return ( fPdgCode == 211 || fPdgCode == -211 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsPiMinus() const {
	// Particle is Pi-
	return ( fPdgCode ==  -211 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsPiPlus() const {
	// Particle is Pi+
	return ( fPdgCode == 211 ) ? kTRUE : kFALSE;
    }

    
    inline Bool_t IsKaon() const {
	// Particle is K+ or K-
	return ( fPdgCode == 321 || fPdgCode == -321 ) ? kTRUE : kFALSE;
    }

    inline Bool_t IsProton() const {
	// Particle is p or antiproton
	return ( fPdgCode == 2212 || fPdgCode == -2212 ) ? kTRUE : kFALSE;
    }
    
    inline Bool_t IsKMinus() const {
	// Particle is K-
	return ( fPdgCode ==  -321 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsKPlus() const {
	// Particle is Ki+
	return ( fPdgCode == 321 ) ? kTRUE : kFALSE;
    }

    inline Bool_t IsStringOrCluster() const {
	// Particle is cluster (91) or string (92) on hadronisation level
	return ( fPdgCode == 91 || fPdgCode == 92 ) ? kTRUE : kFALSE;
    }

    inline Bool_t IsCharmQuark() const {
	// Particle is c or c_bar
	return ( fPdgCode == 4 || fPdgCode == -4 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsCharm() const {
	// Particle is c
	return ( fPdgCode ==  4 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsCharmBar() const {
	// Particle is c_bar
	return ( fPdgCode == -4 ) ? kTRUE : kFALSE;
    }

    inline Bool_t IsBeautyQuark() const {
	// Particle is b or b_bar
	return ( fPdgCode == 5 || fPdgCode == -5 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsBeauty() const {
	// Particle is b
	return ( fPdgCode ==  5 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsBeautyBar() const {
	// Particle is b_bar
	return ( fPdgCode == -5 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsDown() const {
	// Particle is d
	return ( fPdgCode == 1 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsDownBar() const {
	// Particle is d_bar
	return ( fPdgCode == -1 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsDownQuark() const {
	// Particle is d or d_bar quark
	return IsDown() || IsDownBar();
    } 
    inline Bool_t IsUp() const {
	// Particle is u
	return ( fPdgCode == 2 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsUpBar() const {
	// Particle is u_bar
	return ( fPdgCode == -2 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsUpQuark() const {
	// Particle is u or u_bar quark
	return IsUp() || IsUpBar();
    } 
    inline Bool_t IsStrange() const {
	// Particle is s
	return ( fPdgCode == 3 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsStrangeBar() const {
	// Particle is s_bar
	return ( fPdgCode == -3 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsStrangeQuark() const {
	// Particle is s or s_bar quark
	return IsStrange() || IsStrangeBar();
    } 
    inline Bool_t IsTopQuark() const {
	// Particle is t or t_bar
	return ( fPdgCode == 6 || fPdgCode == -6 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTop() const {
	// Particle is t
	return ( fPdgCode ==  6 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTopBar() const {
	// Particle is t_bar
	return ( fPdgCode == -6 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsLightQuark() const {
	// Is any of u, u_bar, d, d_bar or s, s_bar
	return IsUpQuark() || IsDownQuark() || IsStrangeQuark();
    }
    inline Bool_t IsQuark() const {
	// Is any of u, u_bar, d, d_bar, s, s_bar, c, c_bar, b, b_bar, t, t_bar 
	return IsLightQuark() || IsCharmQuark() || IsBeautyQuark() || IsTopQuark();
    }
    inline Bool_t IsBeautyPrimeQuark() const {
	// Particle is b' or b'_bar
	return ( fPdgCode == 7 || fPdgCode == -7 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsBeautyPrime() const {
	// Particle is b'
	return ( fPdgCode ==  7 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsBeautyPrimeBar() const {
	// Particle is b'_bar
	return ( fPdgCode == -7 ) ? kTRUE : kFALSE;
    }


    inline Bool_t IsTopPrimeQuark() const {
	// Particle is t' or t'_bar
	return ( fPdgCode == 8 || fPdgCode == -8 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTopPrime() const {
	// Particle is t'
	return ( fPdgCode ==  8 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsTopPrimeBar() const {
	// Particle is t'_bar
	return ( fPdgCode == -8 ) ? kTRUE : kFALSE;
    }


    inline Bool_t IsWBoson() const {
	// Particle is W+ or W-
	return ( fPdgCode == 24 || fPdgCode == -24 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsWPlus() const {
	// Particle is W+
	return ( fPdgCode == 24 ) ? kTRUE : kFALSE;
    }
    inline Bool_t IsWMinus() const {
	// Particle is W-
	return ( fPdgCode == -24 ) ? kTRUE : kFALSE;
    }

    inline Bool_t IsZ0Boson() const {
	// Particle is Z0
	return ( fPdgCode == 23 ) ? kTRUE : kFALSE;
    }
    
    inline Double_t M(Option_t *option = "PDG") const {
	// Alias for Mass()
	return Mass(option);
    }
    inline Float_t Mt2() const {
	//
	//     Mt^2 = E^2 - Pz^2 = M^2 + Pt^2    (GeV^2)
	//
	// !!! Warning: Do not use this function for   !!!
	// !!! the reconstruction of heavy particles   !!!
	// !!! like the W-boson with the Jacobian-peak !!!
	// !!! method. Use Mperp() instead             !!!
	//
	return fP.Mt2();
    }
    inline Float_t Mt() const {
	//
	//     Mt = Sqrt(E^2 - Pz^2 = M^2 + Pt^2)   (GeV)
	//
	// !!! Warning: Do not use this function for   !!!
	// !!! the reconstruction of heavy particles   !!!
	// !!! like the W-boson with the Jacobian-peak !!!
	// !!! method. Use Mperp() instead             !!!
	//
	return fP.Mt();
    }
    inline Float_t Mperp() const {
	//
	// Mt = Sqrt(Et^2 - Pt^2)     (GeV)
	// Use this function for the Jacobian-peak method
	//
	// Note that the mass is signed
	Float_t mperp2 = Mperp2();
	return ( mperp2 > 0 ) ? TMath::Sqrt(mperp2)
	: -TMath::Sqrt(-mperp2);
    }
    inline const TLorentzVector& P() const {
	// Return 4-momentum vector (GeV)
	return fP;
    }
    inline TVector3 P3() const {
	// Return 3-momentum vector (GeV)
	return fP.Vect();
    }
    inline Float_t Pmag() {
	// Return magnitude of 3-momentum (GeV)
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.Mag()" instead.                !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fPmag;
    }
    inline Float_t Pt() {
	// Return transvere momentum (GeV)
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.Perp()" instead.               !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fPt;
    }
    inline Float_t Px() const {
	// Return momentum x component (GeV)
	return fP.Px();
    }
    inline Float_t Py() const {
	// Return momentum y component (GeV)
	return fP.Py();
    }
    inline Float_t Pz() const {
	// Return momentum z component (GeV)
	return fP.Pz();
    }
    inline Float_t E() const {
	// Return energy (GeV)
	return fP.E();
    }
    inline Float_t Et() const {
	// Return transverse energy (GeV)
	return fP.Et();
    }
    inline Float_t Eta() {
	// Return pseudo-rapidity
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.Eta()" instead.                !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fEta;
    }
    inline Float_t Phi() {
	// Return azimuth (rad)
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.Phi()" instead.                !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fPhi;
    }
    inline Float_t Theta() {
	// Return polar angle (rad)
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.Theta()" instead.              !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fTheta;
    }
    inline Float_t CosTheta() {
	// Return cosine of the polar angle
	//
	// !!! The return value is cached. Do not use this function !!!
	// !!! inside TTree::Draw() or TTree::Scan().               !!!
	// !!! Use eg "fElectrons.fP.CosTheta()" instead.           !!!
	//
	if ( fCompute ) ComputeTransientVars();
	return fCosTheta;
    }
    inline void SetId(Int_t Id) { fId = Id; }
    inline void SetPdgCode(Int_t pdg) { fPdgCode = pdg; }
    inline void SetPxPyPzE(Float_t Px, Float_t Py, Float_t Pz,
			     Float_t E) {
        fP.SetPxPyPzE(Px, Py, Pz, E);
	ComputeTransientVars();
    }
    inline void SetPtEtaPhiE(Float_t Pt, Float_t Eta, Float_t Phi,
			     Float_t E) {
        fP.SetPtEtaPhiE(Pt, Eta, Phi, E);
	ComputeTransientVars();
    }
    inline void SetPtEtaPhiM(Float_t Pt, Float_t Eta, Float_t Phi,
			     Float_t M) {
        fP.SetPtEtaPhiM(Pt, Eta, Phi, M);
	ComputeTransientVars();
    }
    void SetP(TLorentzVector const & p) {
        fP = p;
        ComputeTransientVars();
    }

    Bool_t operator==(HepParticle Partner);

    static void PrintLorentzVector(TLorentzVector vec); // Print Cartesian and (pt,eta,phi) coordinates of a TLorentzVector object

  private:
    void ComputeTransientVars();
    
    ClassDef(HepParticle,2) // Abstract HEP particle class
};
#endif

 HepParticle.h:1
 HepParticle.h:2
 HepParticle.h:3
 HepParticle.h:4
 HepParticle.h:5
 HepParticle.h:6
 HepParticle.h:7
 HepParticle.h:8
 HepParticle.h:9
 HepParticle.h:10
 HepParticle.h:11
 HepParticle.h:12
 HepParticle.h:13
 HepParticle.h:14
 HepParticle.h:15
 HepParticle.h:16
 HepParticle.h:17
 HepParticle.h:18
 HepParticle.h:19
 HepParticle.h:20
 HepParticle.h:21
 HepParticle.h:22
 HepParticle.h:23
 HepParticle.h:24
 HepParticle.h:25
 HepParticle.h:26
 HepParticle.h:27
 HepParticle.h:28
 HepParticle.h:29
 HepParticle.h:30
 HepParticle.h:31
 HepParticle.h:32
 HepParticle.h:33
 HepParticle.h:34
 HepParticle.h:35
 HepParticle.h:36
 HepParticle.h:37
 HepParticle.h:38
 HepParticle.h:39
 HepParticle.h:40
 HepParticle.h:41
 HepParticle.h:42
 HepParticle.h:43
 HepParticle.h:44
 HepParticle.h:45
 HepParticle.h:46
 HepParticle.h:47
 HepParticle.h:48
 HepParticle.h:49
 HepParticle.h:50
 HepParticle.h:51
 HepParticle.h:52
 HepParticle.h:53
 HepParticle.h:54
 HepParticle.h:55
 HepParticle.h:56
 HepParticle.h:57
 HepParticle.h:58
 HepParticle.h:59
 HepParticle.h:60
 HepParticle.h:61
 HepParticle.h:62
 HepParticle.h:63
 HepParticle.h:64
 HepParticle.h:65
 HepParticle.h:66
 HepParticle.h:67
 HepParticle.h:68
 HepParticle.h:69
 HepParticle.h:70
 HepParticle.h:71
 HepParticle.h:72
 HepParticle.h:73
 HepParticle.h:74
 HepParticle.h:75
 HepParticle.h:76
 HepParticle.h:77
 HepParticle.h:78
 HepParticle.h:79
 HepParticle.h:80
 HepParticle.h:81
 HepParticle.h:82
 HepParticle.h:83
 HepParticle.h:84
 HepParticle.h:85
 HepParticle.h:86
 HepParticle.h:87
 HepParticle.h:88
 HepParticle.h:89
 HepParticle.h:90
 HepParticle.h:91
 HepParticle.h:92
 HepParticle.h:93
 HepParticle.h:94
 HepParticle.h:95
 HepParticle.h:96
 HepParticle.h:97
 HepParticle.h:98
 HepParticle.h:99
 HepParticle.h:100
 HepParticle.h:101
 HepParticle.h:102
 HepParticle.h:103
 HepParticle.h:104
 HepParticle.h:105
 HepParticle.h:106
 HepParticle.h:107
 HepParticle.h:108
 HepParticle.h:109
 HepParticle.h:110
 HepParticle.h:111
 HepParticle.h:112
 HepParticle.h:113
 HepParticle.h:114
 HepParticle.h:115
 HepParticle.h:116
 HepParticle.h:117
 HepParticle.h:118
 HepParticle.h:119
 HepParticle.h:120
 HepParticle.h:121
 HepParticle.h:122
 HepParticle.h:123
 HepParticle.h:124
 HepParticle.h:125
 HepParticle.h:126
 HepParticle.h:127
 HepParticle.h:128
 HepParticle.h:129
 HepParticle.h:130
 HepParticle.h:131
 HepParticle.h:132
 HepParticle.h:133
 HepParticle.h:134
 HepParticle.h:135
 HepParticle.h:136
 HepParticle.h:137
 HepParticle.h:138
 HepParticle.h:139
 HepParticle.h:140
 HepParticle.h:141
 HepParticle.h:142
 HepParticle.h:143
 HepParticle.h:144
 HepParticle.h:145
 HepParticle.h:146
 HepParticle.h:147
 HepParticle.h:148
 HepParticle.h:149
 HepParticle.h:150
 HepParticle.h:151
 HepParticle.h:152
 HepParticle.h:153
 HepParticle.h:154
 HepParticle.h:155
 HepParticle.h:156
 HepParticle.h:157
 HepParticle.h:158
 HepParticle.h:159
 HepParticle.h:160
 HepParticle.h:161
 HepParticle.h:162
 HepParticle.h:163
 HepParticle.h:164
 HepParticle.h:165
 HepParticle.h:166
 HepParticle.h:167
 HepParticle.h:168
 HepParticle.h:169
 HepParticle.h:170
 HepParticle.h:171
 HepParticle.h:172
 HepParticle.h:173
 HepParticle.h:174
 HepParticle.h:175
 HepParticle.h:176
 HepParticle.h:177
 HepParticle.h:178
 HepParticle.h:179
 HepParticle.h:180
 HepParticle.h:181
 HepParticle.h:182
 HepParticle.h:183
 HepParticle.h:184
 HepParticle.h:185
 HepParticle.h:186
 HepParticle.h:187
 HepParticle.h:188
 HepParticle.h:189
 HepParticle.h:190
 HepParticle.h:191
 HepParticle.h:192
 HepParticle.h:193
 HepParticle.h:194
 HepParticle.h:195
 HepParticle.h:196
 HepParticle.h:197
 HepParticle.h:198
 HepParticle.h:199
 HepParticle.h:200
 HepParticle.h:201
 HepParticle.h:202
 HepParticle.h:203
 HepParticle.h:204
 HepParticle.h:205
 HepParticle.h:206
 HepParticle.h:207
 HepParticle.h:208
 HepParticle.h:209
 HepParticle.h:210
 HepParticle.h:211
 HepParticle.h:212
 HepParticle.h:213
 HepParticle.h:214
 HepParticle.h:215
 HepParticle.h:216
 HepParticle.h:217
 HepParticle.h:218
 HepParticle.h:219
 HepParticle.h:220
 HepParticle.h:221
 HepParticle.h:222
 HepParticle.h:223
 HepParticle.h:224
 HepParticle.h:225
 HepParticle.h:226
 HepParticle.h:227
 HepParticle.h:228
 HepParticle.h:229
 HepParticle.h:230
 HepParticle.h:231
 HepParticle.h:232
 HepParticle.h:233
 HepParticle.h:234
 HepParticle.h:235
 HepParticle.h:236
 HepParticle.h:237
 HepParticle.h:238
 HepParticle.h:239
 HepParticle.h:240
 HepParticle.h:241
 HepParticle.h:242
 HepParticle.h:243
 HepParticle.h:244
 HepParticle.h:245
 HepParticle.h:246
 HepParticle.h:247
 HepParticle.h:248
 HepParticle.h:249
 HepParticle.h:250
 HepParticle.h:251
 HepParticle.h:252
 HepParticle.h:253
 HepParticle.h:254
 HepParticle.h:255
 HepParticle.h:256
 HepParticle.h:257
 HepParticle.h:258
 HepParticle.h:259
 HepParticle.h:260
 HepParticle.h:261
 HepParticle.h:262
 HepParticle.h:263
 HepParticle.h:264
 HepParticle.h:265
 HepParticle.h:266
 HepParticle.h:267
 HepParticle.h:268
 HepParticle.h:269
 HepParticle.h:270
 HepParticle.h:271
 HepParticle.h:272
 HepParticle.h:273
 HepParticle.h:274
 HepParticle.h:275
 HepParticle.h:276
 HepParticle.h:277
 HepParticle.h:278
 HepParticle.h:279
 HepParticle.h:280
 HepParticle.h:281
 HepParticle.h:282
 HepParticle.h:283
 HepParticle.h:284
 HepParticle.h:285
 HepParticle.h:286
 HepParticle.h:287
 HepParticle.h:288
 HepParticle.h:289
 HepParticle.h:290
 HepParticle.h:291
 HepParticle.h:292
 HepParticle.h:293
 HepParticle.h:294
 HepParticle.h:295
 HepParticle.h:296
 HepParticle.h:297
 HepParticle.h:298
 HepParticle.h:299
 HepParticle.h:300
 HepParticle.h:301
 HepParticle.h:302
 HepParticle.h:303
 HepParticle.h:304
 HepParticle.h:305
 HepParticle.h:306
 HepParticle.h:307
 HepParticle.h:308
 HepParticle.h:309
 HepParticle.h:310
 HepParticle.h:311
 HepParticle.h:312
 HepParticle.h:313
 HepParticle.h:314
 HepParticle.h:315
 HepParticle.h:316
 HepParticle.h:317
 HepParticle.h:318
 HepParticle.h:319
 HepParticle.h:320
 HepParticle.h:321
 HepParticle.h:322
 HepParticle.h:323
 HepParticle.h:324
 HepParticle.h:325
 HepParticle.h:326
 HepParticle.h:327
 HepParticle.h:328
 HepParticle.h:329
 HepParticle.h:330
 HepParticle.h:331
 HepParticle.h:332
 HepParticle.h:333
 HepParticle.h:334
 HepParticle.h:335
 HepParticle.h:336
 HepParticle.h:337
 HepParticle.h:338
 HepParticle.h:339
 HepParticle.h:340
 HepParticle.h:341
 HepParticle.h:342
 HepParticle.h:343
 HepParticle.h:344
 HepParticle.h:345
 HepParticle.h:346
 HepParticle.h:347
 HepParticle.h:348
 HepParticle.h:349
 HepParticle.h:350
 HepParticle.h:351
 HepParticle.h:352
 HepParticle.h:353
 HepParticle.h:354
 HepParticle.h:355
 HepParticle.h:356
 HepParticle.h:357
 HepParticle.h:358
 HepParticle.h:359
 HepParticle.h:360
 HepParticle.h:361
 HepParticle.h:362
 HepParticle.h:363
 HepParticle.h:364
 HepParticle.h:365
 HepParticle.h:366
 HepParticle.h:367
 HepParticle.h:368
 HepParticle.h:369
 HepParticle.h:370
 HepParticle.h:371
 HepParticle.h:372
 HepParticle.h:373
 HepParticle.h:374
 HepParticle.h:375
 HepParticle.h:376
 HepParticle.h:377
 HepParticle.h:378
 HepParticle.h:379
 HepParticle.h:380
 HepParticle.h:381
 HepParticle.h:382
 HepParticle.h:383
 HepParticle.h:384
 HepParticle.h:385
 HepParticle.h:386
 HepParticle.h:387
 HepParticle.h:388
 HepParticle.h:389
 HepParticle.h:390
 HepParticle.h:391
 HepParticle.h:392
 HepParticle.h:393
 HepParticle.h:394
 HepParticle.h:395
 HepParticle.h:396
 HepParticle.h:397
 HepParticle.h:398
 HepParticle.h:399
 HepParticle.h:400
 HepParticle.h:401
 HepParticle.h:402
 HepParticle.h:403
 HepParticle.h:404
 HepParticle.h:405
 HepParticle.h:406
 HepParticle.h:407
 HepParticle.h:408
 HepParticle.h:409
 HepParticle.h:410
 HepParticle.h:411
 HepParticle.h:412
 HepParticle.h:413
 HepParticle.h:414
 HepParticle.h:415
 HepParticle.h:416
 HepParticle.h:417
 HepParticle.h:418
 HepParticle.h:419
 HepParticle.h:420
 HepParticle.h:421
 HepParticle.h:422
 HepParticle.h:423
 HepParticle.h:424
 HepParticle.h:425
 HepParticle.h:426
 HepParticle.h:427
 HepParticle.h:428
 HepParticle.h:429
 HepParticle.h:430
 HepParticle.h:431
 HepParticle.h:432
 HepParticle.h:433
 HepParticle.h:434
 HepParticle.h:435
 HepParticle.h:436
 HepParticle.h:437
 HepParticle.h:438
 HepParticle.h:439
 HepParticle.h:440
 HepParticle.h:441
 HepParticle.h:442
 HepParticle.h:443
 HepParticle.h:444
 HepParticle.h:445
 HepParticle.h:446
 HepParticle.h:447
 HepParticle.h:448
 HepParticle.h:449
 HepParticle.h:450
 HepParticle.h:451
 HepParticle.h:452
 HepParticle.h:453
 HepParticle.h:454
 HepParticle.h:455
 HepParticle.h:456
 HepParticle.h:457
 HepParticle.h:458
 HepParticle.h:459
 HepParticle.h:460
 HepParticle.h:461
 HepParticle.h:462
 HepParticle.h:463
 HepParticle.h:464
 HepParticle.h:465
 HepParticle.h:466
 HepParticle.h:467
 HepParticle.h:468
 HepParticle.h:469
 HepParticle.h:470
 HepParticle.h:471