1 #ifndef NSL_SELECTIONS_TRACKER_INNERTRACKERCHARGEINRANGE_H
2 #define NSL_SELECTIONS_TRACKER_INNERTRACKERCHARGEINRANGE_H
10 namespace InnerTracker {
13 ChargeInRange(
float min,
float max, NAIA::TrTrack::ChargeRecoType recoType);
18 namespace it_base = ::NSL::Selections::InnerTracker;
22 namespace InnerTracker {
25 std::pair<float, float> chargeLimits(
unsigned int charge) {
29 return {
static_cast<float>(charge) - 0.3f, static_cast<float>(charge) + 0.5f};
31 return {
static_cast<float>(charge) - 0.45f, static_cast<float>(charge) + 0.45f};
38 explicit ChargeInRange(
unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
39 : it_base::
ChargeInRange(chargeLimits(charge).first, chargeLimits(charge).second, recoType) {}
46 namespace InnerTracker {
49 std::pair<float, float> chargeLimits(
unsigned int charge) {
53 return {
static_cast<float>(charge) - 0.3f, static_cast<float>(charge) + 0.5f};
55 return {
static_cast<float>(charge) - ((charge >= 14.0f) ? 0.5f : 0.0075f * pow(charge, 1.414f) + 0.198f),
56 static_cast<float>(charge) + ((charge >= 14.0f) ? 0.5f : 0.0075f * pow(charge, 1.414f) + 0.198f)};
63 explicit ChargeInRange(
unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
64 : it_base::
ChargeInRange(chargeLimits(charge).first, chargeLimits(charge).second, recoType) {}
ChargeInRange(unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)
ChargeInRange(float min, float max, NAIA::TrTrack::ChargeRecoType recoType)
ChargeInRange(unsigned int charge, NAIA::TrTrack::ChargeRecoType recoType)