30 inline std::vector<std::string>
TokenizeString(
const std::string &input,
const char separator) {
31 std::vector<std::string> result;
33 for (
auto iter = cbegin(input);; ) {
34 auto sepIter = std::find(iter,
end(input), separator);
36 result.emplace_back(iter, sepIter);
38 if (sepIter == cend(input))
40 iter = std::next(sepIter);
136 159.04, 53.05, 29.22, 25.24, 1.706, -2.292, -25.26, -29.25,
137 -136.03, 64.425, 61.325, -62.875, -64.425, 0, -142.732, -159.382};
141 "Layer1",
"Layer2",
"Layer3",
"Layer4",
"Layer5",
"Layer6",
"Layer7",
"Layer8",
142 "Layer9",
"TofLayer0",
"TofLayer1",
"TofLayer2",
"TofLayer3",
"EcalCOG",
"EcalTop",
"EcalBottom"};
171 static const std::array<std::string, numSpans>
spanNames{
"InnerOnly",
"InnerL1",
"InnerL9",
"FullSpan",
172 "UpperHalfInner",
"LowerHalfInner",
"InnerNoMS"};
188 static const std::array<std::string, numFits>
fitNames{
"Choutko",
"Kalman",
"GBL",
"KalmanElectron"};
198 static const std::array<std::string, numTrGeos>
trGeoNames{
"Default",
"InnerOnly",
"InnerL1",
"FullSpan"};
208 static const std::array<std::string, numSides>
sideNames{
"X",
"Y"};
220 static const std::array<std::string, numTrackDistances>
trackDistanceNames{
"OnTrack",
"Onemm",
"Onecm",
"Twocm",
221 "Fivecm",
"Tencm",
"AllLayer"};
239 static const std::array<std::string, numChargeTypes>
recoNames{
"Total",
"Upper",
"Lower"};
250 static const std::array<std::string, numLikelihoodTypes>
likelihoodNames{
"Electron",
"Proton",
"Helium"};
265 static const std::array<std::string, numLikelihoodRTypes>
likelihoodRNames{
"ep",
"eHe",
"pHe"};
278 static const std::array<std::string, numQualTypes>
qualNames{
"OnTrack",
"OffTrack"};
298 constexpr std::array<EnergyRecoType, numEnergyRecos>
recoTypes{
302 static const std::array<std::string, numEnergyRecos>
recoNames{
"EnergyD",
"EnergyE",
"EnergyCorrEneE_E",
303 "EnergyCorrEne2017",
"EcalKEle"};
322 static const std::array<std::string, numBDTTypes>
BDTNames{
"v5std",
"v5ada",
"v7std",
"v7ada"};
342 static const std::array<std::string, numChargeTypes>
recoNames{
"Total",
"Upper",
"Lower"};
355 static const std::array<std::string, numBetaTypes>
betaNames{
"BetaH",
"Evgeni"};
374 enum MCHeight {
GenerationPoint = 0,
L1,
UpperTof,
L2,
L3,
L4,
L5,
L6,
L7,
L8,
LowerTof,
RichRadiator,
L9,
Ecal };
391 constexpr std::array<float, numMCHeights>
MCHeightsZ{std::numeric_limits<float>::max(),
425 static const std::array<std::string, numBetaTypes>
betaNames{
"CIEMAT",
"SIMPLE",
"REFIT",
"LIP"};
static const std::array< std::string, numQualTypes > qualNames
constexpr std::array< ChargeRecoType, numChargeRecos > recoTypes
constexpr unsigned int numMCHeights
This event is classified as charge 1 according to tracker standalone (0.5 < Q < 1.5)
Tof standalone data is available for this event.
This event is classified as charge 1 according to tof standalone (0.5 < Q < 1.5)
This event is classified as charge 2 according to tof (1.5 < Q < 2.5)
static const std::array< std::string, numChargeTypes > recoNames
TrTrack data is available for this event.
Genfint General Broken Lines track fit.
This event is classified as charge >2 according to tracker standalone (Q > 2.5)
Track constructed with the upper part of the inner tracker (layers 2 to 6)
constexpr unsigned int numTrackDistances
Rich data is available for this event.
static const std::array< std::string, numTrackDistances > trackDistanceNames
static const std::array< std::string, numLikelihoodTypes > likelihoodNames
constexpr std::array< BetaType, numBetaTypes > betaTypes
constexpr unsigned int numTrGeos
Track constructed with the upper part of the inner tracker (layers 3 to 8)
proton/helium likelihood ratio
constexpr std::array< Span, numSpans > spanTypes
constexpr std::array< QualType, numQualTypes > qualTypes
This event is classified as charge >2 according to tof (Q > 2.5)
TRD standalone data is available for this event.
constexpr std::array< MCHeight, numMCHeights > MCHeights
constexpr std::array< FitPositionHeight, numTrLayers > layerPositionHeights
constexpr std::array< float, numMCHeights > MCHeightsZ
Ecal energy (W. Xu 3D reconstruction)
static const std::array< std::string, numBetaClusterTypes > betaClusterTypeNames
This event is classified as charge 1 according to tracker (0.5 < Q < 1.5)
electron/helium likelihood ratio
Track constructed with inner tracker + layer 1 hits.
constexpr std::array< float, numFitPositionHeights > fitPositionHeightZ
static const std::array< std::string, numTrGeos > trGeoNames
static const std::array< std::string, numSides > sideNames
Charge estimated using the upper half of the TRD.
static const std::array< std::string, numFits > fitNames
constexpr unsigned int numBetaTypes
constexpr unsigned int numQualTypes
constexpr std::array< LikelihoodRType, numLikelihoodRTypes > likelihoodRTypes
constexpr unsigned int numFits
constexpr unsigned int numFitPositionHeights
std::map< unsigned int, T > LayerVariable
Hits laying off the TRD track (all the rest)
static const std::array< std::string, numLikelihoodRTypes > likelihoodRNames
constexpr std::array< Fit, numFits > fitTypes
constexpr unsigned int numLikelihoodTypes
This event is classified as charge >2 according to tof standalone (Q > 2.5)
Ecal data is available for this event.
TRD data is available for this event.
static const std::array< std::string, numBDTTypes > BDTNames
Track constructed with inner tracker + layer9 hits.
constexpr std::array< Side, numSides > sides
GenFit kalman filter track fit.
This event is classified as charge 1 according to tof (0.5 < Q < 1.5)
static const std::array< std::string, numFitPositionHeights > fitPositionNames
Ecal energy (2017 reconstruction)
constexpr unsigned int numChargeRecos
constexpr unsigned int numBDTTypes
Track constructed with all available hits (inner tracker + layer 1 + layer 9)
This event is classified as charge 2 according to tracker (1.5 < Q < 2.5)
This event is classified as charge 2 according to tracker standalone (1.5 < Q < 2.5)
Ecal energy (standard reconstruction)
Total deposited energy in Ecal.
constexpr unsigned int numEnergyRecos
Charge estimated using the whole TRD.
constexpr std::array< LikelihoodType, numLikelihoodTypes > likelihoodTypeNames
constexpr unsigned int numBetaClusterTypes
constexpr std::array< LikelihoodType, numLikelihoodTypes > likelihoodTypes
constexpr std::array< BetaClusterType, numBetaClusterTypes > betaClusterTypes
std::vector< std::string > TokenizeString(const std::string &input, const char separator)
Utility function that splits a string according to the provided separator.
constexpr unsigned int numChargeTypes
This event is classified as charge >2 according to tracker (Q > 2.5)
Track constructed without correcting for multiple scattering.
GenFit kalman filter track fit assuming electron mass.
Ecal energy (electron hypothesys, Using different methods to recover anode efficiency, rear leakage, lateral leakage and temperature effects)
constexpr unsigned int numTrLayers
constexpr std::array< DistanceFromTrack, numTrackDistances > trackDistances
NAIAChain::EventItr end(NAIAChain &chain)
constexpr std::array< TrGeometry, numTrGeos > trGeoTypes
electron/proton likelihood ratio
static const std::array< std::string, numBetaTypes > betaNames
Track constructed with only inner tracker hits.
static const std::array< std::string, numSpans > spanNames
This event is classified as charge 2 according to tof standalone (1.5 < Q < 2.5)
constexpr unsigned int numSpans
constexpr unsigned int numLikelihoodRTypes
Standard tracker charge reconstruction.
Tof data is available for this event.
constexpr std::array< FitPositionHeight, numFitPositionHeights > fitPositionHeights
constexpr std::array< BDTType, numBDTTypes > BDTTypes
#define NAIA_ENABLE_BITMASK_OPERATORS(x)
Charge estimated using the lower half of the TRD.
constexpr unsigned int numSides