Print

Print


Instead of writing a main() class and doing your analysis inside it, you 
would probably find it easier to write a Driver. Then the existing 
hps-java code will take care of reading events from the file and passing 
EventHeaders to your Driver.

Roughly:

1. Follow the instructions to install and build hps-java (maybe you've 
done this already): 
https://confluence.slac.stanford.edu/display/hpsg/Installing+HPS+Java

2. Make a class that extends Driver, much like what you already seem to 
have in 
trunk/users/src/main/java/org/hps/users/spaul/HitrateHistograms.java. You 
can put your analysis code in the method process(EventHeader event).

3. Build hps-java to compile your Driver into an hps-distribution .jar 
file.

4. Write a steering file that calls your Driver, much like what you have 
in 
trunk/steering-files/src/main/resources/org/hps/steering/users/spaul/HitrateHistograms.lcsim.

5. Run the steering file on data:

java -jar hps-distribution-bin.jar -i lcioFile.slcio steeringFile.xml


If there's a reason a Driver is not appropriate for what you're doing, 
maybe we can figure something out that works. What you're doing now seems 
really strange without some more explanation.

On Fri, 24 Jul 2015, Sebouh Paul wrote:

> this seems like a stupid question but how do I get an "EventHeader" from a
> file?
>
> I get this error:
>
> ifarm1101> java -cp "lib/*:bin" hps.protonradius.GetCharge
> /work/hallb/hps/data/engrun2015/pass1/recon/hps_005779.81_recon_R3321.slcio
> 5779
>
> blah
>
> Exception in thread "main"
> org.lcsim.conditions.ConditionsManager$ConditionsSetNotFoundException: No
> converter registered for type: org.lcsim.geometry.Detector
>
> at
> org.lcsim.conditions.ConditionsManagerImplementation.getCachedConditions(ConditionsManagerImplementation.java:92)
>
> at org.lcsim.event.base.BaseLCSimEvent.getDetector(BaseLCSimEvent.java:76)
>
> at
> org.lcsim.lcio.SIOTrackBlockHandler.addCollectionElements(SIOTrackBlockHandler.java:23)
>
> at
> org.lcsim.lcio.AbstractBlockHandler.readCollection(AbstractBlockHandler.java:39)
>
> at
> org.lcsim.lcio.AbstractBlockHandler.readBlock(AbstractBlockHandler.java:32)
>
> at org.lcsim.lcio.LCIOReader.read(LCIOReader.java:77)
>
> at hps.protonradius.GetCharge.main(GetCharge.java:22)
>
>
> With this program:
>
> public class GetCharge {
>
> public static void main(String arg[]) throws IOException,
> NumberFormatException, ConditionsNotFoundException{
>
> LCIOReader reader = new LCIOReader(new File(arg[0]));
>
> //ConditionsManagerImplementation.defaultInstance().setRun(Integer.parseInt(arg[1]));
>
> //ConditionsManagerImplementation.defaultInstance().
>
> System.out.println("blah");
>
> EventHeader h = reader.read();
>
> while(h != null){
>
> process(h);
>
> }
>
> System.out.println("done");
>
> }
>
> ....
>
> }
>
> ########################################################################
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the HPS-SOFTWARE list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1
>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the HPS-SOFTWARE list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=HPS-SOFTWARE&A=1