#ifndef PAMVMCTRKDIG_H #define PAMVMCTRKDIG_H #include #include "PamVMCTrkF77GpsSpe.h" #include "CalibTrk1Event.h" #include "CalibTrk2Event.h" #include "PamVMCDigitizer.h" #include "PamVMCTrkF77GpsSpe.h" class PamVMCTrkDig: public PamVMCDigitizer{ public: PamVMCTrkDig():PamVMCDigitizer("Tracker") { ; }; virtual ~PamVMCTrkDig(){; }; void LoadCalib(){ LoadFile(); DigitizeTrackCalib(1); UInt_t length=fData.size()*2; DigitizePSCU(length,0x12); AddPadding(); WriteCalib(); DigitizeTrackCalib(2); length=fData.size()*2; DigitizePSCU(length,0x13); AddPadding(); WriteCalib(); LoadMipCor(); } void RegisterTrkData(pGPSSPEHits * hits){ fhits = hits; } void Digitize(){ ;}; //will be empty //we will use another method instead, because here we must //pass not CloesArray, but pGPSSPEHits object void DigitizeTRK(const pGPSSPEHits* hits); private: //AUX functions// void LoadFile(); void WriteCalib(); void LoadMipCor(); void DigitizeTrackCalib(Int_t n); void BrokenStrip(Int_t planebr, Int_t vabr, Int_t plane, Int_t strip, Int_t & goodst){ if(plane==planebr && strip>=(256*(vabr-1)) && strip<(256*vabr)) goodst=strip-(256*(vabr-1)); } static const Int_t fTRACKbuffer = 50000; // to be optimized static const Int_t fNviews = 12; static const Int_t fNladder=3; static const int fNstrips_ladder = 1024; static const Int_t fNstrips_view = 3072; Float_t fSigmaTrack[fNviews][fNstrips_view]; Float_t fPedeTrack[fNviews][fNstrips_view]; UShort_t fDataTrack[fTRACKbuffer]; //UInt_t fTracklength; // Actual length of buffer Float_t fMipCor[fNladder][fNviews] ; // end vectors, buffer, and variables for tracker pGPSSPEHits * fhits; //pointer to Tracker's SD hit data ClassDef(PamVMCTrkDig,1) }; #endif // PAMVMCTRKSD_H