Difference between Root dict and LCG reflex dict

During a compilation (scram) I see:

Building Root dict from header file src/Analysis/src/AnalysisLinkDef.h 
Building LCG reflex dict from header file src/Analysis/src/classes.h

What is the difference between Root dict and LCG reflex dict. What does LCG stand for?

Please read tips for efficient and successful posting and posting code

ROOT Version: Not Provided
Platform: Not Provided
Compiler: Not Provided


You are using scram to build some version of CMSSW?

In this forum you’ll find help for questions about ROOT itself, but I’ll try to answer: I guess the first dictionary is related to ROOT (since CMSSW provides ROOT). LCG stands for LHC Computing Grid, but don’t know what’s in that dictionary.

I am building my project on top of CMSSW in a scram based area.

By studying genreflex --help I conclude that LCG dict is in the realm of ROOT.

I see, perhaps CMSSW support will be able to tell you more about those dictionaries?

The name are essentially historical at this point. “root dict” indicates that the input/configuration of the dictionary generation step was done via a LinkDef file (using #pragma link ... syntax) while “LCG reflex dict” indicates that the input/configuration was done via a selection.xml file (in XML format).

There used to be a distinct product named “Reflex” that was part of one of the LCG software suite.

The ends result of both calls is similar and is a generate C++ source file that is used to load information (in particular I/O related) on the content of the corresponding library (Interacting with Shared Libraries: rootcling | ROOT a Data analysis Framework)

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.