Adding class description
[u/mrichter/AliRoot.git] / MUON / AliMUONTracker.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /// \class AliMUONTracker
17 /// Interface class for use of global tracking framework;
18 /// reconstruct tracks from recpoints
19 ///
20 /// \author Christian Finck, SUBATECH Nantes
21
22 #include "AliMUONTracker.h"
23 #include "AliMUONTrackReconstructorK.h"
24 #include "AliMUONTrackReconstructor.h"
25 #include "AliMUONRecData.h"
26 #include "AliLog.h"
27
28 //_____________________________________________________________________________
29 AliMUONTracker::AliMUONTracker()
30   : AliTracker(),
31     fTriggerCircuit(0x0),
32     fMUONData(0x0),
33     fTrackReco(0x0)
34 {
35   /// constructor
36
37 }
38 //_____________________________________________________________________________
39 AliMUONTracker::~AliMUONTracker()
40 {
41   /// dtr
42   delete fTrackReco;
43 }
44
45 //_____________________________________________________________________________
46 void AliMUONTracker::SetOption(Option_t* option)
47 {
48   /// set reconstructor class
49
50   if (!fMUONData)
51     AliError("MUONData not defined");
52
53   if (!fTriggerCircuit)
54     AliError("TriggerCircuit not defined");
55
56   if (strstr(option,"Original")) 
57     fTrackReco = new AliMUONTrackReconstructor(fMUONData);
58   else if (strstr(option,"Combi")) 
59     fTrackReco = new AliMUONTrackReconstructorK(fMUONData,"Combi");
60   else 
61     fTrackReco = new AliMUONTrackReconstructorK(fMUONData,"Kalman");
62
63   fTrackReco->SetTriggerCircuit(fTriggerCircuit);
64
65 }
66
67 //_____________________________________________________________________________
68 Int_t AliMUONTracker::Clusters2Tracks(AliESD* /*esd*/)
69 {
70
71   /// clusters2Tracks method
72   /// in general tracking framework
73    
74   // open TClonesArray for reading
75   fMUONData->SetTreeAddress("TC,RC");
76
77   // open for writing
78   // trigger branch
79   fMUONData->MakeBranch("RL"); //trigger track
80   fMUONData->SetTreeAddress("RL");
81   fTrackReco->EventReconstructTrigger();
82   fMUONData->Fill("RL");
83
84   // tracking branch
85   fMUONData->MakeBranch("RT"); //track
86   fMUONData->SetTreeAddress("RT");
87   fTrackReco->EventReconstruct();
88   fMUONData->Fill("RT");
89
90   fMUONData->ResetRecTracks();
91   fMUONData->ResetRecTriggerTracks();
92
93  
94   return kTRUE;
95 }