Actually, I think the detector should point to a detector name (“HPS-ECalCommissioning”) and not the path to the lcdd file.  lcsim/hps-java actually uses the compact.xml to build it’s detector (slic uses the lcdd).  

On Dec 14, 2014, at 10:36 PM, Kyle McCarty <[log in to unmask]> wrote:

Hello Matt,

When I try to run this, I first get an error saying that the steering file can not set "hide" in the ecal plots driver. Disabling this driver to bypass the error, I then get a second error

Exception in thread "main" java.lang.RuntimeException
        at org.hps.evio.EvioToLcio.run(EvioToLcio.java:271)
        at org.hps.evio.EvioToLcio.main(EvioToLcio.java:99)

that seems to be triggered by the following line:

conditionsManager.setDetector(detectorName, runNumber);

The command I used was:

java -cp $HPS_JAVA org.hps.evio.EvioToLcio -x EngineeringRun2014ECalRecon.lcsim -d ~/lcsim/detector-data/HPS-ECalCommissioning/HPS-ECalCommissioning.lcdd -n 1000000 hps_003206.evio.0 -DoutputFile="hps_003206.slcio" -R 3206
 
Any ideas why this failed?

Thanks,

Kyle

On Sun, Dec 14, 2014 at 5:08 PM, McCormick, Jeremy I. <[log in to unmask]> wrote:
Hi,

I have some tips to simplify this….

If you want to use a certain detector and run number combo and then “freeze” this in the conditions system, then you may use ConditionsDriver as the first exec driver in your list like this in the steering file.

<driver name=“ConditionsDriver” type=“org.hps.conditions.ConditionsDriver”>
   <detectorName>HPS-ECalCommissioning</detectorName>
   <runNumber>3229</runNumber>
   <freeze>true</freeze>
</driver>

There’s no need then to make this an argument to EvioToLcio or your front end script, as it becomes hard coded into the steering job.  (You can still use the command line arguments for this if you want though.  I don’t exactly know right now what happens if you specify both so be careful about that!)

Also, you should prefer to use the standard Maven installation dir for the jar rather than a relative path…

~/.m2/repository/org/hps/hps-distribution/3.1-SNAPSHOT/hps-distribution-3.1-SNAPSHOT-bin.jar

This makes your script more portable, as anyone who has installed hps-distribution should have that jar file located in their home area.

Also, I have just added a command line argument to the converter which allows it to take a list of EVIO files from a text file.  This is sometimes more convenient than needing to list all of them explicitly.

So I would make a simple run script more like this (assuming that you’ve modified the steering as above and built it into the bin jar).

----
#!/bin/sh

# path to hps-distribution jar
binjar=~/.m2/repository/org/hps/hps-distribution/3.1-SNAPSHOT/hps-distribution-3.1-SNAPSHOT-bin.jar

# get the list of files from the command line
if [ -z $1 ]; then
    echo “missing input file list”
    exit 1
fi
fileList=$1

# get the output file name from the name of the input file list
outputFile=$(basename ${fileList%.*})
outputFile=${outputFile}_recon

# run the lcsim job
java -cp ${binjar} org.hps.evio.EvioToLcio -r -x /org/hps/steering/recon/EngineeringRun2014ECalRecon.lcsim -DoutputFile=${outFile} -f ${fileList} &> ${outputFile}.log
----

I won’t modify your steering file in SVN.  But locking the conditions system to a known good detector and run number for now might not be a bad idea.  In the future, the run number will come from individual EVIO events if needed, but this isn’t implemented yet in our code.  It would need to see a pre start event first in order for the conditions system to be automatically configured correctly, which should work if you have the “evio.0” file as the first one in the list, but this probably isn’t something we can depend on.

Hope that helps.

—Jeremy


On Dec 14, 2014, at 12:58 PM, Graham, Mathew Thomas <[log in to unmask]> wrote:

>
> Here is the script I’ve been using to run reconstruction (I may have posted this already, but to bad)…I just committed this example recon file, which is basically the same as that the monitoring is using.  This will do whatever recon you want to do in the .lcsim and write out the lcio file with the converted evio collections + any reco collections that get added to the event.
>
> ===================================
> #!/usr/bin/perl
> $steering="resources/org/hps/steering/recon/EngineeringRun2014ECalRecon.lcsim";
> $jarfile="hps_trunk/distribution/target/hps-distribution-3.1-SNAPSHOT-bin.jar";
> $detector="HPS-ECalCommissioning";
> $run=3229;
> $in="Data/hps_00$run.evio.0";
> $out = "recon-$run";
> `java -cp $jarfile org.hps.evio.EvioToLcio   -x $steering -d $detector -n 1000000 $in -DoutputFile=${out} -R $run >& foobar`;
> ====================================
>
> 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



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