]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSPIDv0.h
Replacing array of objects by array of pointers
[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  */
12
13 //_________________________________________________________________________
14 // Implementation version v0 of the PHOS particle identifier 
15 // Identification is based on information from PPSD and EMC
16 // Oh yeah                 
17 //*-- Author: Yves Schutz (SUBATECH)
18
19 // --- ROOT system ---
20 class TFormula ;
21 class TVector3 ;
22
23 // --- Standard library ---
24
25 // --- AliRoot header files ---
26 class AliPHOSEmcRecPoint ;
27 class AliPHOSRecPoint ;
28
29 #include "AliPHOSPID.h"
30
31 class  AliPHOSPIDv0 : public AliPHOSPID {
32
33 public:
34
35   AliPHOSPIDv0() ;          // ctor            
36   AliPHOSPIDv0(const char* evFolderName, const char * tsBranch = "Default");
37   virtual ~AliPHOSPIDv0() ; // dtor
38
39   virtual void Exec(Option_t * option);
40   //  virtual char * GetRecParticlesBranch()const {return (char*) fRecParticlesTitle.Data() ;}      
41   //  virtual char * GetTrackSegmentsBranch()const{return (char*) fTrackSegmentsTitle.Data(); }
42   virtual Int_t GetRecParticlesInRun() const  {return fRecParticlesInRun ;}  
43
44   virtual void PlotDispersionCuts()const ;
45   virtual void Print(const Option_t * = "")const ; 
46   virtual void SetIdentificationMethod(const char * option = "CPV DISP" ){fIDOptions = option ;} 
47   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)") ;
48   virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; } 
49   virtual void SetCpvtoEmcDistanceCut(Float_t cut )      {fCpvEmcDistance = cut ;}
50   virtual void SetTimeGate(Float_t gate)                 {fTimeGate = gate ;}
51   //  virtual void SetTrackSegmentsBranch(const char* title) { fTrackSegmentsTitle = title;}
52   //  virtual void SetRecParticlesBranch (const char* title) { fRecParticlesTitle = title;} 
53   virtual const char * Version() const { return "pid-v0" ; }  
54                      
55  private:
56   
57   virtual void Init() ;
58   void     MakeRecParticles(void ) ;
59   Float_t  GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC
60   TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ;
61   void     PrintRecParticles(Option_t * option) ;
62   virtual void WriteRecParticles(); 
63
64  private:
65
66   TString                fTrackSegmentsTitle; // branch name with track segments
67   TString                fRecPointsTitle ;    // branch name with rec points
68   TString                fRecParticlesTitle ; // branch name with rec particles
69   TString                fIDOptions ;         // PID option
70   Int_t                  fNEvent ;            // current event number
71
72   AliPHOSClusterizer   * fClusterizer ;       // !
73   AliPHOSTrackSegmentMaker * fTSMaker ;       // !
74
75   TFormula             * fFormula ;           // formula to define cut on the shower elips axis
76   Float_t                fDispersion ;        // dispersion cut
77   Float_t                fCpvEmcDistance ;    // Max EMC-CPV distance
78   Float_t                fTimeGate ;          // Time of the latest EmcRecPoint accepted as EM
79   Int_t                  fRecParticlesInRun ; //! Total number of recparticles in one run
80
81   ClassDef( AliPHOSPIDv0,1)  // Particle identifier implementation version 1
82
83 };
84
85 #endif // AliPHOSPIDV0_H