//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: AtlKinFitterTool.h,v 1.7 2013/08/22 13:37:22 stamm Exp $
// Copyright: 2009 (C) Oliver Maria Kind
//
#ifndef ATLAS_AtlKinFitterTool
#define ATLAS_AtlKinFitterTool
#ifndef ATLAS_AtlAnalysisTool
#include <AtlAnalysisTool.h>
#endif
#ifndef ROOT_TMatrixD
#include <TMatrixD.h>
#endif
#ifndef ROOT_TRandom3
#include <TRandom3.h>
#endif
#ifndef TFITPARTICLEPXPYPZ_H
#include <TFitParticlePxPyPz.h>
#endif
#ifndef TFITPARTICLERELPXPYPZ_H
#include <TFitParticleRelPxPyPz.h>
#endif
#ifndef TFITPARTICLEPTETAPHI_H
#include <TFitParticlePtEtaPhi.h>
#endif
#ifndef TFITPARTICLEPTHETAPHI_H
#include <TFitParticlePThetaPhi.h>
#endif
#ifndef TFITPARTICLEPTTHETAPHI_H
#include <TFitParticlePtThetaPhi.h>
#endif
#ifndef TFITPARTICLEPINVTHETAPHI_H
#include <TFitParticlePInvThetaPhi.h>
#endif
#ifndef TFITPARTICLERELPTETAPHI_H
#include <TFitParticleRelPtEtaPhi.h>
#endif
#ifndef TFITPARTICLEPTETAPHIE_H
#include <TFitParticlePtEtaPhiE.h>
#endif
#ifndef TFITPARTICLERELPTETAPHIE_H
#include <TFitParticleRelPtEtaPhiE.h>
#endif
#ifndef TFITCONSTRAINTM_H
#include <TFitConstraintM.h>
#endif
#ifndef TKINFITTER_H
#include <TKinFitter.h>
#endif
#ifndef TABSFITCONSTRAINT_H
#include <TAbsFitConstraint.h>
#endif
#ifndef TFITCONSTRAINTPT_H
#include <TFitConstraintPt.h>
#endif
#ifndef TFITCONSTRAINTMGAUS_H
#include <TFitConstraintMGaus.h>
#endif
#ifndef TFITCONSTRAINTMBW_H
#include <TFitConstraintMBW.h>
#endif
#ifndef TFITCONSTRAINTMBW2_H
#include <TFitConstraintMBW2.h>
#endif
#ifndef TFITCONSTRAINTEPGAUS_H
#include <TFitConstraintEpGaus.h>
#endif
#ifndef TFITCONSTRAINTEP_H
#include <TFitConstraintEp.h>
#endif
#ifndef ROOT_TH1I
#include <TH1I.h>
#endif

class TFile;
class TH1F;
class TH2F;
class TLorentzVector;
class TGraph;
class TGraphAsymmErrors;

class AtlKinFitterTool : public AtlAnalysisTool {

  public:
    enum EMode {
	kCutBased = BIT(0),
	kKinFit   = BIT(1),
      kAll      = (kCutBased | kKinFit)
    };
    enum EModeMass { kGauss, kBW };
    
  protected:
    TKinFitter *fKinFitter;          // KinFitter object
    Float_t     fChi2;               // Chi2 of recent fit
    Int_t       fNDoF;               // No. of degrees of freedom of recent fit
    Int_t       fNbIter;             // No. of iterations of fit
    Double_t    fConsValue;          // Value of constraints ( sum_i|f_i| )
    Int_t       fAbundanceTrue;      // Abundance of true particles
    TRandom3   *randnr;      	     // for random covariance matrices of leptons
   

    static const char* fgStatusNames[]; // Status strings from KinFitter object
    
    // Histograms
    
