ROOT logo
#ifndef __HPARTICLEDEF_H__
#define __HPARTICLEDEF_H__

#include "Rtypes.h"
#include "haddef.h"

typedef Float16_t SmallFloat;

const Cat_t catParticleCand   = PARTICLE_OFFSET + 1;
const Cat_t catParticleEvtInfo= PARTICLE_OFFSET + 2;
const Cat_t catParticleDebug  = PARTICLE_OFFSET + 3;
const Cat_t catParticleCal    = PARTICLE_OFFSET + 4;
const Cat_t catParticlePair   = PARTICLE_OFFSET + 5;
const Cat_t catParticleMdc    = PARTICLE_OFFSET + 6;
const Cat_t catParticleBtRing = PARTICLE_OFFSET + 7;
const Cat_t catParticleBtRingInfo = PARTICLE_OFFSET + 8;

namespace Particle {

    // Enumerated variables indicating which detector
    // has seen a HGeant particle
    // and combinations thereof (to be used as shorthand-notation)

enum eSelMeta {
	kNoUse     =-1,
	kTofClst   = 0,
	kTofHit1   = 1,
	kTofHit2   = 2,
	kRpcClst   = 3,
	kShowerHit = 4,
	kEmcClst   = 5
};

enum eDetBits
{
    //individual detectors
	kIsNotSet          = 0x00,  // This object does not contain valid data
	kIsInRICHIPU       = 0x01,  //    1 RICH IPU has seen this trackid
    
	kIsInOuterMDC      = 0x02,  //    2 Outer Mdc has seen this trackid
	kIsInRICH          = 0x04,  //    4 RICH has seen this trackid
	kIsInInnerMDC      = 0x08,  //    8 Inner Mdc has seen this trackid
    
	kIsInSHOWER        = 0x10,  //   16 Shower has seen this trackid
	kIsInEMC           = 0x10,  //   16 EMC has seen this trackid (SHOWER and EMC will not be used together)
	kIsInTOF           = 0x20,  //   32 TOF has seen this trackid
	kIsInRPC           = 0x40,  //   64 Rpc has seen this trackid
	kIsInMETA          = 0x80,  //  128 One of the Meta dets has seen this trackid
        kIsGhost           = 0x100, //  256 Tracking Ghost
	kIsInnerGhost      = 0x200, //  512 Tracking Ghost in inner MDC
	kIsOuterGhost      = 0x400  // 1024 Tracking Ghost in outer MDC
};

enum eMatching
{
    //individual detectors
	kIsNoMatch     = 0x00,  // This object does not contain valid data
	kIsRICHMDC     = 0x01,  // 1 RICH MDC matching
	kIsRICHRK      = 0x02   // 2 RICH RK matching
};

enum eVertex
{
	kVertexCluster     = 1,  // vertex from cluster finder
	kVertexSegment     = 2,  // vertex from fitted inner segments
	kVertexParticle    = 3,  // vertex from reconstructed particle candidates
	kVertexUser        = 4   // vertex provided by user
};

enum eMomReco
{
    //individual detectors
	kMomSpline     = 1,  // from spline
	kMomRK         = 2,  // from runge kutta
	kMomKalman     = 3   // from kalman
};

enum ePair
{
    //individual detectors
	kIsUS          =    0,  // This pair is unlike sign
	kIsLSPos       =    1,  // This pair is like sign, both positive
	kIsLSNeg       =    2   // This pair is like sign, both negative
};

// -------------------------------------------------------------------------
// Track Cleaner flags
enum eFlagBits {
    kIsDoubleHitRICH       =  0,    //
    kIsDoubleHitInnerMDC   =  1,    //
    kIsDoubleHitOuterMDC   =  2,    //
    kIsDoubleHitMETA       =  3,    //

    kIsBestHitRICH         =  4,    // (by number of pads)
    kIsBestHitInnerMDC     =  5,    // (by chi2,  chi2 >= 0 )
    kIsBestHitOuterMDC     =  6,    // (by chi2 , chi2 >= 0 )
    kIsBestHitMETA         =  7,    // (by RKMETA match quality)
    kIsBestRK              =  8,    // (by RK chi2, none fitted outer segments with lower priority)
    kIsBestRKRKMETA        =  9,    // (by RK chi2 * RK META match quality)
    kIsBestRKRKMETARadius  = 10,    // (by RK chi2 * RK META match radius)
    kIsBestUser            = 11,    // (user function)

