Adding simple example to load default debug streamer
[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 Int_t    AliTPCReconstructor::fgStreamLevel     = 0;        // stream (debug) level
40
41
42 AliTPCReconstructor::AliTPCReconstructor():
43 AliReconstructor(),
44 fClusterer(NULL)
45 {
46   //
47   // default constructor
48   //
49   //
50   //
51  
52   AliTPCParam* param = GetTPCParam();
53   if (!param) {
54     AliWarning("Loading default TPC parameters !");
55     param = new AliTPCParamSR;
56   }
57   fClusterer = new AliTPCclustererMI(param);
58 }
59
60 //_____________________________________________________________________________
61 AliTPCReconstructor::~AliTPCReconstructor()
62 {
63   if (fClusterer)   delete fClusterer;
64 }
65
66 //_____________________________________________________________________________
67 void AliTPCReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const {
68   // single event local reconstruction
69   // of TPC data
70   fClusterer->SetInput(digitsTree);
71   fClusterer->SetOutput(clustersTree);
72   fClusterer->Digits2Clusters();
73 }
74
75 //_____________________________________________________________________________
76 void AliTPCReconstructor::Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const {
77   // single event local reconstruction
78   // of TPC data starting from raw data
79
80   fClusterer->SetOutput(clustersTree);
81   fClusterer->Digits2Clusters(rawReader);
82 }
83
84 //_____________________________________________________________________________
85 AliTracker* AliTPCReconstructor::CreateTracker() const
86 {
87 // create a TPC tracker
88
89   AliTPCParam* param = GetTPCParam();
90   if (!param) {
91     AliWarning("Loading default TPC parameters !");
92     param = new AliTPCParamSR;
93   }
94   param->ReadGeoMatrices();
95   return new AliTPCtrackerMI(param);
96 }
97
98 //_____________________________________________________________________________
99 void AliTPCReconstructor::FillESD(TTree */*digitsTree*/, TTree */*clustersTree*/,
100                                   AliESDEvent* esd) const
101 {
102 // make PID
103
104   Double_t parTPC[] = {47., 0.07, 5.};
105   AliTPCpidESD tpcPID(parTPC);
106   tpcPID.MakePID(esd);
107 }
108
109
110 //_____________________________________________________________________________
111 AliTPCParam* AliTPCReconstructor::GetTPCParam() const
112 {
113 // get the TPC parameters
114
115   AliTPCParam* param = AliTPCcalibDB::Instance()->GetParameters();
116
117   return param;
118 }