    //control plots of covariance matrix elements 
    //electron
    TH1F *fhist_CovMatrix_el_11;		//covariance matrix electron element 11
    TH1F *fhist_CovMatrix_el_12;		//covariance matrix electron element 12
    TH1F *fhist_CovMatrix_el_21;		//covariance matrix electron element 21
    TH1F *fhist_CovMatrix_el_13;		//covariance matrix electron element 13
    TH1F *fhist_CovMatrix_el_31;		//covariance matrix electron element 31
    TH1F *fhist_CovMatrix_el_22;		//covariance matrix electron element 22
    TH1F *fhist_CovMatrix_el_23;		//covariance matrix electron element 23
    TH1F *fhist_CovMatrix_el_32;		//covariance matrix electron element 32
    TH1F *fhist_CovMatrix_el_33;		//covariance matrix electron element 11
    
     //muon
    TH1F *fhist_CovMatrix_mu_11;	//covariance matrix muon element 11
    TH1F *fhist_CovMatrix_mu_12;	//covariance matrix muon element 12
    TH1F *fhist_CovMatrix_mu_21;	//covariance matrix muon element 21
    TH1F *fhist_CovMatrix_mu_13;	//covariance matrix muon element 13
    TH1F *fhist_CovMatrix_mu_31;	//covariance matrix muon element 31
    TH1F *fhist_CovMatrix_mu_22;	//covariance matrix muon element 22
    TH1F *fhist_CovMatrix_mu_23;	//covariance matrix muon element 23
    TH1F *fhist_CovMatrix_mu_32;	//covariance matrix muon element 32
    TH1F *fhist_CovMatrix_mu_33;	//covariance matrix muon element 33
    
    // KinFit plots
    TH1F *fHist_KinFit_chi2;                // chi square values of the Kinematic Fit in case of convergence
    TH1F *fHist_KinFitBkg_chi2;             // corresponding histogram for background events
    TH1F *fHist_KinFit_prob;                // Probability values of the Kinematic Fit in case of convergence
    TH1F *fHist_KinFitBkg_prob;             // corresponding histogram for background events

    TH1F *fHist_KinFit_NbIterCand;          // Number of iterations performed in the fit of accepted candidates
    TH1F *fHist_KinFit_NbIterAll;          // Number of iterations performed in ALL fitting procedures
    TH1F *fHist_KinFit_ConsValue;           // Value of constraints for candidate evts after fit
    TH1F *fHist_KinFit_NbFitsConverged;  // Number of fits converged
    TH1F *fHist_KinFit_NbFitsNotConverged;  // Number of fits not converged
    TH1F *fHist_KinFit_NbFitsFailedNumerically;// Number of fits failing numerically (1 or more matrix inversions fail)
    TH1F *fHist_KinFit_KinFitterStatus;     // Status of KinFitter after fit
    
    // Graphs and histograms to plot efficiency and purity
    TH1F *fHist_KinFit_Reco;                // Number of reconstructed events
    TH1F *fHist_KinFit_True;                // Number of true events
    TH1F *fHist_KinFit_NTrueProb;           // Number of true particles, constant for all prob values!
    TH1F *fHist_KinFit_TrueReco;            // Number of true reconstructed events
    TH1F *fHist_KinFit_TrueRecoProb;        // Number of true reconstructed events vs. probability
    TH1F *fHist_KinFit_TrueRecoProbGreaterP;// Number of true reconstructed events vs. probability greater than p*
    TH1F *fHist_KinFit_RecoProbGreaterP;    // Number of reconstructed prts vs. probability greater than p*
    TH1F *fHist_KinFit_Efficiency;          // Efficiency = N_TrueReco / N_True
    TH1F *fHist_KinFit_Purity;              // Purity = N_TrueReco / N_Reco
    TH1F *fHist_KinFit_PurityProb;          // Purity vs. Probability
       
    Bool_t fTrueReco;                       // particle reconstructed is true?

