Line data Source code
1 : #ifndef ALIPHOSTRACKSEGMENTMAKERV1_H
2 : #define ALIPHOSTRACKSEGMENTMAKERV1_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 : /* History of cvs commits:
8 : *
9 : * $Log$
10 : * Revision 1.51 2007/03/28 19:18:15 kharlov
11 : * RecPoints recalculation in TSM removed
12 : *
13 : * Revision 1.50 2007/03/06 06:54:48 kharlov
14 : * DP:Calculation of cluster properties dep. on vertex added
15 : *
16 : * Revision 1.49 2007/02/01 13:59:11 hristov
17 : * Forward declaration
18 : *
19 : * Revision 1.48 2006/08/28 10:01:56 kharlov
20 : * Effective C++ warnings fixed (Timur Pocheptsov)
21 : *
22 : * Revision 1.47 2005/11/17 12:35:27 hristov
23 : * Use references instead of objects. Avoid to create objects when they are not really needed
24 : *
25 : * Revision 1.46 2005/05/28 14:19:05 schutz
26 : * Compilation warnings fixed by T.P.
27 : *
28 : */
29 :
30 : //_________________________________________________________________________
31 : // Implementation version 1 of algorithm class to construct PHOS track segments
32 : // Associates EMC and CPV lusters
33 : // Unfolds the EMC cluster
34 : //
35 : //*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH)
36 :
37 : // --- ROOT system ---
38 : #include <TVector3.h>
39 :
40 : // --- Standard library ---
41 :
42 : // --- AliRoot header files ---
43 : #include "AliPHOSTrackSegmentMaker.h"
44 :
45 : class AliPHOSEmcRecPoint ;
46 : class AliPHOSCpvRecPoint ;
47 : class TClonesArray;
48 :
49 : class AliPHOSTrackSegmentMakerv1 : public AliPHOSTrackSegmentMaker {
50 :
51 : public:
52 :
53 : AliPHOSTrackSegmentMakerv1() ;
54 : AliPHOSTrackSegmentMakerv1(AliPHOSGeometry *geom);
55 : AliPHOSTrackSegmentMakerv1(const AliPHOSTrackSegmentMakerv1 & tsm);
56 :
57 : virtual ~ AliPHOSTrackSegmentMakerv1() ; // dtor
58 :
59 : virtual void Clusters2TrackSegments(Option_t *option); // Does the job
60 : void FillOneModule() ; // Finds range in which RecPoints belonging current PHOS module are
61 :
62 : void MakeLinks() const; //Evaluates distances(links) between EMC and CPV
63 : void MakePairs() ; //Finds pairs(triplets) with smallest link
64 : virtual void Print(const Option_t * = "") const ;
65 : //Switch to "on flyght" mode, without writing to TreeR and file
66 0 : void SetWriting(Bool_t toWrite = kFALSE){fWrite = toWrite;}
67 0 : virtual void SetMaxEmcCPVDistance(Float_t r){ fRcpv = r ;} //Maximal distance (in PHOS plane)
68 : //between EMCrp and CPVrp
69 0 : virtual void SetMaxCPVTPCDistance(Float_t r){ fRtpc = r ;} //Maximal distance
70 : //between EMCrp and extrapolation of TPC track
71 0 : virtual const char * Version() const { return "tsm-v1" ; }
72 :
73 : AliPHOSTrackSegmentMakerv1 & operator = (const AliPHOSTrackSegmentMakerv1 & ) {
74 : // assignement operator requested by coding convention but not needed
75 0 : Fatal("operator =", "not implemented") ;
76 0 : return *this ;
77 : }
78 :
79 52 : virtual TClonesArray * GetTrackSegments() const { return fTrackSegments; }
80 :
81 : private:
82 :
83 : void GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * EmcClu , AliPHOSCpvRecPoint * Cpv,
84 : Int_t & track, Float_t &dx, Float_t &dz ) const ; // see R0
85 : void Init() ;
86 : void InitParameters() ;
87 : void PrintTrackSegments(Option_t *option) ;
88 :
89 :
90 : private:
91 :
92 : Bool_t fDefaultInit; //! Says if the task was created by defaut ctor (only parameters are initialized)
93 : Bool_t fWrite ; // Write Tracks to TreeT
94 :
95 : Int_t fNTrackSegments ; // number of (EMC) track segments found
96 : Int_t fNCpvTrackSegments ; //Number of CPV track segments
97 :
98 : Float_t fRcpv ; // Maximum distance between a EMC RecPoint and a CPV RecPoint
99 : Float_t fRtpc ; // Maximum distance between a EMC RecPoint and extrapolation of a TPC track
100 :
101 : TVector3 fVtx ; //! Vertex in current position
102 :
103 : TClonesArray * fLinkUpArray ; //!
104 : Int_t fEmcFirst; //! Index of first EMC RecPoint belonging to currect PHOS module
105 : Int_t fEmcLast ; //!
106 : Int_t fCpvFirst; //! Cpv upper layer
107 : Int_t fCpvLast; //!
108 : Int_t fModule ; //! number of module being processed
109 :
110 : TClonesArray * fTrackSegments; // Array with found track-segments
111 :
112 22 : ClassDef( AliPHOSTrackSegmentMakerv1,4) // Implementation version 1 of algorithm class to make PHOS track segments
113 :
114 : };
115 :
116 : #endif // AliPHOSTRACKSEGMENTMAKERV1_H
|