30 extern std::vector<int> user_hadrons;
31 extern std::vector<int> user_invisibles;
32 extern std::vector<int> chargedps;
33 extern std::vector<int> charges;
37 bool isHadron(
int pid);
38 bool isInvisible(
int pid);
40 bool isCharged(
int pid);
41 void AddParticle(
int pid,
int Q3,
int colrep);
48 static const int ELECTRON = 11;
49 static const int POSITRON = -ELECTRON;
50 static const int EMINUS = ELECTRON;
51 static const int EPLUS = POSITRON;
52 static const int MUON = 13;
53 static const int ANTIMUON = -MUON;
54 static const int TAU = 15;
55 static const int ANTITAU = -TAU;
60 static const int NU_E = 12;
61 static const int NU_EBAR = -NU_E;
62 static const int NU_MU = 14;
63 static const int NU_MUBAR = -NU_MU;
64 static const int NU_TAU = 16;
65 static const int NU_TAUBAR = -NU_TAU;
70 static const int PHOTON = 22;
71 static const int GAMMA = PHOTON;
72 static const int GLUON = 21;
73 static const int WPLUSBOSON = 24;
74 static const int WMINUSBOSON = -WPLUSBOSON;
75 static const int WPLUS = WPLUSBOSON;
76 static const int WMINUS = WMINUSBOSON;
77 static const int Z0BOSON = 23;
78 static const int ZBOSON = Z0BOSON;
79 static const int Z0 = Z0BOSON;
80 static const int HIGGSBOSON = 25;
81 static const int HIGGS = HIGGSBOSON;
86 static const int DQUARK = 1;
87 static const int UQUARK = 2;
88 static const int SQUARK = 3;
89 static const int CQUARK = 4;
90 static const int BQUARK = 5;
91 static const int TQUARK = 6;
96 static const int PROTON = 2212;
97 static const int ANTIPROTON = -PROTON;
98 static const int PBAR = ANTIPROTON;
99 static const int NEUTRON = 2112;
100 static const int ANTINEUTRON = -NEUTRON;
105 static const int PI0 = 111;
106 static const int PIPLUS = 211;
107 static const int PIMINUS = -PIPLUS;
108 static const int K0L = 130;
109 static const int K0S = 310;
110 static const int KPLUS = 321;
111 static const int KMINUS = -KPLUS;
112 static const int ETA = 221;
113 static const int ETAPRIME = 331;
114 static const int PHI = 333;
115 static const int OMEGA = 223;
120 static const int ETAC = 441;
121 static const int JPSI = 443;
122 static const int PSI2S = 100443;
127 static const int D0 = 421;
128 static const int DPLUS = 411;
129 static const int DMINUS = -DPLUS;
130 static const int DSPLUS = 431;
131 static const int DSMINUS = -DSPLUS;
136 static const int ETAB = 551;
137 static const int UPSILON1S = 553;
138 static const int UPSILON2S = 100553;
139 static const int UPSILON3S = 200553;
140 static const int UPSILON4S = 300553;
145 static const int B0 = 511;
146 static const int BPLUS = 521;
147 static const int BMINUS = -BPLUS;
148 static const int B0S = 531;
149 static const int BCPLUS = 541;
150 static const int BCMINUS = -BCPLUS;
155 static const int LAMBDA = 3122;
156 static const int SIGMA0 = 3212;
157 static const int SIGMAPLUS = 3222;
158 static const int SIGMAMINUS = 3112;
159 static const int LAMBDACPLUS = 4122;
160 static const int LAMBDACMINUS = 4122;
161 static const int LAMBDAB = 5122;
162 static const int XI0 = 3322;
163 static const int XIMINUS = 3312;
164 static const int XIPLUS = -XIMINUS;
165 static const int OMEGAMINUS = 3334;
166 static const int OMEGAPLUS = -OMEGAMINUS;
171 static const int REGGEON = 110;
172 static const int POMERON = 990;
173 static const int ODDERON = 9990;
174 static const int GRAVITON = 39;
175 static const int NEUTRALINO1 = 1000022;
176 static const int GRAVITINO = 1000039;
177 static const int GLUINO = 1000021;
178 static const int BPRIME = 7;
179 static const int TPRIME = 8;
180 static const int LPRIME = 17;
181 static const int NUPRIME = 18;
190 inline bool isPhoton(
int pid) {
191 return pid == PHOTON;
195 inline bool isElectron(
int pid) {
196 return abs(pid) == ELECTRON;
200 inline bool isMuon(
int pid) {
201 return abs(pid) == MUON;
205 inline bool isTau(
int pid) {
206 return abs(pid) == TAU;
210 inline bool isChargedLepton(
int pid) {
211 const long apid = abs(pid);
212 return apid == 11 || apid == 13 || apid == 15 || apid == 17;
217 inline bool isNeutrino(
int pid) {
218 const long apid = abs(pid);
219 return apid == 12 || apid == 14 || apid == 16 || apid == 18;
222 inline bool isLepton(
int pid){
223 const long apid = abs(pid);
224 return (apid > 10) && (apid < 19);
238 static std::vector<int> neutrals={21,22,23,25,12,14,16,111,221,9000221,113,223,
239 331,9010221,9000111,333,10223,10113,20113,225,20223,100221,100111,
240 115,10221,9000113,9020221,10333,20333,1000223,10111,100113,100331,
241 9030221,335,9010113,9020113,10225,30223,227,10115,100333,117,30113,
242 9000115,10331,9010111,337,9050225,119,9060225,229,9080225,9090225,
243 311,310,130,9000311,313,10313,20313,100313,10311,315,30313,10315,
244 317,20315,319,421,423,10421,10423,425,511,513,515,531,533,535,441,
245 443,10441,20443,10443,445,100441,100443,30443,100445,9000443,9010443,
246 9020443,553,10551,20553,10553,555,100553,30553,110551,120553,100555,
247 200553,300553,9000553,9010553,2112,12112,1214,22112,32112,2116,12116,
248 21214,42112,31214,1218,2114,32114,1212,12114,11212,1216,21212,22114,
249 11216,2118,3122,13122,3124,23122,33122,13124,43122,53122,3126,13126,
250 23124,3128,23126,3212,3214,13212,13214,23212,3216,13216,23214,3218,
251 3322,3324,203322,13324,103326,203326,4112,4114,4132,4312,4314,104314,
252 104312,4332,4334,5122,5232};