ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//-------------------------------------------------------------------------
//     Event handler for event input 
//     Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------


#include "AliInputEventHandler.h"
#include "AliVEvent.h"
#include "AliVCuts.h"
#include "AliLog.h"


ClassImp(AliInputEventHandler)

//______________________________________________________________________________
AliInputEventHandler::AliInputEventHandler() :
    AliVEventHandler(),
    fTree(0),
    fBranches(),
    fBranchesOn(),
    fInputFileName(),
    fNewEvent(kTRUE),
    fEventCuts(0),
    fIsSelectedResult(0),
    fMixingHandler(0),
    fParentHandler(0),
    fUserInfo(0)
{
  // default constructor
}

//______________________________________________________________________________
AliInputEventHandler::~AliInputEventHandler() 
{
// destructor
}

//______________________________________________________________________________
AliInputEventHandler::AliInputEventHandler(const char* name, const char* title):
    AliVEventHandler(name, title),
    fTree(0),
    fBranches(),
    fBranchesOn(),
    fInputFileName(),
    fNewEvent(kTRUE),
    fEventCuts(0),
    fIsSelectedResult(0),
    fMixingHandler(0),
    fParentHandler(0),
    fUserInfo(0)
{
// Named constructor.
}

//______________________________________________________________________________
void AliInputEventHandler::SwitchOffBranches() const {
  //
  // Switch of branches on user request
    TObjArray * tokens = fBranches.Tokenize(" ");
    Int_t ntok = tokens->GetEntries();
    for (Int_t i = 0; i < ntok; i++)  {
	TString str = ((TObjString*) tokens->At(i))->GetString();
	if (str.Length() == 0)
	    continue;
	fTree->SetBranchStatus(Form("%s%s%s","*", str.Data(), "*"), 0);
	AliDebug(1,Form("Branch %s switched off", str.Data()));
    }
  delete tokens;
}

//______________________________________________________________________________
void AliInputEventHandler::SwitchOnBranches() const {
  //
  // Switch of branches on user request
  TObjArray * tokens = fBranchesOn.Tokenize(" ");
  Int_t ntok = tokens->GetEntries();

  for (Int_t i = 0; i < ntok; i++)  {
      TString str = ((TObjString*) tokens->At(i))->GetString();
      if (str.Length() == 0)
	  continue;
      fTree->SetBranchStatus(Form("%s%s%s","*", str.Data(), "*"), 1);
      AliDebug(1,Form("Branch %s switched on", str.Data()));
  }
  delete tokens;
}

//______________________________________________________________________________
TObject *AliInputEventHandler::GetStatistics(Option_t *) const
{
// Returns the statistics object(s) (TH2F histogram) produced by the physics
// selection. Implementations both for ESD and AOD input handlers.
  return NULL;
}
   
Long64_t AliInputEventHandler::GetReadEntry() const 
{
  // Get the current entry.
  return fTree->GetReadEntry();
}

