Bug fix
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPIDv0.h
CommitLineData
b91d88dc 1#ifndef ALIPHOSPIDV0_H
2#define ALIPHOSPIDV0_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
702ab87e 8/* History of cvs commits:
9 *
10 * $Log$
26aa7e4a 11 * Revision 1.11 2006/09/07 18:31:08 kharlov
12 * Effective c++ corrections (T.Pocheptsov)
13 *
3f7dbdb7 14 * Revision 1.10 2005/05/28 14:19:04 schutz
15 * Compilation warnings fixed by T.P.
16 *
702ab87e 17 */
b91d88dc 18
19//_________________________________________________________________________
20// Implementation version v0 of the PHOS particle identifier
21// Identification is based on information from PPSD and EMC
22// Oh yeah
23//*-- Author: Yves Schutz (SUBATECH)
24
25// --- ROOT system ---
26class TFormula ;
27class TVector3 ;
28
29// --- Standard library ---
30
31// --- AliRoot header files ---
32class AliPHOSEmcRecPoint ;
33class AliPHOSRecPoint ;
34
35#include "AliPHOSPID.h"
36
37class AliPHOSPIDv0 : public AliPHOSPID {
38
39public:
40
41 AliPHOSPIDv0() ; // ctor
88cb7938 42 AliPHOSPIDv0(const char* evFolderName, const char * tsBranch = "Default");
3f7dbdb7 43 virtual ~AliPHOSPIDv0() ; // dtor, empty, memory leak in fFormula member
44
45 //Compiler generated should be ok, because destructor is empty.
46 AliPHOSPIDv0(const AliPHOSPIDv0 & rhs);
47 AliPHOSPIDv0 & operator = (const AliPHOSPIDv0 & rhs);
b91d88dc 48
49 virtual void Exec(Option_t * option);
fbf811ec 50 // virtual char * GetRecParticlesBranch()const {return (char*) fRecParticlesTitle.Data() ;}
51 // virtual char * GetTrackSegmentsBranch()const{return (char*) fTrackSegmentsTitle.Data(); }
fc7e2f43 52 virtual Int_t GetRecParticlesInRun() const {return fRecParticlesInRun ;}
b91d88dc 53
54 virtual void PlotDispersionCuts()const ;
702ab87e 55 virtual void Print(const Option_t * = "")const ;
8e8eae84 56 virtual void SetIdentificationMethod(const char * option = "CPV DISP" ){fIDOptions = option ;}
57 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)") ;
b91d88dc 58 virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; }
59 virtual void SetCpvtoEmcDistanceCut(Float_t cut ) {fCpvEmcDistance = cut ;}
60 virtual void SetTimeGate(Float_t gate) {fTimeGate = gate ;}
fbf811ec 61 // virtual void SetTrackSegmentsBranch(const char* title) { fTrackSegmentsTitle = title;}
62 // virtual void SetRecParticlesBranch (const char* title) { fRecParticlesTitle = title;}
8e8eae84 63 virtual const char * Version() const { return "pid-v0" ; }
88cb7938 64
b91d88dc 65 private:
66
67 virtual void Init() ;
68 void MakeRecParticles(void ) ;
26aa7e4a 69// Float_t GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC
b91d88dc 70 TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ;
71 void PrintRecParticles(Option_t * option) ;
88cb7938 72 virtual void WriteRecParticles();
b91d88dc 73
74 private:
75
b91d88dc 76 TString fTrackSegmentsTitle; // branch name with track segments
77 TString fRecPointsTitle ; // branch name with rec points
78 TString fRecParticlesTitle ; // branch name with rec particles
79 TString fIDOptions ; // PID option
80 Int_t fNEvent ; // current event number
81
82 AliPHOSClusterizer * fClusterizer ; // !
83 AliPHOSTrackSegmentMaker * fTSMaker ; // !
84
fbf811ec 85 TFormula * fFormula ; // formula to define cut on the shower elips axis
b91d88dc 86 Float_t fDispersion ; // dispersion cut
87 Float_t fCpvEmcDistance ; // Max EMC-CPV distance
88 Float_t fTimeGate ; // Time of the latest EmcRecPoint accepted as EM
89 Int_t fRecParticlesInRun ; //! Total number of recparticles in one run
90
91 ClassDef( AliPHOSPIDv0,1) // Particle identifier implementation version 1
92
93};
94
95#endif // AliPHOSPIDV0_H