#include "hparticleconstants.h"
#include "hparticledef.h"
#include "walldef.h"
#include "tofdef.h"
#include "hstartdef.h"
#include "rpcdef.h"
#include "richdef.h"
#include "hpiontrackerdef.h"
#include "hmdctrackgdef.h"
#include "hmdctrackddef.h"
#include "hkaldef.h"
#include "hmdcdef.h"
#include "showerdef.h"
#include "emcdef.h"
#include "hgeantdef.h"
#include "haddef.h"
#include "htrbnetdef.h"
#include "TError.h"
#include <string.h>
#include <iostream>
#include <iomanip>
using namespace std;
using namespace Particle;
ClassImp(HParticleConstants)
Bool_t HParticleConstants::addConstant(Long_t id, TString name, Int_t form,TString space,TString descr)
{
    if(nameToProp.find(name) == nameToProp.end() ){ 
	constantproperties prop;
	prop.fill(id,name,form,space,descr);
	nameToProp[name] = prop;
        vnames.push_back(name);
	return kTRUE;
    } else {
	::Error("HParticleConstants::addConstant()","name was used already before!");
	return kFALSE;
    }
}
void HParticleConstants::clearConstants()
{
    
    nameToProp.clear();
    vnames.clear();
}
vector<TString> HParticleConstants::initConstantNamesV(){
    vector<TString> n;
    return n;
}
map<TString,constantproperties> HParticleConstants::initConstantNames()
{
    
    
    map<TString ,constantproperties> nameToPropL;
    
    addConstant(catStart2Raw ,"catStart2Raw",0,"libStart","");
    addConstant(catStart2Cal ,"catStart2Cal",0,"libStart","");
    addConstant(catStart2Hit ,"catStart2Hit",0,"libStart","");
    addConstant(catTBoxChan  ,"catTBoxChan" ,0,"libStart","");
    
    addConstant(catRichRaw    ,"catRichRaw"    ,0,"libRich","");
    addConstant(catRichCal    ,"catRichCal"    ,0,"libRich","");
    addConstant(catRichHit    ,"catRichHit"    ,0,"libRich","");
    addConstant(catRichHitHdr ,"catRichHitHdr" ,0,"libRich","");
    addConstant(catRichDirClus,"catRichDirClus",0,"libRich","");
    addConstant(catRichTrack  ,"catRichTrack"  ,0,"libRich","");
    addConstant(catRich700Raw ,"catRich700Raw" ,0,"libRich","");
    
    addConstant(catMdcRaw           ,"catMdcRaw"           ,0,"libMdc","");
    addConstant(catMdcHit           ,"catMdcHit"           ,0,"libMdc","");
    addConstant(catMdcCal1          ,"catMdcCal1"          ,0,"libMdc","");
    addConstant(catMdcCal2          ,"catMdcCal2"          ,0,"libMdc","");
    addConstant(catMdcGeantCell     ,"catMdcGeantCell"     ,0,"libMdc","");
    addConstant(catMdcSeg           ,"catMdcSeg"           ,0,"libMdc","");
    addConstant(catMdcTrack         ,"catMdcTrack"         ,0,"libMdc","");
    addConstant(catMdcRawEventHeader,"catMdcRawEventHeader",0,"libMdc","");
    addConstant(catMdcTrkCand       ,"catMdcTrkCand"       ,0,"libMdc","");
    addConstant(catMdcDataWord      ,"catMdcDataWord"      ,0,"libMdc","");
    addConstant(catMdcSlope         ,"catMdcSlope"         ,0,"libMdc","");
    addConstant(catMdcRawCor        ,"catMdcRawCor"        ,0,"libMdc","");
    addConstant(catMdcHitIdeal      ,"catMdcHitIdeal"      ,0,"libMdc","");
    addConstant(catMdcSegIdeal      ,"catMdcSegIdeal"      ,0,"libMdc","");
    addConstant(catMdcTrkCandIdeal  ,"catMdcTrkCandIdeal"  ,0,"libMdc","");
    addConstant(catMdcOepStatus     ,"catMdcOepStatus"     ,0,"libMdc","");
    
    addConstant(catMdcClus    ,"catMdcClus"   ,0,"libMdcTrackD","");
    addConstant(catMdcClusFit ,"catMdcClusFit",0,"libMdcTrackD","");
    addConstant(catMdcWireFit ,"catMdcWireFit",0,"libMdcTrackD","");
    addConstant(catMdcClusInf ,"catMdcClusInf",0,"libMdcTrackD","");
    
    addConstant(catBaseTrack     ,"catBaseTrack"    ,0,"libMdcTrackG","");
    addConstant(catSplineTrack   ,"catSplineTrack"  ,0,"libMdcTrackG","");
    addConstant(catMetaMatch     ,"catMetaMatch"    ,0,"libMdcTrackG","");
    addConstant(catKickTrack123B ,"catKickTrack123B",0,"libMdcTrackG","");
    addConstant(catRKTrackB      ,"catRKTrackB"     ,0,"libMdcTrackG","");
    addConstant(catSplinePar     ,"catSplinePar"    ,0,"libMdcTrackG","");
    addConstant(catKalTrack      ,"catKalTrack"     ,0,"libMdcTrackG","");
    addConstant(catKalSite       ,"catKalSite"      ,0,"libMdcTrackG","");
    addConstant(catKalHitWire    ,"catKalHitWire"   ,0,"libMdcTrackG","");
    addConstant(catKalHit2d      ,"catKalHit2d"     ,0,"libMdcTrackG","");
    
    addConstant(catTofRaw     ,"catTofRaw"    ,0,"libTof","");
    addConstant(catTofHit     ,"catTofHit"    ,0,"libTof","");
    addConstant(catTofCal     ,"catTofCal"    ,0,"libTof","");
    addConstant(catTofCluster ,"catTofCluster",0,"libTof","");
    addConstant(catTofRawTmp  ,"catTofRawTmp" ,0,"libTof","");
    addConstant(catTofHitTmp  ,"catTofHitTmp" ,0,"libTof","");
    
    addConstant(catRpcRaw     ,"catRpcRaw"    ,0,"libRpc","");
    addConstant(catRpcCal     ,"catRpcCal"    ,0,"libRpc","");
    addConstant(catRpcHit     ,"catRpcHit"    ,0,"libRpc","");
    addConstant(catRpcCluster ,"catRpcCluster",0,"libRpc","");
    addConstant(catRpcCalTmp  ,"catRpcCalTmp" ,0,"libRpc","");
    
    addConstant(catShowerRaw         ,"catShowerRaw"        ,0,"libShower","");
    addConstant(catShowerHit         ,"catShowerHit"        ,0,"libShower","");
    addConstant(catShowerCal         ,"catShowerCal"        ,0,"libShower","");
    addConstant(catShowerGeantWire   ,"catShowerGeantWire"  ,0,"libShower","");
    addConstant(catShowerPID         ,"catShowerPID"        ,0,"libShower","");
    addConstant(catShowerTrack       ,"catShowerTrack"      ,0,"libShower","");
    addConstant(catShowerRawMatr     ,"catShowerRawMatr"    ,0,"libShower","");
    addConstant(catShowerHitHdr      ,"catShowerHitHdr"     ,0,"libShower","");
    addConstant(catShowerPIDTrack    ,"catShowerPIDTrack"   ,0,"libShower","");
    addConstant(catShowerHitTof      ,"catShowerHitTof"     ,0,"libShower","");
    addConstant(catShowerHitTofTrack ,"catShowerHitTofTrack",0,"libShower","");
    
    addConstant(catEmcRaw     ,"catEmcRaw"    ,0,"libEmc","");
    addConstant(catEmcCal     ,"catEmcCal"    ,0,"libEmc","");
    addConstant(catEmcCalQA   ,"catEmcCalQA"  ,0,"libEmc","");
    addConstant(catEmcCluster ,"catEmcCluster",0,"libEmc","");
    
    addConstant(catWallRaw        ,"catWallRaw"       ,0,"libWall","");
    addConstant(catWallCal        ,"catWallCal"       ,0,"libWall","");
    addConstant(catWallOneHit     ,"catWallOneHit"    ,0,"libWall","");
    addConstant(catWallHit        ,"catWallHit"       ,0,"libWall","");
    addConstant(catWallEventPlane ,"catWallEventPlane",0,"libWall","");
    
    addConstant(catPionTrackerRaw   ,"catPionTrackerRaw"  ,0,"libPionTracker","");
    addConstant(catPionTrackerCal   ,"catPionTrackerCal"  ,0,"libPionTracker","");
    addConstant(catPionTrackerHit   ,"catPionTrackerHit"  ,0,"libPionTracker","");
    addConstant(catPionTrackerTrack ,"catPionTrackerTrack",0,"libPionTracker","");
    
    addConstant(catGeantHeader    ,"catGeantHeader"   ,0,"libHydra","");
    addConstant(catGeantKine      ,"catGeantKine"     ,0,"libHydra","");
    addConstant(catMdcGeantRaw    ,"catMdcGeantRaw"   ,0,"libHydra","");
    addConstant(catRichGeantRaw   ,"catRichGeantRaw"  ,0,"libHydra","");
    addConstant(catShowerGeantRaw ,"catShowerGeantRaw",0,"libHydra","");
    addConstant(catTofGeantRaw    ,"catTofGeantRaw"   ,0,"libHydra","");
    addConstant(catStartGeantRaw  ,"catStartGeantRaw" ,0,"libHydra","");
    addConstant(catWallGeantRaw   ,"catWallGeantRaw"  ,0,"libHydra","");
    addConstant(catRpcGeantRaw    ,"catRpcGeantRaw"   ,0,"libHydra","");
    addConstant(catEmcGeantRaw    ,"catEmcGeantRaw"   ,0,"libHydra","");
    addConstant(catMdc         ,"catMdc"        ,0,"libHydra","");
    addConstant(catRich        ,"catRich"       ,0,"libHydra","");
    addConstant(catShower      ,"catShower"     ,0,"libHydra","");
    addConstant(catTof         ,"catTof"        ,0,"libHydra","");
    addConstant(catStart       ,"catStart"      ,0,"libHydra","");
    addConstant(catTofino      ,"catTofino"     ,0,"libHydra","");
    addConstant(catWall        ,"catWall"       ,0,"libHydra","");
    addConstant(catHodo        ,"catHodo"       ,0,"libHydra","");
    addConstant(catSimul       ,"catSimul"      ,0,"libHydra","");
    addConstant(catRpc         ,"catRpc"        ,0,"libHydra","");
    addConstant(catEmc         ,"catEmc"        ,0,"libHydra","");
    addConstant(catPionTracker ,"catPionTracker",0,"libHydra","");
    addConstant(catMatchU      ,"catMatchU"     ,0,"libHydra","");
    addConstant(catTracks      ,"catTracks"     ,0,"libHydra","");
    addConstant(catPhyAna      ,"catPhyAna"     ,0,"libHydra","");
    addConstant(catPairs       ,"catPairs"      ,0,"libHydra","");
    addConstant(catParticle    ,"catParticle"   ,0,"libHydra","");
    addConstant(catTrbNet      ,"catTrbNet"     ,0,"libHydra","");
    addConstant(catFlex        ,"catFlex"       ,0,"libHydra","");
    addConstant(catTrack       ,"catTrack"      ,0,"libHydra","");
    addConstant(catInvalid     ,"catInvalid"    ,0,"libHydra","");
    addConstant(catParticleEvtInfo   ,"catParticleEvtInfo"   ,0,"libParticle","");
    addConstant(catParticleCal       ,"catParticleCal"       ,0,"libParticle","");
    addConstant(catParticlePair      ,"catParticlePair"      ,0,"libParticle","");
    addConstant(catParticleMdc       ,"catParticleMdc"       ,0,"libParticle","");
    addConstant(catParticleBtRing    ,"catParticleBtRing"    ,0,"libParticle","");
    addConstant(catParticleBtRingInfo,"catParticleBtRingInfo",0,"libParticle","");
    
    addConstant(kSkipEvent     ,"kSkipEvent"    ,0,"libHydra","Return value for HTask to signal skipping full event");
    
    addConstant(Kalman::kSecCoord        ,"kSecCoord"       ,0,"Kalman::coordSys","Sector coordinate system");
    addConstant(Kalman::kLayCoord        ,"kLayCoord"       ,0,"Kalman::coordSys","Virtual layer coordinate system");
    addConstant(Kalman::kKalConv         ,"kKalConv"        ,0,"Kalman::filtMethod","Math methods for matrix opererations");
    addConstant(Kalman::kKalJoseph       ,"kKalJoseph"      ,0,"Kalman::filtMethod","Math methods for matrix opererations");
    addConstant(Kalman::kKalUD           ,"kKalUD"          ,0,"Kalman::filtMethod","Math methods for matrix opererations");
    addConstant(Kalman::kKalSeq          ,"kKalSeq"         ,0,"Kalman::filtMethod","Math methods for matrix opererations");
    addConstant(Kalman::kKalSwer         ,"kKalSwer"        ,0,"Kalman::filtMethod","Math methods for matrix opererations");
    addConstant(Kalman::kWireHit         ,"kWireHit"        ,0,"Kalman::kalHitTypes","Work with drift chamber hits");
    addConstant(Kalman::kSegHit          ,"kSegHit"         ,0,"Kalman::kalHitTypes","Work with 2D segment hits");
    addConstant(Kalman::kPredicted       ,"kPredicted"      ,0,"Kalman::kalFilterTypes","Kalman state");
    addConstant(Kalman::kFiltered        ,"kFiltered"       ,0,"Kalman::kalFilterTypes","Kalman state");
    addConstant(Kalman::kSmoothed        ,"kSmoothed"       ,0,"Kalman::kalFilterTypes","Kalman state");
    addConstant(Kalman::kInvFiltered     ,"kInvFiltered"    ,0,"Kalman::kalFilterTypes","Kalman state");
    addConstant(Kalman::kIdxX0           ,"kIdxX0"          ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kIdxY0           ,"kIdxY0"          ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kIdxTanPhi       ,"kIdxTanPhi"      ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kIdxTanTheta     ,"kIdxTanTheta"    ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kIdxQP           ,"kIdxQP"          ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kIdxZ0           ,"kIdxZ0"          ,0,"Kalman::kalStateIdx","TrackState variables");
    addConstant(Kalman::kNoRot           ,"kNoRot"          ,0,"Kalman::kalRotateOptions","Do not Rotate coordinate so that it points in inital track direction");
    addConstant(Kalman::kVarRot          ,"kVarRot"         ,0,"Kalman::kalRotateOptions","Rotate coordinate so that it points in inital track direction");
    addConstant(Kalman::kMatIdxA         ,"kMatIdxA"        ,0,"Kalman::matIdx","Material property");
    addConstant(Kalman::kMatIdxZ         ,"kMatIdxZ"        ,0,"Kalman::matIdx","Material property");
    addConstant(Kalman::kMatIdxDensity   ,"kMatIdxDensity"  ,0,"Kalman::matIdx","Material property");
    addConstant(Kalman::kMatIdxExEner    ,"kMatIdxExEner"   ,0,"Kalman::matIdx","Material property");
    addConstant(Kalman::kMatIdxRadLength ,"kMatIdxRadLength",0,"Kalman::matIdx","Material property");
    
    addConstant(kNoUse    ,"kNoUse"    ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kTofClst  ,"kTofClst"  ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kTofHit1  ,"kTofHit1"  ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kTofHit2  ,"kTofHit2"  ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kRpcClst  ,"kRpcClst"  ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kShowerHit,"kShowerHit",0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    addConstant(kEmcClst  ,"kEmcClst"  ,0,"Particle::eSelMeta","Selected META hit type in HParticleCand");
    
    addConstant(kIsNotSet     ,"kIsNotSet"    ,1,"Particle::eDetBits","This object does not contain valid data");
    addConstant(kIsInRICHIPU  ,"kIsInRICHIPU" ,1,"Particle::eDetBits","1    RICH IPU has seen this trackid");
    addConstant(kIsInOuterMDC ,"kIsInOuterMDC",1,"Particle::eDetBits","2    Outer Mdc has seen this trackid");
    addConstant(kIsInRICH     ,"kIsInRICH"    ,1,"Particle::eDetBits","4    RICH has seen this trackid");
    addConstant(kIsInInnerMDC ,"kIsInInnerMDC",1,"Particle::eDetBits","8    Inner Mdc has seen this trackid");
    addConstant(kIsInSHOWER   ,"kIsInSHOWER"  ,1,"Particle::eDetBits","16   Shower has seen this trackid");
    addConstant(kIsInEMC      ,"kIsInEMC"     ,1,"Particle::eDetBits","16   EMC has seen this trackid (SHOWER and EMC will not be used together)");
    addConstant(kIsInTOF      ,"kIsInTOF"     ,1,"Particle::eDetBits","32   TOF has seen this trackid");
    addConstant(kIsInRPC      ,"kIsInRPC"     ,1,"Particle::eDetBits","64   Rpc has seen this trackid");
    addConstant(kIsInMETA     ,"kIsInMETA"    ,1,"Particle::eDetBits","128  One of the Meta dets has seen this trackid");
    addConstant(kIsGhost      ,"kIsGhost"     ,1,"Particle::eDetBits","256  Tracking Ghost");
    addConstant(kIsInnerGhost ,"kIsInnerGhost",1,"Particle::eDetBits","512  Tracking Ghost in inner MDC");
    addConstant(kIsOuterGhost ,"kIsOuterGhost",1,"Particle::eDetBits","1024 Tracking Ghost in outer MDC");
    
    addConstant(kIsNoMatch ,"kIsNoMatch",1,"Particle::eMatching","This object does not contain valid data");
    addConstant(kIsRICHMDC ,"kIsRICHMDC",1,"Particle::eMatching","1 RICH MDC matching");
    addConstant(kIsRICHRK  ,"kIsRICHRK" ,1,"Particle::eMatching","2 RICH RK matching");
    
    addConstant(kVertexCluster  ,"kVertexCluster"  ,0,"Particle::eVertex","vertex from cluster finder");
    addConstant(kVertexSegment  ,"kVertexSegment"  ,0,"Particle::eVertex","vertex from fitted inner segments");
    addConstant(kVertexParticle ,"kVertexParticle" ,0,"Particle::eVertex","vertex from reconstructed particle candidates");
    addConstant(kVertexUser     ,"kVertexUser"     ,0,"Particle::eVertex","vertex provided by user");
    
    addConstant(kMomSpline ,"kMomSpline",0,"Particle::eMomReco","from spline");
    addConstant(kMomRK     ,"kMomRK"    ,0,"Particle::eMomReco","from runge kutta");
    addConstant(kMomKalman ,"kMomKalman",0,"Particle::eMomReco","from kalman");
    
    addConstant(kIsUS    ,"kIsUS"   ,0,"Particle::ePair","This pair is unlike sign");
    addConstant(kIsLSPos ,"kIsLSPos",0,"Particle::ePair","This pair is like sign, both positive");
    addConstant(kIsLSNeg ,"kIsLSNeg",0,"Particle::ePair","This pair is like sign, both negative");
    
    addConstant(kIsDoubleHitRICH          ,"kIsDoubleHitRICH"          ,0,"Particle::eFlagBits","RICH hit has been used more than once in event");
    addConstant(kIsDoubleHitInnerMDC      ,"kIsDoubleHitInnerMDC"      ,0,"Particle::eFlagBits","Inner MDC seg has been used more than once in event");
    addConstant(kIsDoubleHitOuterMDC      ,"kIsDoubleHitOuterMDC"      ,0,"Particle::eFlagBits","Outer MDC seg has been used more than once in event");
    addConstant(kIsDoubleHitMETA          ,"kIsDoubleHitMETA"          ,0,"Particle::eFlagBits","META HIT has been used more than once in event");
    addConstant(kIsBestHitRICH            ,"kIsBestHitRICH"            ,0,"Particle::eFlagBits","Hit exists");
    addConstant(kIsBestHitInnerMDC        ,"kIsBestHitInnerMDC"        ,0,"Particle::eFlagBits","(by chi2,  chi2 >= 0 )");
    addConstant(kIsBestHitOuterMDC        ,"kIsBestHitOuterMDC"        ,0,"Particle::eFlagBits","(by chi2 , chi2 >= 0 )");
    addConstant(kIsBestHitMETA            ,"kIsBestHitMETA"            ,0,"Particle::eFlagBits","(by RKMETA match quality)");
    addConstant(kIsBestRK                 ,"kIsBestRK"                 ,0,"Particle::eFlagBits","(by RK chi2, none fitted outer segments with lower priority)");
    addConstant(kIsBestRKRKMETA           ,"kIsBestRKRKMETA"           ,0,"Particle::eFlagBits","(by RK chi2 * RK META match quality)");
    addConstant(kIsBestRKRKMETARadius     ,"kIsBestRKRKMETARadius"     ,0,"Particle::eFlagBits","(by RK chi2 * RK META match radius)");
    addConstant(kIsBestUser               ,"kIsBestUser"               ,0,"Particle::eFlagBits","(user function)");
    addConstant(kIsAcceptedHitRICH        ,"kIsAcceptedHitRICH"        ,0,"Particle::eFlagBits","Hit exists");
    addConstant(kIsAcceptedHitRICHMDC     ,"kIsAcceptedHitRICHMDC"     ,0,"Particle::eFlagBits","RICH hit + ring correlation segment");
    addConstant(kIsAcceptedHitInnerMDC    ,"kIsAcceptedHitInnerMDC"    ,0,"Particle::eFlagBits","needs inner MDC chi2 >= 0");
    addConstant(kIsAcceptedHitOuterMDC    ,"kIsAcceptedHitOuterMDC"    ,0,"Particle::eFlagBits","needs outer MDC chi2 >= 0");
    addConstant(kIsAcceptedHitMETA        ,"kIsAcceptedHitMETA"        ,0,"Particle::eFlagBits","needs Meta Hit");
    addConstant(kIsAcceptedRKMETA         ,"kIsAcceptedRKMETA"         ,0,"Particle::eFlagBits","needs RK chi2 >= 0 + Meta hit");
    addConstant(kIsAcceptedRKRICH         ,"kIsAcceptedRKRICH"         ,0,"Particle::eFlagBits","needs RK chi2 >= 0 + RICH hit + ring correlation after RK");
    addConstant(kIsAcceptedRK             ,"kIsAcceptedRK"             ,0,"Particle::eFlagBits","needs RK chi2 >= 0");
    addConstant(kIsAcceptedRKRKMETA       ,"kIsAcceptedRKRKMETA"       ,0,"Particle::eFlagBits","needs RK chi2 >= 0 + Meta hit");
    addConstant(kIsAcceptedRKRKMETARadius ,"kIsAcceptedRKRKMETARadius" ,0,"Particle::eFlagBits","needs RK chi2 >= 0 + Meta hit");
    addConstant(kIsAcceptedUser           ,"kIsAcceptedUser"           ,0,"Particle::eFlagBits","needs RK chi2 >= 0 + Meta hit");
    addConstant(kIsLepton                 ,"kIsLepton"                 ,0,"Particle::eFlagBits","mark the selected leptons");
    addConstant(kIsUsed                   ,"kIsUsed"                   ,0,"Particle::eFlagBits","mark the object as arleady used");
    addConstant(kIsRejected               ,"kIsRejected"               ,0,"Particle::eFlagBits","mark the object as rejected");
    
    addConstant(kUseRICHIndexSorter         ,"kUseRICHIndexSorter"         ,0,"Particle::ERichMatch","require RICH valid index");
    addConstant(kUseRKRICHCorrelationSorter ,"kUseRKRICHCorrelationSorter" ,0,"Particle::ERichMatch","require RK-RICH correlation (from HPidTrackCand)");
    addConstant(kUseRKRICHWindowSorter      ,"kUseRKRICHWindowSorter"      ,0,"Particle::ERichMatch","require RK-RICH matching inside +- window");
    
    addConstant(kIsLeptonSorter ,"kIsLeptonSorter" ,0,"Particle::ESelect","run from selectLepton()");
    addConstant(kIsHadronSorter ,"kIsHadronSorter" ,0,"Particle::ESelect","run from selectHadron()");
    
    addConstant(kIsIndexRICHSorter          ,"kIsIndexRICHSorter"          ,0,"Particle::ESwitch","");
    addConstant(kIsIndexInnerMDCSorter      ,"kIsIndexInnerMDCSorter"      ,0,"Particle::ESwitch","");
    addConstant(kIsIndexOuterMDCSorter      ,"kIsIndexOuterMDCSorter"      ,0,"Particle::ESwitch","");
    addConstant(kIsIndexTOFSorter           ,"kIsIndexTOFSorter"           ,0,"Particle::ESwitch","");
    addConstant(kIsIndexSHOWERSorter        ,"kIsIndexSHOWERSorter"        ,0,"Particle::ESwitch","");
    addConstant(kIsIndexRPCSorter           ,"kIsIndexRPCSorter"           ,0,"Particle::ESwitch","");
    addConstant(kIsIndexMETASorter          ,"kIsIndexMETASorter"          ,0,"Particle::ESwitch","");
    addConstant(kIsBestHitRICHSorter        ,"kIsBestHitRICHSorter"        ,0,"Particle::ESwitch","");
    addConstant(kIsBestHitInnerMDCSorter    ,"kIsBestHitInnerMDCSorter"    ,0,"Particle::ESwitch","(by chi2)");
    addConstant(kIsBestHitOuterMDCSorter    ,"kIsBestHitOuterMDCSorter"    ,0,"Particle::ESwitch","(by chi2)");
    addConstant(kIsBestHitMETASorter        ,"kIsBestHitMETASorter"        ,0,"Particle::ESwitch","(by RK META match quality)");
    addConstant(kIsBestRKRKMETASorter       ,"kIsBestRKRKMETASorter"       ,0,"Particle::ESwitch","(by RK chi2 * RK META match quality)");
    addConstant(kIsBestRKRKMETARadiusSorter ,"kIsBestRKRKMETARadiusSorter" ,0,"Particle::ESwitch","(by RK chi2 * RK META match radius)");
    addConstant(kIsBestUserSorter           ,"kIsBestUserSorter"           ,0,"Particle::ESwitch","(by userFunction)");
    
    addConstant(kSameRICH          ,"kSameRICH"          ,1,"Particle::eClosePairSelect","candidates share same RICH hit");
    addConstant(kSameInnerMDC      ,"kSameInnerMDC"      ,1,"Particle::eClosePairSelect","candidates share innerMDC seg");
    addConstant(kSameOuterMDC      ,"kSameOuterMDC"      ,1,"Particle::eClosePairSelect","candidates share outerMDC seg");
    addConstant(kSameMETA          ,"kSameMETA"          ,1,"Particle::eClosePairSelect","candidates share META hit (used META)");
    addConstant(kSamePosPolarity   ,"kSamePosPolarity"   ,1,"Particle::eClosePairSelect","candidates share have same positive polarity (polarity has to be defined)");
    addConstant(kSameNegPolarity   ,"kSameNegPolarity"   ,1,"Particle::eClosePairSelect","candidates share have same negative polarity (polarity has to be defined)");
    addConstant(kSamePolarity      ,"kSamePolarity"      ,1,"Particle::eClosePairSelect","candidates share have same polarity (polarity has to be defined)");
    addConstant(kRICH2             ,"kRICH2"             ,1,"Particle::eClosePairSelect","candidate2 has RICH");
    addConstant(kFittedInnerMDC2   ,"kFittedInnerMDC2"   ,1,"Particle::eClosePairSelect","candidate2 has fitted inner MDC seg");
    addConstant(kFittedOuterMDC2   ,"kFittedOuterMDC2"   ,1,"Particle::eClosePairSelect","candidate2 has fitted outer MDC seg");
    addConstant(kOuterMDC2         ,"kOuterMDC2"         ,1,"Particle::eClosePairSelect","candidate2 has outer MDC seg");
    addConstant(kRK2               ,"kRK2"               ,1,"Particle::eClosePairSelect","candidate2 has fitted momentum");
    addConstant(kMETA2             ,"kMETA2"             ,1,"Particle::eClosePairSelect","candidate2 has META hit");
    addConstant(kIsLepton2         ,"kIsLepton2"         ,1,"Particle::eClosePairSelect","candidate2 has kIsLepton");
    addConstant(kIsUsed2           ,"kIsUsed2"           ,1,"Particle::eClosePairSelect","candidate2 has kIsUsed");
    addConstant(kNoSameRICH        ,"kNoSameRICH"        ,1,"Particle::eClosePairSelect","candidates do not share RICH hit");
    addConstant(kNoSameInnerMDC    ,"kNoSameInnerMDC"    ,1,"Particle::eClosePairSelect","candidates do not share innerMDC seg");
    addConstant(kNoSameOuterMDC    ,"kNoSameOuterMDC"    ,1,"Particle::eClosePairSelect","candidates do not share outerMDC seg");
    addConstant(kNoSameMETA        ,"kNoSameMETA"        ,1,"Particle::eClosePairSelect","candidates do not share META hit");
    addConstant(kNoSamePosPolarity ,"kNoSamePosPolarity" ,1,"Particle::eClosePairSelect","candidates have not same pos polarity");
    addConstant(kNoSameNegPolarity ,"kNoSameNegPolarity" ,1,"Particle::eClosePairSelect","candidates have not same neg polarity");
    addConstant(kNoSamePolarity    ,"kNoSamePolarity"    ,1,"Particle::eClosePairSelect","candidates have not same polarity");
    addConstant(kNoRICH2           ,"kNoRICH2"           ,1,"Particle::eClosePairSelect","candidate2 has no RICH");
    addConstant(kNoFittedInnerMDC2 ,"kNoFittedInnerMDC2" ,1,"Particle::eClosePairSelect","candidate2 has no fitted inner MDC seg");
    addConstant(kNoFittedOuterMDC2 ,"kNoFittedOuterMDC2" ,1,"Particle::eClosePairSelect","candidate2 has no fitted outer MDC seg");
    addConstant(kNoOuterMDC2       ,"kNoOuterMDC2"       ,1,"Particle::eClosePairSelect","candidate2 has no outer MDC seg");
    addConstant(kNoRK2             ,"kNoRK2"             ,1,"Particle::eClosePairSelect","candidate2 has no fitted momentum");
    addConstant(kNoMETA2           ,"kNoMETA2"           ,1,"Particle::eClosePairSelect","candidate2 has no META hit");
    addConstant(kNoIsLepton2       ,"kNoIsLepton2"       ,1,"Particle::eClosePairSelect","candidate2 has no kIsLepton");
    addConstant(kNoIsUsed2         ,"kNoIsUsed2"         ,1,"Particle::eClosePairSelect","candidate2 has no kIsUsed");
    addConstant(kNoUseRICH         ,"kNoUseRICH"         ,1,"Particle::eClosePairSelect","do not take RICH into account");
    
    addConstant(kPairCase1 ,"kPairCase1"  ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase2 ,"kPairCase2"  ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase3 ,"kPairCase3"  ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase4 ,"kPairCase4"  ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase5 ,"kPairCase5"  ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase6 ,"kPairCase6"  ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase7 ,"kPairCase7"  ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase8 ,"kPairCase8"  ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase9 ,"kPairCase9"  ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC|kSameMETA  |kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase10,"kPairCase10" ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kSameInnerMDC  |kSameOuterMDC  |kNoSameMETA|kRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase11,"kPairCase11" ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2");
    addConstant(kPairCase12,"kPairCase12" ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kNoSameInnerMDC|kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2");
    addConstant(kPairCase13,"kPairCase13" ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kSameInnerMDC  |kNoSameOuterMDC            |kRICH2|kOuterMDC2|kNoMETA2");
    addConstant(kPairCase14,"kPairCase14" ,1,"Particle::ePairCase","LEPTON: kNoSameRICH|kNoSameInnerMDC                            |kRICH2|kNoOuterMDC2|kNoMETA2");
    addConstant(kPairCase15,"kPairCase15" ,1,"Particle::ePairCase","LEPTON: kSameRICH  |kNoSameInnerMDC                            |kRICH2|kNoOuterMDC2|kNoMETA2");
    addConstant(kPairCase16 ,"kPairCase16",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kOuterMDC2|kMETA2");
    addConstant(kPairCase17 ,"kPairCase17",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kOuterMDC2|kMETA2");
    addConstant(kPairCase18 ,"kPairCase18",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kOuterMDC2|kMETA2");
    addConstant(kPairCase19 ,"kPairCase19",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kOuterMDC2|kMETA2");
    addConstant(kPairCase20 ,"kPairCase20",1,"Particle::ePairCase","HADRON: kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC|kSameMETA  |kOuterMDC2|kMETA2");
    addConstant(kPairCase21 ,"kPairCase21",1,"Particle::ePairCase","HADRON: kNoUseRICH |kSameInnerMDC  |kSameOuterMDC  |kNoSameMETA|kOuterMDC2|kMETA2");
    addConstant(kPairCase22 ,"kPairCase22",1,"Particle::ePairCase","HADRON: kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kOuterMDC2|kMETA2");
    addConstant(kPairCase23 ,"kPairCase23",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC|kNoSameOuterMDC            |kOuterMDC2|kNoMETA2");
    addConstant(kPairCase24 ,"kPairCase24",1,"Particle::ePairCase","HADRON: kNoUseRICH |kSameInnerMDC  |kNoSameOuterMDC            |kOuterMDC2|kNoMETA2");
    addConstant(kPairCase25 ,"kPairCase25",1,"Particle::ePairCase","HADRON: kNoUseRICH |kNoSameInnerMDC                            |kNoOuterMDC2|kNoMETA2");
    addConstant(kPairCase26 ,"kPairCase26",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase27 ,"kPairCase27",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC|kSameMETA  |kNoRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase28 ,"kPairCase28",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kSameMETA  |kNoRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase29 ,"kPairCase29",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC|kSameOuterMDC  |kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase30 ,"kPairCase30",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kSameInnerMDC  |kNoSameOuterMDC|kNoSameMETA|kNoRICH2|kOuterMDC2|kMETA2");
    addConstant(kPairCase31 ,"kPairCase31",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC|kNoSameOuterMDC            |kNoRICH2|kOuterMDC2|kNoMETA2");
    addConstant(kPairCase32 ,"kPairCase32",1,"Particle::ePairCase","LEP+HADRON: kNoSameRICH|kNoSameInnerMDC                            |kNoRICH2|kNoOuterMDC2|kNoMETA2");
    
    addConstant(kGoodVertexClust ,"kGoodVertexClust" ,1,"Particle::eEventSelect","1     good cluster vertex   (chi2>0, z > -65 (apr12), -160 (Jul14+aug14), >-70 (mar19)) (requires 1 track)");
    addConstant(kGoodVertexCand  ,"kGoodVertexCand"  ,1,"Particle::eEventSelect","2     good candidate vertex (chi2>0, z > -65 (apr12), -160 (Jul14+aug14), >-70 (mar19)) (requires at least 2 reconstructed particles)");
    addConstant(kGoodSTART       ,"kGoodSTART"       ,1,"Particle::eEventSelect","4     good StartHit         (object exists (+ corrflag > -1 if HParticleStart2HitF was used)");
    addConstant(kNoPileUpSTART   ,"kNoPileUpSTART"   ,1,"Particle::eEventSelect","8     no pileup in START (object exists + no second cluster)");
    addConstant(kNoPileUpMETA    ,"kNoPileUpMETA"    ,1,"Particle::eEventSelect","16    no pileup in META  (no objects tof<0 or tof>60, threshold 0 (pionbeam)  5 apr12");
    addConstant(kNoPileUpMDC     ,"kNoPileUpMDC"     ,1,"Particle::eEventSelect","32    no pileup in MDC   (objects t1>200 (inner or t1>400 (outer)), threshold 7 (pionbeam) 35 (apr12))");
    addConstant(kNoFlashMDC      ,"kNoFlashMDC"      ,1,"Particle::eEventSelect","64    no flash event in MDC");
    addConstant(kGoodMDCMult     ,"kGoodMDCMult"     ,1,"Particle::eEventSelect","128   good sectors inside normal mult");
    addConstant(kGoodMDCMIPSMult ,"kGoodMDCMIPSMult" ,1,"Particle::eEventSelect","256   good sectors inside normal mult for MIPS");
    addConstant(kGoodLepMult     ,"kGoodLepMult"     ,1,"Particle::eEventSelect","512   good sectors inside normal lepton mult");
    addConstant(kGoodTRIGGER     ,"kGoodTRIGGER"     ,1,"Particle::eEventSelect","1024  phys trigger (pt1 jul14/aug14, pt3 apr12,mar19)");
    addConstant(kGoodSTART2      ,"kGoodSTART2"      ,1,"Particle::eEventSelect","2048  good StartHit (object exists (+ corrflag ==2 if HParticleStart2HitF was used");
    addConstant(kNoVETO          ,"kNoVETO"          ,1,"Particle::eEventSelect","4096  no VETO hit +- 15ns arround START");
    addConstant(kGoodSTARTVETO   ,"kGoodSTARTVETO"   ,1,"Particle::eEventSelect","8192  no starthit >15ns <350ns uncorrelated with veto");
    addConstant(kGoodSTARTMETA   ,"kGoodSTARTMETA"   ,1,"Particle::eEventSelect","16384 no starthit >80ns <350ns  correlated with metahits");
    addConstant(kNoDeltaElectron ,"kNoDeltaElectron" ,1,"Particle::eEventSelect","32768 no DeltaElect event in MDC");
    addConstant(kNoSTART         ,"kNoSTART"         ,1,"Particle::eEventSelect","65536 no second START in +-15ns from START hit");
    addConstant(kNoEventPileUp   ,"kNoEventPileUp"   ,1,"Particle::eEventSelect","131072 no Event pile up detected from Clusterfinder");
    
    addConstant(kUnknownBeam ,"kUnknownBeam" ,0,"Particle::eBeamTime","");
    addConstant(kApr12       ,"kApr12"       ,0,"Particle::eBeamTime","");
    addConstant(kJul14       ,"kJul14"       ,0,"Particle::eBeamTime","");
    addConstant(kAug14       ,"kAug14"       ,0,"Particle::eBeamTime","");
    addConstant(kMar19       ,"kMar19"       ,0,"Particle::eBeamTime","");
    return nameToPropL;
}
void HParticleConstants::print(Bool_t sort){
    ::Info("HParticleConstants::print()","Printing table of all known particle constants:");
    if(sort){
	map<TString,constantproperties>::iterator iter;
	for( iter = nameToProp.begin(); iter != nameToProp.end(); ++iter ) {
	    iter->second.print();
	}
	cout<<endl;
    } else {
	for(UInt_t i=0;i<vnames.size();i++){
	    map<TString,constantproperties>::iterator iter = nameToProp.find(vnames[i]);
	    if(iter != nameToProp.end()) iter->second.print();
	    else {
		::Error("HParticleConstants::getValue", "No constant with name=%s", vnames[i].Data());
	    }
	}
    }
}
void HParticleConstants::printValue(TString name)
{
    
    map<TString,constantproperties>::iterator iter = nameToProp.find(name);
    if(iter != nameToProp.end()) iter->second.print();
    else {
	::Error("HParticleConstants::getValue", "No constant with name=%s", name.Data());
    }
}
void HParticleConstants::printValueMatch(TString name)
{
    
    for (std::map<TString,constantproperties>::iterator it = nameToProp.begin(); it != nameToProp.end(); ++it)
    {
        if(it->second.fName.Contains(name)) it->second.print();
    }
}
void HParticleConstants::printSpace(TString space)
{
    
    for (std::map<TString,constantproperties>::iterator it = nameToProp.begin(); it != nameToProp.end(); ++it)
    {
        if(it->second.fSpace.Contains(space)) it->second.print();
    }
}
Int_t HParticleConstants::getValue(TString name)
{
    
    map<TString,constantproperties>::iterator iter = nameToProp.find(name);
    if(iter != nameToProp.end()) return iter->second.fId;
    else {
	::Error("HParticleConstants::getValue", "No constant with name=%s", name.Data());
    }
    return 0;
}
vector<TString> HParticleConstants::vnames = HParticleConstants::initConstantNamesV();
map<TString,constantproperties> HParticleConstants::nameToProp = HParticleConstants::initConstantNames();
 hparticleconstants.cc:100  hparticleconstants.cc:101  hparticleconstants.cc:102  hparticleconstants.cc:103  hparticleconstants.cc:104  hparticleconstants.cc:105  hparticleconstants.cc:106  hparticleconstants.cc:107  hparticleconstants.cc:108  hparticleconstants.cc:109  hparticleconstants.cc:110  hparticleconstants.cc:111  hparticleconstants.cc:112  hparticleconstants.cc:113  hparticleconstants.cc:114  hparticleconstants.cc:115  hparticleconstants.cc:116  hparticleconstants.cc:117  hparticleconstants.cc:118  hparticleconstants.cc:119  hparticleconstants.cc:120  hparticleconstants.cc:121  hparticleconstants.cc:122  hparticleconstants.cc:123  hparticleconstants.cc:124  hparticleconstants.cc:125  hparticleconstants.cc:126  hparticleconstants.cc:127  hparticleconstants.cc:128  hparticleconstants.cc:129  hparticleconstants.cc:130  hparticleconstants.cc:131  hparticleconstants.cc:132  hparticleconstants.cc:133  hparticleconstants.cc:134  hparticleconstants.cc:135  hparticleconstants.cc:136  hparticleconstants.cc:137  hparticleconstants.cc:138  hparticleconstants.cc:139  hparticleconstants.cc:140  hparticleconstants.cc:141  hparticleconstants.cc:142  hparticleconstants.cc:143  hparticleconstants.cc:144  hparticleconstants.cc:145  hparticleconstants.cc:146  hparticleconstants.cc:147  hparticleconstants.cc:148  hparticleconstants.cc:149  hparticleconstants.cc:150  hparticleconstants.cc:151  hparticleconstants.cc:152  hparticleconstants.cc:153  hparticleconstants.cc:154  hparticleconstants.cc:155  hparticleconstants.cc:156  hparticleconstants.cc:157  hparticleconstants.cc:158  hparticleconstants.cc:159  hparticleconstants.cc:160  hparticleconstants.cc:161  hparticleconstants.cc:162  hparticleconstants.cc:163  hparticleconstants.cc:164  hparticleconstants.cc:165  hparticleconstants.cc:166  hparticleconstants.cc:167  hparticleconstants.cc:168  hparticleconstants.cc:169  hparticleconstants.cc:170  hparticleconstants.cc:171  hparticleconstants.cc:172  hparticleconstants.cc:173  hparticleconstants.cc:174  hparticleconstants.cc:175  hparticleconstants.cc:176  hparticleconstants.cc:177  hparticleconstants.cc:178  hparticleconstants.cc:179  hparticleconstants.cc:180  hparticleconstants.cc:181  hparticleconstants.cc:182  hparticleconstants.cc:183  hparticleconstants.cc:184  hparticleconstants.cc:185  hparticleconstants.cc:186  hparticleconstants.cc:187  hparticleconstants.cc:188  hparticleconstants.cc:189  hparticleconstants.cc:190  hparticleconstants.cc:191  hparticleconstants.cc:192  hparticleconstants.cc:193  hparticleconstants.cc:194  hparticleconstants.cc:195  hparticleconstants.cc:196  hparticleconstants.cc:197  hparticleconstants.cc:198  hparticleconstants.cc:199  hparticleconstants.cc:200  hparticleconstants.cc:201  hparticleconstants.cc:202  hparticleconstants.cc:203  hparticleconstants.cc:204  hparticleconstants.cc:205  hparticleconstants.cc:206  hparticleconstants.cc:207  hparticleconstants.cc:208  hparticleconstants.cc:209  hparticleconstants.cc:210  hparticleconstants.cc:211  hparticleconstants.cc:212  hparticleconstants.cc:213  hparticleconstants.cc:214  hparticleconstants.cc:215  hparticleconstants.cc:216  hparticleconstants.cc:217  hparticleconstants.cc:218  hparticleconstants.cc:219  hparticleconstants.cc:220  hparticleconstants.cc:221  hparticleconstants.cc:222  hparticleconstants.cc:223  hparticleconstants.cc:224  hparticleconstants.cc:225  hparticleconstants.cc:226  hparticleconstants.cc:227  hparticleconstants.cc:228  hparticleconstants.cc:229  hparticleconstants.cc:230  hparticleconstants.cc:231  hparticleconstants.cc:232  hparticleconstants.cc:233  hparticleconstants.cc:234  hparticleconstants.cc:235  hparticleconstants.cc:236  hparticleconstants.cc:237  hparticleconstants.cc:238  hparticleconstants.cc:239  hparticleconstants.cc:240  hparticleconstants.cc:241  hparticleconstants.cc:242  hparticleconstants.cc:243  hparticleconstants.cc:244  hparticleconstants.cc:245  hparticleconstants.cc:246  hparticleconstants.cc:247  hparticleconstants.cc:248  hparticleconstants.cc:249  hparticleconstants.cc:250  hparticleconstants.cc:251  hparticleconstants.cc:252  hparticleconstants.cc:253  hparticleconstants.cc:254  hparticleconstants.cc:255  hparticleconstants.cc:256  hparticleconstants.cc:257  hparticleconstants.cc:258  hparticleconstants.cc:259  hparticleconstants.cc:260  hparticleconstants.cc:261  hparticleconstants.cc:262  hparticleconstants.cc:263  hparticleconstants.cc:264  hparticleconstants.cc:265  hparticleconstants.cc:266  hparticleconstants.cc:267  hparticleconstants.cc:268  hparticleconstants.cc:269  hparticleconstants.cc:270  hparticleconstants.cc:271  hparticleconstants.cc:272  hparticleconstants.cc:273  hparticleconstants.cc:274  hparticleconstants.cc:275  hparticleconstants.cc:276  hparticleconstants.cc:277  hparticleconstants.cc:278  hparticleconstants.cc:279  hparticleconstants.cc:280  hparticleconstants.cc:281  hparticleconstants.cc:282  hparticleconstants.cc:283  hparticleconstants.cc:284  hparticleconstants.cc:285  hparticleconstants.cc:286  hparticleconstants.cc:287  hparticleconstants.cc:288  hparticleconstants.cc:289  hparticleconstants.cc:290  hparticleconstants.cc:291  hparticleconstants.cc:292  hparticleconstants.cc:293  hparticleconstants.cc:294  hparticleconstants.cc:295  hparticleconstants.cc:296  hparticleconstants.cc:297  hparticleconstants.cc:298  hparticleconstants.cc:299  hparticleconstants.cc:300  hparticleconstants.cc:301  hparticleconstants.cc:302  hparticleconstants.cc:303  hparticleconstants.cc:304  hparticleconstants.cc:305  hparticleconstants.cc:306  hparticleconstants.cc:307  hparticleconstants.cc:308  hparticleconstants.cc:309  hparticleconstants.cc:310  hparticleconstants.cc:311  hparticleconstants.cc:312  hparticleconstants.cc:313  hparticleconstants.cc:314  hparticleconstants.cc:315  hparticleconstants.cc:316  hparticleconstants.cc:317  hparticleconstants.cc:318  hparticleconstants.cc:319  hparticleconstants.cc:320  hparticleconstants.cc:321  hparticleconstants.cc:322  hparticleconstants.cc:323  hparticleconstants.cc:324  hparticleconstants.cc:325  hparticleconstants.cc:326  hparticleconstants.cc:327  hparticleconstants.cc:328  hparticleconstants.cc:329  hparticleconstants.cc:330  hparticleconstants.cc:331  hparticleconstants.cc:332  hparticleconstants.cc:333  hparticleconstants.cc:334  hparticleconstants.cc:335  hparticleconstants.cc:336  hparticleconstants.cc:337  hparticleconstants.cc:338  hparticleconstants.cc:339  hparticleconstants.cc:340  hparticleconstants.cc:341  hparticleconstants.cc:342  hparticleconstants.cc:343  hparticleconstants.cc:344  hparticleconstants.cc:345  hparticleconstants.cc:346  hparticleconstants.cc:347  hparticleconstants.cc:348  hparticleconstants.cc:349  hparticleconstants.cc:350  hparticleconstants.cc:351  hparticleconstants.cc:352  hparticleconstants.cc:353  hparticleconstants.cc:354  hparticleconstants.cc:355  hparticleconstants.cc:356  hparticleconstants.cc:357  hparticleconstants.cc:358  hparticleconstants.cc:359  hparticleconstants.cc:360  hparticleconstants.cc:361  hparticleconstants.cc:362  hparticleconstants.cc:363  hparticleconstants.cc:364  hparticleconstants.cc:365  hparticleconstants.cc:366  hparticleconstants.cc:367  hparticleconstants.cc:368  hparticleconstants.cc:369  hparticleconstants.cc:370  hparticleconstants.cc:371  hparticleconstants.cc:372  hparticleconstants.cc:373  hparticleconstants.cc:374  hparticleconstants.cc:375  hparticleconstants.cc:376  hparticleconstants.cc:377  hparticleconstants.cc:378  hparticleconstants.cc:379  hparticleconstants.cc:380  hparticleconstants.cc:381  hparticleconstants.cc:382  hparticleconstants.cc:383  hparticleconstants.cc:384  hparticleconstants.cc:385  hparticleconstants.cc:386  hparticleconstants.cc:387  hparticleconstants.cc:388  hparticleconstants.cc:389  hparticleconstants.cc:390  hparticleconstants.cc:391  hparticleconstants.cc:392  hparticleconstants.cc:393  hparticleconstants.cc:394  hparticleconstants.cc:395  hparticleconstants.cc:396  hparticleconstants.cc:397  hparticleconstants.cc:398  hparticleconstants.cc:399  hparticleconstants.cc:400  hparticleconstants.cc:401  hparticleconstants.cc:402  hparticleconstants.cc:403  hparticleconstants.cc:404  hparticleconstants.cc:405  hparticleconstants.cc:406  hparticleconstants.cc:407  hparticleconstants.cc:408  hparticleconstants.cc:409  hparticleconstants.cc:410  hparticleconstants.cc:411  hparticleconstants.cc:412  hparticleconstants.cc:413  hparticleconstants.cc:414  hparticleconstants.cc:415  hparticleconstants.cc:416  hparticleconstants.cc:417  hparticleconstants.cc:418  hparticleconstants.cc:419  hparticleconstants.cc:420  hparticleconstants.cc:421  hparticleconstants.cc:422  hparticleconstants.cc:423  hparticleconstants.cc:424  hparticleconstants.cc:425  hparticleconstants.cc:426  hparticleconstants.cc:427  hparticleconstants.cc:428  hparticleconstants.cc:429  hparticleconstants.cc:430  hparticleconstants.cc:431  hparticleconstants.cc:432  hparticleconstants.cc:433  hparticleconstants.cc:434  hparticleconstants.cc:435  hparticleconstants.cc:436  hparticleconstants.cc:437  hparticleconstants.cc:438  hparticleconstants.cc:439  hparticleconstants.cc:440  hparticleconstants.cc:441  hparticleconstants.cc:442  hparticleconstants.cc:443  hparticleconstants.cc:444  hparticleconstants.cc:445  hparticleconstants.cc:446  hparticleconstants.cc:447  hparticleconstants.cc:448  hparticleconstants.cc:449  hparticleconstants.cc:450  hparticleconstants.cc:451  hparticleconstants.cc:452  hparticleconstants.cc:453  hparticleconstants.cc:454  hparticleconstants.cc:455  hparticleconstants.cc:456  hparticleconstants.cc:457  hparticleconstants.cc:458  hparticleconstants.cc:459  hparticleconstants.cc:460  hparticleconstants.cc:461  hparticleconstants.cc:462  hparticleconstants.cc:463  hparticleconstants.cc:464  hparticleconstants.cc:465  hparticleconstants.cc:466  hparticleconstants.cc:467  hparticleconstants.cc:468  hparticleconstants.cc:469  hparticleconstants.cc:470  hparticleconstants.cc:471  hparticleconstants.cc:472  hparticleconstants.cc:473  hparticleconstants.cc:474  hparticleconstants.cc:475  hparticleconstants.cc:476  hparticleconstants.cc:477  hparticleconstants.cc:478  hparticleconstants.cc:479  hparticleconstants.cc:480  hparticleconstants.cc:481  hparticleconstants.cc:482  hparticleconstants.cc:483  hparticleconstants.cc:484  hparticleconstants.cc:485  hparticleconstants.cc:486  hparticleconstants.cc:487  hparticleconstants.cc:488  hparticleconstants.cc:489  hparticleconstants.cc:490  hparticleconstants.cc:491  hparticleconstants.cc:492  hparticleconstants.cc:493  hparticleconstants.cc:494  hparticleconstants.cc:495  hparticleconstants.cc:496  hparticleconstants.cc:497  hparticleconstants.cc:498  hparticleconstants.cc:499  hparticleconstants.cc:500  hparticleconstants.cc:501  hparticleconstants.cc:502  hparticleconstants.cc:503  hparticleconstants.cc:504  hparticleconstants.cc:505  hparticleconstants.cc:506  hparticleconstants.cc:507  hparticleconstants.cc:508  hparticleconstants.cc:509  hparticleconstants.cc:510  hparticleconstants.cc:511  hparticleconstants.cc:512  hparticleconstants.cc:513  hparticleconstants.cc:514  hparticleconstants.cc:515  hparticleconstants.cc:516  hparticleconstants.cc:517  hparticleconstants.cc:518  hparticleconstants.cc:519  hparticleconstants.cc:520  hparticleconstants.cc:521  hparticleconstants.cc:522  hparticleconstants.cc:523  hparticleconstants.cc:524  hparticleconstants.cc:525  hparticleconstants.cc:526  hparticleconstants.cc:527  hparticleconstants.cc:528  hparticleconstants.cc:529  hparticleconstants.cc:530  hparticleconstants.cc:531  hparticleconstants.cc:532  hparticleconstants.cc:533  hparticleconstants.cc:534  hparticleconstants.cc:535  hparticleconstants.cc:536  hparticleconstants.cc:537  hparticleconstants.cc:538  hparticleconstants.cc:539