function [states,q,qa,transitions,I,U,configuration] = getCollidingMassesInput
% Colliding masses

        % definition of locations -----------------------------------------
        % continuous dynamics in each state        
        states{1}.A = [0,0,1,0;...
                       0,0,0,1;...
                       0,0,0,0;...
                       0,0,0,0];      
        states{1}.b = [];   
        states{1}.B = [0,0,0,0;...
                       0,0,0,0;...
                       0,0,0,0;...
                       0,0,0,1];
        
        q=[1]; % discrete states 
        qa=1; % initial mode

        % definition of transitions ---------------------------------------
        
        % guards d.x=e for each transition 
        transitions{1}.eguards_dir = [1 -1 0 0];
        transitions{1}.eguards_val = [0];
        
        % Reset
        transitions{1}.ResetMatrix = [1,0,0,0;... % preserve the same p1,p2
                                      0,1,0,0;...
                                      0,0,-1,0;...% change the direction of v1 and v2 but the flow remains the same (=same mode)
                                      0,0,0,-1]; % for all states
                                  
        % start and end location of the transition nbr 1
        transitions{1}.from = 1;
        transitions{1}.to = 1;
        
        % initial values --------------------------------------------------
        
        % initial set (as polyheder)
        I.polyheder.C = vectorgenerator(4) ;
        I.polyheder.d = [0;0;3;-3;2;-2;-1;1];

        % input set (as zonotope)
        U.zonotope.c=[0;0;0;0];
        U.zonotope.g=0.001*eye(4,4);
        
        % input set (as box)
        U.box = [0;0;0;0];
        
        % configuration parameters ----------------------------------------
        configuration.timehorizon = 1; % time horizon
        configuration.timestep = 0.01; % timestep
        