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