Combitorial Events

One key feature of chanser is the ability to automatically generate combitorial events out of single DST events. This removes the need for the users to write specific loops which can often complicate code and become a source for hard to track errors. In fact the user is not required to write any extra code, but should be aware of what is going on. The need for combitorial events arises when your event topology does not have a clear unambigous selection of particles. This can occur when,

  • there are more particles of a particular type than you require

  • there is no clear particle identification for a particle/track (or you want to try you own)

In theses cases you may either reject the event or try all possible combinations of particles which fit your event hypothesis, chanser does the latter.

Combitorials of the first kind

If there are multiple particles in an event that meet the requirements of a particle you ask for in you final state topology then a combitorial event wil be made for each candidate and written as a seperate event in the output files.

Examples,

  • final state contains 1 electron, but event has 3 => create 3 events

  • final state contains 1 electron and 1 proton, but event has 3 e- and 2 p => create 3x2=6 events

    both cases must subtract false combinations via exclusivity variables

Combitorials of the second kind

If there are multiple particles in your final state of the same particle species. This now depends on whether the particles came from a common intermediate parent or not. i.e. If they came from the same parent only 1 combitorial event is produced. If they came from no parents then only 1 combitorial event is produced. If 1 or more came from an parent which subsequently decayed then multiple combitorial events are produced.

Examples

  • final state contains 2 photons from pi0 (parent) decay => 1 combitorial event

  • final state contains 3 photons from omega->pi0+gamma decay => 3 comitorial event

    must subtract false combinations via pi0 mass distribution

  • final state contains 2pi+ and 2pi- from omega->pi+pi0pi- and additional pi+pi => 4 combitorial events

    must subtract background via omega mass distribution

  • final state contains 2pi+1pi- from decay of broad meson resonaces => 1 combitorial event

    as this must be dealt with at amplitude level by symmetrising pions, even if there is a isobar intermediate state

Combitorials of the third kind

If you do not have full particle identification for you tracks you can make hypothesis based on their assigned charge. The leads to making combitorial events based on the actual type of the particles in your final state.

Examples

If identifying particles by charge

  • final state contains proton and pi+ => 2 combitorial events from 2 +ve tracks

    can reject combitorials based on DeltaTime or some other track ID variables

Combining Combitorials of different kinds

It may be your final state and data contain two or three of these types of combitorial. chanser will combine these and write out however many events they create.

Examples

Final state is e-,pi+pi-proton, event contains 3 -ve and 4 +ve tracks, how many combitorial events should be produced?

1   There are 3 type 1 combinations of -ve particles, for each there are 2 type 3 combinations
2   There are 4 type 1 combinations of +ve particles, for each there are 3 type 3 combinations
3   Total combinations = 3 x 2 x 4 x 3 = 72
4   For this event chanser will create 72 possible combitorial events which the user can reduce
5   through cuts on particle ID variables and exclusivity variables.

You can ask chanser to print the final state particles for each combitorial event to allow you to check it is doing what you woud like. To do this in your Run.C script call FinalStateManger::CheckCombitorials()

{
...
FinalStateManager fsm;
fsm.SetBaseOutDir("/hdd/dump/Test");
////Connect the data to the manager
fsm.LoadData(&hdata);
////load one or more FinalStates
fsm.LoadFinalState("Pi2","example.root");
...
fsm.CheckCombitorials();

fsm.ProcessAll(100); //show first 100 events

}

To see an example chanser print out of these combitorials for one hipo event click here

  1   Printing Perm 1 of topology
  2   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
  3   Printing Perm 2 of topology
  4   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
  5   Printing Perm 3 of topology
  6   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
  7   Printing Perm 4 of topology
  8   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
  9   Printing Perm 5 of topology
 10   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)
 11   Printing Perm 6 of topology
 12   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
 13   Printing Perm 7 of topology
 14   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 15   Printing Perm 8 of topology
 16   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
 17   Printing Perm 9 of topology
 18   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
 19   Printing Perm 10 of topology
 20   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
 21   Printing Perm 11 of topology
 22   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 23   Printing Perm 12 of topology
 24   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
 25   Printing Perm 13 of topology
 26   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)
 27   Printing Perm 14 of topology
 28   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
 29   Printing Perm 15 of topology
 30   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 31   Printing Perm 16 of topology
 32   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
 33   Printing Perm 17 of topology
 34   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
 35   Printing Perm 18 of topology
 36   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
 37   Printing Perm 19 of topology
 38   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 39   Printing Perm 20 of topology
 40   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
 41   Printing Perm 21 of topology
 42   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
 43   Printing Perm 22 of topology
 44   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)
 45   Printing Perm 23 of topology
 46   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 47   Printing Perm 24 of topology
 48   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 49   Printing Perm 25 of topology
 50   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
 51   Printing Perm 26 of topology
 52   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
 53   Printing Perm 27 of topology
 54   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
 55   Printing Perm 28 of topology
 56   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
 57   Printing Perm 29 of topology
 58   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
 59   Printing Perm 30 of topology
 60   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
 61   Printing Perm 31 of topology
 62   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 63   Printing Perm 32 of topology
 64   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
 65   Printing Perm 33 of topology
 66   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
 67   Printing Perm 34 of topology
 68   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
 69   Printing Perm 35 of topology
 70   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 71   Printing Perm 36 of topology
 72   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.356374)E( 2.24891)
 73   Printing Perm 37 of topology
 74   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
 75   Printing Perm 38 of topology
 76   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
 77   Printing Perm 39 of topology
 78   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 79   Printing Perm 40 of topology
 80   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
 81   Printing Perm 41 of topology
 82   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
 83   Printing Perm 42 of topology
 84   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
 85   Printing Perm 43 of topology
 86   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 87   Printing Perm 44 of topology
 88   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.356374)E( 2.24891)
 89   Printing Perm 45 of topology
 90   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
 91   Printing Perm 46 of topology
 92   PDG(11)Th(0.356374)E( 2.24458)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
 93   Printing Perm 47 of topology
 94   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.356374)E( 2.24891)
 95   Printing Perm 48 of topology
 96   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.356374)E( 2.24891)
 97   Printing Perm 49 of topology
 98   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
 99   Printing Perm 50 of topology
