ROOT logo
#ifndef AliEventPoolMuon_H
#define AliEventPoolMuon_H

/* $Id$ */ 

#include "AliVEventPool.h"
#include "AliRunTagCuts.h"
#include "AliLHCTagCuts.h"
#include "AliDetectorTagCuts.h"
#include "AliEventTagCuts.h"
#include "AliTagAnalysis.h"

// Realisation of an AliVEventPool via
// on the flight generation of the bin using AliTagAnalysis.
// Created expanding AliEventPoolOTF class functionalities
//
// Authors Alessandro De Falco and Antonio Uras, INFN Cagliari
// alessandro.de.falco@ca.infn.it  antonio.uras@ca.infn.it

//======================================================================================================

class AliEventPoolMuon : public AliVEventPool {

 public:
  AliEventPoolMuon();
  AliEventPoolMuon(const Char_t *name, const Char_t *title = "AOD");
  
  virtual ~AliEventPoolMuon() {;}

  virtual TChain* GetNextChain();
  virtual void  GetCurrentBin(Float_t* /*bin*/);
  virtual Int_t GetDimension();
  virtual void  Init();
  virtual void  SetMultiplicityRange(Int_t min, Int_t max, Int_t step)
  { fMultiplicityMin = min; fMultiplicityMax = max; fMultiplicityStep = step; }
  virtual void  SetNFWMuonRange(Int_t min, Int_t max, Int_t step)
  { fNFWMuonMin = min; fNFWMuonMax = max; fNFWMuonStep = step; }
  virtual void  SetPrimaryVertexZRange(Int_t min, Int_t max, Int_t step)
  { fPrimaryVertexZMin = min; fPrimaryVertexZMax = max; fPrimaryVertexZStep = step; }
  virtual Double_t GetMeanPrimaryVertexZ() { return fPrimaryVertexZ + 0.5*fPrimaryVertexZStep; }
  
  void SetTagDirectory(const Char_t *dirname) {fTagDirectory = dirname;};
  virtual Int_t BinNumber() const {return fBinNumber;}
  
 private:
  AliEventPoolMuon(const AliEventPoolMuon& obj);
  AliEventPoolMuon& operator=(const AliEventPoolMuon& other);

 protected:

  AliTagAnalysis      *fTagAnalysis;  // Pointer to tag analysis
  AliRunTagCuts       *fRunCuts;      // Run      cuts
  AliLHCTagCuts       *fLHCCuts;      // LHC      cuts
  AliDetectorTagCuts  *fDetectorCuts; // Detector cuts
  AliEventTagCuts     *fEventCuts;    // Event    cuts

  const Char_t        *fTagDirectory; // Directory with local tag files

  Int_t  fMultiplicityMin;       // Minimum multiplicity
  Int_t  fMultiplicityMax;       // Maximum multiplicity
  Int_t  fMultiplicityStep;      // Multiplicity step-size 
  Int_t  fMultiplicity;          // Minimum multiplicity for the current bin
  	
  Int_t  fNFWMuonMin;            // Minimum NFWMuon
  Int_t  fNFWMuonMax;            // Maximum NFWMuon
  Int_t  fNFWMuonStep;           // NFWMuon step-size 
  Int_t  fNFWMuon;               // Minimum NFWMuon for the current bin
  	
  Double_t  fPrimaryVertexZMin;  // Minimum PrimaryVertexZ
  Double_t  fPrimaryVertexZMax;  // Maximum PrimaryVertexZ
  Double_t  fPrimaryVertexZStep; // PrimaryVertexZ step-size
  Double_t  fPrimaryVertexZ;     // Minimum PrimaryVertexZ for the current bin
  
  Int_t  fBinNumber;             // Current bin number
  
  ClassDef(AliEventPoolMuon, 0); 

};

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