]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDReconstructor.cxx
1b2d6a6444b1094cce0c24bcb8a1825b5428eb91
[u/mrichter/AliRoot.git] / TRD / AliTRDReconstructor.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 /* $Id$ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 // Class for TRD reconstruction                                              //
21 //                                                                           //
22 ///////////////////////////////////////////////////////////////////////////////
23
24 #include <TFile.h>
25
26 #include "AliRunLoader.h"
27 #include "AliRawReader.h"
28 #include "AliLog.h"
29 #include "AliESDTrdTrack.h"
30 #include "AliESDEvent.h"
31
32 #include "AliTRDReconstructor.h"
33 #include "AliTRDclusterizer.h"
34 #include "AliTRDtracker.h"
35 #include "AliTRDpidESD.h"
36 #include "AliTRDgtuTrack.h"
37 #include "AliTRDrawData.h"
38 #include "AliTRDdigitsManager.h"
39 #include "AliTRDtrackerV1.h"
40 #include "AliTRDrecoParam.h"
41
42 ClassImp(AliTRDReconstructor)
43
44 Bool_t AliTRDReconstructor::fgkSeedingOn  = kFALSE;
45 Int_t  AliTRDReconstructor::fgStreamLevel = 0;      // Stream (debug) level
46 AliTRDrecoParam* AliTRDReconstructor::fgRecoParam = 0x0; 
47
48
49 //_____________________________________________________________________________
50 AliTRDReconstructor::~AliTRDReconstructor()                  { 
51         if(fgRecoParam) delete fgRecoParam;
52 }
53
54
55
56 //_____________________________________________________________________________
57 void AliTRDReconstructor::ConvertDigits(AliRawReader *rawReader
58                                       , TTree *digitsTree) const
59 {
60   //
61   // Convert raw data digits into digit objects in a root tree
62   //
63
64   AliInfo("Convert raw data digits into digit objects [RawReader -> Digit TTree]");
65
66   AliTRDrawData rawData;
67   rawReader->Reset();
68   rawReader->Select("TRD");
69   AliTRDdigitsManager *manager = rawData.Raw2Digits(rawReader);
70   manager->MakeBranch(digitsTree);
71   manager->WriteDigits();
72   delete manager;
73
74 }
75
76 //_____________________________________________________________________________
77 void AliTRDReconstructor::Reconstruct(AliRawReader *rawReader
78                                     , TTree *clusterTree) const
79 {
80   //
81   // Reconstruct clusters
82   //
83
84   AliInfo("Reconstruct TRD clusters from RAW data [RawReader -> Cluster TTree]");
85
86   rawReader->Reset();
87   rawReader->Select("TRD");
88
89   // New (fast) cluster finder
90   AliTRDclusterizer clusterer("clusterer","TRD clusterizer");
91   clusterer.OpenOutput(clusterTree);
92   clusterer.SetAddLabels(kFALSE);
93   clusterer.Raw2ClustersChamber(rawReader);
94
95 }
96
97 //_____________________________________________________________________________
98 void AliTRDReconstructor::Reconstruct(TTree *digitsTree
99                                     , TTree *clusterTree) const
100 {
101   //
102   // Reconstruct clusters
103   //
104
105   AliInfo("Reconstruct TRD clusters from Digits [Digit TTree -> Cluster TTree]");
106
107   AliTRDclusterizer clusterer("clusterer","TRD clusterizer");
108   clusterer.OpenOutput(clusterTree);
109   clusterer.ReadDigits(digitsTree);
110   clusterer.MakeClusters();
111
112 }
113
114 //_____________________________________________________________________________
115 AliTracker *AliTRDReconstructor::CreateTracker() const
116 {
117   //
118   // Create a TRD tracker
119   //
120
121   //return new AliTRDtracker(NULL);
122
123         // TODO move it to rec.C. check TPC
124         fgRecoParam = AliTRDrecoParam::GetLowFluxParam();
125   return new AliTRDtrackerV1();
126
127 }
128
129 //_____________________________________________________________________________
130 void AliTRDReconstructor::FillESD(TTree* /*digitsTree*/
131                                 , TTree* /*clusterTree*/
132                                 , AliESDEvent* /*esd*/) const
133 {
134   //
135   // Fill ESD
136   //
137
138 }