26d4b141 |
1 | #ifndef ALIPHOSPIDV1_H |
2 | #define ALIPHOSPIDV1_H |
6ad0bfa0 |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
6 | /* $Id$ */ |
7 | |
b2a60966 |
8 | |
9 | //_________________________________________________________________________ |
10 | // Implementation version v1 of the PHOS particle identifier |
11 | // Identification is based on information from PPSD and EMC |
2f04ed65 |
12 | // Oh yeah |
b2a60966 |
13 | //*-- Author: Yves Schutz (SUBATECH) |
6ad0bfa0 |
14 | |
15 | // --- ROOT system --- |
7acf6008 |
16 | class TFormula ; |
17 | class TVector3 ; |
6ad0bfa0 |
18 | |
19 | // --- Standard library --- |
20 | |
21 | // --- AliRoot header files --- |
7acf6008 |
22 | class AliPHOSEmcRecPoint ; |
23 | class AliPHOSRecPoint ; |
6ad0bfa0 |
24 | |
26d4b141 |
25 | #include "AliPHOSPID.h" |
6ad0bfa0 |
26 | |
26d4b141 |
27 | class AliPHOSPIDv1 : public AliPHOSPID { |
6ad0bfa0 |
28 | |
29 | public: |
30 | |
7acf6008 |
31 | AliPHOSPIDv1() ; // ctor |
bf8f1fbd |
32 | AliPHOSPIDv1(const char* headerFile, const char * tsBranch = "Default") ; |
7acf6008 |
33 | virtual ~AliPHOSPIDv1() ; // dtor |
34 | |
35 | virtual void Exec(Option_t * option); |
7b7c1533 |
36 | virtual char * GetRecParticlesBranch()const {return (char*) fRecParticlesTitle.Data() ;} |
37 | virtual char * GetTrackSegmentsBranch()const{return (char*) fTrackSegmentsTitle.Data(); } |
2b60655b |
38 | virtual const Int_t GetRecParticlesInRun() const {return fRecParticlesInRun ;} |
9688c1dd |
39 | |
7acf6008 |
40 | virtual void PlotDispersionCuts()const ; |
7acf6008 |
41 | virtual void Print(Option_t * option)const ; |
7acf6008 |
42 | virtual void SetIdentificationMethod(char * option = "CPV DISP" ){fIDOptions = option ;} |
7b7c1533 |
43 | 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)") ; |
7acf6008 |
44 | virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; } |
9688c1dd |
45 | virtual void SetCpvtoEmcDistanceCut(Float_t cut ) {fCpvEmcDistance = cut ;} |
46 | virtual void SetTimeGate(Float_t gate) {fTimeGate = gate ;} |
7b7c1533 |
47 | virtual void SetTrackSegmentsBranch(const char* title) { fTrackSegmentsTitle = title;} |
48 | virtual void SetRecParticlesBranch (const char* title) { fRecParticlesTitle = title;} |
49 | virtual const char * Version() const { return "pid-v1" ; } |
69183710 |
50 | |
7acf6008 |
51 | private: |
79bf6a2f |
52 | |
53 | virtual void Init() ; |
7acf6008 |
54 | void MakeRecParticles(void ) ; |
9688c1dd |
55 | Float_t GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ; // Relative Distance CPV-EMC |
56 | TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv)const ; |
7acf6008 |
57 | void PrintRecParticles(Option_t * option) ; |
7b7c1533 |
58 | virtual void WriteRecParticles(Int_t event) ; |
09fc14a0 |
59 | |
60 | private: |
61 | |
baef0810 |
62 | TString fHeaderFileName ; // file name with event header |
7b7c1533 |
63 | TString fTrackSegmentsTitle; // branch name with track segments |
baef0810 |
64 | TString fRecPointsTitle ; // branch name with rec points |
7b7c1533 |
65 | TString fRecParticlesTitle ; // branch name with rec particles |
baef0810 |
66 | TString fIDOptions ; // PID option |
baef0810 |
67 | Int_t fNEvent ; // current event number |
7acf6008 |
68 | |
baef0810 |
69 | AliPHOSClusterizer * fClusterizer ; // ! |
70 | AliPHOSTrackSegmentMaker * fTSMaker ; // ! |
7acf6008 |
71 | |
baef0810 |
72 | TFormula * fFormula ; // formula to define cut on the shouer elips axis |
73 | Float_t fDispersion ; // dispersion cut |
74 | Float_t fCpvEmcDistance ; // Max EMC-CPV distance |
9688c1dd |
75 | Float_t fTimeGate ; // Time of the latest EmcRecPoint accepted as EM |
2b60655b |
76 | Int_t fRecParticlesInRun ; //! Total number of recparticles in one run |
9688c1dd |
77 | |
b2a60966 |
78 | ClassDef( AliPHOSPIDv1,1) // Particle identifier implementation version 1 |
6ad0bfa0 |
79 | |
80 | }; |
81 | |
26d4b141 |
82 | #endif // AliPHOSPIDV1_H |