    // cut flow histograms for finders, weighted and unweighted
    // (possible to use the 2nd cut-flow in different mode of finder)
    TH1F *fHistCutFlowWeighted;             // show effects of cuts, weighted events
    TH1F *fHistCutFlowUnweighted;           // show effects of cuts, unweighted events
    TH1F *fHistCutFlow2Weighted;            // show effects of cuts, weighted events
    TH1F *fHistCutFlow2Unweighted;          // show effects of cuts, unweighted events

    
    // histograms to plot efficiency and purity versus fX_TruthHistograms, which is
    // set by the user in the analysis.
    TGraphAsymmErrors *fGraph_KinFit_Efficiency;
    TGraphAsymmErrors *fGraph_KinFit_Purity;
    
    // histogram to plot purity versus chi-square probability
    TGraphAsymmErrors *fGraph_KinFit_PurityProb;
    TGraphAsymmErrors *fGraph_KinFit_EfficiencyProb;
    TGraphAsymmErrors *fGraph_KinFit_PurityProbGreaterP;     // purity of [ p(chi^2) > p* ]
    TGraphAsymmErrors *fGraph_KinFit_EfficiencyProbGreaterP; // efficiency of [ p(chi^2) > p* ]
    
    Double_t fX_TruthHistograms;             // variable to bin True, Reco and TrueReco 
                                            // Truth Matching histograms

    // Jet/Etmiss covariances binned in Pt and Eta
    Bool_t  fHasLoadedCovMatrices;    // Histograms already loaded ?
    TFile  *fFileCovMatrices;         // File containing the covariance matrix histograms
    TH2F   *fHistCovMatJets_EtaEta;   // Jet cov matrix element eta-eta
    TH2F   *fHistCovMatJets_PtPt;     // Jet cov matrix element Pt-Pt
    TH2F   *fHistCovMatJets_PhiPhi;   // Jet cov matrix element phi-phi
    TH2F   *fHistCovMatJets_PtEta;    // Jet cov matrix element pt-eta
    TH2F   *fHistCovMatJets_PtPhi;    // Jet cov matrix element pt-phi
    TH2F   *fHistCovMatJets_EtaPhi;   // Jet cov matrix element eta-phi
    TH2F   *fHistCovMatEtmiss_EtEt;   // Et_miss cov matrix element Et-Et
    TH2F   *fHistCovMatEtmiss_PhiPhi; // Et_miss cov matrix element phi-phi
    TH2F   *fHistCovMatEtmiss_EtPhi;  // Et_miss cov matrix element Et-phi

  public:
    // Tool paramters / cuts
    EMode     fMode;       // Indicate the mode of running (eg cut-based or kinematic fit)
    EModeMass fModeMass;// Indicate the mode of mass constraint (Gauss or BW mass constraint)
    Bool_t    fUseLeptonCovRand; // Use randomly generated lepton covariance matrices?
        
    // True W and top masses and widths used in some fits (ttbar, single-top etc.)
    Double_t fW_Mass;     // Pole mass of the W used in  the fit
    Double_t fW_Width;    // Width of the W used in the fit
    Double_t fB_Mass;     // Assumed mass of b-jet = mass of b-quark
    Double_t fTop_Mass;   // Pole mass of the t-quark used in the fit
    Double_t fTop_Width;  // Width of the t-quark used in the fit
    
  public:
    AtlKinFitterTool(const char* name, const char* title);
    virtual ~AtlKinFitterTool();
    virtual void SetCutDefaults();
    virtual void BookHistograms();
    virtual void FillHistograms(Option_t *HistMode);
    virtual void FillLeptonCovMatrixHistograms(HepParticle* lepton,TMatrixD& CovLepton);
    virtual void Terminate();
    void SetCovMatrix(TMatrixD& cov, HepJet *jet,
		      Double_t sigma_pt, Double_t sigma_eta,Double_t sigma_phi,
		      Double_t cov_pt_eta, Double_t cov_pt_phi, Double_t cov_eta_phi);
    void SetCovMatrix(TMatrixD& cov, HepJet *jet);
    void SetCovMatrix(TMatrixD& cov, HepParticle *nu,
		      Double_t SigmaPt_MET, Double_t SigmaPhi_MET, Double_t Cov_Pt_Phi_MET);
    void SetCovMatrix(TMatrixD& cov, HepParticle *nu);
    void GetLeptonCovMatRand(HepParticle* lepton,TMatrixD& CovLepton);
    void LoadCovMatrices();
    void GuessTopDecayNeutrinoEtaE(Double_t& EtaStart, Double_t& EStart, TVector2 Et_Miss,
				   HepParticle *Lepton, AtlJet *BJet);
    
