3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 //_________________________________________________________________________
10 // Implementation version v0 of the PHOS particle identifier
11 // Identification is based on information from PPSD and EMC
13 //*-- Author: Yves Schutz (SUBATECH)
15 // --- ROOT system ---
19 // --- Standard library ---
21 // --- AliRoot header files ---
22 class AliPHOSEmcRecPoint ;
23 class AliPHOSRecPoint ;
25 #include "AliPHOSPID.h"
27 class AliPHOSPIDv0 : public AliPHOSPID {
31 AliPHOSPIDv0() ; // ctor
32 AliPHOSPIDv0(const char* headerFile, const char * tsBranch = "Default", const Bool_t toSplit=kFALSE) ;
33 AliPHOSPIDv0(AliPHOSPIDv0 & pid) ; // cpy ctor
34 virtual ~AliPHOSPIDv0() ; // dtor
36 virtual void Exec(Option_t * option);
37 // virtual char * GetRecParticlesBranch()const {return (char*) fRecParticlesTitle.Data() ;}
38 // virtual char * GetTrackSegmentsBranch()const{return (char*) fTrackSegmentsTitle.Data(); }
39 virtual const Int_t GetRecParticlesInRun() const {return fRecParticlesInRun ;}
41 virtual void PlotDispersionCuts()const ;
42 virtual void Print(Option_t * option)const ;
43 virtual void SetIdentificationMethod(char * option = "CPV DISP" ){fIDOptions = option ;}
44 virtual void SetShowerProfileCut(char * formula = "0.35*0.35 - (x-1.386)*(x-1.386) - 1.707*1.707*(y-1.008)*(y-1.008)") ;
45 virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; }
46 virtual void SetCpvtoEmcDistanceCut(Float_t cut ) {fCpvEmcDistance = cut ;}
47 virtual void SetTimeGate(Float_t gate) {fTimeGate = gate ;}
48 // virtual void SetTrackSegmentsBranch(const char* title) { fTrackSegmentsTitle = title;}
49 // virtual void SetRecParticlesBranch (const char* title) { fRecParticlesTitle = title;}
50 virtual const char * Version() const { return "pid-v0" ; }
51 AliPHOSPIDv0 & operator = (const AliPHOSPIDv0 & pid) { return *this ; }
55 void MakeRecParticles(void ) ;
56 Float_t GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC
57 TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ;
58 void PrintRecParticles(Option_t * option) ;
59 virtual void WriteRecParticles(Int_t event) ;
63 TString fHeaderFileName ; // file name with event header
64 TString fTrackSegmentsTitle; // branch name with track segments
65 TString fRecPointsTitle ; // branch name with rec points
66 TString fRecParticlesTitle ; // branch name with rec particles
67 TString fIDOptions ; // PID option
68 Int_t fNEvent ; // current event number
70 AliPHOSClusterizer * fClusterizer ; // !
71 AliPHOSTrackSegmentMaker * fTSMaker ; // !
73 TFormula * fFormula ; // formula to define cut on the shower elips axis
74 Float_t fDispersion ; // dispersion cut
75 Float_t fCpvEmcDistance ; // Max EMC-CPV distance
76 Float_t fTimeGate ; // Time of the latest EmcRecPoint accepted as EM
77 Int_t fRecParticlesInRun ; //! Total number of recparticles in one run
79 ClassDef( AliPHOSPIDv0,1) // Particle identifier implementation version 1
83 #endif // AliPHOSPIDV0_H