ROOT logo
// @(#)root/tree:$Id: TSelectorScalar.cxx 30749 2009-10-15 16:33:04Z brun $
// Author: Maarten Ballintijn   13/02/2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TSelectorScalar                                                      //
//                                                                      //
// Named scalar type, based on Long64_t, streamable, storable and       //
// mergable. Ideally to be used in tree selectors in the PROOF          //
// environment due to its merge functionality which allows a single     //
// merged value to be returned to the user.                             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TSelectorScalar.h"
#include "TCollection.h"


ClassImp(TSelectorScalar)

//______________________________________________________________________________
void TSelectorScalar::Inc(Long_t n)
{
   // Increment scalar value by n.

   SetVal(GetVal() + n);
}

//______________________________________________________________________________
Int_t TSelectorScalar::Merge(TCollection *list)
{
   // Merge scalars with scalars in the list. The scalar values are added.
   // Returns the number of scalars that were in the list.

   TIter next(list);
   Int_t n = 0;

   while (TObject *obj = next()) {
      TSelectorScalar *c = dynamic_cast<TSelectorScalar*>(obj);
      if (c) {
         Inc(c->GetVal());
         n++;
      }
   }

   return n;
}
 TSelectorScalar.cxx:1
 TSelectorScalar.cxx:2
 TSelectorScalar.cxx:3
 TSelectorScalar.cxx:4
 TSelectorScalar.cxx:5
 TSelectorScalar.cxx:6
 TSelectorScalar.cxx:7
 TSelectorScalar.cxx:8
 TSelectorScalar.cxx:9
 TSelectorScalar.cxx:10
 TSelectorScalar.cxx:11
 TSelectorScalar.cxx:12
 TSelectorScalar.cxx:13
 TSelectorScalar.cxx:14
 TSelectorScalar.cxx:15
 TSelectorScalar.cxx:16
 TSelectorScalar.cxx:17
 TSelectorScalar.cxx:18
 TSelectorScalar.cxx:19
 TSelectorScalar.cxx:20
 TSelectorScalar.cxx:21
 TSelectorScalar.cxx:22
 TSelectorScalar.cxx:23
 TSelectorScalar.cxx:24
 TSelectorScalar.cxx:25
 TSelectorScalar.cxx:26
 TSelectorScalar.cxx:27
 TSelectorScalar.cxx:28
 TSelectorScalar.cxx:29
 TSelectorScalar.cxx:30
 TSelectorScalar.cxx:31
 TSelectorScalar.cxx:32
 TSelectorScalar.cxx:33
 TSelectorScalar.cxx:34
 TSelectorScalar.cxx:35
 TSelectorScalar.cxx:36
 TSelectorScalar.cxx:37
 TSelectorScalar.cxx:38
 TSelectorScalar.cxx:39
 TSelectorScalar.cxx:40
 TSelectorScalar.cxx:41
 TSelectorScalar.cxx:42
 TSelectorScalar.cxx:43
 TSelectorScalar.cxx:44
 TSelectorScalar.cxx:45
 TSelectorScalar.cxx:46
 TSelectorScalar.cxx:47
 TSelectorScalar.cxx:48
 TSelectorScalar.cxx:49
 TSelectorScalar.cxx:50
 TSelectorScalar.cxx:51
 TSelectorScalar.cxx:52
 TSelectorScalar.cxx:53
 TSelectorScalar.cxx:54
 TSelectorScalar.cxx:55