    kIsAcceptedHitRICH     = 12,    // remember if the hit was been taken into account
    kIsAcceptedHitRICHMDC  = 13,    // RICH hit + ring correlation segment
    kIsAcceptedHitInnerMDC = 14,    // needs inner MDC chi2 >= 0
    kIsAcceptedHitOuterMDC = 15,    // needs outer MDC chi2 >= 0
    kIsAcceptedHitMETA     = 16,    // needs Meta Hit
    kIsAcceptedRKMETA      = 17,    // needs RK chi2 >= 0 + Meta hit
    kIsAcceptedRKRICH      = 18,    // needs RK chi2 >= 0 + RICH hit + ring correlation after RK
    kIsAcceptedRK          = 19,    // needs RK chi2 >= 0
    kIsAcceptedRKRKMETA    = 20,    // needs RK chi2 >= 0 + Meta hit
    kIsAcceptedRKRKMETARadius= 21,  // needs RK chi2 >= 0 + Meta hit
    kIsAcceptedUser          = 22,  // needs RK chi2 >= 0 + Meta hit
    
    kIsLepton              = 29,    // mark the selected leptons
    kIsUsed                = 30,    // mark the object as arleady used
    kIsRejected            = 31     // mark the object as rejected

};
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// HParticleTrackSorter
enum ERichMatch {
    kUseRICHIndexSorter         = 0,   // require RICH valid index
    kUseRKRICHCorrelationSorter = 1,   // require RK-RICH correlation (from HPidTrackCand)
    kUseRKRICHWindowSorter      = 2    // require RK-RICH matching inside +- window
};

enum ESelect {
    kIsLeptonSorter = 0,
    kIsHadronSorter = 1
};

enum ESwitch {
    kIsIndexRICHSorter         =  0,    //
    kIsIndexInnerMDCSorter     =  1,    //
    kIsIndexOuterMDCSorter     =  2,    //
    kIsIndexTOFSorter          =  3,    //
    kIsIndexSHOWERSorter       =  4,    //
    kIsIndexRPCSorter          =  5,    //
    kIsIndexMETASorter         =  6,    //

    kIsBestHitRICHSorter       =  7,    //
    kIsBestHitInnerMDCSorter   =  8,    //  (by chi2)
    kIsBestHitOuterMDCSorter   =  9,    //  (by chi2)
    kIsBestHitMETASorter       = 10,    //  (by RK META match quality)
    kIsBestRKSorter            = 11,    //  (by RK chi2, none fitted outer segments with lower priority)
    kIsBestRKRKMETASorter      = 12,    //  (by RK chi2 * RK META match quality)
    kIsBestRKRKMETARadiusSorter= 13,    //  (by RK chi2 * RK META match radius)
    kIsBestUserSorter          = 14     //  (by userFunction)
};
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
//  flags for HParticleTool::getCloseCand() , HParticleTool::evalCloseCandFlags()
enum eClosePairSelect {

    kSameRICH              = 0x01,        // 1: candidates share same RICH hit
    kSameInnerMDC          = 0x02,        // 2: candidates share innerMDC seg
    kSameOuterMDC          = 0x04,        // 3: candidates share outerMDC seg
    kSameMETA              = 0x08,        // 4: candidates share META hit (used META)
    kSamePosPolarity       = 0x10,        // 5: candidates share have same positive polarity (polarity has to be defined)
    kSameNegPolarity       = 0x20,        // 6: candidates share have same negative polarity (polarity has to be defined)
    kSamePolarity          = 0x40,        // 7: candidates share have same polarity (polarity has to be defined)

    kRICH2                 =  0x80,       // 8: candidate2 has RICH
    kFittedInnerMDC2       =  0x100,      // 9: candidate2 has fitted inner MDC seg
    kFittedOuterMDC2       =  0x200,      //10: candidate2 has fitted outer MDC seg
    kOuterMDC2             =  0x400,      //11: candidate2 has outer MDC seg
    kRK2                   =  0x800,      //12: candidate2 has fitted momentum
    kMETA2                 =  0x1000,     //13: candidate2 has META hit
    kIsLepton2             =  0x2000,     //14: candidate2 has kIsLepton
    kIsUsed2               =  0x4000,     //15: candidate2 has kIsUsed

    kNoSameRICH            =  0x8000,     //16:
    kNoSameInnerMDC        =  0x10000,    //17:
    kNoSameOuterMDC        =  0x20000,    //18:
    kNoSameMETA            =  0x40000,    //19:
    kNoSamePosPolarity     =  0x80000,    //20:
    kNoSameNegPolarity     =  0x100000,   //21:
    kNoSamePolarity        =  0x200000,   //22:

