13#include "TrkReco/TCircle.h"
14#include "TrkReco/TMDCWire.h"
15#include "TrkReco/TMDCWireHit.h"
16#include "TrkReco/TMDCWireHitMC.h"
17#include "TrkReco/TMLink.h"
24 fitter( &TCircle::_fitter );
29void TCircle::dump(
const std::string& msg,
const std::string& pre )
const {
31 if ( msg ==
"" ) def =
true;
33 if ( def || msg.find(
"circle" ) != std::string::npos ||
34 msg.find(
"detail" ) != std::string::npos )
37 std::cout <<
"#links=" <<
_links.length();
40 std::cout <<
",charge=" << _charge;
41 std::cout <<
",center=" << _center;
42 std::cout <<
",radius=" << _radius;
43 std::cout << std::endl << pre;
44 std::cout <<
"pt=" <<
pt();
45 std::cout <<
",impact=" <<
impact();
46 std::cout << std::endl;
48 else { std::cout <<
", not fitted yet" << std::endl; }
114 for (
int i = 0; i < 6; i++ )
124 if ( maxLink != 1 )
return 1.0;
125 if ( layerID[0] == LayerID && layerID[1] == LayerID )
return 0.5;
126 if ( layerID[0] + layerID[1] != LayerID * 2 )
return 1.0;
133 if (
n < 3 )
return -1;
137 unsigned layerID =
_links[0]->hit()->wire()->layerId();
138 for (
unsigned i = 0; i <
n; i++ )
140 if ( layerID !=
_links[i]->hit()->wire()->layerId() )
146 if ( ipConst != 0 ) flagIP = 1;
149 _circle.add_point( 0., 0., 0.5 );
152 for (
unsigned i = 0; i <
n; i++ )
155 if ( l == 0 )
continue;
158 if ( h == 0 )
continue;
167 _circle.add_point( point.x(), point.y(),
weight );
172 if ( _circle.fit() < 0.0 || _circle.kappa() == 0.0 )
return -1;
173 HepVector
v( _circle.center() );
174 _center.setX(
v( 1 ) );
175 _center.setY(
v( 2 ) );
176 _radius = _circle.radius();
180 for (
unsigned i = 0; i <
n; i++ )
183 if ( l == 0 )
continue;
186 if ( h == 0 )
continue;
188 float q = ( _center.cross( h->
xyPosition() ) ).z();
189 if (
q > 0. ) qSum += 1;
192 if ( qSum >= 0 ) _charge = +1.;
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared dimensionless $ !dummy photon IR regulator $ !crude photon multiplicity enhancement factor *EVENT $ !MC crude volume of PhhSpace *Sfactors $ !YFS formfactor IR part only $ !YFS formfactor non IR finite part $ !mass weight
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
HepGeom::Point3D< double > HepPoint3D
A class to fit a TTrackBase object to a circle.
TCircle(const AList< TMLink > &links)
Constructor.
virtual ~TCircle()
Destructor.
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
double weight(const TMLink &l) const
returns weight of TMLink in order to fit and make a circle.
double impact(void) const
returns impact parameter to the origin.
double pt(void) const
returns Pt.
int fitForCurl(int ipConst=0)
fits itself. Error was happened if return value is not zero.
const TMDCWire *const wire(void) const
returns a pointer to a TMDCWire.
const HepPoint3D & xyPosition(void) const
returns drift time
unsigned localId(void) const
returns local id in a wire layer.
unsigned layerId(void) const
returns layer id.
A class to relate TMDCWireHit and TTrack objects.
TMLink * neighbor(unsigned int) const
returns neighbor TMLink.
const TMDCWireHit * hit(void) const
returns a pointer to a hit.
virtual void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
const TMFitter *const fitter(void) const
returns a pointer to a default fitter.