1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 ///////////////////////////////////////////////////////////////////////////////
20 // base class for reconstruction algorithms //
22 // Derived classes should implement a default constructor and //
23 // the virtual methods //
24 // - Reconstruct : to perform the local reconstruction for all events //
25 // - FillESD : to fill the ESD for the current event //
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 //
31 // The ITS reconstructor should in addition implement the method //
32 // - CreateVertexer : to create an object for the vertex finding //
34 ///////////////////////////////////////////////////////////////////////////////
38 #include "AliReconstructor.h"
43 ClassImp(AliReconstructor)
45 const AliDetectorRecoParam* AliReconstructor::fgRecoParam[AliReconstruction::kNDetectors] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
47 //_____________________________________________________________________________
48 void AliReconstructor::ConvertDigits(AliRawReader* /*rawReader*/,
49 TTree* /*digitsTree*/) const
51 // convert raw data digits into digit objects in a root tree
53 AliError("conversion of raw data digits into digit objects not implemented");
57 //_____________________________________________________________________________
58 void AliReconstructor::Reconstruct(TTree* /*digitsTree*/,
59 TTree* /*clustersTree*/) const
61 // run the local reconstruction
63 AliError("local event reconstruction not implemented");
66 //_____________________________________________________________________________
67 void AliReconstructor::Reconstruct(AliRawReader* /*rawReader*/,
68 TTree* /*clustersTree*/) const
70 // run the local reconstruction with raw data input
72 AliError("local event reconstruction not implemented for raw data input");
75 //_____________________________________________________________________________
76 void AliReconstructor::FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/,
77 AliESDEvent* /*esd*/) const
80 // by default nothing is done
84 //_____________________________________________________________________________
85 void AliReconstructor::FillESD(AliRawReader* /*rawReader*/,
86 TTree* clustersTree, AliESDEvent* esd) const
88 // fill the ESD in case of raw data input.
89 // by default the FillESD method for MC is called
91 FillESD((TTree*)NULL, clustersTree, esd);
94 //_____________________________________________________________________________
95 const char* AliReconstructor::GetDetectorName() const
97 // get the name of the detector
99 static TString detName;
101 detName.Remove(0, 3);
102 detName.Remove(detName.Index("Reconstructor"));
103 detName.ReplaceAll("Upgrade","");
104 return detName.Data();
107 //_____________________________________________________________________________
108 void AliReconstructor::SetRecoParam(const AliDetectorRecoParam *par)
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());
118 fgRecoParam[iDet] = par;
120 AliError(Form("Invalid detector index for (%s)",GetDetectorName()));
125 //_____________________________________________________________________________
126 const AliDetectorRecoParam* AliReconstructor::GetRecoParam(Int_t iDet)
128 // Get the current reconstruciton parameters
129 // for a given detector
130 if (iDet >= 0 && iDet < AliReconstruction::kNDetectors)
131 return fgRecoParam[iDet];
133 AliErrorClass(Form("Invalid detector index (%d)",iDet));
138 //_____________________________________________________________________________
139 void AliReconstructor::GetPidSettings(AliESDpid */*esdPID*/) {
141 // Function to set Pid settings in esdPID
142 // based on detector-specific AliRecoParams
143 // to be implemented by detectors separately (e.g TOF)