Report problems to ATLAS LXR Team (with time and IP address indicated) |
|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
||||
|
||||||
Links to LXR source navigation pages for stable releases | [ 12.*.* ] [ 13.*.* ] [ 14.*.* ] |
001 #ifndef USERANALYSISUTILS_USERMUONTOOL_H 002 #define USERANALYSISUTILS_USERMUONTOOL_H 003 004 /***************************************************************************** 005 Name : UserMuonTool.h 006 Package : offline/PhysicsAnalysis/AnalysisCommon/UserAnalysisUtils 007 Author : Ketevi A. Assamagan 008 Created : September 2007 009 Purpose : User tools for muon analyis on ESD/AOD/DPD in Athena 010 - redo vertexing, isolation, refitting, recombination on the fly 011 assuming different aligment and calibration constants 012 *****************************************************************************/ 013 014 #include "GaudiKernel/AlgTool.h" 015 #include "GaudiKernel/MsgStream.h" 016 #include "StoreGate/StoreGateSvc.h" 017 018 #include "VxVertex/VxContainer.h" 019 #include "Particle/TrackParticleContainer.h" 020 #include "CaloEvent/CaloClusterContainer.h" 021 #include "TrkSegment/SegmentCollection.h" 022 023 #include "muonEvent/MuonContainer.h" 024 025 #include <string> 026 #include <map> 027 #include <vector> 028 029 /** Interface ID for User Muon making */ 030 static const InterfaceID IID_UserMuonTool("UserMuonTool", 1, 0); 031 032 class UserMuonTool : public AlgTool { 033 034 public: 035 036 /** Standard Constructor */ 037 UserMuonTool(const std::string& type, const std::string& name, 038 const IInterface* parent); 039 040 /** AlgTool and IAlgTool interface methods */ 041 static const InterfaceID& interfaceID( ) { return IID_UserMuonTool; }; 042 043 /** Overriding initialize and finalize */ 044 virtual StatusCode initialize(); 045 046 /** refit one Muon 047 - pass the the muon to be refitted 048 - get back a new refitted muon with all its associated new tracks, trackParticles, segments and CaloClusters 049 - the isolation is also redone automatically 050 - the energies in the calorimeter layers are recalculated */ 051 virtual StatusCode refit (const Analysis::Muon* oldMuon, Analysis::Muon* newMuon, 052 std::vector<const Rec::TrackParticle*>& newTrackParticles, 053 std::vector<const Trk::Track*>& newTracks, 054 std::vector<const Trk::Segment>& newSegments, 055 CaloCluster * newCluster); 056 057 /** refit a collection of muons 058 - it will call the refit for each muon in the collection 059 - you will pass the container of the muons 060 - you will also pass a vector<std::string> it should contains the StoreGates of the new TrackParticleContainer, 061 TrackCollection, SegmentCollection and CaloClusterContainer and MuonContainer respectively and in that order. 062 Thus, the size of the vector must be 5 063 - The new collections are written to StoreGate: new MuonContainer of refitted Muons, and new Containers of the 064 associated TrackParticles, Tracks, Segments and CaloClusters */ 065 virtual StatusCode refit (const Analysis::MuonContainer * oldMuonContainer, std::vector<std::string>& newKeys); 066 067 /** redo calo isolation either on a refitted muon track or with different parameters 068 if you pass a list of deltaR, you get a list of results back */ 069 virtual StatusCode redoCaloIsolation(const Analysis::Muon*, const float deltaR, const bool onlyEM, float& value); 070 virtual StatusCode redoCaloIsolation(const Analysis::Muon*, const std::vector<float>& deltaR, const bool onlyEM, 071 std::vector<double>& values); 072 073 /** redo track isolation either on a refitted muon track or with different parameters 074 if you pass a list of deltaR you will get back a list of values */ 075 virtual StatusCode redoTrackIsolation(const Analysis::Muon*, const float deltaR, float& value); 076 virtual StatusCode redoTrackIsolation(const Analysis::Muon*, const std::vector<float>& deltaR, 077 std::vector<double>& values); 078 079 /** redo combinations -> MuonSpectrometer/Inner Detector after refitting for example 080 - you pass an std::vector<std::string>: it should contain the StoreGate keys of: 081 # the Inner Detector TrackParticles, 082 # the key for the Muon TrackParticles extrapolated to the vertex, 083 - on output, you get a new muon collection - the list of StorGate keys of the associated containers: 084 # Inner Detector - same as on input 085 # Muon Spectrometer to vertex - same as on input 086 # CaloClusterContainer keys 087 # and the new MuonCollection keys 088 - the new Muon are completely dressed with energy/isolation/calo information */ 089 virtual StatusCode recombine(const std::vector<std::string>& oldKeys, std::vector<std::string>& newKeys); 090 091 /** refit the common vertex to the list of Muons 092 need to think about this in more details */ 093 virtual StatusCode refitVertex( const std::vector<const Analysis::Muon*> ); 094 095 /** finalization */ 096 virtual StatusCode finalize(); 097 098 protected: 099 100 /** Standard destructor */ 101 virtual ~UserMuonTool( ); 102 103 /** a handle on Store Gate for access to the Event Store */ 104 StoreGateSvc* m_storeGate; 105 106 /** should contain the StoreGate keys to be passed in job options */ 107 std::vector<std::string> m_keys; 108 109 }; 110 111 #endif // USERANALYSISUTILS_USERMUONTOOL_H 112 113 114 115
[ 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. |