X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFReconstructor.cxx;h=c56fed6b32bfdbc9de1c2b15802dd1a76606a781;hb=4662eff80b3186d43d661cdea28fe30180314de4;hp=e04aff9118b590f058941da915c058f83e94d6c6;hpb=d08a92dd3941c5250923cc15a57c9e7a01a3c942;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFReconstructor.cxx b/TOF/AliTOFReconstructor.cxx index e04aff9118b..c56fed6b32b 100644 --- a/TOF/AliTOFReconstructor.cxx +++ b/TOF/AliTOFReconstructor.cxx @@ -21,94 +21,205 @@ // // /////////////////////////////////////////////////////////////////////////////// - -#include +#include +#include "TObjArray.h" +#include "TString.h" #include "AliLog.h" -#include "AliRun.h" -#include "AliRunLoader.h" +#include "AliRawReader.h" -#include "AliTOFtracker.h" #include "AliTOFClusterFinder.h" +#include "AliTOFClusterFinderV1.h" +#include "AliTOFcalib.h" +#include "AliTOFtrackerMI.h" +#include "AliTOFtracker.h" +#include "AliTOFtrackerV1.h" #include "AliTOFReconstructor.h" +class TTree; + +class AliESDEvent; ClassImp(AliTOFReconstructor) + //____________________________________________________________________ +AliTOFReconstructor::AliTOFReconstructor() + : AliReconstructor(), + fTOFcalib(0) +{ +// +// ctor +// + + //Retrieving the TOF calibration info + fTOFcalib = new AliTOFcalib(); + fTOFcalib->CreateCalObjects(); + + if(!fTOFcalib->ReadParOnlineDelayFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);} + if(!fTOFcalib->ReadParOnlineStatusFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);} + + if(!fTOFcalib->ReadParOfflineFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);} +} -//_____________________________________________________________________________ - void AliTOFReconstructor::Reconstruct(AliRunLoader* /*runLoader*/) const +//------------------------------------------------------------------------ +AliTOFReconstructor::AliTOFReconstructor(const AliTOFReconstructor &source) + : AliReconstructor(source), + fTOFcalib(source.fTOFcalib) { -// reconstruct clusters from digits -/* - AliTOFClusterFinder *tofClus = new AliTOFClusterFinder(runLoader); - tofClus->Load(); - for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) - { - tofClus->Digits2RecPoints(iEvent); - } - tofClus->UnLoad(); -*/ +// +// copy ctor +// } +//------------------------------------------------------------------------ +AliTOFReconstructor & AliTOFReconstructor::operator=(const AliTOFReconstructor &source) +{ +// +// assignment op. +// + if (this == &source) + return *this; + + fTOFcalib=source.fTOFcalib; + return *this; +} //_____________________________________________________________________________ -void AliTOFReconstructor::Reconstruct(AliRunLoader* runLoader, - AliRawReader *rawReader) const +AliTOFReconstructor::~AliTOFReconstructor() { -// reconstruct clusters from Raw Data - - AliTOFClusterFinder tofClus(runLoader); - tofClus.LoadClusters(); - Int_t iEvent = 0; - while (rawReader->NextEvent()) { - //tofClus.Digits2RecPoints(iEvent,rawReader); - tofClus.Raw2Digits(iEvent,rawReader); // temporary solution - iEvent++; - } - tofClus.UnLoadClusters(); - +// +// dtor +// + delete fTOFcalib; } //_____________________________________________________________________________ void AliTOFReconstructor::Reconstruct(AliRawReader *rawReader, TTree *clustersTree) const { -// reconstruct clusters from Raw Data - - AliTOFClusterFinder tofClus; - tofClus.Digits2RecPoints(rawReader, clustersTree); + // + // reconstruct clusters from Raw Data + // + + TString optionString = GetOption(); + // use V1 cluster finder if selected + if (optionString.Contains("ClusterizerV1")) { + static AliTOFClusterFinderV1 tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Digits2RecPoints(rawReader, clustersTree); + } + else { + static AliTOFClusterFinder tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Digits2RecPoints(rawReader, clustersTree); + } } //_____________________________________________________________________________ -AliTracker* AliTOFReconstructor::CreateTracker(AliRunLoader* runLoader) const +void AliTOFReconstructor::Reconstruct(TTree *digitsTree, + TTree *clustersTree) const { -// create a TOF tracker + // + // reconstruct clusters from digits + // + + AliDebug(2,Form("Global Event loop mode: Creating Recpoints from Digits Tree")); + + TString optionString = GetOption(); + // use V1 cluster finder if selected + if (optionString.Contains("ClusterizerV1")) { + static AliTOFClusterFinderV1 tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Digits2RecPoints(digitsTree, clustersTree); + } + else { + static AliTOFClusterFinder tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Digits2RecPoints(digitsTree, clustersTree); + } - AliTOFGeometry* geom = GetTOFGeometry(runLoader); - if (!geom) return NULL; - Double_t parPID[] = {130., 5.}; - return new AliTOFtracker(geom, parPID); } - //_____________________________________________________________________________ -void AliTOFReconstructor::FillESD(AliRunLoader* /*runLoader*/, - AliESD* /*esd*/) const + void AliTOFReconstructor::ConvertDigits(AliRawReader* reader, TTree* digitsTree) const { -// nothing to be done +// reconstruct clusters from digits + + AliDebug(2,Form("Global Event loop mode: Converting Raw Data to a Digits Tree")); + + TString optionString = GetOption(); + // use V1 cluster finder if selected + if (optionString.Contains("ClusterizerV1")) { + static AliTOFClusterFinderV1 tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Raw2Digits(reader, digitsTree); + } + else { + static AliTOFClusterFinder tofClus(fTOFcalib); + + // decoder version option + if (optionString.Contains("DecoderV1")) + tofClus.SetDecoderVersion(1); + else + tofClus.SetDecoderVersion(0); + + tofClus.Raw2Digits(reader, digitsTree); + } } //_____________________________________________________________________________ -AliTOFGeometry* AliTOFReconstructor::GetTOFGeometry(AliRunLoader* runLoader) const +AliTracker* AliTOFReconstructor::CreateTracker() const { -// get the TOF parameters - runLoader->CdGAFile(); - AliTOFGeometry* tofGeom = (AliTOFGeometry*) gFile->Get("TOFGeometry"); - if (!tofGeom) { - AliError("no TOF geometry available"); - return NULL; + // + // create a TOF tracker using + // TOF Reco Param collected by STEER + // + + TString selectedTracker = GetOption(); + + AliTracker *tracker; + // use MI tracker if selected + if (selectedTracker.Contains("TrackerMI")) { + tracker = new AliTOFtrackerMI(); } - return tofGeom; + // use V1 tracker if selected + if (selectedTracker.Contains("TrackerV1")) { + tracker = new AliTOFtrackerV1(); + } + else { + tracker = new AliTOFtracker(); + } + return tracker; + }