29 TLeafL::TLeafL(): TLeaf()
 
   31    fLenType = 
sizeof(Long64_t);
 
   41 TLeafL::TLeafL(TBranch *parent, 
const char *name, 
const char *type)
 
   42    :TLeaf(parent, name,type)
 
   44    fLenType = 
sizeof(Long64_t);
 
   56    if (ResetAddress(0,kTRUE)) 
delete [] fValue;
 
   62 void TLeafL::Export(TClonesArray *list, Int_t n)
 
   64    Long64_t *value = fValue;
 
   65    for (Int_t i=0;i<n;i++) {
 
   66       char *first = (
char*)list->UncheckedAt(i);
 
   67       Long64_t *ii = (Long64_t*)&first[fOffset];
 
   68       for (Int_t j=0;j<fLen;j++) {
 
   78 void TLeafL::FillBasket(TBuffer &b)
 
   82    if (fPointer) fValue = *fPointer;
 
   84       if (fValue[0] > fMaximum) fMaximum = fValue[0];
 
   87       for (i=0;i<len;i++) b << (ULong64_t)fValue[i];
 
   89       b.WriteFastArray(fValue,len);
 
   96 const char *TLeafL::GetTypeName()
 const 
   98    if (fIsUnsigned) 
return "ULong64_t";
 
  107 Double_t TLeafL::GetValue(Int_t i)
 const 
  109    if (fIsUnsigned) 
return (Double_t)((ULong64_t)fValue[i]);
 
  118 LongDouble_t TLeafL::GetValueLongDouble(Int_t i)
 const 
  120    if (fIsUnsigned) 
return (LongDouble_t)((ULong64_t)fValue[i]);
 
  127 Bool_t TLeafL::IncludeRange(TLeaf *input)
 
  130         if (input->GetMaximum() > this->GetMaximum())
 
  131             this->SetMaximum( input->GetMaximum() );
 
  132         if (input->GetMinimum() < this->GetMinimum())
 
  133             this->SetMinimum( input->GetMinimum() );
 
  143 void TLeafL::Import(TClonesArray *list, Int_t n)
 
  145    const Int_t kIntUndefined = -9999;
 
  148    for (Int_t i=0;i<n;i++) {
 
  149       clone = (
char*)list->UncheckedAt(i);
 
  150       if (clone) memcpy(&fValue[j],clone + fOffset, 8*fLen);
 
  151       else       memcpy(&fValue[j],&kIntUndefined,  8*fLen);
 
  159 void TLeafL::PrintValue(Int_t l)
 const 
  162       ULong64_t *uvalue = (ULong64_t*)GetValuePointer();
 
  163       printf(
"%llu",uvalue[l]);
 
  165       Long64_t *value = (Long64_t*)GetValuePointer();
 
  166       printf(
"%lld",value[l]);
 
  173 void TLeafL::ReadBasket(TBuffer &b)
 
  175    if (!fLeafCount && fNdata == 1) {
 
  176       b.ReadLong64(fValue[0]);
 
  179          Long64_t entry = fBranch->GetReadEntry();
 
  180          if (fLeafCount->GetBranch()->GetReadEntry() != entry) {
 
  181             fLeafCount->GetBranch()->GetEntry(entry);
 
  183          Int_t len = Int_t(fLeafCount->GetValue());
 
  184          if (len > fLeafCount->GetMaximum()) {
 
  185             printf(
"ERROR leaf:%s, len=%d and max=%d\n",GetName(),len,fLeafCount->GetMaximum());
 
  186             len = fLeafCount->GetMaximum();
 
  189          b.ReadFastArray(fValue,len*fLen);
 
  191          b.ReadFastArray(fValue,fLen);
 
  198 bool TLeafL::ReadBasketFast(TBuffer& input_buf, Long64_t N)
 
  200    if (R__unlikely(fLeafCount)) {
return false;}
 
  201    return input_buf.ByteSwapBuffer(fLen*N, kLong64_t);
 
  208 void TLeafL::ReadBasketExport(TBuffer &b, TClonesArray *list, Int_t n)
 
  213       b.ReadFastArray(fValue,n*fLen);
 
  215    Long64_t *value = fValue;
 
  216    for (Int_t i=0;i<n;i++) {
 
  217       char *first = (
char*)list->UncheckedAt(i);
 
  218       Long64_t *ii = (Long64_t*)&first[fOffset];
 
  219       for (Int_t j=0;j<fLen;j++) {
 
  229 void TLeafL::ReadValue(std::istream &s, Char_t )
 
  231 #if defined(_MSC_VER) && (_MSC_VER<1300) 
  232    printf(
"Due to a bug in VC++6, the function TLeafL::ReadValue is dummy\n");
 
  235       ULong64_t *uvalue = (ULong64_t*)GetValuePointer();
 
  236       for (Int_t i=0;i<fLen;i++) s >> uvalue[i];
 
  238       Long64_t *value = (Long64_t*)GetValuePointer();
 
  239       for (Int_t i=0;i<fLen;i++) s >> value[i];
 
  247 void TLeafL::SetAddress(
void *add)
 
  249    if (ResetAddress(add) && (add!=fValue)) {
 
  253       if (TestBit(kIndirectAddress)) {
 
  254          fPointer = (Long64_t**) add;
 
  255          Int_t ncountmax = fLen;
 
  256          if (fLeafCount) ncountmax = fLen*(fLeafCount->GetMaximum() + 1);
 
  257          if ((fLeafCount && ncountmax > Int_t(fLeafCount->GetValue())) ||
 
  258              ncountmax > fNdata || *fPointer == 0) {
 
  259             if (*fPointer) 
delete [] *fPointer;
 
  260             if (ncountmax > fNdata) fNdata = ncountmax;
 
  261             *fPointer = 
new Long64_t[fNdata];
 
  265          fValue = (Long64_t*)add;
 
  268       fValue = 
new Long64_t[fNdata];