12#ifndef TrigInDetAnalysis_Converter_H
13#define TrigInDetAnalysis_Converter_H
59 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
61 while ( trackitr!=trackend ) {
65 CLHEP::HepVector perigeeParams = measPer->parameters();
66 double pT = measPer->
pT();
67 double eta = measPer->
eta();
69 double z0 = perigeeParams[
Trk::z0];
70 double d0 = perigeeParams[
Trk::d0];
89 int nSiHits = nPixelHits + nSctHits;
90 bool expectBL =
false;
98 for (
int ih=0 ; ih<20 ; ih++ ) {
107 deta, dphi, dz0, dd0, dpT,
108 nBlayerHits, nPixelHits, nSctHits, nSiHits,
109 nStrawHits, nTrHits, bitmap, 0,
122 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
124 Analysis::MuonContainer::const_iterator muonitr = muontracks->
begin();
125 Analysis::MuonContainer::const_iterator muonend = muontracks->
end();
127 while(muonitr!=muonend) {
129 bool hasInDet = (*muonitr)->hasInDetTrackParticle();
131 if(hasInDet) trackitr=(*muonitr)->inDetTrackParticle();
133 if(!hasInDet)
continue;
137 CLHEP::HepVector perigeeParams = measPer->parameters();
138 double pT = measPer->
pT();
139 double eta = measPer->
eta();
141 double z0 = perigeeParams[
Trk::z0];
142 double d0 = perigeeParams[
Trk::d0];
162 int nSiHits = nPixelHits + nSctHits;
166 double dof = quality->quality->
numberDoF();
170 for (
int ih=0 ; ih<20 ; ih++ ) {
179 deta, dphi, dz0, dd0, dpT,
180 nBlayerHits, nPixelHits, nSctHits, nSiHits,
181 nStrawHits, nTrHits, bitmap, 0,
193 if (
phi < -TMath::Pi())
phi += 2*TMath::Pi();
194 if (
phi > TMath::Pi())
phi -= 2*TMath::Pi();
200 void ipCorr(
double d0,
double z0,
double& d0c,
double& z0c,
double phi0,
double eta,
double pt) {
202 double sn = sin(phi0);
203 double cs = cos(phi0);
204 double sd0 = (d0 != 0 ? d0/fabs(d0) : 1);
205 double spt = (pt != 0 ? pt/fabs(pt) : 1);
207 if (fabs(pt) >= 1*CLHEP::TeV) {
213 double rc = fabs(pt)*15.0/(9.0*1.042);
215 double xc = (fabs(d0)-spt*sd0*
rc)*cos(phi0+
M_PI/2*sd0) -
m_beamX;
216 double yc = (fabs(d0)-spt*sd0*
rc)*sin(phi0+
M_PI/2*sd0) -
m_beamY;
219 double xd01,yd01,xd02,yd02;
222 xd01 = 0; yd01 =
rc+yc;
223 xd02 = 0; yd02 = -
rc+yc;
225 xd01 = xc+yc/xc*yc+sqrt(pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+
rc*
rc); yd01 = yc/xc*xd01;
226 xd02 = xc+yc/xc*yc-sqrt(pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+
rc*
rc); yd02 = yc/xc*xd02;
229 double r1 = sqrt(xd01*xd01+yd01*yd01);
230 double r2 = sqrt(xd02*xd02+yd02*yd02);
235 phiV = atan2(yd01,xd01);
237 phiV = atan2(yd02,xd02);
247 d0c = fabs(sqrt(xc*xc+yc*yc)-
rc)*sin(phiV-newphi);
250 double theta_save=
theta;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Scalar theta() const
theta method
definition of StoreGate container holding a vector of Analysis::Muon
void addTrack(TIDA::Track *t)
void selectTracks(const Analysis::MuonContainer *muontracks)
void ipCorr(double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt)
std::vector< TIDA::Track * > m_tracks
double phiCorr(double phi)
Converter(double x, double y, double z)
void selectTracks(const Rec::TrackParticleContainer *trigtracks)
const std::vector< TIDA::Track * > & tracks() const
DataModel_detail::const_iterator< DataVector > const_iterator
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
double chiSquared() const
returns the of the overall track fit
double eta() const
Access method for pseudorapidity - from momentum.
double pT() const
Access method for transverse momentum.
const FitQuality * fitQuality() const
accessor function for FitQuality.
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
A summary of the information contained by a track.
double chi2(TH1 *h0, TH1 *h1)
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
@ numberOfSCTHits
number of SCT holes
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
@ numberOfTRTHits
number of TRT outliers
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold