#include <TObject.h>
#include <TObjArray.h>
class TH2S;
+class TH2F;
class TTreeSRedirector;
class AliTPCCalPad;
class AliTPCROC;
class AliTPCRawStream;
class AliTPCRawStreamFast;
class AliTPCAltroMapping;
+class TMap;
struct eventHeaderStruct;
public:
AliTPCCalibPulser();
AliTPCCalibPulser(const AliTPCCalibPulser &sig);
+ AliTPCCalibPulser(const TMap *config);
virtual ~AliTPCCalibPulser();
void Reset();
TH2S* GetHistoT0 (Int_t sector, Bool_t force=kFALSE); // get refernce histogram
TH2S* GetHistoRMS(Int_t sector, Bool_t force=kFALSE); // get refernce histogram
+ TH2F* GetHistoTSec(); // mean abs time distribution histogram
+
+ Float_t GetMeanTimeSector(Int_t sector) const {return fVMeanTimeSector[sector];}
+ const TVectorF* GetMeanTimeSectorArray() const {return &fVMeanTimeSector;}
+
Short_t GetDebugLevel() const { return fDebugLevel; }
//
void SetRangeTime (Int_t firstTimeBin, Int_t lastTimeBin) { fFirstTimeBin=firstTimeBin; fLastTimeBin=lastTimeBin; } //Set range in which the pulser signal is expected
TObjArray fHistoT0Array; // Calibration histograms for Time0 distribution
TObjArray fHistoRMSArray; // Calibration histograms for signal width distribution
+ TH2F *fHMeanTimeSector; // Timing distribution per sector
+ TVectorF fVMeanTimeSector; // Mean time per sector from analysis of fHMeanTimeSector
+
TObjArray fPadTimesArrayEvent; //! Pad Times for the event, before mean Time0 corrections
TObjArray fPadQArrayEvent; //! Charge for the event, only needed for debugging streamer
TObjArray fPadRMSArrayEvent; //! Signal width for the event, only needed for debugging streamer
Int_t fCurrentChannel; //! current channel processed
Int_t fCurrentSector; //! current sector processed
Int_t fCurrentRow; //! current row processed
+ Int_t fCurrentPad; //! current pad processed
Float_t fMaxPadSignal; //! maximum bin of current pad
Int_t fMaxTimeBin; //! time bin with maximum value
TVectorF fPadSignal; //! signal of current Pad
TVectorF fVTime0Offset; //! Time0 Offset from preprocessing for each sector;
TVectorF fVTime0OffsetCounter; //! Time0 Offset from preprocessing for each sector;
+
//debugging
// Int_t fEvent; // Number of events processed
TTreeSRedirector *fDebugStreamer; //! debug streamer
TVectorF* GetPadTimesEvent(Int_t sector, Bool_t force=kFALSE);
+ Bool_t IsEdgePad(Int_t sector, Int_t row, Int_t pad);
+
void ResetEvent();
void ResetPad();
void ProcessPad();
TVectorF* GetPadPedestalEvent(Int_t sector, Bool_t force=kFALSE);
- ClassDef(AliTPCCalibPulser,3) //Implementation of the TPC pulser calibration
+
+ ClassDef(AliTPCCalibPulser,4) //Implementation of the TPC pulser calibration
};