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

//-------------------------------------------------------------------------
//
//   Virtual class to access calorimeter 
//   (EMCAL, PHOS, PMD, FMD) cluster data
//   Author: Gustavo Conesa Balbastre LPSC-Grenoble
//
//-------------------------------------------------------------------------

#include <TObject.h>
#include <TLorentzVector.h>

class AliVCluster : public TObject 
{
  
 public:
  
  AliVCluster() { ; }
  virtual ~AliVCluster() { ; }
  AliVCluster(const AliVCluster& clus);
  AliVCluster & operator=(const AliVCluster& source);
  void Clear(const Option_t*) {;}
  
  enum VClu_t {kUndef = -2, 
	       kPHOSNeutral, 
		     kPHOSCharged,
	       kEMCALClusterv1,		 
	       kPMDNeutral, 
	       kPMDCharged};
  
  enum VCluPID_t {
    kElectron = 0,
    kMuon     = 1,
    kPion     = 2,
    kKaon     = 3,
    kProton   = 4,
    kPhoton   = 5,
    kPi0      = 6,
    kNeutron  = 7,
    kKaon0    = 8,
    kEleCon   = 9,
    kUnknown  = 10,
    kCharged  = 11,//For PMD?
    kNeutral  = 12 //For PMD? 
  };
  
  //Common EMCAL/PHOS/FMD/PMD
  
  virtual void        SetID(Int_t )                 { ; }
  virtual Int_t       GetID() const                 {return 0 ; }
  
  virtual void        SetType(Char_t )              { ; }  
  virtual Char_t      GetType() const               {return kUndef ; } 
  
  virtual void        SetE(Double_t )               { ; }
  virtual Double_t       E() const                  {return 0. ; }
  
  virtual void        SetChi2(Double_t )            { ; }
  virtual Double_t       Chi2() const               {return 0. ; }
  
  virtual void        SetPositionAt(Float_t,Int_t)  { ; }
  virtual void        SetPosition(Float_t *)        { ; }
  virtual void        GetPosition(Float_t *) const  { ; }	
  
  virtual void        SetPIDAt(Float_t , Int_t)     { ; }
  virtual void        SetPID(const Float_t *)       { ; }
  virtual const Double_t *GetPID() const            { return 0 ; }
  
  //CaloClusters, PHOS/EMCAL
  
  virtual Bool_t      IsEMCAL() const               {return kFALSE ; }
  virtual Bool_t      IsPHOS()  const               {return kFALSE ; }
  
  virtual void        SetDispersion(Double_t )      { ; }
  virtual Double_t    GetDispersion() const         {return 0. ;}
  
  virtual void        SetM20(Double_t)              { ; }
  virtual Double_t    GetM20() const                {return 0. ; }
  
  virtual void        SetM02(Double_t)              { ; }
  virtual Double_t    GetM02() const                {return 0. ; }
  
  virtual void        SetNExMax(UChar_t)            { ; }
  virtual UChar_t     GetNExMax() const             {return 0 ; } 
  
  virtual void        SetTOF(Double_t)              { ; }
  virtual Double_t    GetTOF() const                {return 0. ; }
  
  virtual void        SetEmcCpvDistance(Double_t)   { ; }
  virtual Double_t    GetEmcCpvDistance() const     {return 0. ; }
  virtual void        SetTrackDistance(Double_t, Double_t ){ ; }
  virtual Double_t    GetTrackDx(void)const         {return 0. ; }
  virtual Double_t    GetTrackDz(void)const         {return 0. ; }
  
  virtual void        SetDistanceToBadChannel(Double_t) { ; }
  virtual Double_t    GetDistanceToBadChannel() const   {return 0. ; }
  
  virtual void        SetNCells(Int_t)              { ; }
  virtual Int_t       GetNCells() const             {return 0 ; }
  virtual void        SetCellsAbsId(UShort_t */*array*/) {;}  
  virtual UShort_t   *GetCellsAbsId()               {return 0 ; }
  virtual void        SetCellsAmplitudeFraction(Double32_t */*array*/) {;}
  virtual Double_t   *GetCellsAmplitudeFraction()   {return 0 ; }
  virtual Int_t       GetCellAbsId(Int_t) const     {return 0 ; }  
  virtual Double_t    GetCellAmplitudeFraction(Int_t) const {return 0. ; }
  
  virtual Int_t       GetLabel() const              {return -1 ;}
  virtual Int_t       GetLabelAt(UInt_t) const      {return -1 ;}
  virtual Int_t      *GetLabels() const             {return 0 ; }
  virtual UInt_t      GetNLabels() const            {return 0 ; }
  virtual void        SetLabel(Int_t *, UInt_t )    { ; }

