Print

Print


Andrew,
You only need the lcio root dictionary if you want to access the
lcio files directly from within root. If you want to access the DSTs
in root format you do not need the dictionary. If you want to access
the LCIO files from C++ you can use the LCIO classes and API.
 If you want to avoid the whole issue of platform-dependent builds
you can, of course, always use the Java software.
 Let us know what you would like to do so we can provide
better guidance.
Norman

________________________________________
From: McCormick, Jeremy I.
Sent: Tuesday, April 02, 2013 11:24 AM
To: [log in to unmask]
Cc: Omar Moreno; Yuri Gershtein; Graf, Norman A.; hps-software
Subject: Re: DSTs and work on slcio files using C++

Do you need root dict support?  I thought our code uses the standalone lcio api.  Correct me if I am wrong.

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>

########################################################################
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