• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/Users/jmonk/Physics/ForIA/ForIA/Event.hh

Go to the documentation of this file.
00001 #ifndef FORIA_EVENT_HH
00002 #define FORIA_EVENT_HH
00003 
00004 #include "ForIA/Cluster.hh"
00005 #include "ForIA/DetectorErrors.hh"
00006 #include "ForIA/Jet.fh"
00007 #include "ForIA/L1TriggerBit.fh"
00008 #include "ForIA/L2SpacePoints.fh"
00009 #include "ForIA/Track.fh"
00010 #include "ForIA/TriggerConfiguration.hh"
00011 #include "ForIA/TriggerDecision.fh"
00012 #include "ForIA/TruthParticle.fh"
00013 #include "ForIA/TruthJet.fh"
00014 #include "ForIA/Vertex.fh"
00015 #include "ForIA/Event.fh"
00016 
00017 #include "ForIA/EtMiss.hh"
00018 
00019 #include "ForIA/JetKey.fh"
00020 
00021 #include "boost/unordered_map.hpp"
00022 #include "boost/unordered_set.hpp"
00023 
00024 #include <iostream>
00025 
00026 namespace ForIA{
00027    
00028   class DataConverter;
00029   
00031 
00040   class Event{
00041     
00042   public:
00049     Event(DataConverter *converter);
00050 
00052     unsigned long runNumber()const;
00054     unsigned long eventNumber()const;
00056     unsigned int lumiBlock()const;
00058     bool goodRun() const;
00060     bool goodLumiBlock()const;
00061     
00063     double weight()const;
00064 
00066     const ClusterVector &clusters() const;
00067     
00069     DetectorErrorsConstPtr detectorErrors()const;
00070     
00075     const JetVector  &jets(const JetKey &jetKey) const;
00077     const JetVector &jets() const;
00079     void matchTracksToJets(const JetKey &key)const;
00081     void matchVerticesToTracks()const;
00082     
00084     const TrackVector  &tracks() const;
00086     const VertexVector &vertices() const ;
00088     const TriggerConfiguration &triggerConfiguration()const;
00090     TriggerDecisionPtr triggerDecision()const;
00092     const TruthParticleVector &truthParticles() const;
00094     const TruthJetVector &truthJets() const;
00096     const VertexVector &truthVertices() const;
00098     L1TriggerBitPtr l1Trigger() const;
00100     L2SpacePointsConstPtr l2SpacePoints()const;
00102     EtMissPtr met() const;
00103     
00105     void clear();
00106     
00107   private:
00108     
00114     friend std::ostream &operator << (std::ostream &out, const Event &evt);
00115     
00116     DataConverter *m_converter;
00117     friend class DataConverter;
00118 
00119     unsigned long m_runNumber;
00120     long m_eventNumber;
00121     unsigned int m_lumiBlock;
00122     
00123     bool m_goodRun;
00124     bool m_goodLumiBlock;
00125     
00126     double m_weight;
00127 
00128     mutable bool m_gotClusters;
00129     mutable bool m_gotDetectorErrors;
00130     mutable bool m_gotTracks;
00131     mutable bool m_gotVertices;
00132     mutable bool m_gotTriggerConfiguration;
00133     mutable bool m_gotTriggerDecision;
00134     mutable bool m_gotTruth;
00135     mutable bool m_gotTruthJets;
00136     mutable bool m_gotTruthVertices;
00137     mutable bool m_gotL1Trigger;
00138     mutable bool m_gotL2SpacePoints;
00139     mutable bool m_gotMet;
00140     
00141     mutable boost::unordered_map<JetKey, bool> m_gotJets;
00142 
00143     
00144     mutable ClusterVector m_clusters;
00145     mutable DetectorErrorsConstPtr m_detectorErrors;
00146     mutable TrackVector m_tracks;
00147     mutable VertexVector m_vertices;
00148     mutable TriggerConfiguration m_triggerConfiguration;
00149     mutable TriggerDecisionPtr m_triggerDecision;
00150     mutable TruthParticleVector m_truthParticles;
00151     mutable TruthJetVector m_truthJets;
00152     mutable VertexVector m_truthVertices;
00153     mutable L1TriggerBitPtr m_l1Trigger;
00154     mutable L2SpacePointsConstPtr m_l2SpacePoints;
00155     mutable EtMissPtr m_etMiss;
00156     
00157     mutable boost::unordered_map<JetKey, JetVector> m_jets;
00158     
00159   };
00160 }
00161 
00162 #endif

Generated on Mon Jul 30 2012 16:56:35 for ForIA by  doxygen 1.7.2