// //
///////////////////////////////////////////////////////////////////////////////
-#include "TFile.h"
+#include <cstdlib>
+#include "TObjArray.h"
+#include "TString.h"
#include "AliLog.h"
#include "AliRawReader.h"
#include "AliTOFClusterFinder.h"
+#include "AliTOFClusterFinderV1.h"
#include "AliTOFcalib.h"
#include "AliTOFtrackerMI.h"
#include "AliTOFtracker.h"
class AliESDEvent;
-extern TDirectory *gDirectory;
-extern TFile *gFile;
-
ClassImp(AliTOFReconstructor)
//____________________________________________________________________
//
// ctor
//
+
//Retrieving the TOF calibration info
- fTOFcalib = new AliTOFcalib();
- fTOFcalib->CreateCalArrays();
- if(!fTOFcalib->ReadParOnlineFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
+ fTOFcalib = new AliTOFcalib();
+ fTOFcalib->Init();
+
+#if 0
+ 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);}
-}
-//------------------------------------------------------------------------
-AliTOFReconstructor::AliTOFReconstructor(const AliTOFReconstructor &source)
- : AliReconstructor(),
- fTOFcalib(0)
-{
-//
-// copy ctor
-//
- this->fTOFcalib=source.fTOFcalib;
-}
-//------------------------------------------------------------------------
-AliTOFReconstructor & AliTOFReconstructor::operator=(const AliTOFReconstructor &source)
-{
-//
-// assignment op.
-//
- this->fTOFcalib=source.fTOFcalib;
- return *this;
+ if(!fTOFcalib->ReadDeltaBCOffsetFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
+ if(!fTOFcalib->ReadCTPLatencyFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
+ if(!fTOFcalib->ReadT0FillFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
+ if(!fTOFcalib->ReadRunParamsFromCDB("TOF/Calib",-1)) {AliFatal("Exiting, no CDB object found!!!");exit(0);}
+#endif
+
}
+
//_____________________________________________________________________________
AliTOFReconstructor::~AliTOFReconstructor()
{
void AliTOFReconstructor::Reconstruct(AliRawReader *rawReader,
TTree *clustersTree) const
{
-// reconstruct clusters from Raw Data
-
- AliTOFClusterFinder tofClus(fTOFcalib);
- 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("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Digits2RecPoints(rawReader, clustersTree);
+ }
+ else {
+ static AliTOFClusterFinder tofClus(fTOFcalib);
+
+ // decoder version option
+ if (optionString.Contains("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Digits2RecPoints(rawReader, clustersTree);
+ }
}
void AliTOFReconstructor::Reconstruct(TTree *digitsTree,
TTree *clustersTree) const
{
-// reconstruct clusters from Raw Data
+ //
+ // reconstruct clusters from digits
+ //
AliDebug(2,Form("Global Event loop mode: Creating Recpoints from Digits Tree"));
- AliTOFClusterFinder tofClus(fTOFcalib);
- tofClus.Digits2RecPoints(digitsTree, clustersTree);
+
+ TString optionString = GetOption();
+ // use V1 cluster finder if selected
+ if (optionString.Contains("ClusterizerV1")) {
+ static AliTOFClusterFinderV1 tofClus(fTOFcalib);
+
+ // decoder version option
+ if (optionString.Contains("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Digits2RecPoints(digitsTree, clustersTree);
+ }
+ else {
+ static AliTOFClusterFinder tofClus(fTOFcalib);
+
+ // decoder version option
+ if (optionString.Contains("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Digits2RecPoints(digitsTree, clustersTree);
+ }
}
//_____________________________________________________________________________
// reconstruct clusters from digits
AliDebug(2,Form("Global Event loop mode: Converting Raw Data to a Digits Tree"));
- AliTOFClusterFinder tofClus(fTOFcalib);
- tofClus.Raw2Digits(reader, digitsTree);
+
+ TString optionString = GetOption();
+ // use V1 cluster finder if selected
+ if (optionString.Contains("ClusterizerV1")) {
+ static AliTOFClusterFinderV1 tofClus(fTOFcalib);
+
+ // decoder version option
+ if (optionString.Contains("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Raw2Digits(reader, digitsTree);
+ }
+ else {
+ static AliTOFClusterFinder tofClus(fTOFcalib);
+
+ // decoder version option
+ if (optionString.Contains("DecoderV0")) {
+ tofClus.SetDecoderVersion(0);
+ }
+ else if (optionString.Contains("DecoderV1")) {
+ tofClus.SetDecoderVersion(1);
+ }
+ else {
+ tofClus.SetDecoderVersion(2);
+ }
+
+ tofClus.Raw2Digits(reader, digitsTree);
+ }
}
//_____________________________________________________________________________
AliTracker* AliTOFReconstructor::CreateTracker() const
{
-// create a TOF tracker
+
+ //
+ // create a TOF tracker using
+ // TOF Reco Param collected by STEER
+ //
TString selectedTracker = GetOption();
+
+ AliTracker *tracker;
// use MI tracker if selected
- if (selectedTracker.Contains("MI")) return new AliTOFtrackerMI();
- if (selectedTracker.Contains("V1")) return new AliTOFtrackerV1();
- return new AliTOFtracker();
-}
+ if (selectedTracker.Contains("TrackerMI")) {
+ tracker = new AliTOFtrackerMI();
+ }
+ // use V1 tracker if selected
+ else if (selectedTracker.Contains("TrackerV1")) {
+ tracker = new AliTOFtrackerV1();
+ }
+ else {
+ tracker = new AliTOFtracker();
+ }
+ return tracker;
+}