diff --git a/eas/do_sims.sh b/eas/do_sims.sh
index 5e192336487cf489fed818206987f0342bb1594a..3b4157ac72a0d70f2963d50251c5e1078624a33d 100755
--- a/eas/do_sims.sh
+++ b/eas/do_sims.sh
@@ -80,8 +80,8 @@ showhelp() {
   echo -e
   echo -e "Modifiers"
   echo -e "  -l                                 : Enables SLURM cluster compatibility (with sbatch)."
+  echo -e "  -d                                 : Enable DOCKER compatible mode"
   echo -e "  -e                                 : Enable CHERENKOV mode"
-  echo -e "  -d                                 : Enable DEBUG mode"
   echo -e "  -x                                 : Enable other defaults (It doesn't prompt user for unset parameters)"
   echo -e "  -?                                 : Shows this help and exit."
   echo
@@ -107,6 +107,8 @@ defaults=false
 ecut=800
 slurm=false
 onedataBase="/mnt/datahub.egi.eu/test8/fluka"; # need to change also at rain.pl
+nprocs=$(/usr/bin/nproc)   # number of simultaneous process for paralllel local processing
+docker=false
 
 echo
 while getopts 'w:k:p:t:v:u:f:h:s:j:c:b:m:n:r:i:o:q:a:?lydex' opt; do
@@ -210,7 +212,7 @@ while getopts 'w:k:p:t:v:u:f:h:s:j:c:b:m:n:r:i:o:q:a:?lydex' opt; do
       slurm=true
       ;;
     d)
-      debug=true
+	  docker=true
       ;;
     x)
       defaults=true
@@ -331,7 +333,15 @@ if $highsec; then
 fi
 
 if $slurm; then
-	echo -e "#  INFO: SLURM mode is enable. Will not work in other environments."
+	echo -e "#  INFO: SLURM mode is enabled. Will not work in other environments."
+fi
+if $docker; then
+	if [ ! -d $onedataBase ]; then
+		echo; echo -e "ERROR: You are running in DOCKER enabled mode but onedata is not accessible"
+		showhelp
+		exit 1;
+	fi
+	echo -e "#  INFO: DOCKER mode is enabled."
 fi
 
 corsika_bin="corsika${ver}Linux_${hig}_${lemodel}"
@@ -340,7 +350,7 @@ if [ ! -e $wdir/$corsika_bin ]; then
     showhelp
     exit 1;
 fi
-echo -e "#  INFO   : Executable file is ($corsika_bin)"
+echo -e "#  INFO: Executable file is ($corsika_bin)"
 
 # It is important to now the total time in onedata. Adding total simulation time to the project name...
 prj="${prj}_$(printf "%06d" ${tim})"
@@ -435,12 +445,14 @@ fi
 
 rain="$rain -r $wdir -v $ver -h $hig -f $lemodel -b $prj/\$i-*.run"
 echo -e "#  INFO   : rain command: $rain"
-oneout="$onedataBase/S3_${prj}_${site}_${lemodel}"
-[[ ! -d $oneout ]] && mkdir $oneout
-while ! cp -v $wdir/$prj/inject $oneout; do 
-	sleep 5
-done
-echo -e "#  INFO   : Results will be transferred to $oneout"
+if $docker; then
+	oneout="$onedataBase/S3_${prj}_${site}_${lemodel}"
+	[[ ! -d $oneout ]] && mkdir $oneout
+	while ! cp -v $wdir/$prj/inject $oneout; do 
+		sleep 5
+	done
+	echo -e "#  INFO   : Results will be transferred to $oneout"
+fi
 echo -e "#  INFO   : Calculations done. Now run the go_${prj}_* scripts in $wdir/"
 
 basenice=19
@@ -454,6 +466,9 @@ if $slurm; then
 	echo -e "" >> $wdir/go-slurm-$prj.sh
     chmod 744 $wdir/go-slurm-$prj.sh
 fi
