001
002
003
004
005
006
007 #ifndef RECOTOOLS_HGGFITTER_H
008 #define RECOTOOLS_HGGFITTER_H
009
010
011 #include "GaudiKernel/AlgTool.h"
012 #include "StoreGate/StoreGateSvc.h"
013 #include "HiggsAnalysisUtils/IHggFitter.h"
014
015 class TH1;
016
017 class HggFitter : public AlgTool, virtual public IHggFitter {
018 public:
019
020
021 HggFitter(const std::string&,const std::string&,const IInterface*);
022
023
024 virtual ~HggFitter();
025
026
027 StatusCode initialize();
028
029 StatusCode finalize();
030
031
032
033 void SetEtas(const CaloCluster* clus1,const CaloCluster* clus2) ;
034 void SetPrimVertexInfo(float Zinput,float DZinput) ;
035 void SetConversion(unsigned gamma_index, const Trk::VxCandidate* conv) ;
036 void SetTrack(unsigned gamma_index, const Rec::TrackParticle* trk) ;
037
038 bool FitHgg(float& Zrec, float& ZrecRes, float& eta1rec, float& eta2rec) ;
039 bool getEtaSinglePhoton(float& eta1,float& eta2) const ;
040 bool gimeRZ(int layer, float eta, float& R, float& Z) const ;
041 bool inEMBarrel( float eta ) const ;
042 float EtaFromVertex(int layer, float eta, float Zvtx) const ;
043
044
045 void SetEtas(std::vector<float>, std::vector<float>) ;
046 void SetPrimVertexInfo(bool usevtx,float Zinput,float DZinput) ;
047 void SetConvInfo(bool usecv,bool conv1,float rcv1,float zcv1,bool conv2,float rcv2,float zcv2) ;
048
049 private:
050
051 void combineZ() ;
052 bool AssignRZ(int jphot,std::vector<float>& r,std::vector<float>& z,std::vector<float>& weight) ;
053 bool SinglePhotonFit(int jphot,bool FillHistos=false) ;
054 void killWorst(std::vector<float>& x, std::vector<float>& y, std::vector<float>& w, unsigned iworst) ;
055 bool FitDir( std::vector<float> x, std::vector<float> y, std::vector<float> weight, bool rej=false );
056 StatusCode GetErrors();
057
058 private:
059
060 std::vector<int> m_p_where ;
061
062
063 std::vector<float> m_etas[2] ;
064 std::vector<float> m_ZVertexRec,m_ZVertexRecRes;
065 std::vector<float> m_NewRecoEtaSeparate;
066 std::vector<float> m_NewRecoEta, m_NewRecoTheta;
067 float m_PI ;
068 bool m_useIDVert, m_useConversion, m_isConv[2];
069 float m_IDVert, m_IDVertRes, m_Rconv[2], m_Zconv[2];
070 float m_chi2[2], m_zfit[2];
071 bool m_fit_ok[2] ;
072 float m_errors_ps[100], m_errors_strip[100], m_errors_mid[100];
073
074 float m_chi2worst ;
075 unsigned m_nfitmin ;
076 bool m_usePS, m_useDummyVertex, m_useCombinedFit ;
077
078
079 unsigned m_nFitPoints ;
080 unsigned m_iworst ;
081 float m_a, m_sigmaa, m_b, m_sigmab, m_chiquad, m_covab ;
082 std::vector<float> m_r, m_z, m_weight, m_chi2point ;
083
084
085
086 StoreGateSvc* m_storeGate;
087
088
089
090 };
091
092
093 #endif
094
Due to the LXR bug, the updates fail sometimes to remove references to deleted files. The Saturday's full rebuilds fix these problems |
This page was automatically generated by the
LXR engine.
|
|