public:
AliTPCAltroEmulator(Int_t timebins=0, Short_t* Channel=0);
- AliTPCAltroEmulator(const AliTPCAltroEmulator &sig);
+
~AliTPCAltroEmulator();
- AliTPCAltroEmulator& operator = (const AliTPCAltroEmulator &source);
void ConfigAltro(Int_t ONBaselineCorrection1, Int_t ONTailcancellation, Int_t ONBaselineCorrection2, Int_t ONClipping, Int_t ONZerosuppression, Int_t ONDataFormatting);
void ConfigBaselineCorrection1(Int_t mode, Int_t ValuePeDestal, Int_t *PedestalMem, Int_t polarity);
void ConfigTailCancellationFilter(Int_t K1, Int_t K2, Int_t K3, Int_t L1, Int_t L2, Int_t L3);
+ void ConfigTailCancellationFilterForRAWfiles(const Int_t* K1, const Int_t* K2, const Int_t* K3,
+ const Int_t* L1, const Int_t* L2, const Int_t* L3);
void ConfigBaselineCorrection2(Int_t HighThreshold, Int_t LowThreshold, Int_t Offset, Int_t Presamples, Int_t Postsamples);
void ConfigZerosuppression(Int_t Threshold, Int_t MinSamplesaboveThreshold, Int_t Presamples, Int_t Postsamples);
void SetChannelData(Int_t timebins, Short_t* Channel);
void PrintParameters();
- void RunEmulation();
+ void RunEmulation(Int_t roc=-1); // if -1, the standard "single" TCF is used
Float_t CalculateCompression();
// perform altro emulation on raw-reader level
/**f(din) - f(din)*/ kFDINxFDIN,
/**f(din - vpd) - f(din - vpd)*/ kFDINxVPDxFDINxVPD,
/**din - fpd*/ kDINxFPD1,
- /**din - fpd*/ kDINxFPD2
+ /**din - fpd*/ kDINxFPD2,
+ /** 16. din-mean*/ kDINxMPD
};
private:
+ AliTPCAltroEmulator(const AliTPCAltroEmulator &sig);
+ AliTPCAltroEmulator& operator = (const AliTPCAltroEmulator &source);
+
Int_t ftimebins; // timebins
// Short_t *fChannelIn; // ChannelIn
Int_t fConfiguredAltro; // ConfiguredAltro
Int_t fConfiguredBSL1; // ConfiguredBSL1
Int_t fConfiguredTCF; // ConfiguredTCF
+ Int_t fConfiguredTCFraw; // ConfiguredTCF for RAW data files
Int_t fConfiguredBSL2; // ConfiguredBSL2
Int_t fConfiguredZSU; // ConfiguredZSU
Int_t fTCFL2Int; // L2Int
Int_t fTCFL3Int; // L3Int
+ Int_t fTCFK1IntROC[2]; // K1Int (IROC/OROC)
+ Int_t fTCFK2IntROC[2]; // K2Int (IROC/OROC)
+ Int_t fTCFK3IntROC[2]; // K3Int (IROC/OROC)
+ Int_t fTCFL1IntROC[2]; // L1Int (IROC/OROC)
+ Int_t fTCFL2IntROC[2]; // L2Int (IROC/OROC)
+ Int_t fTCFL3IntROC[2]; // L3Int (IROC/OROC)
+
Int_t fBSL2HighThreshold; // BSL2HighThreshold
Int_t fBSL2LowThreshold; // BSL2LowThreshold
Int_t fBSL2Offset; // BSL2Offset
long long Mask(long long in, Int_t left, Int_t right);
long long Maskandshift(long long in, Int_t left, Int_t right);
-
+
void InitBuffers();
Bool_t AddEvent(Int_t dt,Bool_t isFirst);
AliRawReader *fReader ; // RAW reader
AliTPCRawStreamV3 *fDecoder; // ALTRO decoder
+ Int_t fRunNumber; // Run Number
+
TString fDDLFolderName; // folder name for ddl files
TString fOutputDateFileName; // filename for date output
TString fOutputRootFileName; // filename for root output
- Float_t fP[2047] ; // Interaction probabilities for times (T-1023,...T,...T+1023)
+ // Float_t fP[2047] ; // Interaction probabilities for times (T-1023,...T,...T+1023)
Bool_t fIsRandom; // Indicates if fP are treated as probabilities (in terms of Possionian statistics), or fixed numbers
Bool_t *fChannels; //! field of active channels
UInt_t *fCDHs ; //! CDHs