+if $docker; then
+	echo -n > $wdir/go-docker-$prj.run
+fi
 
 stuff=(001206 001608 000703 002412 001105 002814 001407 002010 005626 000904 003216 002713 002311 004020 001909 005224 004018 004822 005525 003919 005123 003115 003517 004521)
 t=0
@@ -478,12 +493,18 @@ mv $wdir/go-$prj-all-$n.sh $wdir/go-$prj-all-$n.run
 		echo $wdir/go-$prj-all-$n.sh >> $wdir/go-slurm-$prj.sh
 	fi
 done
-
+if $docker; then
+	for i in $(seq 0 $[${#stuff[@]}-1]); do
+		nuc=${stuff[$i]}
+		r=${rain/\$i/${nuc}}
+		echo -e "$r" >> $wdir/go-docker-$prj.run
+	done
+	rm $wdir/go-$prj-all-*.sh
+fi
 #helium
 b=$(basename $(ls -1 $wdir/$prj/000402-*) .run | sed -e "s/000402-//" | awk '{print $1*1.0}')
 c=$(basename $(ls -1 $wdir/$prj/000402-*) .run | sed -e "s/000402-//" | awk -v p=${prcHe} '{print int($1/p+0.5)}')
 printf -v k "%011d" $c
-
 for i in $(seq 1 $prcHe); do
   u="0${i}0402"
   cat $wdir/$prj/000402-*.run | sed -e "s/000402/$u/" | sed -e "s/$b/$c/" > $wdir/$prj/$u-$k.run
@@ -504,6 +525,14 @@ rm $wdir/$prj/000402-*.run
 if $slurm; then
 	echo $wdir/go-${prj}-he.sh >> $wdir/go-slurm-$prj.sh
 fi
+if $docker; then
+	for i in $(seq 1 $prcHe); do
+		u="0${i}0402"
+        r=${rain/\$i/${u}}
+        echo -e "$r" >> $wdir/go-docker-$prj.run
+	done
+	rm $wdir/go-$prj-he.sh
+fi
 
 #protons
 b=$(basename $(ls -1 $wdir/$prj/000014-*) .run | sed -e "s/000014-//" | awk '{print $1*1.0}')
@@ -531,9 +560,17 @@ for j in \$(seq $ii $ff); do
 done
 chmod 644 $wdir/go-$prj-pr-$i.sh
 mv $wdir/go-$prj-pr-$i.sh $wdir/go-$prj-pr-$i.run" > $wdir/go-${prj}-pr-$i.sh
-if $slurm; then
-    echo $wdir/go-${prj}-pr-$i.sh >> $wdir/go-slurm-$prj.sh
-fi
+	if $slurm; then
+		echo $wdir/go-${prj}-pr-$i.sh >> $wdir/go-slurm-$prj.sh
+	fi
+	if $docker; then
+		for j in $(seq $ii $ff); do
+			printf -v n "%02d" $j
+			u="${n}0014"
+			r=${rain/\$i/${u}}
+			echo -e "$r" >> $wdir/go-docker-$prj.run
+		done
+	fi
 done
 rm $wdir/$prj/000014-*.run
 for i in $(seq 1 $multPr); do
@@ -544,3 +581,28 @@ if $slurm; then
     echo -e "mv $wdir/go-slurm-$prj.sh $wdir/go-slurm-$prj.run" >> $wdir/go-slurm-$prj.sh
     echo -e "chmod 644 $wdir/go-slurm-$prj.run" >> $wdir/go-slurm-$prj.sh
 fi
+if $docker; then
+	rm $wdir/go-${prj}-pr-*.sh
+	rm -r 
+ 	echo -e "#!/bin/bash" > $wdir/go-docker-$prj.sh
+ 	echo -e "# go docker $prj" >> $wdir/go-docker-$prj.sh
+ 	echo -e "" >> $wdir/go-docker-$prj.sh
+	echo -e "N=\$(/usr/bin/nproc)" >> $wdir/go-docker-$prj.sh
+ 	echo -e "nl=\$(cat $wdir/go-docker-$prj.run | wc -l)" >> $wdir/go-docker-$prj.sh
+	echo -e "np=0" >> $wdir/go-docker-$prj.sh
+	echo -e "nr=0" >> $wdir/go-docker-$prj.sh
+	echo -e "while IFS= read -r line; do" >> $wdir/go-docker-$prj.sh
+    echo -e "    eval \${line}" >> $wdir/go-docker-$prj.sh
+	echo -e "    ((nr++))" >> $wdir/go-docker-$prj.sh
+    echo -e "    np=\$(ps aux | grep corsika77402 | grep -v grep | wc -l)" >> $wdir/go-docker-$prj.sh
+    echo -e "    echo \$np: \$nr/\$nl" >> $wdir/go-docker-$prj.sh
+    echo -e "    while [ \$np -ge \$N ]; do" >> $wdir/go-docker-$prj.sh
+	echo -e "        sleep 3;" >> $wdir/go-docker-$prj.sh
+    echo -e "        np=\$(ps aux | grep corsika77402 | grep -v grep | wc -l)" >> $wdir/go-docker-$prj.sh
+    echo -e "    done" >> $wdir/go-docker-$prj.sh
+	echo -e "done < $wdir/go-docker-$prj.run" >> $wdir/go-docker-$prj.sh
+    echo -e "mv $wdir/go-dockerslurm-$prj.sh $wdir/go-slurm-$prj.run" >> $wdir/go-slurm-$prj.sh
+    echo -e "chmod 644 $wdir/go-slurm-$prj.run" >> $wdir/go-slurm-$prj.sh
+	chmod 744 $wdir/go-docker-$prj.sh
+	eval $wdir/go-docker-$prj.sh
+fi
diff --git a/eas/rain.pl b/eas/rain.pl
index f0a0ad488d8eec294c15fe22d7ac733de25824a8..9f3ab950c492b98c39686f86379aceed5550e9f9 100755
--- a/eas/rain.pl
+++ b/eas/rain.pl
@@ -60,6 +60,7 @@ my $wdir = "x";
 my $crk_ver = "77402";
 my $heim = "QGSII";
 my $debug = 0;
+my $docker = 0;
 my $help = 0;
 my $slurm = 0;
 my $highsec = 0;
@@ -169,7 +170,7 @@ while ($_ = $ARGV[0]) {
     $help++;
   }
   if (/-d$/i) {
-    $debug++;
+    $docker++;
   }
   if (/-mu$/i) {
     $imuaddi=1;
@@ -210,30 +211,31 @@ $package = $package . "_thin" if ($ithin != 0);
 my $usage="
        $0 $VERSION\n
        Usage: $0 options\n
-       -b                                  Activates batch mode
-       -i                                  Disable PLOTSH and PLOTSH2 modes (usual simms production)
-       -d                                  Debug mode: only shows what it should do. Don't start simulation
        -r  <working directory>             Specify where corsika bin files are located
        -v  <version>                       Corsika version number
        -h  <high energy interaction model> High energy interaction model used for compilation of CORSIKA (EPOS|QGSII|SIBYLL)
        -f  <low energy interaction model>  Low energy interaction model used for compilation of CORSIKA (gheisha|fluka)
-       -l                                  Enables SLURM cluster compatibility (with sbatch). 
+       -s <site>                           Choice site for simulation (some predefined sites: hess|sac|etn|ber|bga|lim|glr|mch|mge|and|mpc|cha|cid|mor|ccs|lsc|mbo)
+       -a <high energy ecuts (GeV)>        Enables and set high energy cuts for ECUTS
+       -m <energy>                         Defines energy (in GeV) for monoenergetic showers (CHERENKOV)
+       -q <theta>                          Defines zenith angle (in degs) for fixed angle showers (CHERENKOV)
+       -p <prmpar>                         Defines primary particle (see table 4 pg 87) (CHERENKOV)
        -t  <EFRCTHN> <WMAX> <RMAX>         Enables THIN Mode (see manual for pg 62 for values)
        -th <THINRAT> <WEITRAT>             If THIN Mode, select different thining levels for Hadronic (THINH) ...
        -te <THINRAT> <WEITRAT>             ... and electromagnetic particles (THINEM)
-       -a <high energy ecuts (GeV)>        Enables and set high energy cuts for ECUTS
+       -b                                  Activates batch mode
+       -i                                  Disable PLOTSH and PLOTSH2 modes (usual simms production)
+       -l                                  Enables SLURM cluster compatibility (with sbatch). 
+       -d                                  Enables DOCKER mode (oneclient should be running)
        -z                                  Enables CHERENKOV mode
        -mu                                 Enables additional information from muons and EM particles
        -g                                  Enables GRID mode
-       -s <site>                           Choice site for simulation (some predefined sites: hess|sac|etn|ber|bga|lim|glr|mch|mge|and|mpc|cha|cid|mor|ccs|lsc|mbo)
-       -m <energy>                         Defines energy (in GeV) for monoenergetic showers (CHERENKOV)
-       -q <theta>                          Defines zenith angle (in degs) for fixed angle showers (CHERENKOV)
-       -p <prmpar>                         Defines primary particle (see table 4 pg 87) (CHERENKOV)
        \n";
 die "$usage\n" if ($help != 0);
 
 print STDERR "\nWARNING! You are running in DEBUG mode. I'll only show what I should do\n\n" if ($debug != 0);
 print STDERR "\nWARNING! CHERENKOV mode is enabled.\n\n" if ($cherenkov != 0);
+print STDERR "\nWARNING! DOCKER mode is enabled.\n\n" if ($docker != 0);
 print STDERR "\nWARNING! Site selected for simulation: $site.\n\n" unless ($site eq "");
 
 if ($runmode != 0) {
@@ -577,7 +579,6 @@ EXIT
   my $binout = sprintf("$direct/DAT%06d",$run_nr);
   my $out = "$direct/DAT$name.lst";
   my $script = "$home/run-$prj-$name.sh";
-  my $oneout = "$onedataBase/S3_${prj}_${site}_${lemodel}";
   unless ($debug != 0) {
     opendir(IMD, "$direct/") or system("mkdir $direct/");
     closedir(IMD);
@@ -595,11 +596,14 @@ EXIT
       print $fh "echo \"compressing output files...\"\n";
       print $fh "bzip2 -9v $binout\n";
       print $fh "bzip2 -9v $out\n";
-      print $fh "echo \"tranferring to onedata...\"\n";
-      print $fh "while ! cp -v $binout.bz2 $oneout; do sleep 5; done\n";
-      print $fh "while ! cp -v $file $oneout; do sleep 5; done\n";
-      print $fh "while ! cp -v $out.bz2 $oneout; do sleep 5; done\n";
-      print $fh "rm $binout.bz2 $file $out.bz2\n";
+	  if ($docker != 0) {
+		  my $oneout = "$onedataBase/S3_${prj}_${site}_${lemodel}";
+		  print $fh "echo \"tranferring to onedata...\"\n";
+	      print $fh "while ! cp -v $binout.bz2 $oneout; do sleep 5; done\n";
+		  print $fh "while ! cp -v $file $oneout; do sleep 5; done\n";
+	      print $fh "while ! cp -v $out.bz2 $oneout; do sleep 5; done\n";
+	      print $fh "rm $binout.bz2 $file $out.bz2\n";
+	  }
       print $fh "rm $script\n";
       close($fh);
       system("chmod 777 $script");
@@ -613,7 +617,7 @@ EXIT
     print "# $getjson\n";
     if ($slurm != 0) {
       print "###################################################################\n";
-      $cmd="sbatch -p debug -o ${name}_srun_%j.log ${script}";
+      $cmd="sbatch -p cpu36c -o ${name}_srun_%j.log ${script}";
     }
     else {
       print "# in screen $name\n";
@@ -628,8 +632,3 @@ EXIT
     }
   }
 }
-unless ($grid != 0) {
-  print "###################################################################\n";
-  print "# BYE BYE\n";
-  print "###################################################################\n";
-}