I mean that lcio is used as a seperate library which has nothing to do with root, except root and lcio are codes are called in the same script, like the converter. I didn't think we were even using the lcio root dict. I do not think we rely on the class dictionaries. Maybe Omar knows more... On Apr 2, 2013, at 11:39 AM, "Yuri Gershtein" <[log in to unmask]> wrote: >> Do you need root dict support? I thought our code uses the standalone lcio api. Correct me if I am wrong. > > My impression was that I need the libraries to be able to open LCIO files from root. > I'm not sure what "standalone lcio api" means, sorry... > -y > > >> >> On Apr 2, 2013, at 9:18 AM, "[log in to unmask]" <[log in to unmask]> wrote: >> >>> Hi Omar, >>> >>> The file is attached. Also, my version of Cmake is 2.8.7, just to clear >>> that up. >>> >>> Andrew >>> >>>> Hello Andrew and Yuri, >>>> >>>> In order to run the the LCIO to ROOT converter you are going to need to >>>> compile the LCIO ROOT dictionaries i.e. BUILD_ROOTDICT=1. However, this at >>>> least gives us a hint as to what may be the problem. >>>> >>>> Can you try running >>>> >>>> cmake -D BUILD_ROOTDICT=1 -D ROOT_DIR=<your ROOT directory> .. >>>> >>>> >>>> again, and then send me the file "CMakeCache.txt" located in the >>>> directory lcio/trunk/build/ ? >>>> >>>> >>>> >>>> --Omar Moreno >>>> >>>> >>>> >>>> On Tue, Apr 2, 2013 at 8:29 AM, <[log in to unmask]> wrote: >>>> >>>>> Hello all, >>>>> >>>>> I got LCIO to build successfully! The problem was with the ROOT >>>>> dictionaries, and the line of code Omar suggested did the trick. >>>>> >>>>> Thanks everyone for your help, >>>>> >>>>> Andrew >>>>> >>>>>> Not yet, Andrew has classes to deal with first ;) >>>>>> So far the suggestions were: >>>>>> - verify cmake version (I think it's a very recent one because Andrew >>>>> said >>>>>> he had to install it for this) >>>>>> - check the build without dictionaries >>>>>> >>>>>> we;ll get back to you. >>>>>> Thanks, >>>>>> -y >>>>>> >>>>>> On Apr 2, 2013, at 10:55 AM, Graf, Norman A. wrote: >>>>>> >>>>>>> Hello Yuri, >>>>>>> Did you verify that your LCIO build was successful without specifying >>>>>>> the >>>>>>> root dictionary be built? >>>>>>> Norman >>>>>>> >>>>>>> ________________________________ >>>>>>> From: [log in to unmask] [[log in to unmask]] >>>>> On >>>>>>> Behalf Of Yuri Gershtein [[log in to unmask]] >>>>>>> Sent: Tuesday, April 02, 2013 7:32 AM >>>>>>> To: Omar Moreno >>>>>>> Cc: McCormick, Jeremy I.; hps-software; [log in to unmask] >>>>>>> Subject: Re: DSTs and work on slcio files using C++ >>>>>>> >>>>>>> Hi Omar, >>>>>>> >>>>>>> great, so RH and MacOS work. >>>>>>> Question is what to do if you have an Ubuntu. >>>>>>> We'll try compiling without dictionaries and see what happens. >>>>>>> But then again it would be unusable for our purposes, no? >>>>>>> >>>>>>> -y >>>>>>> >>>>>>> On Apr 2, 2013, at 3:46 AM, Omar Moreno wrote: >>>>>>> >>>>>>> I went ahead and built LCIO using the instructions found on the >>>>>>> confluence and I didn't have an issue. I used ROOT version 5.34, >>>>> cmake >>>>>>> version 2.8.6 on OpenSuse 12.1. Building LCIO requires a cmake >>>>> version >>>>>>> greater than 2.6 so make sure that you have that installed. >>>>>>> >>>>>>> It looks like the problem is occurring when it's trying to generate >>>>> the >>>>>>> LCIO ROOT dictionaries (I think). If you issue the following cmake >>>>>>> command >>>>>>> >>>>>>> >>>>>>> cmake -D BUILD_ROOTDICT=0 -D ROOT_DIR=$ROOTSYS .. >>>>>>> >>>>>>> >>>>>>> and then issue the make command, does LCIO build successfully? >>>>>>> >>>>>>> >>>>>>> --Omar Moreno >>>>>>> >>>>>>> >>>>>>> On Mon, Apr 1, 2013 at 4:36 PM, Yuri Gershtein >>>>>>> <[log in to unmask]<mailto:[log in to unmask]>> >>>>>>> wrote: >>>>>>> Hi, >>>>>>> >>>>>>> yes, e-mail list was cc-ed… >>>>>>> Adding Andrew to the thread again. >>>>>>> >>>>>>> He should verify, but I think it's a modern root release (5.34), and >>>>>>> ROOTSYS and LD_LIBRARY_PATH are set. >>>>>>> Now with LCIO I am not sure - your instructions say to svn from the >>>>>>> trunk. >>>>>>> I'm not even positive that what I have on my Mac is the same version. >>>>>>> >>>>>>> -y >>>>>>> >>>>>>> >>>>>>> On Apr 1, 2013, at 7:31 PM, Omar Moreno wrote: >>>>>>> >>>>>>> >>>>>>> I think the email was initially sent to the mailing list. >>>>>>> >>>>>>> It looks like the errors occurs when compiling LCIO. What version of >>>>>>> LCIO are you trying to compile? Also, what version of ROOT are you >>>>>>> running? Finally, have you set ROOTSYS and added the root libraries >>>>> to >>>>>>> your path? >>>>>>> >>>>>>> --Omar Moreno >>>>>>> >>>>>>> On Apr 1, 2013 4:04 PM, "McCormick, Jeremy I." >>>>>>> <[log in to unmask]<mailto:[log in to unmask]>> wrote: >>>>>>> >>>>>>> >>>>>>> Begin forwarded message: >>>>>>> >>>>>>> From: "McCormick, Jeremy I." >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>> >>>>>>> Subject: Re: DSTs and work on slcio files using C++ >>>>>>> Date: April 1, 2013 4:00:02 PM PDT >>>>>>> To: Yuri Gershtein >>>>>>> <[log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>>> >>>>>>> Cc: Omar Moreno >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Nelson, Timothy Knight" >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Neal, Homer A." >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Jaros, John A." >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Graham, Mathew Thomas" >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Graf, Norman A." >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> "Moreno, Omar" >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> Maurik Holtrop >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>>, >>>>>>> hps-software >>>>>>> <[log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>>>, >>>>>>> "[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>" >>>>>>> <[log in to unmask]<mailto:[log in to unmask]><mailto: >>>>> [log in to unmask]<mailto:[log in to unmask]>>> >>>>>>> >>>>>>> Hi, please use the hps-software mailing list as it gets archived and >>>>>>> most of these people are on it. >>>>>>> >>>>>>> Looks like a simple namespace issue. Is there a missing declaration >>>>>>> like... >>>>>>> >>>>>>> using namespace lcio; >>>>>>> >>>>>>> Or if not that is it simply failing to find the lcio build? Did the >>>>>>> lcio build complete without errors? >>>>>>> >>>>>>> On Apr 1, 2013, at 3:44 PM, "Yuri Gershtein" >>>>>>> <[log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>>> >>>>>>> wrote: >>>>>>> >>>>>>> >>>>>>> Hi Omar, >>>>>>> >>>>>>> as I mentioned, I followed these instructions and they worked >>>>> perfectly >>>>>>> for me on my Mac. >>>>>>> >>>>>>> Now my new student Andrew (Andrew meet the software experts, software >>>>>>> experts meet Andrew) >>>>>>> Running Ubuntu 12.04 LTS 64 bit, the instructions break. >>>>>>> I.e. when he does make install he gets an error with the following >>>>>>> disgnostics: >>>>>>> >>>>>>> 56%] Building CXX object >>>>>>> lcio/CMakeFiles/lcioDict.dir/__/rootdict/UTIL.cxx.o >>>>>>> In file included from >>>>>>> /home/chill/Research/lcio/trunk/build/rootdict/UTIL.h:39:0, >>>>>>> from >>>>>>> /home/chill/Research/lcio/trunk/build/rootdict/UTIL.cxx:17: >>>>>>> /home/chill/Research/lcio/trunk/src/cpp/include/UTIL/LCIterator.h: In >>>>>>> constructor ‘UTIL::LCIterator<T>::LCIterator(EVENT::LCEvent*, const >>>>>>> string&)’: >>>>>>> /home/chill/Research/lcio/trunk/src/cpp/include/UTIL/LCIterator.h:69:10: >>>>>>> error: ‘lcio’ has not been declared >>>>>>> /home/chill/Research/lcio/trunk/src/cpp/include/UTIL/LCIterator.h: In >>>>>>> constructor ‘UTIL::LCIterator<T>::LCIterator(EVENT::LCCollection*)’: >>>>>>> /home/chill/Research/lcio/trunk/src/cpp/include/UTIL/LCIterator.h:89:10: >>>>>>> error: ‘lcio’ has not been declared >>>>>>> make[2]: *** [lcio/CMakeFiles/lcioDict.dir/__/rootdict/UTIL.cxx.o] >>>>> Error >>>>>>> 1 >>>>>>> make[1]: *** [lcio/CMakeFiles/lcioDict.dir/all] Error 2 >>>>>>> make: *** [all] Error 2 >>>>>>> >>>>>>> >>>>>>> We just went together through the instructions from scratch, and the >>>>>>> error persists. >>>>>>> Did you see anything like that before? >>>>>>> >>>>>>> Since we are uploading things from the trunk, is it possible that the >>>>>>> version he just downloaded is a >>>>>>> different one? >>>>>>> >>>>>>> Thanks! >>>>>>> -y >>>>>>> >>>>>>> >>>>>>> On Mar 7, 2013, at 10:20 PM, Omar Moreno wrote: >>>>>>> >>>>>>> >>>>>>> Hello Yuri, >>>>>>> >>>>>>> On Thu, Mar 7, 2013 at 6:54 PM, Yuri Gershtein >>>>>>> <[log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>>> >>>>>>> wrote: >>>>>>> Hi Tim, >>>>>>> >>>>>>> >>>>>>> Sorry... I didn't mean to ding you for not googling first, >>>>>>> >>>>>>> ;) no harm done. >>>>>>> >>>>>>> >>>>>>> I think all of your questions are good ones that we don't have >>>>> answers >>>>>>> to yet, and are the types of things we are grappling with in these >>>>>>> discussions. >>>>>>> >>>>>>> I guess I propose we figure out the boundary conditions resource-wise >>>>>>> that we're dealing with first, >>>>>>> and then figure out what kind of event content we can afford. >>>>>>> >>>>>>> The question of ROOT vs LCIO here is probably separate. ROOT is >>>>> pretty >>>>>>> good at packing the data, >>>>>>> but then again I guess LCIO is as well, so size-wize this should not >>>>>>> matter, correct? >>>>>>> And if I can write a C++ program that reads in a file and writes out >>>>> a >>>>>>> root tree, this is just my analysis job. >>>>>>> I.e. even in CMS, where all data, even RAW, are root files, I make >>>>>>> another root tree for my own analyses purposes, >>>>>>> and I actually see advantages in having LCIO microDSTs. An Ntuplizer >>>>>>> that has TClonesArrays of >>>>>>> some simple classes is pretty straightforward to write once we know >>>>> the >>>>>>> content, so I do not see how >>>>>>> this is worth an argument at this point... >>>>>>> >>>>>>> How do I get Omar's code? I'd like to see if we can start using C++ >>>>> to >>>>>>> read in lcio files that we generate here at Rutgers. >>>>>>> >>>>>>> If you simple want to read LCIO files using the C++ API, I would >>>>> start >>>>>>> here: >>>>> https://confluence.slac.stanford.edu/display/hpsg/Loading+LCIO+Files+into+ROOT >>>>>>> >>>>>>> Here you will find all the instructions needed to install the LCIO >>>>>>> library and will find a couple of examples. >>>>>>> >>>>>>> If you want access to my code it is in a github. You can clone the >>>>> repo >>>>>>> using the following command: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> git clone https://github.com/omar-moreno/hps_dst/ >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> The repo will contain the converter and the API used to access the >>>>> event >>>>>>> information. In order to build the binaries, simply use the Make >>>>>>> command. Note that you need to make sure that the environmental >>>>>>> variables described in the first link have been set correctly in >>>>> order >>>>>>> for the make command to work. >>>>>>> >>>>>>> >>>>>>> Once the binaries are made you can get usage information as follows: >>>>>>> >>>>>>> >>>>>>> ./bin/write_hps_event -h >>>>>>> >>>>>>> >>>>>>> If you look at the converter code, it should give you an idea of how >>>>> to >>>>>>> loop over an LCIO event, access collections and so on. Also, if you >>>>> run >>>>>>> the following command >>>>>>> >>>>>>> >>>>>>> ./bin/write_hps_event -i <lcio file> -d >>>>>>> >>>>>>> >>>>>>> If will dump a printout of the collections available in the lcio >>>>> file. >>>>>>> Something like this >>>>> --------------------------------------------------------------------------- >>>>>>> COLLECTION NAME COLLECTION TYPE NUMBER OF >>>>>>> ELEMENTS >>>>> =========================================================================== >>>>>>> ConfirmedMCParticles MCParticle 0 >>>>>>> EcalCalHits CalorimeterHit 2 >>>>>>> EcalClusters Cluster 1 >>>>>>> EcalReadoutHits RawCalorimeterHit 12 >>>>>>> FPGAData LCGenericObject 7 >>>>>>> HelicalTrackHitRelations LCRelation 0 >>>>>>> HelicalTrackHits TrackerHit 0 >>>>>>> HelicalTrackMCRelations LCRelation 0 >>>>>>> MatchedTracks Track 0 >>>>>>> RotatedHelicalTrackHitRelationsLCRelation 0 >>>>>>> RotatedHelicalTrackHits TrackerHit 0 >>>>>>> RotatedHelicalTrackMCRelationsLCRelation 0 >>>>>>> SVTFittedRawTrackerHits LCRelation 43 >>>>>>> SVTRawTrackerHits TrackerRawData 43 >>>>>>> SVTShapeFitParameters LCGenericObject 43 >>>>>>> SeededMCParticles MCParticle 0 >>>>>>> StripClusterer_SiTrackerHitStrip1DTrackerHit 0 >>>>>>> TriggerBank LCGenericObject 1 >>>>> --------------------------------------------------------------------------- >>>>>>> >>>>>>> >>>>>>> >>>>>>> This will give you the collection names you can access using the LCIO >>>>>>> C++ API. >>>>>>> >>>>>>> >>>>>>> I must note that there are a lot of changes that I haven't pushed >>>>> yet. >>>>>>> I hoping to do that sometime this weekend once I have sometime I am >>>>>>> happy with. >>>>>>> >>>>>>> >>>>>>> Let me know if you have any questions or issues running it. >>>>>>> >>>>>>> >>>>>>> --Omar Moreno >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -y >>>>>>> >>>>>>> >>>>>>> Tim >>>>>>> >>>>>>> On Mar 7, 2013, at 5:23 PM, Yuri Gershtein >>>>>>> <[log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>>> >>>>>>> wrote: >>>>>>> >>>>>>> Hi Tim, >>>>>>> >>>>>>> thanks, and apologies for not googling things before asking. >>>>>>> >>>>>>> Yes, certainly, it is practical. LCIO was long ago settled on as the >>>>>>> EDM for HPS and the LCIO output will be the raw output format of the >>>>>>> experiment. Like any persistency framework, we can decide exactly >>>>> what >>>>>>> parts of the events we can afford to output to tape. That content >>>>> has >>>>>>> not yet been settled. There are some things that for whatever reason >>>>>>> haven't been persisted as LCIO objects in the past (but should be) >>>>> and >>>>>>> there are other things we have been writing to the events that won't >>>>> be >>>>>>> feasible to keep when we have large volumes of data. >>>>>>> >>>>>>> Should we have this discussion with some concrete numbers for what >>>>> the >>>>>>> event sizes are going to be then and what computing / storage >>>>> resources >>>>>>> are going to be available at which sites? >>>>>>> >>>>>>> One could make an LCIO micro-DST also, but it seems the desire is to >>>>>>> convert to ROOT at the point of slimming the data for analysis. >>>>>>> >>>>>>> Oh, I'm all for it, but there is also value in being able to run the >>>>>>> same or similar code on DST or micro-DST… >>>>>>> It's also would be great to define what is meant by "analysis" here - >>>>>>> is alignment analysis? ECAL calibration? Development of electron ID? >>>>>>> Do you foresee that it is all done in DST, or you have a separate >>>>>>> calibration stream? >>>>>>> >>>>>>> Again, sorry, I'm just trying to come up to speed with the computing >>>>>>> model, >>>>>>> may be I can google those kind of questions as well… >>>>>>> >>>>>>> thanks, >>>>>>> -y >>>>>>> >>>>>>> -------------------------- >>>>>>> Prof. Yuri Gershtein >>>>>>> [log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>> >>>>>>> http://physics.rutgers.edu/~gershtein >>>>>>> (732)445-5500 >>>>>>> x1794<tel:%28732%29445-5500%20x1794><tel:%28732%29445-5500%20x1794> >>>>>>> W316 Serin Building >>>>>>> Department of Physics and Astronomy >>>>>>> 136 Frelinghuysen Rd >>>>>>> Rutgers University >>>>>>> Piscataway, NJ 08854 >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -------------------------- >>>>>>> Prof. Yuri Gershtein >>>>>>> [log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>> >>>>>>> http://physics.rutgers.edu/~gershtein >>>>>>> (732)445-5500 >>>>>>> x1794<tel:%28732%29445-5500%20x1794><tel:%28732%29445-5500%20x1794> >>>>>>> W316 Serin Building >>>>>>> Department of Physics and Astronomy >>>>>>> 136 Frelinghuysen Rd >>>>>>> Rutgers University >>>>>>> Piscataway, NJ 08854 >>>>>>> >>>>>>> >>>>>>> >>>>>>> -------------------------- >>>>>>> Prof. Yuri Gershtein >>>>>>> [log in to unmask]<mailto:[log in to unmask] >>>>>> <mailto:[log in to unmask]<mailto: >>>>> [log in to unmask]>> >>>>>>> http://physics.rutgers.edu/~gershtein >>>>>>> (732)445-5500 x1794<tel:%28732%29445-5500%20x1794> >>>>>>> W316 Serin Building >>>>>>> Department of Physics and Astronomy >>>>>>> 136 Frelinghuysen Rd >>>>>>> Rutgers University >>>>>>> Piscataway, NJ 08854 >>>>>>> >>>>>>> >>>>>>> >>>>>>> ######################################################################## >>>>>>> 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 >>>>>>> >>>>>>> -------------------------- >>>>>>> Prof. Yuri Gershtein >>>>>>> [log in to unmask]<mailto:[log in to unmask]> >>>>>>> http://physics.rutgers.edu/~gershtein >>>>>>> (732)445-5500 x1794<tel:%28732%29445-5500%20x1794> >>>>>>> W316 Serin Building >>>>>>> Department of Physics and Astronomy >>>>>>> 136 Frelinghuysen Rd >>>>>>> Rutgers University >>>>>>> Piscataway, NJ 08854 >>>>>>> >>>>>>> >>>>>>> >>>>>>> -------------------------- >>>>>>> Prof. Yuri Gershtein >>>>>>> [log in to unmask]<mailto:[log in to unmask]> >>>>>>> http://physics.rutgers.edu/~gershtein >>>>>>> (732)445-5500 x1794 >>>>>>> W316 Serin Building >>>>>>> Department of Physics and Astronomy >>>>>>> 136 Frelinghuysen Rd >>>>>>> Rutgers University >>>>>>> Piscataway, NJ 08854 >>>>>>> >>>>>>> >>>>>>> ________________________________ >>>>>>> >>>>>>> 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 >>>>>>> <winmail.dat> >>>>>> >>>>>> -------------------------- >>>>>> Prof. Yuri Gershtein >>>>>> [log in to unmask] >>>>>> http://physics.rutgers.edu/~gershtein >>>>>> (732)445-5500 x1794 >>>>>> W316 Serin Building >>>>>> Department of Physics and Astronomy >>>>>> 136 Frelinghuysen Rd >>>>>> Rutgers University >>>>>> Piscataway, NJ 08854 >>> <CMakeCache.txt> > > -------------------------- > Prof. Yuri Gershtein > [log in to unmask] > http://physics.rutgers.edu/~gershtein > (732)445-5500 x1794 > W316 Serin Building > Department of Physics and Astronomy > 136 Frelinghuysen Rd > Rutgers University > Piscataway, NJ 08854 > ######################################################################## 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