Add hit bitpatterns to MCTrack and define status bits in MCTrackPoint
Export MCTrackPoint::fNFound variable
Use more relaistic MCTrackPoint search window. Reorder status bit numbers.
Makefile improvements. Don't run rootcint with ROOTCFLAGS.

Also, extract CXX and CC from root-config instead of hardcoding the
compiler names.

(cherry picked from commit f7e4140dfb928ca9404e746b71f8da4a3e16f1ff)
Report empty detector map as an error, not just a warning

(cherry picked from commit d92b74024d4c41c98795e2d89d5d3f3b52ea7724)
Bugfix: Don't report error if THaHelicityDet can't find its database file

All ReadDatabase functions should behave in this way if they only read
optional paramaters, as this one does.

(cherry picked from commit 6482c5abfa670aee159cef4e1c699f4c632f8f4e)
Let Git also ignore dictionary files ending in .cxx, as in the SDK
Add cluster size to MCTrackPoint

This is intended to be the size of the reconstructed cluster (group of
hits/strips/wires etc.) found closest to the MCTrackPoint. It could
also be some other counter, like hit multiplicity, as appropriate.
Move event weight from MCTrack to SimDecoder event data

There should only be one MC weight per event, unless I misunderstand
something.
Initialize fit results in MCTrack to kBig, not 0.
Support defining RTTI variables that are specific elements of fixed-sized arrays
Add a couple of useful operators to THaArrayString

Cast to const TString& allows THaArrayStrings to be used in many
places where a TString is expected.

operator[] replaces the awkward idiom
   const Int_t* avar = var.GetDim();
   ... avar[i] ...
with a simple
   ... var[i] ...

operator! offers the shorthand !var instead of var.IsError().
Extend support of fixed-element RTTI variables to multi-dim arrays

One can now define variables like

RVarDef vars[] = {
  { "oned",   "1D array",  "fArray" },
  { "elem0",  "fArray[0]", "fArray[0]" },
  { "elem1",  "fArray[1]", "fArray[1]" },
  { "twod",   "2D array",  "f2D" },
  { "elem02", "f2D[0][2]", "f2D[0][2]" },
  { "elem30", "f2D[3][0]", "f2D[3][0]" },
  { 0 }
};

where fArray and f2D are fixed-size array member variables.
Previously, only 1-d arrays were supported.
Begin setting up unit tests in tests subdirectory

Our first (prototype) unit test verifies global variables of arrays
and array elements when those variables are defined via RTTI.
Usage example:

gSystem->Load("tests/libTests.so");
ArrayRTTI* t = new ArrayRTTI();
t->Init();
t->Test();

Test() should return 0. On error, a message is printed, and a value != 0
is returned.

Call t->SetDebug(1) or (2) to increase verbosity during Test().

There's a lot more to come here.
Add support for defining global variables on std::vector via RTTI

Currently supports the four vector types that are supported by THaVar:
vector<int>, vector<unsigned int>, vector<float> and vector<double>.

More types should be added at some point, in particular vector<bool>
and vector<Long64_t>.

Closes #57
Add unit test for defining std::vector global variables via RTTI
Make THaVar::fDim a mutable member variable

I must have had a bad day when I added fDim originally ...

Closes #59
Add default method THaAnalysisObject::MakePrefix()

This sets the prefix to "name.", which is a reasonable default for
many modules, e.g. physics modules and apparatuses.

As a result, THaAnalysisObject is no longer an abstract base class.
However, since the constructor is protected, we still prevent people
from instantiating plain THaAnalysisObjects. This is intentional
as such an object would have no functionality.
Put tests in namespace Podd::Tests. Let unit tests inherit from a base class.
Add THaVar::IsVarArray()