HighLAND
From highland to highland2

Things you need to know

Bugzilla

We already have separated entries for psyche and highland2 in bugzilla

Structure

nd280AnalysisTools: highland2 needs this to understand oaAnalysis files and make the true-reco association.

psyche

highland2

nd280Psyche: this is the psyche master package used for releases and recursive check out nd280Highland2: this is the highland2 master package used for releases and recursive check out

Event selection

Creating a new analysis in highland2

  1. Create a cmt package (i.e. myAnalysis) inside highland2.
    • go outside highland2 directory
    • cmt create myAnalysis v0r0 highland2
    • This will create a cmt package highland2/myAnalysis
  2. In the src directory create:
    • myAnalysis.cxx/hxx
    • mySelection.cxx/hxx
  3. Fill those files taking as examples numuCCAnalysis or numuCCMultiPiAnalysis, both in highland2, and numuCCSelection or numuCCMultiPiSelection, both under psyche/psycheSelections
  4. Once mySelection is mature enough it could be officialized (moved into psycheSelections)

Migrating an analysis from highland to highland2

Following the previous instructions migration from highland to highland2 can proceed. Some recommendations:

Flat Trees

FlatTree is now fully working and validated in highland2. It is highly recomended to use highland2 files since few issues has been solved.

In previous versions oo highland2 it was possible to run over old highland FlatTrees, although to do that you had to comment ou the line

#define USEHIGHLAND2

in FlatTreeConverter.hxx

This functionality is not available anymore. Everyone is supposed to use highland2 FlatTrees when running highland2 analyses

DrawingTools

They are similar to the ones in highland. Some interesting new methods you can use:

highland --> highland2 quick table

-For categories

Some AnaTrueVertex need to become AnaTrueVertexB (if pointing to psyche, "B" stand for "Base", i.e. it is in psyche) and afterwards it might need to be casted to AnaTrueVertex with: static_cast<AnaTrueVertex*>(trueTrack->TrueVertex)

std_actions:: —> anaUtils:: (common methods might be in psycheUtils or in baseAnalysis/CategoriesUtils or in highlandUtils (just created in the head), with the same namespace anaUtils, and you have to #include the needed hxx, i.e. AnalysisUtils.hxx or CategoriesUtils.hxx or ??? (see in highlandUtils)