#ifndef _BFIELD_PROP_H_ #define _BFIELD_PROP_H_ /*********************************************************************** ** ** ** /----------------------------------------------\ ** ** | Delphes, a framework for the fast simulation | ** ** | of a generic collider experiment | ** ** \----------------------------------------------/ ** ** ** ** ** ** This package uses: ** ** ------------------ ** ** FastJet algorithm: Phys. Lett. B641 (2006) [hep-ph/0512210] ** ** Hector: JINST 2:P09005 (2007) [physics.acc-ph:0707.1198v2] ** ** FROG: [hep-ex/0901.2718v1] ** ** ** ** ------------------------------------------------------------------ ** ** ** ** Main authors: ** ** ------------- ** ** ** ** Severine Ovyn Xavier Rouby ** ** severine.ovyn@uclouvain.be xavier.rouby@cern ** ** ** ** Center for Particle Physics and Phenomenology (CP3) ** ** Universite catholique de Louvain (UCL) ** ** Louvain-la-Neuve, Belgium ** ** ** ** Copyright (C) 2008-2009, ** ** All rights reserved. ** ** ** ***********************************************************************/ #include "TLorentzVector.h" #include "SmearUtil.h" #include "BlockClasses.h" #include "TSimpleArray.h" using namespace std; class TrackPropagation { public: // Constructor TrackPropagation(); TrackPropagation(const string& DetDatacard); TrackPropagation(const RESOLution * DetDatacard); TrackPropagation(const TrackPropagation & tp); TrackPropagation& operator=(const TrackPropagation & tp); ~TrackPropagation() {delete DET;}; void init(); // for constructors // Propagation and bfield are very similar. At the end, after code cleaning, // only bfield will remain in this class void Propagation(const TRootGenParticle *Part,TLorentzVector &genMomentum); void bfield(TRootGenParticle *Part); // fills in Part->EtaCalo and Part->PhiCalo private: unsigned int MAXITERATION; RESOLution *DET; /// radial/longitudinal extensions of magnetic field volume double R_max, z_max; /// magnetic field components double B_x, B_y, B_z; /// particle charge double q; /// initial coordinate double phi_0; /// relativistic gamma \times m double gammam; /// giration frequency and radius double omega, r; /// center of the helix in the transverse plane double x_c, y_c, R_c, Phi_c; // variable for an intermediate computing double rr; /// times for exiting the magnetic field volume double t, t_z, t_T; /// coordinates of the exit point double x_t, y_t, z_t, R_t, Phi_t, Theta_t, Eta_t; /// energy-momentum of the exit point [Gev] et c=1 double Px_t, Py_t, Pz_t, PT_t, p_t, E_t; unsigned int loop_overflow_counter; }; #endif