Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:47

0001 #ifndef AMEGIC__Main__Tools_H
0002 #define AMEGIC__Main__Tools_H
0003 
0004 #include "ATOOLS/Phys/Flavour.H"
0005 
0006 namespace AMEGIC {
0007 
0008   inline bool IsSusy(const ATOOLS::Flavour &fl)
0009   { return 1000000<fl.Kfcode()&&fl.Kfcode()<3000000; }
0010   
0011   inline bool IsChargino(const ATOOLS::Flavour &fl)
0012   { return (fl.Kfcode()==kf_Chargino1||fl.Kfcode()==kf_Chargino2) && fl.IntSpin()==1; }
0013   inline bool IsNeutralino(const ATOOLS::Flavour &fl) 
0014   { return (fl.Kfcode()==kf_Neutralino1||fl.Kfcode()==kf_Neutralino2||
0015         fl.Kfcode()==kf_Neutralino3||fl.Kfcode()==kf_Neutralino4) && fl.IntSpin()==1; }
0016   inline bool IsSlepton(const ATOOLS::Flavour &fl) 
0017   { return ((fl.Kfcode()>1000010&&fl.Kfcode()<1000017)||
0018         (fl.Kfcode()>2000010&&fl.Kfcode()<2000017)) && fl.IntSpin()==0; }
0019   inline bool IsSneutrino(const ATOOLS::Flavour &fl) 
0020   { return fl.Kfcode()>1000010&&fl.Kfcode()<1000017&&fl.Kfcode()%2==0&&fl.IntSpin()==0; }
0021 
0022   inline bool IsSquark(const ATOOLS::Flavour &fl) 
0023   { return fl.Strong()&&(fl.StrongCharge()==3 || fl.StrongCharge()==-3)&&fl.IntSpin()==0&&!fl.Majorana(); }
0024   inline bool IsGluino(const ATOOLS::Flavour &fl) 
0025   { return fl.Kfcode()==kf_Gluino; }
0026 
0027   inline bool IsIno(const ATOOLS::Flavour &fl)    
0028   { return IsGluino(fl)||IsNeutralino(fl)||IsChargino(fl); }
0029 
0030   inline int LeptonNumber(const ATOOLS::Flavour &fl) 
0031   { if (fl.IsLepton()||IsSlepton(fl)||IsSneutrino(fl)) return fl.IsAnti()?-1:1; return 0; }
0032   inline double BaryonNumber(const ATOOLS::Flavour &fl) 
0033   { if (fl.IsQuark()||IsSquark(fl)) return fl.IsAnti()?-1./3.:1./3.; return 0.; 
0034     if (abs(fl.StrongCharge())==3) return 1./double(fl.StrongCharge()); }
0035 
0036 }
0037 
0038 #endif