Update master to aliroot
[u/mrichter/AliRoot.git] / STEER / STEER / AliReconstructor.cxx
CommitLineData
59697224 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// base class for reconstruction algorithms //
21// //
c757bafd 22// Derived classes should implement a default constructor and //
23// the virtual methods //
59697224 24// - Reconstruct : to perform the local reconstruction for all events //
25// - FillESD : to fill the ESD for the current event //
26// //
27// The reconstructor classes for the barrel detectors should in addition //
28// implement the method //
29// - CreateTracker : to create a tracker object for the barrel detector //
30// //
31// The ITS reconstructor should in addition implement the method //
32// - CreateVertexer : to create an object for the vertex finding //
33// //
34///////////////////////////////////////////////////////////////////////////////
35
36
f37d970d 37#include "AliLog.h"
59697224 38#include "AliReconstructor.h"
7e88424f 39#include <TClass.h>
c757bafd 40#include <TString.h>
59697224 41
42
43ClassImp(AliReconstructor)
c757bafd 44
38e7ce48 45const AliDetectorRecoParam* AliReconstructor::fgRecoParam[AliReconstruction::kNDetectors] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
c757bafd 46
47//_____________________________________________________________________________
b26c3770 48void AliReconstructor::ConvertDigits(AliRawReader* /*rawReader*/,
49 TTree* /*digitsTree*/) const
50{
51// convert raw data digits into digit objects in a root tree
52
53 AliError("conversion of raw data digits into digit objects not implemented");
54}
55
56
57//_____________________________________________________________________________
58void AliReconstructor::Reconstruct(TTree* /*digitsTree*/,
59 TTree* /*clustersTree*/) const
60{
61// run the local reconstruction
62
63 AliError("local event reconstruction not implemented");
64}
65
66//_____________________________________________________________________________
67void AliReconstructor::Reconstruct(AliRawReader* /*rawReader*/,
68 TTree* /*clustersTree*/) const
69{
70// run the local reconstruction with raw data input
71
72 AliError("local event reconstruction not implemented for raw data input");
73}
74
75//_____________________________________________________________________________
b26c3770 76void AliReconstructor::FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/,
af885e0f 77 AliESDEvent* /*esd*/) const
b26c3770 78{
79// fill the ESD.
80// by default nothing is done
81
82}
83
84//_____________________________________________________________________________
85void AliReconstructor::FillESD(AliRawReader* /*rawReader*/,
af885e0f 86 TTree* clustersTree, AliESDEvent* esd) const
b26c3770 87{
88// fill the ESD in case of raw data input.
89// by default the FillESD method for MC is called
90
91 FillESD((TTree*)NULL, clustersTree, esd);
92}
93
94//_____________________________________________________________________________
c757bafd 95const char* AliReconstructor::GetDetectorName() const
96{
97// get the name of the detector
98
99 static TString detName;
100 detName = GetName();
101 detName.Remove(0, 3);
102 detName.Remove(detName.Index("Reconstructor"));
f9fc20b4 103 detName.ReplaceAll("Upgrade","");
c757bafd 104 return detName.Data();
105}
7e88424f 106
107//_____________________________________________________________________________
108void AliReconstructor::SetRecoParam(const AliDetectorRecoParam *par)
109{
110 // To be implemented by the detectors.
111 // As soon as we manage to remove the static members
112 // and method in the detector reconstructors, we will
113 // implemented this method in the base class and remove
114 // the detectors implementations.
115 Int_t iDet = AliReconstruction::GetDetIndex(GetDetectorName());
116
117 if (iDet >= 0)
118 fgRecoParam[iDet] = par;
119 else
120 AliError(Form("Invalid detector index for (%s)",GetDetectorName()));
121
122 return;
123}
124
125//_____________________________________________________________________________
126const AliDetectorRecoParam* AliReconstructor::GetRecoParam(Int_t iDet)
127{
128 // Get the current reconstruciton parameters
129 // for a given detector
ac4a7581 130 if (iDet >= 0 && iDet < AliReconstruction::kNDetectors)
7e88424f 131 return fgRecoParam[iDet];
132 else {
133 AliErrorClass(Form("Invalid detector index (%d)",iDet));
134 return NULL;
135 }
136}
10d100d4 137
138//_____________________________________________________________________________
d999f2e6 139void AliReconstructor::GetPidSettings(AliESDpid */*esdPID*/) {
10d100d4 140 //
141 // Function to set Pid settings in esdPID
142 // based on detector-specific AliRecoParams
143 // to be implemented by detectors separately (e.g TOF)
144 //
145 return;
146}