00001 ////////////////////////////////////////////////////////// 00002 // 00003 // Example of TSelector implementation to do generic 00004 // processing (filling a simple ntuple, in this case). 00005 // See tutorials/proof/runProof.C, option "ntuple", for an 00006 // example of how to run this selector. 00007 // 00008 ////////////////////////////////////////////////////////// 00009 00010 #ifndef ProofNtuple_h 00011 #define ProofNtuple_h 00012 00013 #include <TSelector.h> 00014 00015 class TFile; 00016 class TProofOutputFile; 00017 class TNtuple; 00018 class TRandom3; 00019 00020 class ProofNtuple : public TSelector { 00021 public : 00022 00023 // Specific members 00024 TFile *fFile; 00025 TProofOutputFile *fProofFile; // For optimized merging of the ntuple 00026 TNtuple *fNtp; 00027 TRandom3 *fRandom; 00028 Bool_t fPlotNtuple; 00029 00030 ProofNtuple() : fFile(0), fProofFile(0), fNtp(0), fRandom(0), fPlotNtuple(kTRUE) { } 00031 virtual ~ProofNtuple(); 00032 virtual Int_t Version() const { return 2; } 00033 virtual void Begin(TTree *tree); 00034 virtual void SlaveBegin(TTree *tree); 00035 virtual Bool_t Process(Long64_t entry); 00036 virtual void SetOption(const char *option) { fOption = option; } 00037 virtual void SetObject(TObject *obj) { fObject = obj; } 00038 virtual void SetInputList(TList *input) { fInput = input; } 00039 virtual TList *GetOutputList() const { return fOutput; } 00040 virtual void SlaveTerminate(); 00041 virtual void Terminate(); 00042 00043 void PlotNtuple(TNtuple *, const char *); 00044 00045 ClassDef(ProofNtuple,0); 00046 }; 00047 00048 #endif