ATLAS Offline Software
|
#include <PhiSlice.h>
Public Member Functions | |
PhiSlice ()=delete | |
PhiSlice (int SliceIndex, double ZBinWidth, double InversePhiBinWidth, double ZTolerance, double KTolerance, double PTolerance, double ZMinimum, double ZMaximum, int LayerMaximum, int BarrelMaximum) | |
~PhiSlice () | |
void | AddPoint (double RhoValue, double ZValue, double PhiValue, long LayerIndex) |
void | MakeWideLayers (std::vector< std::vector< double > > *AllLayerRhos, std::vector< std::vector< double > > *AllLayerZs, std::vector< std::vector< double > > *AllLayerPhis, std::vector< std::vector< int > > *AllSliceWidths, int FilledLayerTotal, std::vector< long > *FilledLayerIndices) |
void | GetHistogram (std::vector< long > *HitHistogram, std::vector< double > *WeightHistogram, std::vector< long > *OtherChargeHitHistogram, std::vector< double > *OtherChargeWeightHistogram, const std::vector< std::vector< long > > &ExtraSlices, const long PhiToSubtract, int InnerLayerLimit, const int TripletMode, const bool ChargeAware, std::vector< std::vector< long > > *AllHits=0, std::vector< std::vector< double > > *AllWeights=0) |
void | MakeHistogram (std::vector< std::vector< long > > &ExtraSlices, long PhiToSubtract, int InnerLayerLimit, int TripletMode, bool ChargeAware) |
void | AddHistogram (std::vector< long > *HitHistogram, std::vector< double > *WeightHistogram, std::vector< long > *OtherChargeHitHistogram, std::vector< double > *OtherChargeWeightHistogram) |
Private Member Functions | |
int | FindTriplet (int OuterFilledLayer, int OuterPointIndex, double CurrentZValue, double CurrentKValue, double CurrentPValue, const std::vector< std::vector< long > > &ExtraSlices, const long PhiToSubtract, bool FastTriplet, int OuterSliceIndex) |
void | FillNeighbours (int InnerLayerIndex, int OuterSliceIndex, int TripletsFound, int AxisZIndex, double AxisZ, const std::vector< std::vector< long > > &ExtraSlices, const long PhiToSubtract, const bool ChargeAware, std::vector< std::vector< long > > *AllHits, std::vector< std::vector< double > > *AllWeights) |
Private Attributes | |
std::vector< std::vector< double > > | m_layerRhos |
std::vector< std::vector< double > > | m_layerZs |
std::vector< std::vector< double > > | m_layerPhis |
std::vector< std::vector< double > > * | m_allLayerRhos = nullptr |
std::vector< std::vector< double > > * | m_allLayerZs = nullptr |
std::vector< std::vector< double > > * | m_allLayerPhis = nullptr |
std::vector< std::vector< int > > * | m_allSliceWidths = nullptr |
std::vector< long > * | m_filledLayerIndices = nullptr |
std::vector< long > | m_hitHistogram |
std::vector< long > | m_otherChargeHitHistogram |
std::vector< long > | m_sliceStart |
std::vector< long > | m_sliceEnd |
std::vector< double > | m_weightHistogram |
std::vector< double > | m_otherChargeWeightHistogram |
double | m_invZBinWidth |
double | m_invPhiBinWidth |
double | m_zTolerance |
double | m_kTolerance |
double | m_pTolerance |
double | m_zMinimum |
double | m_zMaximum |
int | m_zBins |
int | m_halfZBins |
int | m_zeroOffset |
int | m_sliceIndex |
int | m_filledLayerTotal = 0 |
int | m_barrelMaximum |
bool | m_internalHistogramsAreValid |
Definition at line 12 of file PhiSlice.h.
|
delete |
PhiSlice::PhiSlice | ( | int | SliceIndex, |
double | ZBinWidth, | ||
double | InversePhiBinWidth, | ||
double | ZTolerance, | ||
double | KTolerance, | ||
double | PTolerance, | ||
double | ZMinimum, | ||
double | ZMaximum, | ||
int | LayerMaximum, | ||
int | BarrelMaximum | ||
) |
Definition at line 11 of file PhiSlice.cxx.
PhiSlice::~PhiSlice | ( | ) |
Definition at line 48 of file PhiSlice.cxx.
void PhiSlice::AddHistogram | ( | std::vector< long > * | HitHistogram, |
std::vector< double > * | WeightHistogram, | ||
std::vector< long > * | OtherChargeHitHistogram, | ||
std::vector< double > * | OtherChargeWeightHistogram | ||
) |
Definition at line 154 of file PhiSlice.cxx.
void PhiSlice::AddPoint | ( | double | RhoValue, |
double | ZValue, | ||
double | PhiValue, | ||
long | LayerIndex | ||
) |
Definition at line 53 of file PhiSlice.cxx.
|
private |
Definition at line 458 of file PhiSlice.cxx.
|
private |
Definition at line 353 of file PhiSlice.cxx.
void PhiSlice::GetHistogram | ( | std::vector< long > * | HitHistogram, |
std::vector< double > * | WeightHistogram, | ||
std::vector< long > * | OtherChargeHitHistogram, | ||
std::vector< double > * | OtherChargeWeightHistogram, | ||
const std::vector< std::vector< long > > & | ExtraSlices, | ||
const long | PhiToSubtract, | ||
int | InnerLayerLimit, | ||
const int | TripletMode, | ||
const bool | ChargeAware, | ||
std::vector< std::vector< long > > * | AllHits = 0 , |
||
std::vector< std::vector< double > > * | AllWeights = 0 |
||
) |
Calculate the corresponding histogram bin
NB: quicker to simply subtract m_zMinimum from each spacepoint at the start and simply add m_zMinimum to the final vertices after calculation.
Or better still, subtract m_zMinimum from each spacepoint, then scale
the coordinates by m_invZBinWidth, then you have "vertex Z positions" already in the "binning" space and you need only take the int(..)
This would avoids calculating the subtraction, and the multiplication for every double/triplet etc - something to bare in mind for the future I think
int axisZIndex = rint( (axisZ-m_zMinimum) * m_invZBinWidth);
Definition at line 181 of file PhiSlice.cxx.
void PhiSlice::MakeHistogram | ( | std::vector< std::vector< long > > & | ExtraSlices, |
long | PhiToSubtract, | ||
int | InnerLayerLimit, | ||
int | TripletMode, | ||
bool | ChargeAware | ||
) |
Definition at line 127 of file PhiSlice.cxx.
void PhiSlice::MakeWideLayers | ( | std::vector< std::vector< double > > * | AllLayerRhos, |
std::vector< std::vector< double > > * | AllLayerZs, | ||
std::vector< std::vector< double > > * | AllLayerPhis, | ||
std::vector< std::vector< int > > * | AllSliceWidths, | ||
int | FilledLayerTotal, | ||
std::vector< long > * | FilledLayerIndices | ||
) |
Definition at line 72 of file PhiSlice.cxx.
|
private |
Definition at line 78 of file PhiSlice.h.
|
private |
Definition at line 76 of file PhiSlice.h.
|
private |
Definition at line 77 of file PhiSlice.h.
|
private |
Definition at line 79 of file PhiSlice.h.
|
private |
Definition at line 96 of file PhiSlice.h.
|
private |
Definition at line 80 of file PhiSlice.h.
|
private |
Definition at line 94 of file PhiSlice.h.
|
private |
Definition at line 91 of file PhiSlice.h.
|
private |
Definition at line 81 of file PhiSlice.h.
|
private |
Definition at line 97 of file PhiSlice.h.
|
private |
Definition at line 84 of file PhiSlice.h.
|
private |
Definition at line 83 of file PhiSlice.h.
|
private |
Definition at line 86 of file PhiSlice.h.
|
private |
Definition at line 75 of file PhiSlice.h.
|
private |
Definition at line 75 of file PhiSlice.h.
|
private |
Definition at line 75 of file PhiSlice.h.
|
private |
Definition at line 81 of file PhiSlice.h.
|
private |
Definition at line 82 of file PhiSlice.h.
|
private |
Definition at line 87 of file PhiSlice.h.
|
private |
Definition at line 81 of file PhiSlice.h.
|
private |
Definition at line 93 of file PhiSlice.h.
|
private |
Definition at line 81 of file PhiSlice.h.
|
private |
Definition at line 82 of file PhiSlice.h.
|
private |
Definition at line 90 of file PhiSlice.h.
|
private |
Definition at line 92 of file PhiSlice.h.
|
private |
Definition at line 89 of file PhiSlice.h.
|
private |
Definition at line 88 of file PhiSlice.h.
|
private |
Definition at line 85 of file PhiSlice.h.