//______________________________________________________________________________
void AliInputEventHandler::SetInputFileName(const char* fname)
{
// Set the input file name to be analyzed. Done automatically by the manager, but
// in case this needs to be done at an earlier stage has to be done manually.
   if (!strlen(fname)) return;
   if (fInputFileName.Length()) {
      Error("SetInputFileName", "Input file name already set to: %s\n", fInputFileName.Data());
      return;
   }
   fInputFileName  = fname;
}
 AliInputEventHandler.cxx:1
 AliInputEventHandler.cxx:2
 AliInputEventHandler.cxx:3
 AliInputEventHandler.cxx:4
 AliInputEventHandler.cxx:5
 AliInputEventHandler.cxx:6
 AliInputEventHandler.cxx:7
 AliInputEventHandler.cxx:8
 AliInputEventHandler.cxx:9
 AliInputEventHandler.cxx:10
 AliInputEventHandler.cxx:11
 AliInputEventHandler.cxx:12
 AliInputEventHandler.cxx:13
 AliInputEventHandler.cxx:14
 AliInputEventHandler.cxx:15
 AliInputEventHandler.cxx:16
 AliInputEventHandler.cxx:17
 AliInputEventHandler.cxx:18
 AliInputEventHandler.cxx:19
 AliInputEventHandler.cxx:20
 AliInputEventHandler.cxx:21
 AliInputEventHandler.cxx:22
 AliInputEventHandler.cxx:23
 AliInputEventHandler.cxx:24
 AliInputEventHandler.cxx:25
 AliInputEventHandler.cxx:26
 AliInputEventHandler.cxx:27
 AliInputEventHandler.cxx:28
 AliInputEventHandler.cxx:29
 AliInputEventHandler.cxx:30
 AliInputEventHandler.cxx:31
 AliInputEventHandler.cxx:32
 AliInputEventHandler.cxx:33
 AliInputEventHandler.cxx:34
 AliInputEventHandler.cxx:35
 AliInputEventHandler.cxx:36
 AliInputEventHandler.cxx:37
 AliInputEventHandler.cxx:38
 AliInputEventHandler.cxx:39
 AliInputEventHandler.cxx:40
 AliInputEventHandler.cxx:41
 AliInputEventHandler.cxx:42
 AliInputEventHandler.cxx:43
 AliInputEventHandler.cxx:44
 AliInputEventHandler.cxx:45
 AliInputEventHandler.cxx:46
 AliInputEventHandler.cxx:47
 AliInputEventHandler.cxx:48
 AliInputEventHandler.cxx:49
 AliInputEventHandler.cxx:50
 AliInputEventHandler.cxx:51
 AliInputEventHandler.cxx:52
 AliInputEventHandler.cxx:53
 AliInputEventHandler.cxx:54
 AliInputEventHandler.cxx:55
 AliInputEventHandler.cxx:56
 AliInputEventHandler.cxx:57
 AliInputEventHandler.cxx:58
 AliInputEventHandler.cxx:59
 AliInputEventHandler.cxx:60
 AliInputEventHandler.cxx:61
 AliInputEventHandler.cxx:62
 AliInputEventHandler.cxx:63
 AliInputEventHandler.cxx:64
 AliInputEventHandler.cxx:65
 AliInputEventHandler.cxx:66
 AliInputEventHandler.cxx:67
 AliInputEventHandler.cxx:68
 AliInputEventHandler.cxx:69
 AliInputEventHandler.cxx:70
 AliInputEventHandler.cxx:71
 AliInputEventHandler.cxx:72
 AliInputEventHandler.cxx:73
 AliInputEventHandler.cxx:74
 AliInputEventHandler.cxx:75
 AliInputEventHandler.cxx:76
 AliInputEventHandler.cxx:77
 AliInputEventHandler.cxx:78
 AliInputEventHandler.cxx:79
 AliInputEventHandler.cxx:80
 AliInputEventHandler.cxx:81
 AliInputEventHandler.cxx:82
 AliInputEventHandler.cxx:83
 AliInputEventHandler.cxx:84
 AliInputEventHandler.cxx:85
 AliInputEventHandler.cxx:86
 AliInputEventHandler.cxx:87
 AliInputEventHandler.cxx:88
 AliInputEventHandler.cxx:89
 AliInputEventHandler.cxx:90
 AliInputEventHandler.cxx:91
 AliInputEventHandler.cxx:92
 AliInputEventHandler.cxx:93
 AliInputEventHandler.cxx:94
 AliInputEventHandler.cxx:95
 AliInputEventHandler.cxx:96
 AliInputEventHandler.cxx:97
 AliInputEventHandler.cxx:98
 AliInputEventHandler.cxx:99
 AliInputEventHandler.cxx:100
 AliInputEventHandler.cxx:101
 AliInputEventHandler.cxx:102
 AliInputEventHandler.cxx:103
 AliInputEventHandler.cxx:104
 AliInputEventHandler.cxx:105
 AliInputEventHandler.cxx:106
 AliInputEventHandler.cxx:107
 AliInputEventHandler.cxx:108
 AliInputEventHandler.cxx:109
 AliInputEventHandler.cxx:110
 AliInputEventHandler.cxx:111
 AliInputEventHandler.cxx:112
 AliInputEventHandler.cxx:113
 AliInputEventHandler.cxx:114
 AliInputEventHandler.cxx:115
 AliInputEventHandler.cxx:116
 AliInputEventHandler.cxx:117
 AliInputEventHandler.cxx:118
 AliInputEventHandler.cxx:119
 AliInputEventHandler.cxx:120
 AliInputEventHandler.cxx:121
 AliInputEventHandler.cxx:122
 AliInputEventHandler.cxx:123
 AliInputEventHandler.cxx:124
 AliInputEventHandler.cxx:125
 AliInputEventHandler.cxx:126
 AliInputEventHandler.cxx:127
 AliInputEventHandler.cxx:128
 AliInputEventHandler.cxx:129
 AliInputEventHandler.cxx:130