Introduction of decalibration in the simulations with anchor runs and raw:// OCDB.
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPIDv0.h
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   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