Drivers are for processing events one-by-one and doing some work on the data. This may include performing some physics analysis or creating plots. A driver can contain additional, "child" drivers, so the complexity of the processing algorithm can be segmented into several different logical functions.
Start JAS3 and open the file from the LCSim Event Browser Tutorial using the File -> Open command.
You should now see the record loop commands and the name of the file displayed in the record source drop-down box.
Open a sample driver by going to Help -> Examples and navigating to org.lcsim Examples. Click on Analysis101 to load the sample driver in a new window.
Below is the complete text of the Analysis101 Driver.
import org.lcsim.util.aida.AIDA; import hep.physics.vec.VecOp; import java.util.List; import org.lcsim.event.EventHeader; import org.lcsim.event.MCParticle; import org.lcsim.util.Driver; public class Analysis101 extends Driver { private AIDA aida = AIDA.defaultInstance(); protected void process(EventHeader event) { List<MCParticle> particles = event.get(MCParticle.class,event.MC_PARTICLES); aida.cloud1D("nTracks").fill(particles.size()); for (MCParticle particle : particles) { aida.cloud1D("energy").fill(particle.getEnergy()); aida.cloud1D("cosTheta").fill(VecOp.cosTheta(particle.getMomentum())); aida.cloud1D("phi").fill(VecOp.phi(particle.getMomentum())); } } } |