#include <ThirdHitCorrection.h>
Public Types | |
typedef PixelRecoRange< float > | Range |
Public Member Functions | |
void | correctRPhiRange (Range &range) const |
void | correctRZRange (Range &range) const |
void | init (const edm::EventSetup &es, float pt, const DetLayer *layer, const PixelRecoLineRZ &line, const PixelRecoPointRZ &constraint, bool useMultipleScattering, bool useBendingCorrection=false) |
ThirdHitCorrection (const edm::EventSetup &es, float pt, const DetLayer *layer, const PixelRecoLineRZ &line, const PixelRecoPointRZ &constraint, bool useMultipleScattering, bool useBendingCorrection=false) | |
ThirdHitCorrection () | |
~ThirdHitCorrection () | |
Private Attributes | |
bool | theBarrel |
pixelrecoutilities::LongitudinalBendingCorrection | theBendingCorrection |
PixelRecoLineRZ | theLine |
float | theMScoeff |
float | theMultScattCorrRPhi |
bool | theUseBendingCorrection |
bool | theUseMultipleScattering |
Definition at line 13 of file ThirdHitCorrection.h.
typedef PixelRecoRange<float> ThirdHitCorrection::Range |
Definition at line 16 of file ThirdHitCorrection.h.
ThirdHitCorrection::ThirdHitCorrection | ( | ) | [inline] |
Definition at line 18 of file ThirdHitCorrection.h.
{}
ThirdHitCorrection::ThirdHitCorrection | ( | const edm::EventSetup & | es, |
float | pt, | ||
const DetLayer * | layer, | ||
const PixelRecoLineRZ & | line, | ||
const PixelRecoPointRZ & | constraint, | ||
bool | useMultipleScattering, | ||
bool | useBendingCorrection = false |
||
) | [inline] |
Definition at line 20 of file ThirdHitCorrection.h.
References init().
{ init(es, pt, layer, line, constraint, useMultipleScattering, useBendingCorrection); }
ThirdHitCorrection::~ThirdHitCorrection | ( | ) | [inline] |
Definition at line 42 of file ThirdHitCorrection.h.
{}
void ThirdHitCorrection::correctRPhiRange | ( | Range & | range | ) | const |
Definition at line 56 of file ThirdHitCorrection.cc.
{ if (theUseMultipleScattering) { range.first -= theMultScattCorrRPhi; range.second += theMultScattCorrRPhi; } }
void ThirdHitCorrection::correctRZRange | ( | Range & | range | ) | const |
Definition at line 63 of file ThirdHitCorrection.cc.
References abs, corr, PixelRecoRange< T >::max(), PixelRecoRange< T >::min(), CosmicsPD_Skims::radius, and crabWrapper::theLine.
{ if (theUseMultipleScattering) { range.first -= theMScoeff; range.second += theMScoeff; } if (theUseBendingCorrection) { if (theBarrel) { float cotTheta = theLine.cotLine(); if (cotTheta > 0) { float radius = theLine.rAtZ(range.max()); float corr = theBendingCorrection(radius) * cotTheta; range.second += corr; } else { float radius = theLine.rAtZ(range.min()); float corr = theBendingCorrection(radius) * std::abs(cotTheta); range.first -= corr; } } else { float radius = range.max(); float corr = theBendingCorrection(radius); range.first -= corr; } } }
void ThirdHitCorrection::init | ( | const edm::EventSetup & | es, |
float | pt, | ||
const DetLayer * | layer, | ||
const PixelRecoLineRZ & | line, | ||
const PixelRecoPointRZ & | constraint, | ||
bool | useMultipleScattering, | ||
bool | useBendingCorrection = false |
||
) |
Definition at line 19 of file ThirdHitCorrection.cc.
References abs, Reference_intrackfit_cff::barrel, PixelRecoLineRZ::cotLine(), alignCSCRings::e, f, geometryCSVtoXML::line, DetLayer::location(), funct::sqr(), mathSSE::sqrt(), and crabWrapper::theLine.
Referenced by ThirdHitCorrection().
{ theUseMultipleScattering = useMultipleScattering; theUseBendingCorrection = useBendingCorrection; theLine = line; theMultScattCorrRPhi =0; theMScoeff=0; if (!theUseMultipleScattering && !theUseBendingCorrection) return; theBarrel = (layer->location() == GeomDetEnumerators::barrel); if (theUseMultipleScattering) { MultipleScatteringParametrisation sigmaRPhi(layer, es); theMultScattCorrRPhi = 3.f*sigmaRPhi(pt, line.cotLine(), constraint); float overSinTheta = std::sqrt(1.f+sqr(line.cotLine())); if (theBarrel) { theMScoeff = theMultScattCorrRPhi*overSinTheta; } else { float overCosTheta = std::abs(line.cotLine()) < 1.e-4f ? 1.e4f : overSinTheta/std::abs(line.cotLine()); theMScoeff = theMultScattCorrRPhi*overCosTheta; } } if (useBendingCorrection) theBendingCorrection.init(pt,es); }
bool ThirdHitCorrection::theBarrel [private] |
Definition at line 48 of file ThirdHitCorrection.h.
pixelrecoutilities::LongitudinalBendingCorrection ThirdHitCorrection::theBendingCorrection [private] |
Definition at line 57 of file ThirdHitCorrection.h.
PixelRecoLineRZ ThirdHitCorrection::theLine [private] |
Definition at line 53 of file ThirdHitCorrection.h.
float ThirdHitCorrection::theMScoeff [private] |
Definition at line 55 of file ThirdHitCorrection.h.
float ThirdHitCorrection::theMultScattCorrRPhi [private] |
Definition at line 54 of file ThirdHitCorrection.h.
bool ThirdHitCorrection::theUseBendingCorrection [private] |
Definition at line 51 of file ThirdHitCorrection.h.
bool ThirdHitCorrection::theUseMultipleScattering [private] |
Definition at line 50 of file ThirdHitCorrection.h.