Move the tail cancellation from the digitizer to the clusterizer (Christian)
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTrackSegmentMakerv1.h
1 #ifndef ALIEMCALTRACKSEGMENTMAKERV1_H
2 #define ALIEMCALTRACKSEGMENTMAKERV1_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 // Implementation version 1 of algorithm class to construct EMCAL track segments
10 // Associates EMC and PPSD clusters
11 // Unfolds the EMC cluster   
12 //                  
13 //*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH) & Yves Schutz (SUBATECH) 
14
15 // --- ROOT system ---
16
17 // --- Standard library ---
18
19 // --- AliRoot header files ---
20 #include "AliEMCALTrackSegmentMaker.h"
21
22 class AliEMCALRecPoint ;
23
24 class  AliEMCALTrackSegmentMakerv1 : public AliEMCALTrackSegmentMaker {
25
26 public:
27
28   AliEMCALTrackSegmentMakerv1() ;                     
29   AliEMCALTrackSegmentMakerv1(const TString alirunFileNameFile, const TString eventFolderName = AliConfig::GetDefaultEventFolderName());                  
30   AliEMCALTrackSegmentMakerv1(const AliEMCALTrackSegmentMakerv1 & tsm):AliEMCALTrackSegmentMaker(tsm) {
31     // cpy ctor: no implementation yet
32     // requested by the Coding Convention
33     Fatal("cpy ctor", "not implemented") ;
34 }
35    
36   virtual ~ AliEMCALTrackSegmentMakerv1() ; // dtor
37   
38   virtual Int_t GetTrackSegmentsInRun()const {return fTrackSegmentsInRun ;}  
39
40   virtual void   Exec(Option_t * option) ;
41   Float_t HowClose(AliEMCALRecPoint * ec, AliEMCALRecPoint * rp, Bool_t &toofar) const ;
42           void   MakeLinks() const;      //Evaluates distances(links) between recpoints
43           void   MakePairs() ;           //Finds pairs(triplets) with smallest link
44   virtual void   Print(Option_t * option) const ;
45   virtual const char * Version() const { return "tsm-v1" ; }  
46
47   AliEMCALTrackSegmentMakerv1 & operator = (const AliEMCALTrackSegmentMakerv1 & )  {
48     // assignement operator requested by coding convention but not needed
49     Fatal("operator =", "not implemented") ;
50     return *this ; 
51   }
52
53
54 private:
55
56   const TString BranchName() const ; 
57   void    Init() ;
58   void    InitParameters() ;
59   void    PrintTrackSegments(Option_t *option) ;
60   void    Unload() ;
61   virtual void   WriteTrackSegments() ;
62
63 private:  
64
65   Float_t fClose ;               // Spread within which 2 recpoints are declared to have the same direction 
66   Bool_t  fDefaultInit ;         //! Says if the task was created by defaut ctor (only parameters are initialized)
67   Int_t fNTrackSegments ;        // number of track segments found 
68   Int_t fTrackSegmentsInRun ;    //! Total number of track segments in one run
69
70   ClassDef( AliEMCALTrackSegmentMakerv1,4)  // Implementation version 1 of algorithm class to make EMCAL track segments 
71
72 };
73
74 #endif // AliEMCALTRACKSEGMENTMAKERV1_H