ROOT logo
//-*- Mode: C++ -*-

#ifndef ALIANALYSISNETPARTICLEEFFCONT_H
#define ALIANALYSISNETPARTICLEEFFCONT_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
 
/**
 * Class for NetParticle Distributions
 * -- Efficiency and contaminations for netParticle distributions
 * Authors: Jochen Thaeder <jochen@thaeder.de>
 *          Michael Weber <m.weber@cern.ch>
 */

class AliVTrack;

#include "THnSparse.h"

#include "AliAnalysisNetParticleBase.h"

class AliAnalysisNetParticleEffCont: public AliAnalysisNetParticleBase {

 public:

  AliAnalysisNetParticleEffCont();
  virtual ~AliAnalysisNetParticleEffCont();
  
  /*
   * ---------------------------------------------------------------------------------
   *                                 Public Methods
   * ---------------------------------------------------------------------------------
   */

  /** Process Event - implements purely virtual method */
  virtual void Process();

  /*
   * ---------------------------------------------------------------------------------
   *                                 Setter/Getter
   * ---------------------------------------------------------------------------------
   */

  /** Get Ptr to efficiency THnSparse */
  THnSparseF* GetHnEff()  {return fHnEff;}

  /** Get Ptr to contaminiation THnSparse */
  THnSparseF* GetHnCont() {return fHnCont;}

  ///////////////////////////////////////////////////////////////////////////////////

 private:

  AliAnalysisNetParticleEffCont(const AliAnalysisNetParticleEffCont&); // not implemented
  AliAnalysisNetParticleEffCont& operator=(const AliAnalysisNetParticleEffCont&); // not implemented

  /*
   * ---------------------------------------------------------------------------------
   *                                Methods - private
   * ---------------------------------------------------------------------------------
   */

  /** Event-wise Initialization - Can be implemented by every class */
  virtual void Init();

  /** Create the efficiency / contamination THnSparse */
  virtual void CreateHistograms();

  /** Event-wise Reset - Can be implemented by every class */
  virtual void Reset();

  /** Event-wise Setup - Can be implemented by every class */
  virtual Int_t Setup();

  // -----------------------------------------------------------------------

  /** Fill MC labels */
  void FillMCLabels(); 

  /** Fill efficiency THnSparse */
  void FillMCEffHist();

  /** Check if particle is contamination */
  void CheckContTrack(AliVTrack* track);
      
  /*
   * ---------------------------------------------------------------------------------
   *                             Members - private
   * ---------------------------------------------------------------------------------
   */

  // =======================================================================
  Int_t             **fLabelsRec;             //! 2x nTracks large array with labels for MC particles
  // =======================================================================
  THnSparseF         *fHnEff;                 //  THnSparseF efficiency 
  THnSparseF         *fHnCont;                //  THnSparseF contamination
  // -----------------------------------------------------------------------

  ClassDef(AliAnalysisNetParticleEffCont, 1);
};