    kNoRICH2               =  0x400000,   //23: candidate2 has no RICH
    kNoFittedInnerMDC2     =  0x800000,   //24: candidate2 has no fitted inner MDC seg
    kNoFittedOuterMDC2     =  0x1000000,  //25: candidate2 has no fitted outer MDC seg
    kNoOuterMDC2           =  0x2000000,  //26: candidate2 has no outer MDC seg
    kNoRK2                 =  0x4000000,  //27: candidate2 has no fitted momentum
    kNoMETA2               =  0x8000000,  //28: candidate2 has no META hit
    kNoIsLepton2           =  0x10000000, //29: candidate2 has no kIsLepton
    kNoIsUsed2             =  0x20000000, //30: candidate2 has no kIsUsed
    kNoUseRICH             =  0x40000000  //31: do not take RICH into account

};

// predefined pair cases
enum ePairCase {
    // LEPTON CASES
    kPairCase1            = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase2            = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2,
    kPairCase3            = kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kRICH2|kOuterMDC2|kMETA2,
    kPairCase4            = kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase5            = kNoSameRICH|kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase6            = kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase7            = kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase8            = kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2,
    kPairCase9            = kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2,
    kPairCase10           = kSameRICH  |kSameInnerMDC  |kSameOuterMDC  |kNoSameMETA|kRICH2|kOuterMDC2|kMETA2,
    kPairCase11           = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2,
    kPairCase12           = kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2,
    kPairCase13           = kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2,
    kPairCase14           = kNoSameRICH|kNoSameInnerMDC                            |kRICH2|kNoOuterMDC2|kNoMETA2,
    kPairCase15           = kSameRICH  |kNoSameInnerMDC                            |kRICH2|kNoOuterMDC2|kNoMETA2,
    // HADRON CASES
    kPairCase16           = kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kOuterMDC2|kMETA2,
    kPairCase17           = kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kOuterMDC2|kMETA2,
    kPairCase18           = kNoUseRICH |kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kOuterMDC2|kMETA2,
    kPairCase19           = kNoUseRICH |kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kOuterMDC2|kMETA2,
    kPairCase20           = kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC|kSameMETA  |kOuterMDC2|kMETA2,
    kPairCase21           = kNoUseRICH |kSameInnerMDC  |kSameOuterMDC  |kNoSameMETA|kOuterMDC2|kMETA2,
    kPairCase22           = kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kOuterMDC2|kMETA2,
    kPairCase23           = kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC            |kOuterMDC2|kNoMETA2,
    kPairCase24           = kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC            |kOuterMDC2|kNoMETA2,
    kPairCase25           = kNoUseRICH |kNoSameInnerMDC                            |kNoOuterMDC2|kNoMETA2,
    // LEPTON HADRON MIXED CASES
    kPairCase26           = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2,
    kPairCase27           = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kNoRICH2|kOuterMDC2|kMETA2,
    kPairCase28           = kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kNoRICH2|kOuterMDC2|kMETA2,
    kPairCase29           = kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2,
    kPairCase30           = kNoSameRICH|kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2,
    kPairCase31           = kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC            |kNoRICH2|kOuterMDC2|kNoMETA2,
    kPairCase32           = kNoSameRICH|kNoSameInnerMDC                            |kNoRICH2|kNoOuterMDC2|kNoMETA2

};
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
//  flags for HParticleEvtInfo , event selectors
enum eEventSelect {  // all bits evaluate good

