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 // class for TOF reconstruction //
22 ///////////////////////////////////////////////////////////////////////////////
26 #include "TObjArray.h"
30 #include "AliRawReader.h"
32 #include "AliTOFClusterFinder.h"
33 #include "AliTOFcalib.h"
34 #include "AliTOFtrackerMI.h"
35 #include "AliTOFtracker.h"
36 #include "AliTOFtrackerV1.h"
37 #include "AliTOFReconstructor.h"
45 //extern TDirectory *gDirectory;
46 //extern TFile *gFile;
48 ClassImp(AliTOFReconstructor)
50 //____________________________________________________________________
51 AliTOFReconstructor::AliTOFReconstructor()
59 //Retrieving the TOF calibration info
60 fTOFcalib = new AliTOFcalib();
61 fTOFcalib->CreateCalObjects();
63 if(!fTOFcalib->ReadParOnlineDelayFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
64 if(!fTOFcalib->ReadParOnlineStatusFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
66 if(!fTOFcalib->ReadParOfflineFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
69 //------------------------------------------------------------------------
70 AliTOFReconstructor::AliTOFReconstructor(const AliTOFReconstructor &source)
77 this->fTOFcalib=source.fTOFcalib;
80 //------------------------------------------------------------------------
81 AliTOFReconstructor & AliTOFReconstructor::operator=(const AliTOFReconstructor &source)
86 this->fTOFcalib=source.fTOFcalib;
89 //_____________________________________________________________________________
90 AliTOFReconstructor::~AliTOFReconstructor()
98 //_____________________________________________________________________________
99 void AliTOFReconstructor::Reconstruct(AliRawReader *rawReader,
100 TTree *clustersTree) const
102 // reconstruct clusters from Raw Data
104 static AliTOFClusterFinder tofClus(fTOFcalib);
105 tofClus.Digits2RecPoints(rawReader, clustersTree);
109 //_____________________________________________________________________________
110 void AliTOFReconstructor::Reconstruct(TTree *digitsTree,
111 TTree *clustersTree) const
113 // reconstruct clusters from Raw Data
115 AliDebug(2,Form("Global Event loop mode: Creating Recpoints from Digits Tree"));
116 static AliTOFClusterFinder tofClus(fTOFcalib);
117 tofClus.Digits2RecPoints(digitsTree, clustersTree);
120 //_____________________________________________________________________________
121 void AliTOFReconstructor::ConvertDigits(AliRawReader* reader, TTree* digitsTree) const
123 // reconstruct clusters from digits
125 AliDebug(2,Form("Global Event loop mode: Converting Raw Data to a Digits Tree"));
126 AliTOFClusterFinder tofClus(fTOFcalib);
127 tofClus.Raw2Digits(reader, digitsTree);
131 //_____________________________________________________________________________
132 AliTracker* AliTOFReconstructor::CreateTracker() const
134 // create a TOF tracker
136 TString selectedTracker = GetOption();
137 // use MI tracker if selected
138 if (selectedTracker.Contains("MI")) return new AliTOFtrackerMI();
139 if (selectedTracker.Contains("V1")) return new AliTOFtrackerV1();
140 return new AliTOFtracker();