1#include "EvtGenBase/EvtPatches.hh"
14#include "EvtGenBase/EvtCyclic3.hh"
22 if(p ==
ABC)
return i;
25 else if(i ==
B)
return A;
26 else if(i ==
C)
return B;
30 else if(i ==
B)
return A;
31 else if(i ==
C)
return B;
35 else if(i ==
B)
return C;
36 else if(i ==
C)
return A;
40 else if(i ==
B)
return B;
41 else if(i ==
C)
return A;
45 else if(i ==
B)
return A;
46 else if(i ==
C)
return C;
50 else if(i ==
B)
return C;
51 else if(i ==
C)
return B;
58 assert(i1 != i2 && i2 != i3 && i3 != i1);
59 if(i1 ==
A)
return (i2 ==
B) ?
ABC :
ACB;
60 if(i1 ==
B)
return (i2 ==
C) ?
BCA :
BAC;
61 if(i1 ==
C)
return (i2 ==
A) ?
CAB :
CBA;
154 assert(0);
return AB;
169 if(i ==
BC) ret =
AB;
171 if(i ==
CA) ret =
BC;
179 if(i ==
BC) ret =
CA;
181 if(i ==
CA) ret =
AB;
236 if(strcmp(str,
"A"))
return A;
237 else if(strcmp(str,
"B"))
return B;
238 else if(strcmp(str,
"C"))
return C;
245 if(!strcmp(str,
"AB") || !strcmp(str,
"BA"))
return AB;
246 else if(!strcmp(str,
"BC") || !strcmp(str,
"CB"))
return BC;
247 else if(!strcmp(str,
"CA") || !strcmp(str,
"AC"))
return CA;
266 case BC:
return "BC";
267 case CA:
return "CA";
268 case AB:
return "AB";
275 if(p ==
ABC)
return "ABC";
276 if(p ==
BCA)
return "BCA";
277 if(p ==
CAB)
return "CAB";
278 if(p ==
CBA)
return "CBA";
279 if(p ==
BAC)
return "BAC";
280 if(p ==
ACB)
return "ACB";
287 char*
s =
new char[strlen(str)+2];
297 char*
s =
new char[strlen(str)+3];
308 case A: { os <<
"A";
return os; }
309 case B: { os <<
"B";
return os; }
310 case C: { os <<
"C";
return os; }
312 assert(0);
return os;
319 case BC: { os <<
"BC";
return os; }
320 case CA: { os <<
"CA";
return os; }
321 case AB: { os <<
"AB";
return os; }
323 assert(0);
return os;
ostream & operator<<(ostream &os, EvtCyclic3::Index i)
Index permute(Index i, Perm p)
Index strToIndex(const char *str)
Perm permutation(Index i1, Index i2, Index i3)
char * append(const char *str, EvtCyclic3::Index i)
Index common(Pair i, Pair j)
Pair strToPair(const char *str)
Pair combine(Index i, Index j)
Index other(Index i, Index j)