#endif
 AliAnalysisNetParticleEffCont.h:1
 AliAnalysisNetParticleEffCont.h:2
 AliAnalysisNetParticleEffCont.h:3
 AliAnalysisNetParticleEffCont.h:4
 AliAnalysisNetParticleEffCont.h:5
 AliAnalysisNetParticleEffCont.h:6
 AliAnalysisNetParticleEffCont.h:7
 AliAnalysisNetParticleEffCont.h:8
 AliAnalysisNetParticleEffCont.h:9
 AliAnalysisNetParticleEffCont.h:10
 AliAnalysisNetParticleEffCont.h:11
 AliAnalysisNetParticleEffCont.h:12
 AliAnalysisNetParticleEffCont.h:13
 AliAnalysisNetParticleEffCont.h:14
 AliAnalysisNetParticleEffCont.h:15
 AliAnalysisNetParticleEffCont.h:16
 AliAnalysisNetParticleEffCont.h:17
 AliAnalysisNetParticleEffCont.h:18
 AliAnalysisNetParticleEffCont.h:19
 AliAnalysisNetParticleEffCont.h:20
 AliAnalysisNetParticleEffCont.h:21
 AliAnalysisNetParticleEffCont.h:22
 AliAnalysisNetParticleEffCont.h:23
 AliAnalysisNetParticleEffCont.h:24
 AliAnalysisNetParticleEffCont.h:25
 AliAnalysisNetParticleEffCont.h:26
 AliAnalysisNetParticleEffCont.h:27
 AliAnalysisNetParticleEffCont.h:28
 AliAnalysisNetParticleEffCont.h:29
 AliAnalysisNetParticleEffCont.h:30
 AliAnalysisNetParticleEffCont.h:31
 AliAnalysisNetParticleEffCont.h:32
 AliAnalysisNetParticleEffCont.h:33
 AliAnalysisNetParticleEffCont.h:34
 AliAnalysisNetParticleEffCont.h:35
 AliAnalysisNetParticleEffCont.h:36
 AliAnalysisNetParticleEffCont.h:37
 AliAnalysisNetParticleEffCont.h:38
 AliAnalysisNetParticleEffCont.h:39
 AliAnalysisNetParticleEffCont.h:40
 AliAnalysisNetParticleEffCont.h:41
 AliAnalysisNetParticleEffCont.h:42
 AliAnalysisNetParticleEffCont.h:43
 AliAnalysisNetParticleEffCont.h:44
 AliAnalysisNetParticleEffCont.h:45
 AliAnalysisNetParticleEffCont.h:46
 AliAnalysisNetParticleEffCont.h:47
 AliAnalysisNetParticleEffCont.h:48
 AliAnalysisNetParticleEffCont.h:49
 AliAnalysisNetParticleEffCont.h:50
 AliAnalysisNetParticleEffCont.h:51
 AliAnalysisNetParticleEffCont.h:52
 AliAnalysisNetParticleEffCont.h:53
 AliAnalysisNetParticleEffCont.h:54
 AliAnalysisNetParticleEffCont.h:55
 AliAnalysisNetParticleEffCont.h:56
 AliAnalysisNetParticleEffCont.h:57
 AliAnalysisNetParticleEffCont.h:58
 AliAnalysisNetParticleEffCont.h:59
 AliAnalysisNetParticleEffCont.h:60
 AliAnalysisNetParticleEffCont.h:61
 AliAnalysisNetParticleEffCont.h:62
 AliAnalysisNetParticleEffCont.h:63
 AliAnalysisNetParticleEffCont.h:64
 AliAnalysisNetParticleEffCont.h:65
 AliAnalysisNetParticleEffCont.h:66
 AliAnalysisNetParticleEffCont.h:67
 AliAnalysisNetParticleEffCont.h:68
 AliAnalysisNetParticleEffCont.h:69
 AliAnalysisNetParticleEffCont.h:70
 AliAnalysisNetParticleEffCont.h:71
 AliAnalysisNetParticleEffCont.h:72
 AliAnalysisNetParticleEffCont.h:73
 AliAnalysisNetParticleEffCont.h:74
 AliAnalysisNetParticleEffCont.h:75
 AliAnalysisNetParticleEffCont.h:76
 AliAnalysisNetParticleEffCont.h:77
 AliAnalysisNetParticleEffCont.h:78
 AliAnalysisNetParticleEffCont.h:79
 AliAnalysisNetParticleEffCont.h:80
 AliAnalysisNetParticleEffCont.h:81
 AliAnalysisNetParticleEffCont.h:82
 AliAnalysisNetParticleEffCont.h:83
 AliAnalysisNetParticleEffCont.h:84
 AliAnalysisNetParticleEffCont.h:85
 AliAnalysisNetParticleEffCont.h:86
 AliAnalysisNetParticleEffCont.h:87
 AliAnalysisNetParticleEffCont.h:88
 AliAnalysisNetParticleEffCont.h:89
 AliAnalysisNetParticleEffCont.h:90
 AliAnalysisNetParticleEffCont.h:91
 AliAnalysisNetParticleEffCont.h:92
 AliAnalysisNetParticleEffCont.h:93
 AliAnalysisNetParticleEffCont.h:94
 AliAnalysisNetParticleEffCont.h:95
 AliAnalysisNetParticleEffCont.h:96
 AliAnalysisNetParticleEffCont.h:97
 AliAnalysisNetParticleEffCont.h:98
 AliAnalysisNetParticleEffCont.h:99
 AliAnalysisNetParticleEffCont.h:100
 AliAnalysisNetParticleEffCont.h:101
 AliAnalysisNetParticleEffCont.h:102