ROOT logo
#ifndef ALITENDER_H
#define ALITENDER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */
// Author: Andrei Gheata, 31/08/2009

//==============================================================================
//   AliTender - Tender wagon providing access to ESD event and CDB.
//      The tender calls an arbitrary number of user algorithms that add or
//      correct information in ESD based on CDB info that was not available
//      during pass1 reconstruction.
//==============================================================================

#ifndef ALIANALYSISTASKSE_H
#include "AliAnalysisTaskSE.h"
#endif

// #ifndef ALIESDINPUTHANDLER_H
// #include "AliESDInputHandler.h"
// #endif
class AliCDBManager;
class AliESDEvent;
class AliESDInputHandler;
class AliTenderSupply;

class AliTender : public AliAnalysisTaskSE {

public:
enum ETenderFlags {
   kCheckEventSelection = BIT(18) // up to 18 used by AliAnalysisTask
};
   
private:
  Int_t                     fRun;            //! Current run
  Bool_t                    fRunChanged;     //! Flag for run change.
  ULong64_t                 fCDBkey;         //! Key to unlock CDB manager
  TString                   fDefaultStorage; // Default CDB storage
  AliCDBManager            *fCDB;            //! Pointer to CDB manager
  AliESDInputHandler       *fESDhandler;     //! Pointer to ESD input handler
  AliESDEvent              *fESD;            //! Pointer to current ESD event
  TObjArray                *fSupplies;       // Array of tender supplies
  TObjArray                *fCDBSettings;    // Array with CDB configuration
  
  AliTender(const AliTender &other);
  AliTender& operator=(const AliTender &other);

public:  
  AliTender();
  AliTender(const char *name);
  virtual ~AliTender();

  void                      AddSupply(AliTenderSupply *supply);
  Int_t                     GetRun() const {return fRun;}
  AliCDBManager            *GetCDBManager() const {return fCDB;}
  AliESDInputHandler       *GetESDhandler() const {return fESDhandler;}
  AliESDEvent              *GetEvent() const {return fESD;}
  TObjArray                *GetSupplies() const {return fSupplies;}
  void                      SetCheckEventSelection(Bool_t flag=kTRUE) {TObject::SetBit(kCheckEventSelection,flag);}
  Bool_t                    RunChanged() const {return fRunChanged;}
  // Configuration
  void                      SetDefaultCDBStorage(const char *dbString="local://$ALICE_ROOT/OCDB");
  void SetESDhandler(AliESDInputHandler*esdH) {fESDhandler = esdH;}

  // Run control
  virtual void              ConnectInputData(Option_t *option = "");
  virtual void              UserCreateOutputObjects();
//  virtual Bool_t            Notify() {return kTRUE;}
  virtual void              UserExec(Option_t *option);
    
  ClassDef(AliTender,4)  // Class describing the tender car for ESD analysis
};
#endif
 AliTender.h:1
 AliTender.h:2
 AliTender.h:3
 AliTender.h:4
 AliTender.h:5
 AliTender.h:6
 AliTender.h:7
 AliTender.h:8
 AliTender.h:9
 AliTender.h:10
 AliTender.h:11
 AliTender.h:12
 AliTender.h:13
 AliTender.h:14
 AliTender.h:15
 AliTender.h:16
 AliTender.h:17
 AliTender.h:18
 AliTender.h:19
 AliTender.h:20
 AliTender.h:21
 AliTender.h:22
 AliTender.h:23
 AliTender.h:24
 AliTender.h:25
 AliTender.h:26
 AliTender.h:27
 AliTender.h:28
 AliTender.h:29
 AliTender.h:30
 AliTender.h:31
 AliTender.h:32
 AliTender.h:33
 AliTender.h:34
 AliTender.h:35
 AliTender.h:36
 AliTender.h:37
 AliTender.h:38
 AliTender.h:39
 AliTender.h:40
 AliTender.h:41
 AliTender.h:42
 AliTender.h:43
 AliTender.h:44
 AliTender.h:45
 AliTender.h:46
 AliTender.h:47
 AliTender.h:48
 AliTender.h:49
 AliTender.h:50
 AliTender.h:51
 AliTender.h:52
 AliTender.h:53
 AliTender.h:54
 AliTender.h:55
 AliTender.h:56
 AliTender.h:57
 AliTender.h:58
 AliTender.h:59
 AliTender.h:60
 AliTender.h:61
 AliTender.h:62
 AliTender.h:63
 AliTender.h:64
 AliTender.h:65
 AliTender.h:66
 AliTender.h:67
 AliTender.h:68
 AliTender.h:69
 AliTender.h:70
 AliTender.h:71
 AliTender.h:72
 AliTender.h:73
 AliTender.h:74