Report problems to ATLAS LXR Team (with time and IP address indicated)

The LXR Cross Referencer

source navigation ]
diff markup ]
identifier search ]
general search ]
 
 
Architecture: linux ]
Version: head ] [ nightly ] [ GaudiDev ]
  Links to LXR source navigation pages for stable releases [ 12.*.* ]   [ 13.*.* ]   [ 14.*.* ] 

001 /*****************************************************************************
002 
003  NAME:     T2CaloSwSeed.h
004  PACKAGE:  Trigger/TrigAlgorithms/TrigT2CaloEgamma
005 
006  AUTHOR:   A. Phan
007  
008  NOTES:    Based loosely on T2CaloEgamma.cxx and closely to EgammaSamp2Fex.cxx. 
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     /** Constructor*/
040     T2CaloSwSeed(const std::string & name, ISvcLocator* pSvcLocator);
041     
042     /** Destructor */
043     virtual ~T2CaloSwSeed();
044     
045     /** Steering functions */
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     /** Algorithm functions */
052 
053      virtual bool reset() {
054        m_cachedTEList.clear();
055        return true; 
056      }
057 
058   protected:
059   
060     /** Eta width of Region of Interest. Should be 0.2 for EGamma. */
061     double                    m_etaWidth;
062     
063     /** Phi width of Region of Interest. Should be 0.2 for EGamma. */
064     double                    m_phiWidth;
065 
066     /** Window energy threshold for sliding window. */
067     double                    m_windowThreshold;
068 
069     /** Noise threshold for mapping cells. */
070     double                    m_noiseThreshold;
071 
072     /** Overlap Distance */
073     double                    m_overlap;
074 
075     /** StoreGateSvc pointer */
076     StoreGateSvc*                m_storeGate;
077     
078     /** Provides data access in a Region of Interest. */
079     ToolHandle<ITrigDataAccess> m_data;
080     
081     /** Iterators to LArCells. */
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     /** Calorimeter Id Manager for calorimeter part determination */
087     const DataHandle<CaloIdManager> m_larMgr;
088     
089     /** Cached MsgStream */
090     MsgStream* m_log;
091 
092     /** Properties */
093     std::string m_trigEmClusterKey;
094 
095     /** Internal caching variables */
096     std::multimap<unsigned int,HLT::TriggerElement*> m_cachedTEList;
097     
098     /** Internal variables */
099     
100     // Algorithm quantities       
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     //std::vector<TrigEMCluster*> m_outputClusterList;  
108     
109 
110     // Seed quantities
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;       // sum Et in 3*7 cell
117     std::vector<double> m_energy37Lay2NegPhi; // for phi wrap-around
118     std::vector<double> m_energy37Lay2PosPhi; // for phi wrap-around
119     std::vector<double> m_energy77Lay2;       // sum Et in 7*7 cell
120     std::vector<double> m_energy35Lay2;       // sum Et in 3*5 cell
121     std::vector<double> m_weightEta1;         // temp variable for width
122     std::vector<double> m_weightEta2;         // ditto
123     std::vector<double> m_clusterWidth35;     // cluster width in eta
124 
125     std::vector<double> m_totalEnergy;
126     std::vector<double> m_energySamp2;         // samp 2 calibrated energy
127     std::vector<double> m_energyRawSamp2;      // samp 2 raw energy
128     std::vector<double> m_energyEta;
129     std::vector<double> m_energyPhi;
130 
131     std::vector<double> m_energyNegPhi;       // fix phi wrap around
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

source navigation ] diff markup ] identifier search ] general search ]

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. Valid HTML 4.01!