CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/FastSimulation/EventProducer/interface/FamosManager.h

Go to the documentation of this file.
00001 #ifndef FastSimulation_EventProducer_FamosManager_H
00002 #define FastSimulation_EventProducer_FamosManager_H
00003 
00004 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
00005 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h"
00006 #include <string>
00007 
00008 namespace HepMC {
00009   class GenEvent;
00010 }
00011 
00012 namespace edm { 
00013   class ParameterSet;
00014   class EventSetup;
00015   class Run;
00016   class HepMCProduct;
00017 }
00018 
00019 class FSimEvent;
00020 class TrajectoryManager;
00021 class PileUpSimulator;
00022 class MagneticField;
00023 class CalorimetryManager;
00024 class RandomEngine;
00025 
00026 // using trailing _ for private data members, m_p prefix for PSet variables (MSt)
00027 
00028 class FamosManager
00029 {
00030  public:
00031 
00032 
00034   FamosManager(edm::ParameterSet const & p);
00035 
00037   ~FamosManager();
00038 
00040   void setupGeometryAndField(edm::Run & run, const edm::EventSetup & es);
00041 
00043   //  const HepMC::GenEvent* genEvent() const { return myGenEvent; };
00044   //  const reco::CandidateCollection*
00045 
00047   FSimEvent* simEvent() const { return mySimEvent; }
00048 
00050   void reconstruct(const HepMC::GenEvent* evt, 
00051                    const reco::GenParticleCollection* particles,
00052                    const HepMC::GenEvent* pu);
00053   
00054   void reconstruct(const reco::GenParticleCollection* particles);
00055 
00057   TrajectoryManager * trackerManager() const {return myTrajectoryManager;}
00058 
00060   CalorimetryManager * calorimetryManager() const {return myCalorimetry;}
00061   
00062   
00063  private:   
00064 
00065   int iEvent;
00066   //  const HepMC::GenEvent* myGenEvent;
00067   FSimEvent* mySimEvent;
00068   TrajectoryManager* myTrajectoryManager;
00069   PileUpSimulator* myPileUpSimulator;
00070   CalorimetryManager * myCalorimetry;
00071 
00072  private:
00073 
00074   bool m_pUseMagneticField;
00075   bool m_Tracking;
00076   bool m_Calorimetry;
00077   bool m_Alignment;
00078   double weight_;    
00079   int m_pRunNumber;
00080   int m_pVerbose;
00081 
00082  private:
00083 
00084   const RandomEngine* random;
00085 
00086 };
00087                        
00088 #endif