    inline Float_t GetChi2() const { return fChi2; }
    inline Int_t GetNDoF() const { return fNDoF; }
    inline Float_t GetChi2overNDoF() const { return fChi2/fNDoF; }
    inline Float_t GetNbIter() const { return fNbIter; }
    inline Float_t GetConsValue() const { return fConsValue; }
    inline Double_t GetBinContent_WeightedCutFlow(Int_t i_bin) {
	return fHistCutFlowWeighted->GetBinContent(i_bin);
    }
    inline Double_t GetBinContent_UnweightedCutFlow(Int_t i_bin) {
	return fHistCutFlowUnweighted->GetBinContent(i_bin);
    }
    inline Double_t GetBinContent_WeightedCutFlow2(Int_t i_bin) {
	return fHistCutFlow2Weighted->GetBinContent(i_bin);
    }
    inline Double_t GetBinContent_UnweightedCutFlow2(Int_t i_bin) {
	return fHistCutFlow2Unweighted->GetBinContent(i_bin);
    }

    
    inline void SetChi2(Double_t chi2) { fChi2 = chi2; }
    inline void SetNDoF(Int_t ndf) { fNDoF = ndf; }
    inline void SetNbIter(Int_t nbIter) { fNbIter = nbIter; }
    inline void SetConsValue(Double_t cons) { fConsValue = cons; }
    inline void SetMode(EMode mode = kKinFit) { fMode = mode; }    
    inline void SetX_TruthHistograms(Double_t X) { fX_TruthHistograms = X; }
    inline void SetTrueReco(Bool_t TrueReco) { fTrueReco = TrueReco; }
    inline void SetCutFlow(const char* cut) {
	fHistCutFlowWeighted->Fill( cut, GetPreTagEvtWeight() );
	fHistCutFlowUnweighted->Fill( cut, 1. );
    }
    inline void SetCutFlow2(const char* cut) {
	fHistCutFlow2Weighted->Fill( cut, GetPreTagEvtWeight() );
	fHistCutFlow2Unweighted->Fill( cut, 1.);
    }

    inline void SetTruthMatchXTitle(const char* XTitle) {
	fHist_KinFit_True->GetXaxis()->SetTitle(XTitle);
	fHist_KinFit_Reco->GetXaxis()->SetTitle(XTitle);
	fHist_KinFit_TrueReco->GetXaxis()->SetTitle(XTitle);
	fHist_KinFit_Efficiency->GetXaxis()->SetTitle(XTitle);
	fHist_KinFit_Purity->GetXaxis()->SetTitle(XTitle);
    }

    inline void SetTruthMatchBinning (Int_t Nbins, Double_t xlow, Double_t xup) {
	fHist_KinFit_True->SetBins(Nbins, xlow, xup);
	fHist_KinFit_Reco->SetBins(Nbins, xlow, xup);
	fHist_KinFit_TrueReco->SetBins(Nbins, xlow, xup);
	fHist_KinFit_Efficiency->SetBins(Nbins, xlow, xup);
	fHist_KinFit_Purity->SetBins(Nbins, xlow, xup);
    }
    //inline void SetTruthType(char *type) {fTruthType = type;}
    //inline char* GetTruthType() {return fTruthType;}
    inline void AddAbundanceTrue(Int_t abundance) {
	for( Int_t j = 1; j <= 30; j++){
	    Float_t xBin = fHist_KinFit_NTrueProb->GetBinCenter(j);
	    for( Int_t i = 1; i <= abundance; i++)
		fHist_KinFit_NTrueProb->Fill(xBin,GetPreTagEvtWeight());
	}
	fAbundanceTrue += abundance;
    }
    inline Int_t GetAbundanceTrue() {return fAbundanceTrue;}
    
