CMS 3D CMS Logo

Hector.h

Go to the documentation of this file.
00001 #ifndef SimTransport_Hector_h
00002 #define SimTransport_Hector_h
00003 
00004 // user include files
00005 #include "FWCore/Framework/interface/EventSetup.h"
00006 #include "FWCore/Framework/interface/ESHandle.h"
00007 /*
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "FWCore/Framework/interface/EDAnalyzer.h"
00010 
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/MakerMacros.h"
00013 
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "FWCore/ParameterSet/interface/InputTag.h"
00016 */
00017 // HepMC headers
00018 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00019 
00020 #include "HepMC/GenEvent.h"
00021 #include "HepMC/GenVertex.h"
00022 #include "HepMC/GenParticle.h"
00023 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00024 
00025 // SimpleConfigurable replacement
00026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00027 
00028 //Hector headers
00029 #include "H_BeamLine.h"
00030 #include "H_RecRPObject.h"
00031 #include "H_BeamParticle.h"
00032 #include <string>
00033 
00034 class Hector {
00035   
00036  public:
00037   //  Hector(const edm::ParameterSet & ps);
00038   Hector(const edm::ParameterSet & ps, bool verbosity, bool FP420Transport,bool ZDCTransport);
00039   //  Hector();
00040   virtual ~Hector();
00041   
00043   void clearApertureFlags();
00045   void clear();
00047   void add( const HepMC::GenEvent * ev , const edm::EventSetup & es);
00049   void filterFP420();
00051   void filterZDC();
00053   void filterD1();
00054   
00055   int getDirect( unsigned int part_n ) const;
00056 
00058     void print() const;
00060   // std::vector<unsigned int> part_list() const;
00061     
00062     //    bool isCharged(const HepMC::GenParticle * p);
00063     
00064     HepMC::GenEvent * addPartToHepMC( HepMC::GenEvent * event );
00065     
00066     /*  
00067         private:
00068         //  edm::ParameterSet m_pBeamLine;
00069         */
00070  private:
00071     
00072     
00073     // Defaults
00074     double lengthfp420 ;
00075     double lengthzdc ;
00076     double lengthd1 ;
00077     
00078     double etacut;
00079     bool m_smearAng;
00080     double m_sig_e;
00081     bool m_smearE;
00082     double m_sigmaSTX;
00083     double m_sigmaSTY;
00084    
00085     float m_rpp420_f;
00086     float m_rpp420_b;
00087     float m_rppzdc;
00088     float m_rppd1;
00089     
00090     
00091     edm::ESHandle < ParticleDataTable > pdt;
00092     
00093     // Hector
00094     H_BeamLine * m_beamlineFP4201;
00095     H_BeamLine * m_beamlineFP4202;
00096     H_BeamLine * m_beamlineZDC1;
00097     H_BeamLine * m_beamlineZDC2;
00098     H_BeamLine * m_beamlineD11;
00099     H_BeamLine * m_beamlineD12;
00100     //
00101     
00102     H_RecRPObject * m_rp420_f;
00103     H_RecRPObject * m_rp420_b;
00104     
00105     std::map<unsigned int, H_BeamParticle*> m_beamPart;
00106     std::map<unsigned int, int> m_direct;
00107     std::map<unsigned int, bool> m_isStoppedfp420;
00108     std::map<unsigned int, bool> m_isStoppedzdc;
00109     std::map<unsigned int, bool> m_isStoppedd1;
00110     std::map<unsigned int, double> m_xAtTrPoint;
00111     std::map<unsigned int, double> m_yAtTrPoint;
00112     std::map<unsigned int, double> m_TxAtTrPoint;
00113     std::map<unsigned int, double> m_TyAtTrPoint;
00114     std::map<unsigned int, double> m_eAtTrPoint;
00115     
00116     std::map<unsigned int, double> m_eta;
00117     std::map<unsigned int, int> m_pdg;
00118     std::map<unsigned int, double> m_pz;
00119     std::map<unsigned int, bool> m_isCharged;
00120     
00121     string beam1filename;
00122     string beam2filename;
00123     
00124     bool m_verbosity;
00125     bool m_FP420Transport;
00126     bool m_ZDCTransport;
00127     
00128 };
00129 #endif

Generated on Tue Jun 9 17:48:02 2009 for CMSSW by  doxygen 1.5.4