]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/html/AliPHOSPIDv1.h
Logics of high gain adding to digits has changed
[u/mrichter/AliRoot.git] / PHOS / html / AliPHOSPIDv1.h
CommitLineData
aa7c9120 1#ifndef ALIPHOSPIDV1_H
2#define ALIPHOSPIDV1_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
9//_________________________________________________________________________
10// Implementation version v1 of the PHOS particle identifier
11// Identification is based on information from PPSD and EMC
12// Oh yeah
13//*-- Author: Yves Schutz (SUBATECH)
14
15// --- ROOT system ---
16class TFormula ;
17class TVector3 ;
18
19// --- Standard library ---
20
21// --- AliRoot header files ---
22class AliPHOSEmcRecPoint ;
23class AliPHOSRecPoint ;
24
25#include "AliPHOSPID.h"
26
27class AliPHOSPIDv1 : public AliPHOSPID {
28
29public:
30
31 AliPHOSPIDv1() ; // ctor
32 AliPHOSPIDv1(const char* headerFile, const char * tsBranchFile = 0) ;
33 virtual ~AliPHOSPIDv1() ; // dtor
34
35 virtual void Exec(Option_t * option);
36 virtual char * GetRecParticlesBranch()const {return (char*) fRecparticlesFileName.Data() ;}
37 virtual char * GetTrackSegmentsBranch()const{return (char*) fTSFileName.Data(); }
38
39 virtual void Init() ;
40
41 virtual void PlotDispersionCuts()const ;
42
43 virtual void Print(Option_t * option)const ;
44
45 virtual Bool_t ReadTrackSegments() ;
46
47 virtual void SetIdentificationMethod(char * option = "CPV DISP" ){fIDOptions = option ;}
48
49 virtual void SetShowerProfileCut(char * formula =
50 "0.35*0.35 - (x-1.386)*(x-1.386) - 1.707*1.707*(y-1.008)*(y-1.008)") ;
51
52 virtual void SetDispersionCut(Float_t cut){fDispersion = cut ; }
53 virtual void SetCpvtoEmcDistanceCut(Float_t cut ) {fCpvEmcDistance = cut ;}
54 virtual void SetTrackSegmentsBranch(const char* file) ;
55 virtual void SetRecParticlesBranch (const char* file) ;
56
57 virtual void WriteRecParticles() ;
58
59
60 private:
61 void MakeRecParticles(void ) ;
62 Float_t GetDistance(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, Option_t * Axis)const ;
63 // Relative Distance PPSD-EMC
64 TVector3 GetMomentumDirection(AliPHOSEmcRecPoint * emc, AliPHOSRecPoint * cpv, AliPHOSRecPoint * ppsd)const ;
65
66 void PrintRecParticles(Option_t * option) ;
67
68 private:
69
70 TString fHeaderFileName ;
71 TString fTSFileName;
72 TString fRecPointsFileName ;
73 TString fRecparticlesFileName ;
74
75 TString fIDOptions ;
76
77 Int_t fNEvent ;
78 TObjArray * fEmcRecPoints ; // ! initial EMC RecPoints
79 TObjArray * fCpvRecPoints ; // ! initial CPV RecPoints
80 TClonesArray * fTrackSegments; // ! initial list of TrackSegments
81 TClonesArray * fRecParticles ; // ! output
82
83 AliPHOSClusterizer * fClusterizer ; // !
84 AliPHOSTrackSegmentMaker * fTSMaker ; // !
85
86 AliPHOSGeometry * fGeom ; // !pointer to PHOS geometry
87 TFormula * fFormula ; // formula to define cut on the shouer elips axis
88 Float_t fDispersion ; // dispersion cut
89 Float_t fCpvEmcDistance ;
90
91 Bool_t fIsInitialized ;
92
93
94
95
96 ClassDef( AliPHOSPIDv1,1) // Particle identifier implementation version 1
97
98};
99
100#endif // AliPHOSPIDV1_H