]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCReconstructor.cxx
First step towards reading of the new RCU firmware trailer. Thanks to Luciano we...
[u/mrichter/AliRoot.git] / TPC / AliTPCReconstructor.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 TPC reconstruction                                              //
21 //                                                                           //
22 ///////////////////////////////////////////////////////////////////////////////
23
24
25 #include "AliTPCReconstructor.h"
26 #include "AliRunLoader.h"
27 #include "AliRun.h"
28 #include "AliRawReader.h"
29 #include "AliTPCclustererMI.h"
30 #include "AliTPCtrackerMI.h"
31 #include "AliTPCpidESD.h"
32 #include "AliTPCParam.h"
33 #include "AliTPCParamSR.h"
34 #include "AliTPCcalibDB.h"
35
36 ClassImp(AliTPCReconstructor)
37
38
39 AliTPCRecoParam *    AliTPCReconstructor::fgkRecoParam =0;  // reconstruction parameters
40 Int_t    AliTPCReconstructor::fgStreamLevel     = 0;        // stream (debug) level
41
42
43 AliTPCReconstructor::AliTPCReconstructor():
44 AliReconstructor(),
45 fClusterer(NULL)
46 {
47   //
48   // default constructor
49   //
50   //
51   //
52  
53   AliTPCParam* param = GetTPCParam();
54   if (!param) {
55     AliWarning("Loading default TPC parameters !");
56     param = new AliTPCParamSR;
57   }
58   fClusterer = new AliTPCclustererMI(param);
59 }
60
61 //_____________________________________________________________________________
62 AliTPCReconstructor::~AliTPCReconstructor()
63 {
64   if (fgkRecoParam) delete fgkRecoParam;
65   if (fClusterer)   delete fClusterer;
66 }
67
68 //_____________________________________________________________________________
69 void AliTPCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const {
70   // single event local reconstruction
71   // of TPC data
72   fClusterer->SetInput(digitsTree);
73   fClusterer->SetOutput(clustersTree);
74   fClusterer->Digits2Clusters();
75 }
76
77 //_____________________________________________________________________________
78 void AliTPCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const {
79   // single event local reconstruction
80   // of TPC data starting from raw data
81
82   fClusterer->SetOutput(clustersTree);
83   fClusterer->Digits2Clusters(rawReader);
84 }
85
86 //_____________________________________________________________________________
87 AliTracker* AliTPCReconstructor::CreateTracker() const
88 {
89 // create a TPC tracker
90
91   AliTPCParam* param = GetTPCParam();
92   if (!param) {
93     AliWarning("Loading default TPC parameters !");
94     param = new AliTPCParamSR;
95   }
96   param->ReadGeoMatrices();
97   return new AliTPCtrackerMI(param);
98 }
99
100 //_____________________________________________________________________________
101 void AliTPCReconstructor::FillESD(TTree */*digitsTree*/, TTree */*clustersTree*/,
102                                   AliESDEvent* esd) const
103 {
104 // make PID
105
106   Double_t parTPC[] = {47., 0.07, 5.};
107   AliTPCpidESD tpcPID(parTPC);
108   tpcPID.MakePID(esd);
109 }
110
111
112 //_____________________________________________________________________________
113 AliTPCParam* AliTPCReconstructor::GetTPCParam() const
114 {
115 // get the TPC parameters
116
117   AliTPCParam* param = AliTPCcalibDB::Instance()->GetParameters();
118
119   return param;
120 }
121
122
123
124
125 const AliTPCRecoParam* AliTPCReconstructor::GetRecoParam(){ 
126   //
127   // Get reconstruction parameters
128   //
129   
130    if (!fgkRecoParam) {
131     //
132     // 1. try to get reco parameters from OCDB 
133     //
134     fgkRecoParam = AliTPCcalibDB::Instance()->GetRecoParam(0);
135     //Info("","Reconstruction parameters from OCDB used");
136     //
137     // 2. If not initialized take default
138     //
139     if (!fgkRecoParam){
140       fgkRecoParam = AliTPCRecoParam::GetHighFluxParam();
141       //Error("","Default reconstruction parameters  used");
142     }
143   }
144
145   return fgkRecoParam;
146 }