CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/SimTransport/HectorProducer/interface/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/Utilities/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/GeneratorProducts/interface/HepMCProduct.h"
00024 
00025 #include "SimDataFormats/Forward/interface/LHCTransportLink.h"
00026 #include <vector>
00027 
00028 // SimpleConfigurable replacement
00029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00030 
00031 //Hector headers
00032 #include "H_BeamLine.h"
00033 #include "H_RecRPObject.h"
00034 #include "H_BeamParticle.h"
00035 #include <string>
00036 #include <map>
00037 
00038 #include "TRandom3.h"
00039 
00040 class Hector {
00041   
00042  public:
00043   //  Hector(const edm::ParameterSet & ps);
00044   Hector(const edm::ParameterSet & ps, bool verbosity, bool FP420Transport,bool ZDCTransport);
00045   //  Hector();
00046   virtual ~Hector();
00047   
00049   void clearApertureFlags();
00051   void clear();
00053   void add( const HepMC::GenEvent * ev , const edm::EventSetup & es);
00055   void filterFP420();
00057   void filterZDC();
00059   void filterD1();
00060   
00061   int getDirect( unsigned int part_n ) const;
00062 
00064     void print() const;
00066   // std::vector<unsigned int> part_list() const;
00067     
00068     //    bool isCharged(const HepMC::GenParticle * p);
00069     
00070     HepMC::GenEvent * addPartToHepMC( HepMC::GenEvent * event );
00071 
00072     std::vector<LHCTransportLink> & getCorrespondenceMap() { return theCorrespondenceMap; }
00073     
00074     /*  
00075         private:
00076         //  edm::ParameterSet m_pBeamLine;
00077         */
00078  private:
00079     
00080     
00081     // Defaults
00082     double lengthfp420 ;
00083     double lengthzdc ;
00084     double lengthd1 ;
00085     
00086     double etacut;
00087     bool m_smearAng;
00088     double m_sig_e;
00089     bool m_smearE;
00090     double m_sigmaSTX;
00091     double m_sigmaSTY;
00092    
00093     float m_rpp420_f;
00094     float m_rpp420_b;
00095     float m_rppzdc;
00096     float m_rppd1;
00097     
00098     edm::ESHandle < ParticleDataTable > pdt;
00099     
00100     // Hector
00101     H_BeamLine * m_beamlineFP4201;
00102     H_BeamLine * m_beamlineFP4202;
00103     H_BeamLine * m_beamlineZDC1;
00104     H_BeamLine * m_beamlineZDC2;
00105     H_BeamLine * m_beamlineD11;
00106     H_BeamLine * m_beamlineD12;
00107     //
00108     
00109     H_RecRPObject * m_rp420_f;
00110     H_RecRPObject * m_rp420_b;
00111     
00112     std::map<unsigned int, H_BeamParticle*> m_beamPart;
00113     std::map<unsigned int, int> m_direct;
00114     std::map<unsigned int, bool> m_isStoppedfp420;
00115     std::map<unsigned int, bool> m_isStoppedzdc;
00116     std::map<unsigned int, bool> m_isStoppedd1;
00117     std::map<unsigned int, double> m_xAtTrPoint;
00118     std::map<unsigned int, double> m_yAtTrPoint;
00119     std::map<unsigned int, double> m_TxAtTrPoint;
00120     std::map<unsigned int, double> m_TyAtTrPoint;
00121     std::map<unsigned int, double> m_eAtTrPoint;
00122     
00123     std::map<unsigned int, double> m_eta;
00124     std::map<unsigned int, int> m_pdg;
00125     std::map<unsigned int, double> m_pz;
00126     std::map<unsigned int, bool> m_isCharged;
00127     
00128     string beam1filename;
00129     string beam2filename;
00130     
00131     bool m_verbosity;
00132     bool m_FP420Transport;
00133     bool m_ZDCTransport;
00134 
00135     std::vector<LHCTransportLink> theCorrespondenceMap;
00136 
00137     TRandom3* rootEngine_;
00138 
00139 };
00140 #endif