![]() |
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.
1.8.18