Line data Source code
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 ---
29 : class TFormula ;
30 : class TVector3 ;
31 :
32 : // --- Standard library ---
33 :
34 : // --- AliRoot header files ---
35 : class AliPHOSEmcRecPoint ;
36 : class AliPHOSRecPoint ;
37 :
38 : #include "AliPHOSPID.h"
39 :
40 : class AliPHOSPIDv0 : public AliPHOSPID {
41 :
42 : public:
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 0 : 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 0 : virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; }
59 0 : virtual void SetCpvtoEmcDistanceCut(Float_t cut ) {fCpvEmcDistance = cut ;}
60 0 : virtual void SetTimeGate(Float_t gate) {fTimeGate = gate ;}
61 :
62 0 : 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 20 : ClassDef( AliPHOSPIDv0,2) // Particle identifier implementation version 1
84 :
85 : };
86 :
87 : #endif // AliPHOSPIDV0_H
|