001
002
003
004
005
006
007
008
009
010
011
012 #ifndef TRIGT2CALOEGAMMA_T2CALOSWSEED_H
013 #define TRIGT2CALOEGAMMA_T2CALOSWSEED_H
014
015 #include "GaudiKernel/MsgStream.h"
016 #include "GaudiKernel/IToolSvc.h"
017 #include "GaudiKernel/StatusCode.h"
018
019 #include "TrigCaloEvent/TrigEMCluster.h"
020 #include "TrigInterfaces/AllTEAlgo.h"
021 #include "TrigT2CaloCommon/Calo_Def.h"
022 #include "TrigT2CaloCommon/TrigDataAccess.h"
023 #include "TrigTimeAlgs/TrigTimerSvc.h"
024 #include "TrigSteeringEvent/TrigRoiDescriptor.h"
025
026 #include "CaloEvent/CaloSampling.h"
027 #include "CaloIdentifier/CaloIdManager.h"
028 #include "CaloIdentifier/LArEM_ID.h"
029 #include "Identifier/IdentifierHash.h"
030 #include "LArRawUtils/LArTT_Selector.h"
031 #include "LArRecEvent/LArCell.h"
032
033 #include <map>
034
035 class T2CaloSwSeed : public HLT::AllTEAlgo {
036
037 public:
038
039
040 T2CaloSwSeed(const std::string & name, ISvcLocator* pSvcLocator);
041
042
043 virtual ~T2CaloSwSeed();
044
045
046 HLT::ErrorCode hltInitialize();
047 HLT::ErrorCode hltFinalize();
048 HLT::ErrorCode hltExecute(std::vector<std::vector<HLT::TriggerElement*> >& input,
049 unsigned int output);
050
051
052
053 virtual bool reset() {
054 m_cachedTEList.clear();
055 return true;
056 }
057
058 protected:
059
060
061 double m_etaWidth;
062
063
064 double m_phiWidth;
065
066
067 double m_windowThreshold;
068
069
070 double m_noiseThreshold;
071
072
073 double m_overlap;
074
075
076 StoreGateSvc* m_storeGate;
077
078
079 ToolHandle<ITrigDataAccess> m_data;
080
081
082 LArTT_Selector<LArCellCont>::const_iterator m_iBegin;
083 LArTT_Selector<LArCellCont>::const_iterator m_iEnd;
084 LArTT_Selector<LArCellCont>::const_iterator m_it;
085
086
087 const DataHandle<CaloIdManager> m_larMgr;
088
089
090 MsgStream* m_log;
091
092
093 std::string m_trigEmClusterKey;
094
095
096 std::multimap<unsigned int,HLT::TriggerElement*> m_cachedTEList;
097
098
099
100
101 std::map < IdentifierHash , const LArCell* > m_cellMap;
102 std::map < IdentifierHash , std::vector<IdentifierHash> > m_neighboursMap;
103
104 std::map < IdentifierHash , double > m_seedMap;
105 std::map < IdentifierHash , double > m_windowMap;
106
107
108
109
110
111 static const int m_maxSeeds = 10;
112
113 std::vector<double> m_etaSeeds;
114 std::vector<double> m_phiSeeds;
115
116 std::vector<double> m_energy37Lay2;
117 std::vector<double> m_energy37Lay2NegPhi;
118 std::vector<double> m_energy37Lay2PosPhi;
119 std::vector<double> m_energy77Lay2;
120 std::vector<double> m_energy35Lay2;
121 std::vector<double> m_weightEta1;
122 std::vector<double> m_weightEta2;
123 std::vector<double> m_clusterWidth35;
124
125 std::vector<double> m_totalEnergy;
126 std::vector<double> m_energySamp2;
127 std::vector<double> m_energyRawSamp2;
128 std::vector<double> m_energyEta;
129 std::vector<double> m_energyPhi;
130
131 std::vector<double> m_energyNegPhi;
132 std::vector<double> m_energyNegPhiConv;
133 std::vector<double> m_energyPosPhi;
134
135
136 private:
137 inline double etaSizeLArEMSamp2(const double eta, const int calo) const;
138 inline double phiSizeLArEMSamp2(const double eta, const int calo) const;
139 };
140
141
142 inline double T2CaloSwSeed::etaSizeLArEMSamp2(double cellEta, int calo) const{
143 double sizeEta;
144 if( calo == Calorimeter::EMBAR ){
145 if ( fabs(cellEta) < 1.4 ){
146 sizeEta = 0.025;
147 }else{
148 sizeEta = 0.075;
149 }
150 } else {
151 if ( fabs(cellEta) < 2.5 ){
152 sizeEta = 0.025;
153 } else{
154 sizeEta = 0.1;
155 }
156 }
157 return sizeEta;
158 }
159
160
161 inline double T2CaloSwSeed::phiSizeLArEMSamp2(double cellEta, int calo) const{
162 double sizePhi;
163 if( calo == Calorimeter::EMBAR ){
164 sizePhi = 0.025;
165 } else {
166 if ( fabs(cellEta) < 2.5 ){
167 sizePhi = 0.025;
168 } else {
169 sizePhi = 0.1;
170 }
171 }
172 return sizePhi;
173 }
174
175
176 #endif
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.
|
|