  virtual Int_t       GetNTracksMatched() const     {return 0 ; }
  virtual TObject    *GetTrackMatched(Int_t) const  {return 0 ; }//AODCaloCluster
  virtual Int_t       GetTrackMatchedIndex() const  {return -1; }//ESDCaloCluster

  virtual Double_t    GetMCEnergyFraction() const           {return 0 ; }
  virtual void        SetMCEnergyFraction(Double_t)         { ; }
  
  virtual Double_t    GetCoreEnergy() const           {return 0 ; }
  virtual void        SetCoreEnergy(Double_t)         { ; }

  virtual void GetMomentum(TLorentzVector &/*tl*/, Double_t * /*v*/) const { ; }
  
  ClassDef(AliVCluster,0)  //VCluster 
    };

#endif //ALIVCLUSTER_H

 AliVCluster.h:1
 AliVCluster.h:2
 AliVCluster.h:3
 AliVCluster.h:4
 AliVCluster.h:5
 AliVCluster.h:6
 AliVCluster.h:7
 AliVCluster.h:8
 AliVCluster.h:9
 AliVCluster.h:10
 AliVCluster.h:11
 AliVCluster.h:12
 AliVCluster.h:13
 AliVCluster.h:14
 AliVCluster.h:15
 AliVCluster.h:16
 AliVCluster.h:17
 AliVCluster.h:18
 AliVCluster.h:19
 AliVCluster.h:20
 AliVCluster.h:21
 AliVCluster.h:22
 AliVCluster.h:23
 AliVCluster.h:24
 AliVCluster.h:25
 AliVCluster.h:26
 AliVCluster.h:27
 AliVCluster.h:28
 AliVCluster.h:29
 AliVCluster.h:30
 AliVCluster.h:31
 AliVCluster.h:32
 AliVCluster.h:33
 AliVCluster.h:34
 AliVCluster.h:35
 AliVCluster.h:36
 AliVCluster.h:37
 AliVCluster.h:38
 AliVCluster.h:39
 AliVCluster.h:40
 AliVCluster.h:41
 AliVCluster.h:42
 AliVCluster.h:43
 AliVCluster.h:44
 AliVCluster.h:45
 AliVCluster.h:46
 AliVCluster.h:47
 AliVCluster.h:48
 AliVCluster.h:49
 AliVCluster.h:50
 AliVCluster.h:51
 AliVCluster.h:52
 AliVCluster.h:53
 AliVCluster.h:54
 AliVCluster.h:55
 AliVCluster.h:56
 AliVCluster.h:57
 AliVCluster.h:58
 AliVCluster.h:59
 AliVCluster.h:60
 AliVCluster.h:61
 AliVCluster.h:62
 AliVCluster.h:63
 AliVCluster.h:64
 AliVCluster.h:65
 AliVCluster.h:66
 AliVCluster.h:67
 AliVCluster.h:68
 AliVCluster.h:69
 AliVCluster.h:70
 AliVCluster.h:71
 AliVCluster.h:72
 AliVCluster.h:73
 AliVCluster.h:74
 AliVCluster.h:75
 AliVCluster.h:76
 AliVCluster.h:77
 AliVCluster.h:78
 AliVCluster.h:79
 AliVCluster.h:80
 AliVCluster.h:81
 AliVCluster.h:82
 AliVCluster.h:83
 AliVCluster.h:84
 AliVCluster.h:85
 AliVCluster.h:86
 AliVCluster.h:87
 AliVCluster.h:88
 AliVCluster.h:89
 AliVCluster.h:90
 AliVCluster.h:91
 AliVCluster.h:92
 AliVCluster.h:93
 AliVCluster.h:94
 AliVCluster.h:95
 AliVCluster.h:96
 AliVCluster.h:97
 AliVCluster.h:98
 AliVCluster.h:99
 AliVCluster.h:100
 AliVCluster.h:101
 AliVCluster.h:102
 AliVCluster.h:103
 AliVCluster.h:104
 AliVCluster.h:105
 AliVCluster.h:106
 AliVCluster.h:107
 AliVCluster.h:108
 AliVCluster.h:109
 AliVCluster.h:110
 AliVCluster.h:111
 AliVCluster.h:112
 AliVCluster.h:113
 AliVCluster.h:114
 AliVCluster.h:115
 AliVCluster.h:116
 AliVCluster.h:117
 AliVCluster.h:118
 AliVCluster.h:119
 AliVCluster.h:120
 AliVCluster.h:121
 AliVCluster.h:122
 AliVCluster.h:123
 AliVCluster.h:124
 AliVCluster.h:125
 AliVCluster.h:126
 AliVCluster.h:127
 AliVCluster.h:128
 AliVCluster.h:129
 AliVCluster.h:130
 AliVCluster.h:131
 AliVCluster.h:132
 AliVCluster.h:133
 AliVCluster.h:134