Updating macro to check the various methods of the AliMUONMCDataInterface
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPIDv0.h
... / ...
CommitLineData
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
8/* History of cvs commits:
9 *
10 * $Log$
11 * Revision 1.12 2007/03/06 06:57:05 kharlov
12 * DP:calculation of distance to CPV done in TSM
13 *
14 * Revision 1.11 2006/09/07 18:31:08 kharlov
15 * Effective c++ corrections (T.Pocheptsov)
16 *
17 * Revision 1.10 2005/05/28 14:19:04 schutz
18 * Compilation warnings fixed by T.P.
19 *
20 */
21
22//_________________________________________________________________________
23// Implementation version v0 of the PHOS particle identifier
24// Identification is based on information from PPSD and EMC
25// Oh yeah
26//*-- Author: Yves Schutz (SUBATECH)
27
28// --- ROOT system ---
29class TFormula ;
30class TVector3 ;
31
32// --- Standard library ---
33
34// --- AliRoot header files ---
35class AliPHOSEmcRecPoint ;
36class AliPHOSRecPoint ;
37
38#include "AliPHOSPID.h"
39
40class AliPHOSPIDv0 : public AliPHOSPID {
41
42public:
43
44 AliPHOSPIDv0() ; // ctor
45 AliPHOSPIDv0(AliPHOSGeometry *geom);
46 virtual ~AliPHOSPIDv0() ; // dtor, empty, memory leak in fFormula member
47
48 //Compiler generated should be ok, because destructor is empty.
49 AliPHOSPIDv0(const AliPHOSPIDv0 & rhs);
50 AliPHOSPIDv0 & operator = (const AliPHOSPIDv0 & rhs);
51
52 virtual void TrackSegments2RecParticles(Option_t * option);
53
54 virtual void PlotDispersionCuts()const ;
55 virtual void Print(const Option_t * = "")const ;
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)") ;
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 ;}
61
62 virtual const char * Version() const { return "pid-v0" ; }
63
64 private:
65
66 void MakeRecParticles(void ) ;
67// Float_t GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC
68 TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ;
69 void PrintRecParticles(Option_t * option) ;
70
71 private:
72
73 TString fIDOptions ; // PID option
74
75 AliPHOSClusterizer * fClusterizer ; // !
76 AliPHOSTrackSegmentMaker * fTSMaker ; // !
77
78 TFormula * fFormula ; // formula to define cut on the shower elips axis
79 Float_t fDispersion ; // dispersion cut
80 Float_t fCpvEmcDistance ; // Max EMC-CPV distance
81 Float_t fTimeGate ; // Time of the latest EmcRecPoint accepted as EM
82
83 ClassDef( AliPHOSPIDv0,2) // Particle identifier implementation version 1
84
85};
86
87#endif // AliPHOSPIDV0_H