    kGoodVertexClust       = 0x01,        // 1: 1     good cluster vertex   (chi2>0, z > -65 (apr12), -160 (Jul14+aug14), >-70 (mar19)) (requires 1 track)
    kGoodVertexCand        = 0x02,        // 2: 2     good candidate vertex (chi2>0, z > -65 (apr12), -160 (Jul14+aug14), >-70 (mar19)) (requires at least 2 reconstructed particles)
    kGoodSTART             = 0x04,        // 3: 4     good StartHit         (object exists (+ corrflag > -1 if HParticleStart2HitF was used)
    kNoPileUpSTART         = 0x08,        // 4: 8     no pileup in START (object exists + no second cluster)
    kNoPileUpMETA          = 0x10,        // 5: 16    no pileup in META  (no objects tof<0 or tof>60, threshold 0 (pionbeam)  5 apr12
    kNoPileUpMDC           = 0x20,        // 6: 32    no pileup in MDC   (objects t1>200 (inner or t1>400 (outer)), threshold 7 (pionbeam) 35 (apr12))
    kNoFlashMDC            = 0x40,        // 7: 64    no flash event in MDC
    kGoodMDCMult           = 0x80,        // 8: 128   good sectors inside normal mult
    kGoodMDCMIPSMult       = 0x100,       // 9: 256   good sectors inside normal mult for MIPS
    kGoodLepMult           = 0x200,       //10: 512   good sectors inside normal lepton mult
    kGoodTRIGGER           = 0x400,       //11: 1024  phys trigger (pt1 jul14/aug14, pt3 apr12,mar19)
    kGoodSTART2            = 0x800,       //12: 2048  good StartHit         (object exists (+ corrflag ==2 if HParticleStart2HitF was used)
    kNoVETO                = 0x1000,      //13: 4096  no VETO hit +- 15ns arround START
    kGoodSTARTVETO         = 0x2000,      //14: 8192  no starthit >15ns <350ns uncorrelated with veto
    kGoodSTARTMETA         = 0x4000,      //15: 16384 no starthit >80ns <350ns  correlated with metahits
    kNoDeltaElectron       = 0x8000,      //16: 32768 no DeltaElect event in MDC
    kNoSTART               = 0x10000,     //17: 65536 no second START in +-15ns from START hit
    kNoEventPileUp         = 0x20000      //18: 131072 no Event pile up detected from Clusterfinder
};

// -------------------------------------------------------------------------
//  flags for beam times
enum eBeamTime {
    kUnknownBeam = 0,
    kApr12       = 1,
    kJul14       = 2,
    kAug14       = 3,
    kMar19       = 4

};

}

