1 #ifndef NSL_SELECTIONS_TRACKER_TRACKERLAYERCHARGEINRANGE_H
2 #define NSL_SELECTIONS_TRACKER_TRACKERLAYERCHARGEINRANGE_H
10 namespace TrackerLayer {
14 ChargeInRange(
unsigned int layer,
float min,
float max, NAIA::TrTrack::ChargeRecoType recoType);
19 namespace tl_base = ::NSL::Selections::TrackerLayer;
23 namespace TrackerLayer {
26 std::pair<float, float> chargeLimits(
unsigned int charge,
unsigned int layer) {
32 return {
static_cast<float>(charge) - 0.4f, static_cast<float>(charge) + 0.9f};
34 return {0.0f,
static_cast<float>(charge) + 0.8f};
37 else if (layer == 9) {
41 return {
static_cast<float>(charge) - 0.4f, static_cast<float>(charge) + 0.9f};
43 return {
static_cast<float>(charge) - 0.5f, static_cast<float>(charge) + 1.0f};
52 explicit ChargeInRange(
unsigned int layer,
unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
53 : tl_base::
ChargeInRange(layer, chargeLimits(charge, layer).first, chargeLimits(charge, layer).second, recoType) {}
60 namespace TrackerLayer {
63 std::pair<float, float> chargeLimits(
unsigned int charge,
unsigned int layer) {
69 return {
static_cast<float>(charge) - 0.4f, static_cast<float>(charge) + 0.9f};
77 return {
static_cast<float>(charge) - 0.0585f * pow(charge, 1.15f) - 0.35f,
78 static_cast<float>(charge) + 0.0334f * pow(charge, 1.15f) + 0.20f};
80 return {
static_cast<float>(charge) - 0.46f - (charge - 3.0f) * 0.1f,
81 static_cast<float>(charge) + ((charge < 5.0f) ? 0.65f : 0.65f + (charge - 5.0f) * 0.03f)};
88 return {
static_cast<float>(charge) - 0.4f, static_cast<float>(charge) + 0.9f};
96 return {
static_cast<float>(charge) - 0.0284f * pow(charge, 1.15f) - 0.17f,
97 static_cast<float>(charge) + 0.0585f * pow(charge, 1.15f) + 0.35f};
99 return {
static_cast<float>(charge) - 0.5f, static_cast<float>(charge) + 1.5f + (charge - 3.0f) * 0.06f};
108 explicit ChargeInRange(
unsigned int layer,
unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
109 : tl_base::
ChargeInRange(layer, chargeLimits(charge, layer).first, chargeLimits(charge, layer).second, recoType) {}
ChargeInRange(unsigned int layer, unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
ChargeInRange(unsigned int layer, unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
ChargeInRange(unsigned int layer, float min, float max, NAIA::TrTrack::ChargeRecoType recoType)