#ifndef __trkmembers__
#define __trkmembers__

/**
 * KM3NeT Data Definitions v2.0.0
 * https://git.km3net.de/common/km3net-dataformat
 */

/**
 * trkmembers
 */
static const int TRK_MOTHER_UNDEFINED             = -1;        //!< mother id was not defined for this MC track (all reco tracks have this value)
static const int TRK_MOTHER_NONE                  = -2;        //!< mother id of a particle if it has no parent
static const int TRK_ST_UNDEFINED                 = 0;         //!< status was not defined for this MC track (all reco tracks have this value)
static const int TRK_ST_FINALSTATE                = 1;         //!< particle to be tracked by detector-level MC ('track_in' tag in evt files from gseagen
static const int TRK_ST_PRIMARYNEUTRINO           = 100;       //!< initial state neutrino ('neutrino' tag in evt files from gseagen and genhen).
static const int TRK_ST_PRIMARYCOSMIC             = 200;       //!< initial state cosmic ray ('track_primary' tag in evt files from corant).
static const int TRK_ST_ININUCLEI                 = 5;         //!< Initial state nuclei (gseagen)
static const int TRK_ST_INTERSTATE                = 2;         //!< Intermidiate state particles produced in hadronic showers (gseagen)
static const int TRK_ST_DECSTATE                  = 3;         //!< Short-lived particles that are forced to decay
static const int TRK_ST_NUCTGT                    = 11;        //!< Nucleon target (gseagen)
static const int TRK_ST_PREHAD                    = 12;        //!< DIS pre-fragmentation hadronic state (gseagen)
static const int TRK_ST_PRERES                    = 13;        //!< resonant pre-decayed state (gseagen)
static const int TRK_ST_HADNUC                    = 14;        //!< Hadrons inside the nucleus before FSI (gseagen)
static const int TRK_ST_NUCLREM                   = 15;        //!< Low energy nuclear fragments (gseagen)
static const int TRK_ST_NUCLCLT                   = 16;        //!< For composite nucleons before phase space decay (gseagen)
static const int TRK_ST_FAKECORSIKA               = 21;        //!< fake particle from corant/CORSIKA to add parent information (gseagen)
static const int TRK_ST_FAKECORSIKA_DEC_MU_START  = 22;        //!< fake particle from CORSIKA: decaying mu at start (gseagen)
static const int TRK_ST_FAKECORSIKA_DEC_MU_END    = 23;        //!< fake particle from CORSIKA: decaying mu at end (gseagen)
static const int TRK_ST_FAKECORSIKA_ETA_2GAMMA    = 24;        //!< fake particle from CORSIKA: eta -> 2 gamma (gseagen)
static const int TRK_ST_FAKECORSIKA_ETA_3PI0      = 25;        //!< fake particle from CORSIKA: eta -> 3 pi0 (gseagen)
static const int TRK_ST_FAKECORSIKA_ETA_PIP_PIM_PI0 = 26;        //!< fake particle from CORSIKA: eta -> pi+ pi- pi0 (gseagen)
static const int TRK_ST_FAKECORSIKA_ETA_2PI_GAMMA = 27;        //!< fake particle from CORSIKA: eta -> pi+ pi- gamma (gseagen)
static const int TRK_ST_FAKECORSIKA_CHERENKOV_GAMMA = 28;        //!< fake particle from CORSIKA: Cherenkov photons on particle output file (gseagen)
static const int TRK_ST_PROPLEPTON                = 1001;      //!< lepton propagated that reaches the can (gseagen)
static const int TRK_ST_PROPDECLEPTON             = 2001;      //!< lepton propagated and decayed before got to the can (gseagen)
#endif