#endif // __HPARTICLEDEF_H__
 hparticledef.h:1
 hparticledef.h:2
 hparticledef.h:3
 hparticledef.h:4
 hparticledef.h:5
 hparticledef.h:6
 hparticledef.h:7
 hparticledef.h:8
 hparticledef.h:9
 hparticledef.h:10
 hparticledef.h:11
 hparticledef.h:12
 hparticledef.h:13
 hparticledef.h:14
 hparticledef.h:15
 hparticledef.h:16
 hparticledef.h:17
 hparticledef.h:18
 hparticledef.h:19
 hparticledef.h:20
 hparticledef.h:21
 hparticledef.h:22
 hparticledef.h:23
 hparticledef.h:24
 hparticledef.h:25
 hparticledef.h:26
 hparticledef.h:27
 hparticledef.h:28
 hparticledef.h:29
 hparticledef.h:30
 hparticledef.h:31
 hparticledef.h:32
 hparticledef.h:33
 hparticledef.h:34
 hparticledef.h:35
 hparticledef.h:36
 hparticledef.h:37
 hparticledef.h:38
 hparticledef.h:39
 hparticledef.h:40
 hparticledef.h:41
 hparticledef.h:42
 hparticledef.h:43
 hparticledef.h:44
 hparticledef.h:45
 hparticledef.h:46
 hparticledef.h:47
 hparticledef.h:48
 hparticledef.h:49
 hparticledef.h:50
 hparticledef.h:51
 hparticledef.h:52
 hparticledef.h:53
 hparticledef.h:54
 hparticledef.h:55
 hparticledef.h:56
 hparticledef.h:57
 hparticledef.h:58
 hparticledef.h:59
 hparticledef.h:60
 hparticledef.h:61
 hparticledef.h:62
 hparticledef.h:63
 hparticledef.h:64
 hparticledef.h:65
 hparticledef.h:66
 hparticledef.h:67
 hparticledef.h:68
 hparticledef.h:69
 hparticledef.h:70
 hparticledef.h:71
 hparticledef.h:72
 hparticledef.h:73
 hparticledef.h:74
 hparticledef.h:75
 hparticledef.h:76
 hparticledef.h:77
 hparticledef.h:78
 hparticledef.h:79
 hparticledef.h:80
 hparticledef.h:81
 hparticledef.h:82
 hparticledef.h:83
 hparticledef.h:84
 hparticledef.h:85
 hparticledef.h:86
 hparticledef.h:87
 hparticledef.h:88
 hparticledef.h:89
 hparticledef.h:90
 hparticledef.h:91
 hparticledef.h:92
 hparticledef.h:93
 hparticledef.h:94
 hparticledef.h:95
 hparticledef.h:96
 hparticledef.h:97
 hparticledef.h:98
 hparticledef.h:99
 hparticledef.h:100
 hparticledef.h:101
 hparticledef.h:102
 hparticledef.h:103
 hparticledef.h:104
 hparticledef.h:105
 hparticledef.h:106
 hparticledef.h:107
 hparticledef.h:108
 hparticledef.h:109
 hparticledef.h:110
 hparticledef.h:111
 hparticledef.h:112
 hparticledef.h:113
 hparticledef.h:114
 hparticledef.h:115
 hparticledef.h:116
 hparticledef.h:117
 hparticledef.h:118
 hparticledef.h:119
 hparticledef.h:120
 hparticledef.h:121
 hparticledef.h:122
 hparticledef.h:123
 hparticledef.h:124
 hparticledef.h:125
 hparticledef.h:126
 hparticledef.h:127
 hparticledef.h:128
 hparticledef.h:129
 hparticledef.h:130
 hparticledef.h:131
 hparticledef.h:132
 hparticledef.h:133
 hparticledef.h:134
 hparticledef.h:135
 hparticledef.h:136
 hparticledef.h:137
 hparticledef.h:138
 hparticledef.h:139
 hparticledef.h:140
 hparticledef.h:141
 hparticledef.h:142
 hparticledef.h:143
 hparticledef.h:144
 hparticledef.h:145
 hparticledef.h:146
 hparticledef.h:147
 hparticledef.h:148
 hparticledef.h:149
 hparticledef.h:150
 hparticledef.h:151
 hparticledef.h:152
 hparticledef.h:153
 hparticledef.h:154
 hparticledef.h:155
 hparticledef.h:156
 hparticledef.h:157
 hparticledef.h:158
 hparticledef.h:159
 hparticledef.h:160
 hparticledef.h:161
 hparticledef.h:162
 hparticledef.h:163
 hparticledef.h:164
 hparticledef.h:165
 hparticledef.h:166
 hparticledef.h:167
 hparticledef.h:168
 hparticledef.h:169
 hparticledef.h:170
 hparticledef.h:171
 hparticledef.h:172
 hparticledef.h:173
 hparticledef.h:174
 hparticledef.h:175
 hparticledef.h:176
 hparticledef.h:177
 hparticledef.h:178
 hparticledef.h:179
 hparticledef.h:180
 hparticledef.h:181
 hparticledef.h:182
 hparticledef.h:183
 hparticledef.h:184
 hparticledef.h:185
 hparticledef.h:186
 hparticledef.h:187
 hparticledef.h:188
 hparticledef.h:189
 hparticledef.h:190
 hparticledef.h:191
 hparticledef.h:192
 hparticledef.h:193
 hparticledef.h:194
 hparticledef.h:195
 hparticledef.h:196
 hparticledef.h:197
 hparticledef.h:198
 hparticledef.h:199
 hparticledef.h:200
 hparticledef.h:201
 hparticledef.h:202
 hparticledef.h:203
 hparticledef.h:204
 hparticledef.h:205
 hparticledef.h:206
 hparticledef.h:207
 hparticledef.h:208
 hparticledef.h:209
 hparticledef.h:210
 hparticledef.h:211
 hparticledef.h:212
 hparticledef.h:213
 hparticledef.h:214
 hparticledef.h:215
 hparticledef.h:216
 hparticledef.h:217
 hparticledef.h:218
 hparticledef.h:219
 hparticledef.h:220
 hparticledef.h:221
 hparticledef.h:222
 hparticledef.h:223
 hparticledef.h:224
 hparticledef.h:225
 hparticledef.h:226
 hparticledef.h:227
 hparticledef.h:228
 hparticledef.h:229
 hparticledef.h:230
 hparticledef.h:231
 hparticledef.h:232
 hparticledef.h:233
 hparticledef.h:234
 hparticledef.h:235
 hparticledef.h:236
 hparticledef.h:237
 hparticledef.h:238
 hparticledef.h:239
 hparticledef.h:240
 hparticledef.h:241
 hparticledef.h:242
 hparticledef.h:243
 hparticledef.h:244
 hparticledef.h:245
 hparticledef.h:246
 hparticledef.h:247
 hparticledef.h:248
 hparticledef.h:249
 hparticledef.h:250
 hparticledef.h:251
 hparticledef.h:252
 hparticledef.h:253
 hparticledef.h:254
 hparticledef.h:255
 hparticledef.h:256
 hparticledef.h:257
 hparticledef.h:258
 hparticledef.h:259
 hparticledef.h:260
 hparticledef.h:261
 hparticledef.h:262
 hparticledef.h:263
 hparticledef.h:264
 hparticledef.h:265
 hparticledef.h:266
 hparticledef.h:267
 hparticledef.h:268
 hparticledef.h:269
 hparticledef.h:270
 hparticledef.h:271
 hparticledef.h:272
 hparticledef.h:273
 hparticledef.h:274