UChar_t operation problems

I have a class, generated by TChain::MakeClass. The cahain contains several parameters, which all are integer and have values no more then 30. But some of them are described as Int_t, some (parameter nn) - as UChar_t. Operations with UChar_t are incorrect. For example, comparisons like (nn<=2) or (nn>=2) both gives false. An attempt to print it using std::cout gives some strange characters. An attempt to convert UChar_t to Int_t useng static_cast gives values of nn which are not seen using TChain::Draw.

Why different integer parameters have different types? For what UChar_t is needed? How to make all integer parameters Int_t and get rid of another integer types?

A generated class is attached. It is a base class which is used to make event processing class.

Ntuples are made by h2root.

eppkk_base.C (1.43 KB)
eppkk_base.h (32.8 KB)

After regeneration of ntuple structure the situation is different: nn, converted to int is always zero. But it is wrong.