#!/usr/bin/perl use strict; use warnings; # Ein Hash mit den Eventnamen als Schlüssel. # die Werte sind Zähler, # welche die Häfigkeit des Auftreten der Events zählen. my %events; # Geammtanzahl der Events my $noe; while(<>) { my @stuff=split(' '); if(/UQMD/){ } elsif(/projectile:/){ my $protar=$_ } elsif(/equation_of_state:/){ my $ecm=$stuff[5]; my $midy=log($ecm/0.938); my $elab=$stuff[3]; my $plab=$stuff[7]; } elsif(/event#/){ $noe++ # numbers of events: noe } else{ if($#stuff==14){ my @x=@stuff[0..3]; my @p=@stuff[4..7]; my @id=@stuff[8..11]; my $mass=$id[0]; my $ityp=$id[1]; my $iz2=$id[2]; my $charge=$id[3]; # ab hier steht folgende info zur verfuegung: # stuff[0] = r_0 = $x[0] # stuff[1] = r_x = $x[1] # stuff[2] = r_y . # stuff[3] = r_z . # stuff[4] = p_0 = $p[0] # stuff[5] = p_x = $p[1] # stuff[6] = p_y . # stuff[7] = p_z . # stuff[8] = mass = $id[0] # stuff[9] = ityp = $id[1] # stuff[10]= iz2 = $id[2] # stuff[11]= charge = $id[3] # Events eines bestimmten Typs zählen $event{$itype}++; if ($ityp==27) { print("lambda \n"); print("Event", $noe, "\n"); # Wenn der event des Typs "27" mindestens zwei mal aufgetaucht ist... if ($event{27} >= 2){ print("match"); # es könnte sinnvoll sein den zähler wieder zurück zu setzen, # oder die bedingung auf ==2 zu setzen. # Aber ich weiss nicht genug über die Logick um dir da zu helfen } } } } }