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

/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.12  2007/03/06 06:57:05  kharlov
 * DP:calculation of distance to CPV done in TSM
 *
 * Revision 1.11  2006/09/07 18:31:08  kharlov
 * Effective c++ corrections (T.Pocheptsov)
 *
 * Revision 1.10  2005/05/28 14:19:04  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
// Implementation version v0 of the PHOS particle identifier 
// Identification is based on information from PPSD and EMC
// Oh yeah                 
//*-- Author: Yves Schutz (SUBATECH)

// --- ROOT system ---
class TFormula ;
class TVector3 ;

// --- Standard library ---

// --- AliRoot header files ---
class AliPHOSEmcRecPoint ;
class AliPHOSRecPoint ;

#include "AliPHOSPID.h"

class  AliPHOSPIDv0 : public AliPHOSPID {

public:

  AliPHOSPIDv0() ;          // ctor            
  AliPHOSPIDv0(AliPHOSGeometry *geom);
  virtual ~AliPHOSPIDv0() ; // dtor, empty, memory leak in fFormula member

  //Compiler generated should be ok, because destructor is empty.
  AliPHOSPIDv0(const AliPHOSPIDv0 & rhs);
  AliPHOSPIDv0 & operator = (const AliPHOSPIDv0 & rhs);

  virtual void TrackSegments2RecParticles(Option_t * option);

  virtual void PlotDispersionCuts()const ;
  virtual void Print(const Option_t * = "")const ; 
  virtual void SetIdentificationMethod(const char * option = "CPV DISP" ){fIDOptions = option ;} 
  virtual void SetShowerProfileCut(const char * formula = "0.35*0.35 - (x-1.386)*(x-1.386) - 1.707*1.707*(y-1.008)*(y-1.008)") ;
  virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; } 
  virtual void SetCpvtoEmcDistanceCut(Float_t cut )      {fCpvEmcDistance = cut ;}
  virtual void SetTimeGate(Float_t gate)                 {fTimeGate = gate ;}

  virtual const char * Version() const { return "pid-v0" ; }  
                     
 private:
  
  void     MakeRecParticles(void ) ;
//  Float_t  GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC
  TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ;
  void     PrintRecParticles(Option_t * option) ;

 private:

  TString                fIDOptions ;         // PID option

  AliPHOSClusterizer   * fClusterizer ;       // !
  AliPHOSTrackSegmentMaker * fTSMaker ;       // !

  TFormula             * fFormula ;           // formula to define cut on the shower elips axis
  Float_t                fDispersion ;        // dispersion cut
  Float_t                fCpvEmcDistance ;    // Max EMC-CPV distance
  Float_t                fTimeGate ;          // Time of the latest EmcRecPoint accepted as EM

  ClassDef( AliPHOSPIDv0,2)  // Particle identifier implementation version 1

};

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