Changeset 281 in svn for trunk/Utilities/Hector/include
- Timestamp:
- Mar 1, 2009, 3:56:11 PM (16 years ago)
- Location:
- trunk/Utilities/Hector/include
- Files:
-
- 27 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Utilities/Hector/include/H_AbstractBeamLine.h
r216 r281 2 2 #define _H_AbstractBeamLine_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 21 9 http://www.fynu.ucl.ac.be/hector.html10 11 Centre de Physique des Particules et de Phï¿œnomï¿œnologie (CP3)12 Universitï¿œ Catholique de Louvain (UCL)13 */14 22 15 23 /// \file H_AbstractBeamLine.h 16 24 /// \brief Class aiming at simulating the LHC beamline. 17 25 /// 18 /// Units : angles [ ï¿œrad], distances [ï¿œm], energies [GeV], c=[1].26 /// Units : angles [urad], distances [um], energies [GeV], c=[1]. 19 27 20 28 /// default length of the beam line … … 39 47 40 48 public: 41 void init(const float );42 49 /// Constructors, destructor and operator 43 50 //@{ … … 50 57 //@} 51 58 /// Adds an element to the beamline 52 //@{53 59 void add(H_OpticalElement *); 54 void add(H_OpticalElement &);55 //@}56 60 /// Returns the (float) length of the beamline 57 inlinefloat getLength() const { return beam_length;};61 const float getLength() const { return beam_length;}; 58 62 /// Returns the (int) number of optics element of the beamline, including drifts 59 inline int getNumberOfElements() const { return (int)elements.size();};63 const unsigned int getNumberOfElements() const { return elements.size();}; 60 64 /// Returns the transport matrix for the whole beam 61 65 const TMatrix getBeamMatrix() const; … … 124 128 125 129 private: 126 /// list of all optics elements, including drifts127 vector<H_OpticalElement*> elements;128 130 /// list of matrices, 1 matrix = the transport till the end of each element 129 131 vector<TMatrix> matrices; 130 132 /// transport matrix for the whole beam 131 TMatrix beam_mat; 133 TMatrix beam_mat; 134 /// list of all optics elements, including drifts 135 vector<H_OpticalElement*> elements; 132 136 /// Orderting method for the vector of H_OpticalElement* 133 struct ordering{ bool operator()(H_OpticalElement* el1, H_OpticalElement* el2) const { return (*el1 < *el2);}}; 137 struct ordering{ bool operator()(const H_OpticalElement* el1, const H_OpticalElement* el2) const {return (*el1 < *el2);}}; 138 // private method for copying the contents of "elements" 139 void cloneElements(const H_AbstractBeamLine&); 134 140 135 141 protected: 142 void init(const float ); 136 143 /// total length of the beamline 137 144 float beam_length; 145 friend std::ostream& operator<< (std::ostream& os, const H_AbstractBeamLine& be); 138 146 }; 139 147 -
trunk/Utilities/Hector/include/H_Aperture.h
r216 r281 2 2 #define _H_Aperture_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_Aperture.h … … 18 25 // C++ #defines 19 26 #include <string> 27 #include <iostream> 20 28 using namespace std; 21 29 22 30 // local #defines 23 #define NONE 0 24 #define RECTANGULAR 1 25 #define ELLIPTIC 2 26 #define CIRCULAR 3 27 #define RECTELLIPSE 4 31 enum {NONE=0, RECTANGULAR, ELLIPTIC, CIRCULAR, RECTELLIPSE}; 28 32 #define NONENAME "None " 29 33 #define RECTANGULARNAME "Rectangle " … … 43 47 H_Aperture& operator=(const H_Aperture&); 44 48 virtual ~H_Aperture() { }; 45 virtual H_Aperture* clone() const { return new H_Aperture(type ,x1,x2,x3,x4,fx,fy); };49 virtual H_Aperture* clone() const { return new H_Aperture(type_,x1,x2,x3,x4,fx,fy); }; 46 50 //@} 47 51 48 52 /// Prints the aperture features 49 virtual void printProperties() const; 53 //virtual void printProperties() const; 54 void printProperties() const; 50 55 /// Draws the aperture shape 51 56 virtual void draw(const float scale=1) const {return;}; … … 55 60 virtual bool isInside(const float, const float) const; 56 61 /// Returns the (int) type of aperture 57 inline int getType() const {return type ;};62 inline int getType() const {return type_;}; 58 63 /// Returns the (string) type of the aperture 59 64 inline const string getTypeString() const { return aptypestring; } … … 62 67 protected: 63 68 /// Aperture shape (either RECTANGULAR or ELLIPTIC or ...) 64 int type; 65 /// Aperture shape string 66 string aptypestring; 67 69 int type_; 68 70 /// Aperture geometrical sizes (length/width or great/small radii) [m] 69 71 //@{ 70 72 float x1, x2, x3, x4; 71 73 //@} 72 73 74 /// Horizontal coordinate of the aperture center [m] (from the nominal beam position). 74 75 //@{ 75 76 float fx, fy; 76 77 //@} 77 /// Sets the name of the aperture from its type. 78 void setApertureString(); 78 /// Aperture shape string 79 string aptypestring; 80 // Sets the name of the aperture from its type. 81 //void setApertureString(); 82 /// Gets the name of the aperture from its type. 83 const string getApertureString() const; 84 85 friend std::ostream& operator<< (std::ostream& os, const H_Aperture& ap); 79 86 }; 80 87 88 81 89 #endif -
trunk/Utilities/Hector/include/H_Beam.h
r236 r281 2 2 #define _H_Beam_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_Beam.h … … 27 34 #include "TGraphErrors.h" 28 35 #include "TMultiGraph.h" 36 #include "TMath.h" 29 37 30 38 // local #includes … … 56 64 //@} 57 65 /// Fills the beam with particles in given position/angle/energy intervals (flat distribution) 58 //void particleGun(const unsigned int Number_of_particles, const float E_min, const float E_max, const float fs_min, const float fs_max, const float fx_min, const float fx_max, const float fy_min, const float fy_max, const float tx_min, const float tx_max, const float ty_min, const float ty_max, const float p_mass, const double p_charge); 59 void particleGun(const unsigned int Number_of_particles, const float E_min=BE, const float E_max=BE, const float fs_min=0, const float fs_max=0, const float fx_min=0, const float fx_max=0, const float fy_min=0, const float fy_max=0, const float tx_min=-pi/2., const float tx_max=pi/2., const float ty_min=-pi/2., const float ty_max=pi/2., const float p_mass=MP, const double p_charge=QP, const bool flat = true); 66 void particleGun(const unsigned int Number_of_particles, const float E_min=BE, const float E_max=BE, const float fs_min=0, const float fs_max=0, const float fx_min=0, const float fx_max=0, const float fy_min=0, const float fy_max=0, const float tx_min=-TMath::Pi()/2., const float tx_max=TMath::Pi()/2., const float ty_min=-TMath::Pi()/2., const float ty_max=TMath::Pi()/2., const float p_mass=MP, const double p_charge=QP, const bool flat = true, TRandom* r=gRandom); 60 67 61 68 /// Fills the beam with particles 62 //@{ 63 void createBeamParticles(const unsigned int , const double , const double ); 64 void createBeamParticles(const unsigned int); 65 //@} 69 void createBeamParticles(const unsigned int Number_of_particles, const double p_mass=MP, const double p_charge=QP, TRandom* r=gRandom); 66 70 /// Fills the beam with particles with incremental offset and no initial transverse momentum 67 71 //@{ … … 82 86 void add(const H_BeamParticle&); 83 87 /// Compute the position of each particle in the beamline 84 //@{ 85 void computePath(const H_AbstractBeamLine *, const bool); 86 void computePath(const H_AbstractBeamLine *); 87 //@} 88 void computePath(const H_AbstractBeamLine * beamline, const bool NonLinear=false); 88 89 // Photon emission by the particle 89 // @{ 90 void emitGamma(const double, const double, const double, const double); 91 void emitGamma(const double, const double); 92 //@} 90 void emitGamma(const double gee, const double gq2, const double phimin=0, const double phimax=2*TMath::Pi()); 93 91 // Propagates the beam until a given s 94 92 void propagate(const float ); … … 146 144 void printInitialState() const; 147 145 /// Prints the properties for each particle 148 void printProperties() const ;146 void printProperties() const {cout << *this; return;} 149 147 /// Prints the list of the stopping elements in the beamline 150 148 void printStoppingElements(const vector<H_OpticalElement>&, const vector<int>&) const; … … 186 184 unsigned int Nparticles; 187 185 188 static const float pi = 3.14159265358979312;186 friend std::ostream& operator<< (std::ostream& os, const H_Beam& be); 189 187 }; 190 188 -
trunk/Utilities/Hector/include/H_BeamLine.h
r216 r281 2 2 #define _H_BeamLine_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_BeamLine.h … … 32 39 /// Constructors and destructor 33 40 //@{ 34 H_BeamLine() :H_AbstractBeamLine() {direction=1; ips=0; };41 H_BeamLine(); 35 42 H_BeamLine(const H_BeamLine& ); 36 43 H_BeamLine(const int, const float); … … 39 46 //@ 40 47 /// Finds the IP position (s) from the MAD table. Should be "IP5" or "IP1". 41 //@{ 42 void findIP(const string&); 43 void findIP(const string&, const string&); 44 //@} 48 void findIP(const string& filename, const string& ipname="IP5"); 45 49 /// Reader for the external MAD table 46 //@{ 47 void fill(const string&); 48 void fill(const string&, const int, const string& ); 49 //@} 50 void fill(const string& filename, const int dir=1, const string& ipname="IP5"); 50 51 /// Returns the IP position (s) 51 double getIP() {return ips;};52 double getIP() const {return ips;}; 52 53 /// Returns positions and angles of beam at IP 53 54 double* getIPProperties(); -
trunk/Utilities/Hector/include/H_BeamLineParser.h
r216 r281 2 2 #define _H_BeamLineParser_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_BeamLineParser.h -
trunk/Utilities/Hector/include/H_BeamParticle.h
r237 r281 2 2 #define _H_BeamParticle_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_BeamParticle.h … … 27 34 #include "TVectorD.h" 28 35 #include "TLorentzVector.h" 36 #include "TRandom3.h" 29 37 30 38 // local #includes … … 39 47 40 48 public: 41 void init();42 49 /// Constructors and Destructor 43 50 //@{ … … 49 56 //@} 50 57 /// Smears the (x,y) coordinates of the particle [\f$ \mu m \f$] 51 void smearPos(const double, const double); 52 /// Smears the (x,y) coordinates of the particle (using default values in parameters.h) 53 void smearPos(); 58 void smearPos(const double dx=SX,const double dy=SY, TRandom* r=gRandom); 54 59 /// Smears the (x,y) angular coordinates of the particle [\f$ \mu rad \f$] 55 void smearAng(const double, const double); 56 /// Smears the (x,y) angular coordinates of the particle (using default values in parameters.h) 57 void smearAng(); 60 void smearAng(const double tx=STX, const double ty=STY, TRandom* r=gRandom); 58 61 /// Smears the Energy of the particle [GeV] 59 void smearE(const double); 60 /// Smears the Energy of the particle (using default values in parameters.h) 61 void smearE(); 62 void smearE(const double erre=SBE, TRandom* r=gRandom); 62 63 /// Smears the longitudinal position of the particle [\f$ \mu m \f$] 63 void smearS(const double); 64 /// Smears the longitudinal position of the particle (using default values in parameters.h) 65 void smearS(); 64 void smearS(const double errs=SS, TRandom* r=gRandom); 66 65 /// Sets the energy [GeV]. 67 66 void setE(const double); … … 73 72 void setPosition(const double , const double , const double , const double , const double ); 74 73 /// Returns the particle mass [GeV] 75 double getM() const {return mp;};74 const double getM() const {return mp;}; 76 75 /// Returns the particle charge [e] 77 double getQ() const {return qp;};76 const double getQ() const {return qp;}; 78 77 /// Returns the current x coordinate [\f$ \mu \f$m] 79 double getX() const {return fx;};78 const double getX() const {return fx;}; 80 79 /// Returns the current y coordinate [\f$ \mu \f$m] 81 double getY() const {return fy;};80 const double getY() const {return fy;}; 82 81 /// Returns the current s coordinate [m] 83 inlinedouble getS() const {return fs;};82 const double getS() const {return fs;}; 84 83 /// Returns the current \f$ \theta_x \f$ angular coordinate [\f$ \mu \f$rad] 85 double getTX() const {return thx;};84 const double getTX() const {return thx;}; 86 85 /// Returns the current \f$ \theta_y \f$ angular coordinate [\f$ \mu \f$rad] 87 double getTY() const {return thy;};86 const double getTY() const {return thy;}; 88 87 /// Returns the current particle energy [GeV] 89 inlinedouble getE() const {return energy;};88 const double getE() const {return energy;}; 90 89 /// Returns all the positions 91 90 vector<TVectorD> getPositions() const {return positions;}; 92 bool isPhysical() const {return isphysical;};91 const bool isPhysical() const {return isphysical;}; 93 92 /// \brief Simulates the emission of a photon in a random direction 94 93 /// … … 99 98 /// \f$ Q^{2}_{max} = -2 * \big( \frac{M_{p} E_{\gamma}}{p_{1}+p_{2}} \big) \big[ 1 + \frac{E^{2}_{1} + E^{2}_{2} - M^{2}_{p} }{ E_{1} E_{2} + p_{1} p_{2}} \big] \f$ 100 99 //@{ 101 void emitGamma(const double, const double, const double, const double); 102 void emitGamma(const double, const double); 100 void emitGamma(const double gee, const double gq2, const double phimin=0, const double phimax=2*TMath::Pi()); 103 101 //@} 104 102 /// uses Pythia to generate some inelastic pp->pX collision as background … … 120 118 const TVectorD * getPosition(const int ) const; 121 119 /// Prints the properties of the particle 122 void printProperties() const ;120 void printProperties() const {cout << *this; return;}; 123 121 /// Prints the phase vector of the particle 124 122 void printV() const; … … 126 124 const H_OpticalElement * getStoppingElement() const; 127 125 /// Checks if the particle has been stopped in any element of the beamline 128 bool stopped(const H_AbstractBeamLine *);126 const bool stopped(const H_AbstractBeamLine *); 129 127 /// Returns the StopPosition vector 130 128 inline const TVectorD * getStopPosition() const { return stop_position; }; … … 134 132 /// Returns the particle path in the beamline 135 133 TGraph * getPath(const int , const int ) const; 136 /// Computes the position of the particle at the end of each element of the beam, without non linear effects137 void computePath(const H_AbstractBeamLine *);138 134 /// Computes the position of the particle at the end of each element of the beam. 139 void computePath(const H_AbstractBeamLine * , const bool);135 void computePath(const H_AbstractBeamLine * beam, const bool NonLinear=true); 140 136 /// Computes the position of the particle at the end of each element of the beam. 141 void computePath(const H_AbstractBeamLine & , const bool);137 void computePath(const H_AbstractBeamLine & beam, const bool NonLinear=true); 142 138 /// Clears H_BeamParticle::positions but keeps the initial vector. 143 139 void resetPath(); 144 140 145 141 private: 142 void init(); 146 143 /// Particle mass [GeV] 147 144 double mp; … … 175 172 void addPosition(const double , const double , const double , const double , const double ); 176 173 177 static const float pi = 3.14159265358979312;174 friend std::ostream& operator<< (std::ostream& os, const H_BeamParticle& p); 178 175 }; 179 176 #endif -
trunk/Utilities/Hector/include/H_CircularAperture.h
r216 r281 2 2 #define _H_CircularAperture_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_CircularAperture.h … … 26 33 /// Constructors and destructor 27 34 //@{ 28 H_CircularAperture():H_EllipticAperture(0,0,0,0) {type = CIRCULAR; setApertureString();} 29 H_CircularAperture(const float, const float, const float); 35 H_CircularAperture():H_EllipticAperture(CIRCULAR,0,0,0,0) {}; 36 H_CircularAperture(const float r, const float posx, const float posy) : H_EllipticAperture(CIRCULAR,r,r,posx,posy) {}; 37 /// @param r is the radius of the circular shape 38 /// @param posx, posy are the (x,y) coordinates of the center of the circle 30 39 ~H_CircularAperture() {}; 31 40 H_CircularAperture* clone() const; 32 41 //@} 33 virtual void printProperties() const;42 friend std::ostream& operator<< (std::ostream& os, const H_CircularAperture& ap); 34 43 }; 35 44 -
trunk/Utilities/Hector/include/H_Dipole.h
r216 r281 2 2 /// \brief Class aiming at simulating LHC beam dipoles. 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 #ifndef _H_Dipole_ … … 30 37 //@} 31 38 /// Prints the properties of the element 32 virtual void printProperties() const ;39 virtual void printProperties() const { cout << *this; return;}; 33 40 virtual H_Dipole* clone() const =0; 34 41 void init(); … … 37 44 virtual void setTypeString() =0; 38 45 virtual void setMatrix(const float, const float, const float) = 0; 39 46 47 friend std::ostream& operator<< (std::ostream& os, const H_Dipole& el); 40 48 }; 41 49 -
trunk/Utilities/Hector/include/H_Drift.h
r216 r281 2 2 #define _H_Drift_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_Drift.h … … 30 37 ~H_Drift() { }; 31 38 //@} 32 virtual void printProperties() const;33 39 void init(); 40 virtual void printProperties() const { cout << *this; return;}; 34 41 H_Drift* clone() const; 35 42 … … 37 44 virtual void setTypeString() {typestring = DRIFTNAME;}; 38 45 virtual void setMatrix(const float, const float, const float) ; 46 friend std::ostream& operator<< (std::ostream& os, const H_Drift& el); 39 47 }; 40 48 -
trunk/Utilities/Hector/include/H_EllipticAperture.h
r216 r281 2 2 #define _H_EllipticAperture_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_EllipticAperture.h … … 26 33 //@{ 27 34 H_EllipticAperture():H_Aperture(ELLIPTIC,0,0,0,0,0,0) {} 35 H_EllipticAperture(const int, const float, const float, const float, const float); 28 36 H_EllipticAperture(const float, const float, const float, const float); 29 37 ~H_EllipticAperture() {}; … … 34 42 /// Draws the aperture shape. 35 43 virtual void draw(const float scale=1) const; 36 virtual void printProperties() const;44 friend std::ostream& operator<< (std::ostream& os, const H_EllipticAperture& ap); 37 45 }; 38 46 -
trunk/Utilities/Hector/include/H_HorizontalKicker.h
r216 r281 1 #ifndef _H_HorizontalKicker_ 2 #define _H_HorizontalKicker_ 3 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 1 22 /// \file H_HorizontalKicker.h 2 23 /// \brief Classes aiming at simulating horizontal kickers in beamline. 3 24 /// 4 25 /// fk [rad] for kickers !!!! 5 6 /*7 ---- Hector the simulator ----8 A fast simulator of particles through generic beamlines.9 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be10 11 http://www.fynu.ucl.ac.be/hector.html12 13 Centre de Physique des Particules et de Phénoménologie (CP3)14 Université Catholique de Louvain (UCL)15 */16 17 #ifndef _H_HorizontalKicker_18 #define _H_HorizontalKicker_19 26 20 27 // local #includes -
trunk/Utilities/Hector/include/H_HorizontalQuadrupole.h
r216 r281 2 2 #define _H_HorizontalQuadrupole_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_HorizontalQuadrupole.h -
trunk/Utilities/Hector/include/H_Kicker.h
r216 r281 1 #ifndef _H_Kicker_ 2 #define _H_Kicker_ 3 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 1 22 /// \file H_Kicker.h 2 23 /// \brief Classes aiming at simulating kickers in LHC beamline. 3 24 /// fk [rad] for kickers !!!! 4 5 /*6 ---- Hector the simulator ----7 A fast simulator of particles through generic beamlines.8 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be9 10 http://www.fynu.ucl.ac.be/hector.html11 12 Centre de Physique des Particules et de Phénoménologie (CP3)13 Université Catholique de Louvain (UCL)14 */15 16 #ifndef _H_Kicker_17 #define _H_Kicker_18 25 19 26 // local #includes … … 31 38 virtual ~H_Kicker() {}; 32 39 //@} 33 /// prints the kicker properties34 virtual void printProperties() const;35 40 virtual H_Kicker* clone() const = 0; 41 virtual void printProperties() const { cout << *this; return;}; 36 42 void init(); 37 43 … … 39 45 virtual void setTypeString() = 0; 40 46 virtual void setMatrix(const float, const float, const float) = 0; 47 friend std::ostream& operator<< (std::ostream& os, const H_Kicker& el); 41 48 }; 42 49 -
trunk/Utilities/Hector/include/H_Marker.h
r216 r281 2 2 #define _H_Marker_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_Marker.h … … 30 37 ~H_Marker() { }; 31 38 //@} 32 virtual void printProperties() const;33 39 H_Marker* clone() const ; 34 40 void init(); … … 37 43 virtual void setTypeString() {typestring = MARKERNAME;}; 38 44 virtual void setMatrix(const float , const float, const float) ; 45 friend std::ostream& operator<< (std::ostream& os, const H_Marker& el); 39 46 }; 40 47 -
trunk/Utilities/Hector/include/H_OpticalElement.h
r216 r281 2 2 #define _H_OpticalElement_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_OpticalElement.h … … 36 43 37 44 // type #defines 38 #define DRIFT 1 39 #define RDIPOLE 2 40 #define SDIPOLE 3 41 #define VQUADRUPOLE 4 42 #define HQUADRUPOLE 5 43 #define VKICKER 6 44 #define HKICKER 7 45 #define RCOLLIMATOR 8 46 #define ECOLLIMATOR 9 47 #define CCOLLIMATOR 10 48 #define RP 11 49 #define IP 12 50 #define MARKER 13 45 enum {DRIFT=1, RDIPOLE, SDIPOLE, VQUADRUPOLE, HQUADRUPOLE, VKICKER, HKICKER, RCOLLIMATOR, ECOLLIMATOR, CCOLLIMATOR, RP, IP, MARKER}; 51 46 52 47 // typestring[30] #defines … … 82 77 //@} 83 78 /// Prints the element features 84 virtual void printProperties() const ;79 virtual void printProperties() const { cout << *this; return;}; 85 80 /// Shows the element transport matrix 86 81 void showMatrix() const ; … … 90 85 void setAperture(const H_Aperture*); 91 86 /// Ordering operator acting on the s coordinate 92 inline bool operator>(const H_OpticalElement tocomp) const {if(fs>tocomp.getS()) { return true; } else { return false; }};87 inline bool operator>(const H_OpticalElement& tocomp) const {return ( fs>tocomp.getS() ); }; 93 88 /// Ordering operator acting on the s coordinate 94 inline bool operator<(const H_OpticalElement tocomp) const {if(fs<tocomp.getS()) { return true; } else { return false; }};89 inline bool operator<(const H_OpticalElement& tocomp) const {return ( fs<tocomp.getS() ); }; 95 90 /// Copy operator 96 91 H_OpticalElement& operator=(const H_OpticalElement&); … … 178 173 //@} 179 174 virtual H_OpticalElement* clone() const { return new H_OpticalElement();}; 180 TVectorD getHitPosition( TVectorD, double, double,double);175 TVectorD getHitPosition(const TVectorD& , const double, const double, const double); 181 176 182 177 … … 210 205 virtual void setTypeString() {return;}; 211 206 /// Optical element transport matrix. 212 207 virtual void setMatrix(const float, const float, const float) { cout<<"dummy setmatrix"<<endl; return;}; 213 208 /// Optical element transport matrix. 214 209 TMatrix element_mat; 215 210 /// Optical element aperture. 216 211 H_Aperture* element_aperture; 212 213 friend std::ostream& operator<< (std::ostream& os, const H_OpticalElement& el); 217 214 }; 218 215 -
trunk/Utilities/Hector/include/H_Parameters.h
r235 r281 2 2 #define _Hector_parameters_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 J.~de Favereau, X.~Rouby and K.~Piotrzkowski, 11 Hector, a fast simulator for the transport of particles in beamlines, 12 JINST 2, P09005 (2007) 13 arXiv:0707.1198 [physics.acc-ph] 14 15 Centre de Physique des Particules et de Phénoménologie (CP3) 16 Université Catholique de Louvain (UCL) 17 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 18 21 19 22 /// \file H_Parameters.h -
trunk/Utilities/Hector/include/H_Quadrupole.h
r216 r281 2 2 #define _H_Quadrupole_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_Quadrupole.h … … 30 37 virtual ~H_Quadrupole() {}; 31 38 //@} 32 virtual void printProperties() const;33 39 virtual H_Quadrupole* clone() const =0 ; 40 virtual void printProperties() const { cout << *this; return;}; 34 41 void init(); 35 42 … … 38 45 virtual void setMatrix(const float, const float, const float) = 0; 39 46 47 friend std::ostream& operator<< (std::ostream& os, const H_Quadrupole& el); 40 48 }; 41 49 -
trunk/Utilities/Hector/include/H_RecRPObject.h
r3 r281 2 2 #define _H_RecRPObject_ 3 3 4 /* 5 * ---- Hector the simulator ---- 6 * A fast simulator of particles through generic beamlines. 7 * J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 * 9 * http://www.fynu.ucl.ac.be/hector.html 10 * 11 * Centre de Physique des Particules et de Phénoménologie (CP3) 12 * Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_RecRPObject.h … … 22 29 #define NOT_YET_COMPUTED -666 23 30 31 /// Reconstruction of parameters at IP using measurements with roman pots 24 32 class H_RecRPObject { 25 33 public: 26 34 H_RecRPObject(); 27 H_RecRPObject(const float, const float, H_AbstractBeamLine* );35 H_RecRPObject(const float, const float, const H_AbstractBeamLine* ); 28 36 H_RecRPObject(const H_RecRPObject&); 29 37 H_RecRPObject& operator=(const H_RecRPObject&); 30 ~H_RecRPObject() {if(f_1) delete f_1; if(f_2) delete f_2; if(g_1) delete g_1; if(g_2) delete g_2; if(d_1) delete d_1; if(d_2) delete d_2; if(k_1) delete k_1; if(k_2) delete k_2; if(l_1) delete l_1; if(l_2) delete l_2; }; 38 ~H_RecRPObject() {delete f_1; delete f_2; delete g_1; delete g_2; 39 delete d_1; delete d_2; delete k_1; delete k_2; 40 delete l_1; delete l_2; 41 delete thebeam;}; 31 42 32 43 inline float getX1() const {return x1;}; … … 64 75 TF1* k_1, *k_2; 65 76 TF1* l_1, *l_2; 77 friend std::ostream& operator<< (std::ostream& os, const H_RecRPObject& rp); 66 78 }; 67 79 -
trunk/Utilities/Hector/include/H_RectEllipticAperture.h
r216 r281 2 2 #define _H_RectEllipticAperture_ 3 3 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 22 /// \file H_RectEllipticAperture.h 5 23 /// \brief Defines the Rect-Elliptic aperture of beamline elements. 6 7 /*8 ---- Hector the simulator ----9 A fast simulator of particles through generic beamlines.10 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be11 12 http://www.fynu.ucl.ac.be/hector.html13 14 Centre de Physique des Particules et de Phénoménologie (CP3)15 Université Catholique de Louvain (UCL)16 */17 24 18 25 // local #includes … … 30 37 H_RectEllipticAperture* clone() const; 31 38 //@} 32 virtual void printProperties() const;33 39 /// Checks whether the point is inside the aperture or not 34 40 virtual bool isInside(const float, const float) const; 35 41 /// Draws the aperture shape. 36 42 virtual void draw(const float scale=1) const; 43 friend std::ostream& operator<< (std::ostream& os, const H_RectEllipticAperture& ap); 37 44 }; 38 45 -
trunk/Utilities/Hector/include/H_RectangularAperture.h
r216 r281 2 2 #define _H_RectangularAperture_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_RectangularAperture.h … … 34 41 /// Draws the aperture shape. 35 42 virtual void draw(const float scale=1) const; 36 virtual void printProperties() const;43 friend std::ostream& operator<< (std::ostream& os, const H_RectangularAperture& ap); 37 44 }; 38 45 -
trunk/Utilities/Hector/include/H_RectangularCollimator.h
r216 r281 2 2 #define _H_RectangularCollimator_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_RectangularCollimator.h … … 30 37 ~H_RectangularCollimator() {}; 31 38 //@} 32 virtual void printProperties() const;33 39 H_RectangularCollimator* clone() const; 34 40 void init(); … … 36 42 virtual void setTypeString() {typestring=RCOLLIMATORNAME;}; 37 43 virtual void setMatrix(const float, const float, const float) ; 38 44 45 friend std::ostream& operator<< (std::ostream& os, const H_RectangularCollimator& el); 39 46 }; 40 47 -
trunk/Utilities/Hector/include/H_RectangularDipole.h
r216 r281 2 2 #define _H_RectangularDipole_ 3 3 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 22 /// \file H_RectangularDipole.h 5 23 /// \brief Classes aiming at simulating LHC beam rectangular dipoles. 6 7 /*8 ---- Hector the simulator ----9 A fast simulator of particles through generic beamlines.10 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be11 12 http://www.fynu.ucl.ac.be/hector.html13 14 Centre de Physique des Particules et de Phénoménologie (CP3)15 Université Catholique de Louvain (UCL)16 */17 24 18 25 #include "H_Dipole.h" -
trunk/Utilities/Hector/include/H_RomanPot.h
r216 r281 2 2 #define _H_RomanPot_ 3 3 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 22 /// \file H_RomanPot.h 5 23 /// \brief Roman pot class 6 7 /*8 ---- Hector the simulator ----9 A fast simulator of particles through generic beamlines.10 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be11 12 http://www.fynu.ucl.ac.be/hector.html13 14 Centre de Physique des Particules et de Phénoménologie (CP3)15 Université Catholique de Louvain (UCL)16 */17 24 18 25 // local #includes … … 32 39 ~H_RomanPot() {}; 33 40 //@} 34 virtual void printProperties() const;35 41 H_RomanPot* clone() const ; 36 42 void init(); … … 38 44 virtual void setTypeString() {typestring=RPNAME;}; 39 45 virtual void setMatrix(const float, const float, const float) ; 40 46 friend std::ostream& operator<< (std::ostream& os, const H_RomanPot& el); 41 47 }; 42 48 -
trunk/Utilities/Hector/include/H_SectorDipole.h
r216 r281 1 /// \file H_SectorDipole.h2 /// \brief Classes aiming at simulating sector dipoles.3 4 1 #ifndef _H_SectorDipole_ 5 2 #define _H_SectorDipole_ 6 3 7 /* 8 ---- Hector the simulator ---- 9 A fast simulator of particles through generic beamlines. 10 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 21 12 http://www.fynu.ucl.ac.be/hector.html 13 14 Centre de Physique des Particules et de Phénoménologie (CP3) 15 Université Catholique de Louvain (UCL) 16 */ 22 /// \file H_SectorDipole.h 23 /// \brief Classes aiming at simulating sector dipoles. 17 24 18 25 #include "H_Dipole.h" … … 26 33 H_SectorDipole():H_Dipole(SDIPOLE,0.,0.,0.) {init();} 27 34 H_SectorDipole(const double s, const double k, const double l) :H_Dipole(SDIPOLE,s,k,l){init();} 28 H_SectorDipole(const string nameE, const double s, const double k, const double l) :H_Dipole(nameE,SDIPOLE,s,k,l){init();}35 H_SectorDipole(const string& nameE, const double s, const double k, const double l) :H_Dipole(nameE,SDIPOLE,s,k,l){init();} 29 36 ~H_SectorDipole() {}; 30 37 //@} -
trunk/Utilities/Hector/include/H_TransportMatrices.h
r3 r281 2 2 #define _H_TransportMatrices_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /** \file H_TransportMatrices.h -
trunk/Utilities/Hector/include/H_VerticalKicker.h
r216 r281 2 2 #define _H_VerticalKicker_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 8 9 http://www.fynu.ucl.ac.be/hector.html 10 11 Centre de Physique des Particules et de Phénoménologie (CP3) 12 Université Catholique de Louvain (UCL) 13 */ 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 14 21 15 22 /// \file H_VerticalKicker.h … … 30 37 H_VerticalKicker():H_Kicker(VKICKER,0.,0.,0.) {init();} 31 38 H_VerticalKicker(const double s, const double k, const double l) :H_Kicker(VKICKER,s,k,l){init();} 32 H_VerticalKicker(const string nameE, const double s, const double k, const double l) :H_Kicker(nameE,VKICKER,s,k,l){init();}39 H_VerticalKicker(const string& nameE, const double s, const double k, const double l) :H_Kicker(nameE,VKICKER,s,k,l){init();} 33 40 ~H_VerticalKicker() {}; 34 41 //@} -
trunk/Utilities/Hector/include/H_VerticalQuadrupole.h
r216 r281 2 2 #define _H_VerticalQuadrupole_ 3 3 4 /* 5 ---- Hector the simulator ---- 6 A fast simulator of particles through generic beamlines. 7 J. de Favereau, X. Rouby ~~~ hector_devel@cp3.phys.ucl.ac.be 4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5 * * 6 * --<--<-- A fast simulator --<--<-- * 7 * / --<--<-- of particle --<--<-- * 8 * ----HECTOR----< * 9 * \ -->-->-- transport through -->-->-- * 10 * -->-->-- generic beamlines -->-->-- * 11 * * 12 * JINST 2:P09005 (2007) * 13 * X Rouby, J de Favereau, K Piotrzkowski (CP3) * 14 * http://www.fynu.ucl.ac.be/hector.html * 15 * * 16 * Center for Cosmology, Particle Physics and Phenomenology * 17 * Universite catholique de Louvain * 18 * Louvain-la-Neuve, Belgium * 19 * * 20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 21 9 http://www.fynu.ucl.ac.be/hector.html10 11 Centre de Physique des Particules et de Phénoménologie (CP3)12 Université Catholique de Louvain (UCL)13 */14 22 15 23 /// \file H_VerticalQuadrupole.h … … 27 35 H_VerticalQuadrupole():H_Quadrupole(VQUADRUPOLE,0.,0.,0.) {init();} 28 36 H_VerticalQuadrupole(const double s, const double k, const double l):H_Quadrupole(VQUADRUPOLE,s,k,l) {init();} 29 H_VerticalQuadrupole( stringnameE, const double s, const double k, const double l):H_Quadrupole(nameE,VQUADRUPOLE,s,k,l) {init();}30 31 32 33 37 H_VerticalQuadrupole(const string& nameE, const double s, const double k, const double l):H_Quadrupole(nameE,VQUADRUPOLE,s,k,l) {init();} 38 ~H_VerticalQuadrupole() {}; 39 //@} 40 H_VerticalQuadrupole* clone() const ; 41 private: 34 42 virtual void setTypeString() {typestring = VQUADRUPOLENAME;} ; 35 43 virtual void setMatrix(const float, const float, const float) ;
Note:
See TracChangeset
for help on using the changeset viewer.