    ClassDef(AtlKinFitterTool,0) // A++ KinFitter interface
};
#endif

 AtlKinFitterTool.h:1
 AtlKinFitterTool.h:2
 AtlKinFitterTool.h:3
 AtlKinFitterTool.h:4
 AtlKinFitterTool.h:5
 AtlKinFitterTool.h:6
 AtlKinFitterTool.h:7
 AtlKinFitterTool.h:8
 AtlKinFitterTool.h:9
 AtlKinFitterTool.h:10
 AtlKinFitterTool.h:11
 AtlKinFitterTool.h:12
 AtlKinFitterTool.h:13
 AtlKinFitterTool.h:14
 AtlKinFitterTool.h:15
 AtlKinFitterTool.h:16
 AtlKinFitterTool.h:17
 AtlKinFitterTool.h:18
 AtlKinFitterTool.h:19
 AtlKinFitterTool.h:20
 AtlKinFitterTool.h:21
 AtlKinFitterTool.h:22
 AtlKinFitterTool.h:23
 AtlKinFitterTool.h:24
 AtlKinFitterTool.h:25
 AtlKinFitterTool.h:26
 AtlKinFitterTool.h:27
 AtlKinFitterTool.h:28
 AtlKinFitterTool.h:29
 AtlKinFitterTool.h:30
 AtlKinFitterTool.h:31
 AtlKinFitterTool.h:32
 AtlKinFitterTool.h:33
 AtlKinFitterTool.h:34
 AtlKinFitterTool.h:35
 AtlKinFitterTool.h:36
 AtlKinFitterTool.h:37
 AtlKinFitterTool.h:38
 AtlKinFitterTool.h:39
 AtlKinFitterTool.h:40
 AtlKinFitterTool.h:41
 AtlKinFitterTool.h:42
 AtlKinFitterTool.h:43
 AtlKinFitterTool.h:44
 AtlKinFitterTool.h:45
 AtlKinFitterTool.h:46
 AtlKinFitterTool.h:47
 AtlKinFitterTool.h:48
 AtlKinFitterTool.h:49
 AtlKinFitterTool.h:50
 AtlKinFitterTool.h:51
 AtlKinFitterTool.h:52
 AtlKinFitterTool.h:53
 AtlKinFitterTool.h:54
 AtlKinFitterTool.h:55
 AtlKinFitterTool.h:56
 AtlKinFitterTool.h:57
 AtlKinFitterTool.h:58
 AtlKinFitterTool.h:59
 AtlKinFitterTool.h:60
 AtlKinFitterTool.h:61
 AtlKinFitterTool.h:62
 AtlKinFitterTool.h:63
 AtlKinFitterTool.h:64
 AtlKinFitterTool.h:65
 AtlKinFitterTool.h:66
 AtlKinFitterTool.h:67
 AtlKinFitterTool.h:68
 AtlKinFitterTool.h:69
 AtlKinFitterTool.h:70
 AtlKinFitterTool.h:71
 AtlKinFitterTool.h:72
 AtlKinFitterTool.h:73
 AtlKinFitterTool.h:74
 AtlKinFitterTool.h:75
 AtlKinFitterTool.h:76
 AtlKinFitterTool.h:77
 AtlKinFitterTool.h:78
 AtlKinFitterTool.h:79
 AtlKinFitterTool.h:80
 AtlKinFitterTool.h:81
 AtlKinFitterTool.h:82
 AtlKinFitterTool.h:83
 AtlKinFitterTool.h:84
 AtlKinFitterTool.h:85
 AtlKinFitterTool.h:86
 AtlKinFitterTool.h:87
 AtlKinFitterTool.h:88
 AtlKinFitterTool.h:89
 AtlKinFitterTool.h:90
 AtlKinFitterTool.h:91
 AtlKinFitterTool.h:92
 AtlKinFitterTool.h:93
 AtlKinFitterTool.h:94
 AtlKinFitterTool.h:95
 AtlKinFitterTool.h:96
 AtlKinFitterTool.h:97
 AtlKinFitterTool.h:98
 AtlKinFitterTool.h:99
 AtlKinFitterTool.h:100
 AtlKinFitterTool.h:101
 AtlKinFitterTool.h:102
 AtlKinFitterTool.h:103
 AtlKinFitterTool.h:104
 AtlKinFitterTool.h:105
 AtlKinFitterTool.h:106
 AtlKinFitterTool.h:107
 AtlKinFitterTool.h:108
 AtlKinFitterTool.h:109
 AtlKinFitterTool.h:110
 AtlKinFitterTool.h:111
 AtlKinFitterTool.h:112
 AtlKinFitterTool.h:113
 AtlKinFitterTool.h:114
 AtlKinFitterTool.h:115
 AtlKinFitterTool.h:116
 AtlKinFitterTool.h:117
 AtlKinFitterTool.h:118
 AtlKinFitterTool.h:119
 AtlKinFitterTool.h:120
 AtlKinFitterTool.h:121
 AtlKinFitterTool.h:122
 AtlKinFitterTool.h:123
 AtlKinFitterTool.h:124
 AtlKinFitterTool.h:125
 AtlKinFitterTool.h:126
 AtlKinFitterTool.h:127
 AtlKinFitterTool.h:128
 AtlKinFitterTool.h:129
 AtlKinFitterTool.h:130
 AtlKinFitterTool.h:131
 AtlKinFitterTool.h:132
 AtlKinFitterTool.h:133
 AtlKinFitterTool.h:134
 AtlKinFitterTool.h:135
 AtlKinFitterTool.h:136
 AtlKinFitterTool.h:137
 AtlKinFitterTool.h:138
 AtlKinFitterTool.h:139
 AtlKinFitterTool.h:140
 AtlKinFitterTool.h:141
 AtlKinFitterTool.h:142
 AtlKinFitterTool.h:143
 AtlKinFitterTool.h:144
 AtlKinFitterTool.h:145
 AtlKinFitterTool.h:146
 AtlKinFitterTool.h:147
 AtlKinFitterTool.h:148
 AtlKinFitterTool.h:149
 AtlKinFitterTool.h:150
 AtlKinFitterTool.h:151
 AtlKinFitterTool.h:152
 AtlKinFitterTool.h:153
 AtlKinFitterTool.h:154
 AtlKinFitterTool.h:155
 AtlKinFitterTool.h:156
 AtlKinFitterTool.h:157
 AtlKinFitterTool.h:158
 AtlKinFitterTool.h:159
 AtlKinFitterTool.h:160
 AtlKinFitterTool.h:161
 AtlKinFitterTool.h:162
 AtlKinFitterTool.h:163
 AtlKinFitterTool.h:164
 AtlKinFitterTool.h:165
 AtlKinFitterTool.h:166
 AtlKinFitterTool.h:167
 AtlKinFitterTool.h:168
 AtlKinFitterTool.h:169
 AtlKinFitterTool.h:170
 AtlKinFitterTool.h:171
 AtlKinFitterTool.h:172
 AtlKinFitterTool.h:173
 AtlKinFitterTool.h:174
 AtlKinFitterTool.h:175
 AtlKinFitterTool.h:176
 AtlKinFitterTool.h:177
 AtlKinFitterTool.h:178
 AtlKinFitterTool.h:179
 AtlKinFitterTool.h:180
 AtlKinFitterTool.h:181
 AtlKinFitterTool.h:182
 AtlKinFitterTool.h:183
 AtlKinFitterTool.h:184
 AtlKinFitterTool.h:185
 AtlKinFitterTool.h:186
 AtlKinFitterTool.h:187
 AtlKinFitterTool.h:188
 AtlKinFitterTool.h:189
 AtlKinFitterTool.h:190
 AtlKinFitterTool.h:191
 AtlKinFitterTool.h:192
 AtlKinFitterTool.h:193
 AtlKinFitterTool.h:194
 AtlKinFitterTool.h:195
 AtlKinFitterTool.h:196
 AtlKinFitterTool.h:197
 AtlKinFitterTool.h:198
 AtlKinFitterTool.h:199
 AtlKinFitterTool.h:200
 AtlKinFitterTool.h:201
 AtlKinFitterTool.h:202
 AtlKinFitterTool.h:203
 AtlKinFitterTool.h:204
 AtlKinFitterTool.h:205
 AtlKinFitterTool.h:206
 AtlKinFitterTool.h:207
 AtlKinFitterTool.h:208
 AtlKinFitterTool.h:209
 AtlKinFitterTool.h:210
 AtlKinFitterTool.h:211
 AtlKinFitterTool.h:212
 AtlKinFitterTool.h:213
 AtlKinFitterTool.h:214
 AtlKinFitterTool.h:215
 AtlKinFitterTool.h:216
 AtlKinFitterTool.h:217
 AtlKinFitterTool.h:218
 AtlKinFitterTool.h:219
 AtlKinFitterTool.h:220
 AtlKinFitterTool.h:221
 AtlKinFitterTool.h:222
 AtlKinFitterTool.h:223
 AtlKinFitterTool.h:224
 AtlKinFitterTool.h:225
 AtlKinFitterTool.h:226
 AtlKinFitterTool.h:227
 AtlKinFitterTool.h:228
 AtlKinFitterTool.h:229
 AtlKinFitterTool.h:230
 AtlKinFitterTool.h:231
 AtlKinFitterTool.h:232
 AtlKinFitterTool.h:233
 AtlKinFitterTool.h:234
 AtlKinFitterTool.h:235
 AtlKinFitterTool.h:236
 AtlKinFitterTool.h:237
 AtlKinFitterTool.h:238
 AtlKinFitterTool.h:239
 AtlKinFitterTool.h:240
 AtlKinFitterTool.h:241
 AtlKinFitterTool.h:242
 AtlKinFitterTool.h:243
 AtlKinFitterTool.h:244
 AtlKinFitterTool.h:245
 AtlKinFitterTool.h:246
 AtlKinFitterTool.h:247
 AtlKinFitterTool.h:248
 AtlKinFitterTool.h:249
 AtlKinFitterTool.h:250
 AtlKinFitterTool.h:251
 AtlKinFitterTool.h:252
 AtlKinFitterTool.h:253
 AtlKinFitterTool.h:254
 AtlKinFitterTool.h:255
 AtlKinFitterTool.h:256
 AtlKinFitterTool.h:257
 AtlKinFitterTool.h:258
 AtlKinFitterTool.h:259
 AtlKinFitterTool.h:260
 AtlKinFitterTool.h:261
 AtlKinFitterTool.h:262
 AtlKinFitterTool.h:263
 AtlKinFitterTool.h:264
 AtlKinFitterTool.h:265
 AtlKinFitterTool.h:266
 AtlKinFitterTool.h:267
 AtlKinFitterTool.h:268
 AtlKinFitterTool.h:269
 AtlKinFitterTool.h:270
 AtlKinFitterTool.h:271
 AtlKinFitterTool.h:272
 AtlKinFitterTool.h:273
 AtlKinFitterTool.h:274
 AtlKinFitterTool.h:275
 AtlKinFitterTool.h:276
 AtlKinFitterTool.h:277
 AtlKinFitterTool.h:278
 AtlKinFitterTool.h:279
 AtlKinFitterTool.h:280
 AtlKinFitterTool.h:281
 AtlKinFitterTool.h:282
 AtlKinFitterTool.h:283
 AtlKinFitterTool.h:284
 AtlKinFitterTool.h:285
 AtlKinFitterTool.h:286
 AtlKinFitterTool.h:287
 AtlKinFitterTool.h:288
 AtlKinFitterTool.h:289
 AtlKinFitterTool.h:290