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
52 //_____________________________________________________________________________
53 void AliReconstructor::ConvertDigits(AliRawReader* /*rawReader*/,
54 TTree* /*digitsTree*/) const
56 // convert raw data digits into digit objects in a root tree
58 AliError("conversion of raw data digits into digit objects not implemented");
62 //_____________________________________________________________________________
63 void AliReconstructor::Reconstruct(TTree* /*digitsTree*/,
64 TTree* /*clustersTree*/) const
66 // run the local reconstruction
68 AliError("local event reconstruction not implemented");
71 //_____________________________________________________________________________
72 void AliReconstructor::Reconstruct(AliRawReader* /*rawReader*/,
73 TTree* /*clustersTree*/) const
75 // run the local reconstruction with raw data input
77 AliError("local event reconstruction not implemented for raw data input");
80 //_____________________________________________________________________________
81 void AliReconstructor::FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/,
82 AliESDEvent* /*esd*/) const
85 // by default nothing is done
89 //_____________________________________________________________________________
90 void AliReconstructor::FillESD(AliRawReader* /*rawReader*/,
91 TTree* clustersTree, AliESDEvent* esd) const
93 // fill the ESD in case of raw data input.
94 // by default the FillESD method for MC is called
96 FillESD((TTree*)NULL, clustersTree, esd);
99 //_____________________________________________________________________________
100 const char* AliReconstructor::GetDetectorName() const
102 // get the name of the detector
104 static TString detName;
106 detName.Remove(0, 3);
107 detName.Remove(detName.Index("Reconstructor"));
108 detName.ReplaceAll("Upgrade","");
109 return detName.Data();
112 //_____________________________________________________________________________
113 void AliReconstructor::SetRecoParam(const AliDetectorRecoParam *par)
115 // To be implemented by the detectors.
116 // As soon as we manage to remove the static members
117 // and method in the detector reconstructors, we will
118 // implemented this method in the base class and remove
119 // the detectors implementations.
120 Int_t iDet = AliReconstruction::GetDetIndex(GetDetectorName());
123 fgRecoParam[iDet] = par;
125 AliError(Form("Invalid detector index for (%s)",GetDetectorName()));
130 //_____________________________________________________________________________
131 const AliDetectorRecoParam* AliReconstructor::GetRecoParam(Int_t iDet)
133 // Get the current reconstruciton parameters
134 // for a given detector
135 if (iDet >= 0 && iDet < AliReconstruction::kNDetectors)
136 return fgRecoParam[iDet];
138 AliErrorClass(Form("Invalid detector index (%d)",iDet));
143 //_____________________________________________________________________________
144 void AliReconstructor::GetPidSettings(AliESDpid */*esdPID*/) {
146 // Function to set Pid settings in esdPID
147 // based on detector-specific AliRecoParams
148 // to be implemented by detectors separately (e.g TOF)