001
002
003
004
005
006
007
008
009 #ifndef HIGGSANALYSYSUTILS_HGGSELECTOR_H
010 #define HIGGSANALYSYSUTILS_HGGSELECTOR_H
011
012
013 #include "GaudiKernel/AlgTool.h"
014 #include "StoreGate/StoreGateSvc.h"
015
016
017 #include "TrigDecision/TrigDecisionTool.h"
018
019 #include "HiggsAnalysisUtils/IHggSelector.h"
020
021 #include "HiggsAnalysisUtils/IConversionFlagTool.h"
022 #include "HiggsAnalysisUtils/IHggTrackIsolationTool.h"
023 #include "HiggsAnalysisUtils/IPhotonIdentificationTool.h"
024 #include "HiggsAnalysisUtils/PhotonLogLikelihood.h"
025 #include "HiggsAnalysisUtils/IHggTruthTool.h"
026
027 #include <iostream>
028 #include <fstream>
029 #include <string>
030
031 class HggSelector : public AlgTool, virtual public IHggSelector {
032
033 public:
034
035
036 HggSelector(const std::string&,const std::string&,const IInterface*);
037
038
039 virtual ~HggSelector();
040
041
042 StatusCode initialize();
043
044 StatusCode finalize();
045
046
047
048 virtual StatusCode load() ;
049
050 virtual int RunNumber() const { return m_run0 ; } ;
051 virtual int EventNumber() const { return m_evt0 ; } ;
052
053 virtual const std::vector<const Hgg::gamma*>& getAllGammas() const { return m_allGamma ; } ;
054 virtual const std::vector<bool>& isSelected() const { return m_isSelected ; } ;
055
056 virtual const std::vector<const Hgg::gamma*>& getSelectedGammas() const { return m_selGamma ; } ;
057 virtual const std::vector<int>& getIndexSelected() const { return m_indexSelected ; } ;
058
059 virtual bool okHggInclusive() const ;
060 virtual bool getTriggerDecision(unsigned level) const { return m_triggerStatus[level] ; } ;
061 virtual bool getTriggerDecision(const std::string& triggerMenu) const ;
062
063 virtual int photonCuts(const Hgg::gamma* g, int itune=0) const ;
064 virtual double photonLogLH(const Hgg::gamma* g) const ;
065 virtual bool photonOK(const Hgg::gamma* g) const ;
066 virtual float photonPtIsolation(const Hgg::gamma* g) const ;
067
068 virtual int electronCuts(const Analysis::Electron* el, int itune=0) const ;
069 virtual double electronLogLH(const Analysis::Electron* el) const ;
070 virtual float electronPtIsolation(const Analysis::Electron* el) const ;
071
072 virtual unsigned getNumberEvents() const { return m_numberEvents ; } ;
073 virtual unsigned getNumberTwoGamma() const { return m_numberTwoGamma ; } ;
074 virtual unsigned getNumberHgg() const { return m_numberHgg ; } ;
075
076
077 enum gammaType { unconv , conv1 , conv2 } ;
078
079 private:
080
081 bool okIndexAll(unsigned i) const { return i<m_allGamma.size() ; } ;
082 bool okIndexSel(unsigned i) const { return i<m_selGamma.size() ; } ;
083
084 void clear() ;
085 StatusCode RecoLoader() ;
086 StatusCode TriggerStatus() ;
087 void writeEvtSummary() ;
088 void writeEvtDetails() ;
089
090 private:
091
092
093 StoreGateSvc* m_storeGate;
094
095 ToolHandle<IConversionFlagTool> m_ConvTool ;
096 ToolHandle<IHggTruthTool> m_Truth ;
097 ToolHandle<IHggTrackIsolationTool> m_TrackIsol ;
098 ToolHandle<IPhotonIdentificationTool> m_PhotId ;
099 ToolHandle<IPhotonLogLikelihood> m_PhotLLH ;
100
101
102 const VxContainer* m_vxContainer ;
103 const Rec::TrackParticleContainer* m_trkContainer ;
104
105
106 bool m_dumpReco, m_dumpTriggerDec, m_useTrigger ;
107 std::vector<std::string> m_useGammaTypeNames, m_TriggerMenuL1, m_TriggerMenuL2, m_TriggerMenuEF ;
108 unsigned m_useGammaType[31] ;
109 float m_PtCut1, m_PtCut2, m_PtIsolCut ;
110 int m_photIDtune ;
111 float m_photIDlogLHcut ;
112 std::string m_photonContainerName;
113 std::string m_electronContainerName;
114 std::string m_conversionContainerName;
115 std::string m_trackParticleContainerName;
116
117 std::string m_evtsummary_name, m_evtdetails_name ;
118 bool m_write_evtsummary, m_write_evtdetails ;
119 std::ofstream m_evtdetails, m_evtsummary, m_dumpRecoFile ;
120
121 std::string m_TriggerDecisionKey ;
122 bool m_triggerStatus[3] ;
123
124
125 ToolHandle<TrigDec::TrigDecisionTool> m_trigDec;
126
127 int m_run0, m_evt0 ;
128 bool m_MCloaded ;
129
130 std::vector<const Hgg::gamma*> m_allGamma , m_selGamma ;
131
132 std::vector<bool> m_isSelected ;
133
134
135
136
137 std::vector<int> m_indexSelected ;
138
139
140
141
142
143
144 unsigned m_numberEvents, m_numberTwoGamma, m_numberHgg, m_numberHggTrig ;
145
146 };
147
148
149 #endif
150
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.
|
|