100   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
101   Printing Perm 51 of topology
102   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
103   Printing Perm 52 of topology
104   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
105   Printing Perm 53 of topology
106   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
107   Printing Perm 54 of topology
108   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
109   Printing Perm 55 of topology
110   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)
111   Printing Perm 56 of topology
112   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
113   Printing Perm 57 of topology
114   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
115   Printing Perm 58 of topology
116   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.317323)E( 1.27651)
117   Printing Perm 59 of topology
118   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.202987)E( 2.63672)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
119   Printing Perm 60 of topology
120   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.202987)E( 2.46808)   PDG(-211)Th(0.0451417)E( 2.9292)
121   Printing Perm 61 of topology
122   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
123   Printing Perm 62 of topology
124   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
125   Printing Perm 63 of topology
126   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)
127   Printing Perm 64 of topology
128   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
129   Printing Perm 65 of topology
130   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
131   Printing Perm 66 of topology
132   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.317323)E( 1.27651)
133   Printing Perm 67 of topology
134   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.73788)E( 1.17115)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
135   Printing Perm 68 of topology
136   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.73788)E( 0.714648)   PDG(-211)Th(0.0451417)E( 2.9292)
137   Printing Perm 69 of topology
138   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.317323)E( 1.27651)
139   Printing Perm 70 of topology
140   PDG(11)Th(0.0451417)E( 3.0794)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.317323)E( 1.27651)
141   Printing Perm 71 of topology
142   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.589328)E( 1.16367)   PDG(211)Th(0.996051)E( 0.454749)   PDG(-211)Th(0.0451417)E( 2.9292)
143   Printing Perm 72 of topology
144   PDG(11)Th(0.317323)E( 1.26885)   PDG(2212)Th(0.996051)E( 1.03328)   PDG(211)Th(0.589328)E( 0.702326)   PDG(-211)Th(0.0451417)E( 2.9292)

Setting combitorial behaviour for configured FinalState objects

The combitorial behaviour is set when you configure your final state object in the Create.C script before writing an instance to a ROOT file. In this way it is straightforward to create final state objects with different behaviour and save them to different ROOT files which can then be loaded when processing the data resuting in different ouput trees for each combitirial behaviour.

Example code for configuring your final state combitorials :

{
auto useEBPidFor = "ALL"; //or "NONE"
auto useInclusiveFilterFor = "ALL";
auto FS = dglazier::Pi2::Make(useEBPidFor,useInclusiveFilterFor);
...

Where useEBPidFor may be “ALL” or “NONE” and tells the iterator whether to use hipo DST EvenBuilder Pid to determine combitorials (“ALL”) or just use the track charge (“NONE”). See Combitorials of the third kind


And useInclusiveFilterFor specifies which particles do not need an exact numerical match with your reuested topology. So “ALL” means you can have any number of any type of particles and it will produce events for all the possible combinations i.e. Combitorials of the first kind . If it is set to “NONE” then only events with exact particle matches will be processed and there will be no first kind combitorials.


Combitorials of the second kind depend on whether particles in your final state come from common short-lived parents or not and so you must tell your code if this is the case. In general this is setup at the skeleton code stage via the line

s.SetFinalStateParents("Lambda:Lambda0;Proton;Pim");

In this example the final state proton and pi- come from a common Lambda parent. If there was only an additional K+ in this final state then no combitorials wold be required for this. But if there was another pi- additional combinations would be required.

Note this creates the following lines of code in the FinalState class Define() function

//Set final state parents
 AddParticle("Lambda",&_lambda,kTRUE,-1);
 ConfigParent(&_lambda,&_proton);
 ConfigParent(&_lambda,&_pim);

A more common example would be for example 2pi0 production

s.SetFinalStateParts("Electron:e-,Proton:proton,Gamma1:gamma,Gamma2:gamma,Gamma3:gamma,Gamma4:gamma");
s.SetFinalStateTopo("Electron:Proton:Gamma1:Gamma2:Gamma3:Gamma4");
s.SetFinalStateParents("Pi0_1:pi0;gamma1;gamma2,Pi0_2:pi0;gamma3;gamma4");

Now we have 4 gammas to make 2 pi0s which gives 4 permuations. If we did not give the gammas parents then chanser would only produce 1 combitorial event.