CMS 3D CMS Logo

HydjetSource.h

Go to the documentation of this file.
00001 #ifndef HydjetSource_h
00002 #define HydjetSource_h
00003 
00004 // $Id: HydjetSource.h,v 1.13 2008/01/21 12:03:08 yilmaz Exp $
00005 
00014 #define PYCOMP pycomp_
00015 
00016 #include "FWCore/Framework/interface/GeneratedInputSource.h"
00017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00018 #include "SimDataFormats/HiGenData/interface/SubEvent.h"
00019 #include <map>
00020 #include <string>
00021 #include <vector>
00022 #include <math.h>
00023 
00024 namespace HepMC {
00025   class GenEvent;
00026   class GenParticle;
00027   class GenVertex;
00028 }
00029 
00030 namespace edm
00031 {
00032   class HydjetSource : public GeneratedInputSource {
00033   public:
00034     HydjetSource(const ParameterSet &, const InputSourceDescription &);
00035     virtual ~HydjetSource();
00036 
00037   private:
00038     void                                                add_heavy_ion_rec(HepMC::GenEvent *evt);
00039     HepMC::GenParticle*                                 build_hyjet( int index, int barcode );  
00040     HepMC::GenVertex*                                   build_hyjet_vertex(int i, int id);
00041     bool                                                call_pygive(const std::string& iParm);
00042     void                                                clear();
00043     bool                                                get_hard_particles(HepMC::GenEvent* evt, std::vector<SubEvent>& subs);
00044     bool                                                get_soft_particles(HepMC::GenEvent* evt, std::vector<SubEvent>& subs);
00045     bool                                                call_hyinit(double energy, double a, int ifb, double bmin,
00046                                                                     double bmax,double bfix,int nh);
00047     bool                                                hydjet_init(const ParameterSet &pset);
00048     bool                                                hyjpythia_init(const ParameterSet &pset);
00049     inline double                                       nuclear_radius() const;
00050     virtual bool                                        produce(Event & e);
00051     
00052     HepMC::GenEvent *evt;
00053     double            abeamtarget_;           // beam/target atomic mass number 
00054     double            bfixed_;                // fixed impact param (fm); valid only if cflag_=0
00055     double            bmax_;                  // max impact param; 
00056                                               // units of nucl radius
00057     double            bmin_;                  // min impact param; 
00058                                               // units of nucl radius
00059     int               cflag_;                 // centrality flag 
00060                                               // =  0 fixed impact param, 
00061                                               // <> 0 between bmin and bmax
00062     double            comenergy;              // collision energy   
00063     bool              doradiativeenloss_;     
00064     bool              docollisionalenloss_;   
00065     double            fracsoftmult_;          // fraction of soft hydro induced hadronic multiplicity
00066                                               // proportional to no of nucleon participants
00067                                               // (1-fracsoftmult_)--- fraction of soft 
00068                                               // multiplicity proportional to the numebr 
00069                                               // of nucleon-nucleon binary collisions
00070                                               // DEFAULT=1., allowed range [0.01,1]
00071     double            hadfreeztemp_;          // hadron freez-out temperature
00072                                               // DEFAULT=0.14MeV, allowed ranges [0.08,0.2]MeV
00073     std::string       hymode_;                // Hydjet running mode
00074     unsigned int      maxEventsToPrint_;      // Events to print if verbosity  
00075     double            maxlongy_;              // max longitudinal collective rapidity: 
00076                                               // controls width of eta-spectra
00077                                               // DEFAULT=4, allowed range [0.01,7.0]
00078     double            maxtrany_;              // max transverse collective rapidity: 
00079                                               // controls slope of low-pt spectra
00080                                               // DEFAULT=1.5, allowed range [0.01,3.0]
00081     int               nsub_;
00082     int               nhard_;                 // multiplicity of PYTHIA(+PYQUEN)-induced particles in event              
00083     int               nmultiplicity_;         // mean soft multiplicity in central PbPb
00084                                               // automatically calculated for other centralitie and beams         
00085     int               nsoft_;                 // multiplicity of HYDRO-induced particles in event 
00086     unsigned int      nquarkflavor_;          
00087 
00088     unsigned int      pythiaPylistVerbosity_; // pythia verbosity; def=1 
00089     double            qgpt0_;                 // initial temperature of QGP
00090                                               // DEFAULT = 1GeV; allowed range [0.2,2.0]GeV; 
00091     double            qgptau0_;               // proper time of QGP formation
00092                                               // DEFAULT = 0.1 fm/c; allowed range [0.01,10.0]fm/
00093     unsigned int      shadowingswitch_;       // shadowing switcher
00094                                               // 1-ON, 0-OFF
00095     double            signn_;                 // inelastic nucleon nucleon cross section [mb]
00096                                               // DEFAULT= 58 mb
00097   };
00098 
00099 double HydjetSource::nuclear_radius() const
00100 {
00101   // Return the nuclear radius derived from the 
00102   // beam/target atomic mass number.
00103 
00104   return 1.15 * pow((double)abeamtarget_, 1./3.);
00105 }
00106 
00107 } /*end namespace*/
00108 
00109 #endif

Generated on Tue Jun 9 17:36:57 2009 for CMSSW by  doxygen 1.5.4