#include "AliTRDrecoParam.h"
class TClonesArray;
+class TTreeSRedirector;
class AliRawReader;
class AliTRDReconstructor: public AliReconstructor
{
public:
enum AliTRDsteerParam {
- kWriteClusters = BIT(0)
- ,kSeeding = BIT(1)
- ,kSteerPID = BIT(2)
- ,kWriteTracklets = BIT(3)
- ,kDriftGas = BIT(4)
- ,kHLT = BIT(5)
+ kDigitsConversion= BIT(0)
+ ,kWriteClusters = BIT(1)
+ ,kSeeding = BIT(2)
+ ,kSteerPID = BIT(3)
+ ,kEightSlices = BIT(4)
+ ,kWriteTracklets = BIT(5)
+ ,kDriftGas = BIT(6)
+ ,kHLT = BIT(7)
+ ,kCosmic = BIT(8)
};
enum AliTRDReconstructorTask {
- kClusterizer = 0
- ,kTracker = 1
- ,kPID = 2
+ kRawReader = 0
+ ,kClusterizer = 1
+ ,kTracker = 2
+ ,kPID = 3
};
enum AliTRDpidMethod {
kLQPID = 0,
kXe = 0,
kAr = 1
};
+ enum{
+ kNNslices = 8
+ ,kLQslices = 3
+ };
+ enum{
+ kOwner = BIT(14)
+ };
AliTRDReconstructor();
AliTRDReconstructor(const AliTRDReconstructor &r);
- virtual ~AliTRDReconstructor() {;}
+ virtual ~AliTRDReconstructor();
AliTRDReconstructor& operator = (const AliTRDReconstructor&) { return *this;}
virtual void Init();
virtual void ConvertDigits(AliRawReader *rawReader, TTree *digitsTree) const;
virtual AliTracker* CreateTracker() const;
+ TTreeSRedirector* GetDebugStream(AliTRDReconstructorTask task) const { return task < 4 ? fDebugStream[task] : 0x0; }
virtual void FillESD(AliRawReader *, TTree *clusterTree, AliESDEvent *esd) const { FillESD((TTree * )NULL, clusterTree, esd); }
virtual void FillESD(TTree *digitsTree, TTree *clusterTree, AliESDEvent *esd) const;
static const AliTRDrecoParam* GetRecoParam() { return dynamic_cast<const AliTRDrecoParam*>(AliReconstructor::GetRecoParam(2)); }
Int_t GetStreamLevel(AliTRDReconstructorTask task) const { return fStreamLevel[task];}
inline void GetTCParams(Double_t *par) const;
- virtual Bool_t HasDigitConversion() const { return kFALSE; };
+ virtual Bool_t HasDigitConversion() const { return fSteerParam&kDigitsConversion; };
Bool_t IsWritingClusters() const { return fSteerParam&kWriteClusters;}
Bool_t IsWritingTracklets() const { return fSteerParam&kWriteTracklets;}
Bool_t IsHLT() const { return fSteerParam&kHLT;}
Bool_t IsSeeding() const { return fSteerParam&kSeeding;}
+ Bool_t IsCosmic() const { return fSteerParam&kCosmic;}
+ Bool_t IsEightSlices() const { return fSteerParam&kEightSlices;}
virtual void Reconstruct(AliRawReader *rawReader, TTree *clusterTree) const;
virtual void Reconstruct(TTree *digitsTree, TTree *clusterTree) const;
void SetStreamLevel(Int_t level, AliTRDReconstructorTask task= kTracker);
private:
- enum{
- kNNslices = 8
- ,kLQslices = 3
- };
- UChar_t fStreamLevel[5]; // stream level for each reconstruction task
- UInt_t fSteerParam; // steering flags
- Double_t fTCParams[8]; // Tail Cancellation parameters for drift gases
+ UChar_t fStreamLevel[5]; // stream level for each reconstruction task
+ UInt_t fSteerParam; // steering flags
+ Double_t fTCParams[8]; // Tail Cancellation parameters for drift gases
+ TTreeSRedirector *fDebugStream[4]; // Debug Streamer container;
static TClonesArray *fgClusters; // list of clusters for local reconstructor