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

/* $Id$ */ 

/// \ingroup muondep
/// \class AliAnalysisTaskPileup
/// \brief Trigger scaler analysis for pileup corrections
/// Based on the work by L. Aphecetche - SUBATECH Nantes
//Author: Diego Stocco - SUBATECH Nantes

//#define READOCDB

#include "AliAnalysisTaskSE.h"

class TObjArray;
class TString;
class TArrayI;
class AliCounterCollection;
class TAxis;

#ifdef READOCDB
class AliTriggerRunScalers;
#endif

class AliAnalysisTaskPileup : public AliAnalysisTaskSE {
public:
  
  AliAnalysisTaskPileup();
  AliAnalysisTaskPileup(const char *name);
  virtual ~AliAnalysisTaskPileup();
  
  virtual void   UserCreateOutputObjects();
  virtual void   UserExec(Option_t *);
  virtual void   Terminate(Option_t *);
  virtual void   NotifyRun();

  void SetDefaultStorage(TString dbString);
  void SetSpecificStorage(TString calibType, TString dbString);
  
private:
  
  /// Not implemented
  AliAnalysisTaskPileup(const AliAnalysisTaskPileup& rhs);
  /// Not implemented
  AliAnalysisTaskPileup& operator = (const AliAnalysisTaskPileup& rhs);

  Double_t GetL0Correction(Double_t nCINT1B, Double_t nCBEAMB);

  enum {
    kHevents,  /// Number of events histogram
    kHeventsCorrectL0, /// Number of L0 corrected events histogram
    kNeventHistos  /// Number of trigger histograms
  };

  AliCounterCollection* fEventCounters; //!< Event statistics
  TObjArray* fHistoEventsList;   //!< List of event histograms

  TObjArray* fTriggerClasses; //!< full trigger class name
  TArrayI* fTriggerClassIndex;  //!< Trigger classes mask

  Bool_t fIsInitCDB; //!< Flag telling if CDB is used
  TAxis* fCentralityClasses; //!< Centrality classes

  // In principle it is used only when READOCDB is defined
  // but if it is defined in the #if condition, it is not
  // correctly streamed to file (not good for plugin)
  TString fStorageList; /// List of storages

#if defined(READOCDB)
  AliTriggerRunScalers* fTriggerRunScalers; //!< Trigger scalers from OCDB
#endif

  ClassDef(AliAnalysisTaskPileup, 1);
};

#endif

 AliAnalysisTaskPileup.h:1
 AliAnalysisTaskPileup.h:2
 AliAnalysisTaskPileup.h:3
 AliAnalysisTaskPileup.h:4
 AliAnalysisTaskPileup.h:5
 AliAnalysisTaskPileup.h:6
 AliAnalysisTaskPileup.h:7
 AliAnalysisTaskPileup.h:8
 AliAnalysisTaskPileup.h:9
 AliAnalysisTaskPileup.h:10
 AliAnalysisTaskPileup.h:11
 AliAnalysisTaskPileup.h:12
 AliAnalysisTaskPileup.h:13
 AliAnalysisTaskPileup.h:14
 AliAnalysisTaskPileup.h:15
 AliAnalysisTaskPileup.h:16
 AliAnalysisTaskPileup.h:17
 AliAnalysisTaskPileup.h:18
 AliAnalysisTaskPileup.h:19
 AliAnalysisTaskPileup.h:20
 AliAnalysisTaskPileup.h:21
 AliAnalysisTaskPileup.h:22
 AliAnalysisTaskPileup.h:23
 AliAnalysisTaskPileup.h:24
 AliAnalysisTaskPileup.h:25
 AliAnalysisTaskPileup.h:26
 AliAnalysisTaskPileup.h:27
 AliAnalysisTaskPileup.h:28
 AliAnalysisTaskPileup.h:29
 AliAnalysisTaskPileup.h:30
 AliAnalysisTaskPileup.h:31
 AliAnalysisTaskPileup.h:32
 AliAnalysisTaskPileup.h:33
 AliAnalysisTaskPileup.h:34
 AliAnalysisTaskPileup.h:35
 AliAnalysisTaskPileup.h:36
 AliAnalysisTaskPileup.h:37
 AliAnalysisTaskPileup.h:38
 AliAnalysisTaskPileup.h:39
 AliAnalysisTaskPileup.h:40
 AliAnalysisTaskPileup.h:41
 AliAnalysisTaskPileup.h:42
 AliAnalysisTaskPileup.h:43
 AliAnalysisTaskPileup.h:44
 AliAnalysisTaskPileup.h:45
 AliAnalysisTaskPileup.h:46
 AliAnalysisTaskPileup.h:47
 AliAnalysisTaskPileup.h:48
 AliAnalysisTaskPileup.h:49
 AliAnalysisTaskPileup.h:50
 AliAnalysisTaskPileup.h:51
 AliAnalysisTaskPileup.h:52
 AliAnalysisTaskPileup.h:53
 AliAnalysisTaskPileup.h:54
 AliAnalysisTaskPileup.h:55
 AliAnalysisTaskPileup.h:56
 AliAnalysisTaskPileup.h:57
 AliAnalysisTaskPileup.h:58
 AliAnalysisTaskPileup.h:59
 AliAnalysisTaskPileup.h:60
 AliAnalysisTaskPileup.h:61
 AliAnalysisTaskPileup.h:62
 AliAnalysisTaskPileup.h:63
 AliAnalysisTaskPileup.h:64
 AliAnalysisTaskPileup.h:65
 AliAnalysisTaskPileup.h:66
 AliAnalysisTaskPileup.h:67
 AliAnalysisTaskPileup.h:68
 AliAnalysisTaskPileup.h:69
 AliAnalysisTaskPileup.h:70
 AliAnalysisTaskPileup.h:71
 AliAnalysisTaskPileup.h:72
 AliAnalysisTaskPileup.h:73
 AliAnalysisTaskPileup.h:74
 AliAnalysisTaskPileup.h:75
 AliAnalysisTaskPileup.h:76
 AliAnalysisTaskPileup.h:77
 AliAnalysisTaskPileup.h:78
 AliAnalysisTaskPileup.h:79
 AliAnalysisTaskPileup.h:80