// @(#)root/treeplayer:$Id$
// Author: Philippe Canal 09/06/2006

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

#ifndef ROOT__TSelectorEntries
#define ROOT__TSelectorEntries

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TSelectorEntries                                                     //
//                                                                      //
// A specialized TSelector for TTree::GetEntries(selection)             //
// The selection is passed either via the constructor or via            //
// SetSelection.  The number of entries passing the selection (or       //
// at least one element of the arrays or collections used in the        //
// selection is passing the slection) is stored in fSeletedRwos         //
// which can be retrieved via GetSelectedRows.                          //
// See a usage example in TTreePlayer::GetEntries.                      //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include <TSelector.h>

class TTree;
class TTreeFormula;

class TSelectorEntries : public TSelector {
public :
   TTree          *fChain;          //! pointer to the analyzed TTree or TChain
   TTreeFormula   *fSelect;         //  Pointer to selection formula
   Long64_t        fSelectedRows;   //  Number of selected entries
   Bool_t          fSelectMultiple; //  true if selection has a variable index

   TSelectorEntries(TTree *tree = 0, const char *selection = 0);
   TSelectorEntries(const char *selection);
   virtual ~TSelectorEntries();
   virtual Int_t    Version() const { return 2; }
   virtual void     Begin(TTree *tree);
   virtual void     SlaveBegin(TTree *tree);
   virtual void     Init(TTree *tree);
   virtual Bool_t   Notify();
   virtual Bool_t   Process(Long64_t entry);
   virtual Int_t    GetEntry(Long64_t entry, Int_t getall = 0);
   virtual Long64_t GetSelectedRows() const { return fSelectedRows; }
   virtual void     SetOption(const char *option) { fOption = option; }
   virtual void     SetObject(TObject *obj) { fObject = obj; }
   virtual void     SetSelection(const char *selection);
   virtual TList   *GetOutputList() const { return fOutput; }
   virtual void     SlaveTerminate();
   virtual void     Terminate();

   ClassDef(TSelectorEntries,1); //A specialized TSelector for TTree::GetEntries(selection)
};

#endif

 TSelectorEntries.h:1
 TSelectorEntries.h:2
 TSelectorEntries.h:3
 TSelectorEntries.h:4
 TSelectorEntries.h:5
 TSelectorEntries.h:6
 TSelectorEntries.h:7
 TSelectorEntries.h:8
 TSelectorEntries.h:9
 TSelectorEntries.h:10
 TSelectorEntries.h:11
 TSelectorEntries.h:12
 TSelectorEntries.h:13
 TSelectorEntries.h:14
 TSelectorEntries.h:15
 TSelectorEntries.h:16
 TSelectorEntries.h:17
 TSelectorEntries.h:18
 TSelectorEntries.h:19
 TSelectorEntries.h:20
 TSelectorEntries.h:21
 TSelectorEntries.h:22
 TSelectorEntries.h:23
 TSelectorEntries.h:24
 TSelectorEntries.h:25
 TSelectorEntries.h:26
 TSelectorEntries.h:27
 TSelectorEntries.h:28
 TSelectorEntries.h:29
 TSelectorEntries.h:30
 TSelectorEntries.h:31
 TSelectorEntries.h:32
 TSelectorEntries.h:33
 TSelectorEntries.h:34
 TSelectorEntries.h:35
 TSelectorEntries.h:36
 TSelectorEntries.h:37
 TSelectorEntries.h:38
 TSelectorEntries.h:39
 TSelectorEntries.h:40
 TSelectorEntries.h:41
 TSelectorEntries.h:42
 TSelectorEntries.h:43
 TSelectorEntries.h:44
 TSelectorEntries.h:45
 TSelectorEntries.h:46
 TSelectorEntries.h:47
 TSelectorEntries.h:48
 TSelectorEntries.h:49
 TSelectorEntries.h:50
 TSelectorEntries.h:51
 TSelectorEntries.h:52
 TSelectorEntries.h:53
 TSelectorEntries.h:54
 TSelectorEntries.h:55
 TSelectorEntries.h:56
 TSelectorEntries.h:57
 TSelectorEntries.h:58
 TSelectorEntries.h:59
 TSelectorEntries.h:60
 TSelectorEntries.h:61
 TSelectorEntries.h:62
 TSelectorEntries.h:63