// ------------------------------------------------------------------------- // ----- CbmMvdPointToHitConverter source file ----- // ----- Created 09.11.2012 by P.Sitzmann ----- // ------------------------------------------------------------------------- #include "CbmMvdPointToHitConverter.h" #include "TClonesArray.h" #include "TObjArray.h" #include "CbmMvdPoint.h" #include "CbmMvdHit.h" // ----- Default constructor ------------------------------------------- CbmMvdPointToHitConverter::CbmMvdPointToHitConverter() { } // ------------------------------------------------------------------------- // ----- Destructor ---------------------------------------------------- CbmMvdPointToHitConverter::~CbmMvdPointToHitConverter() { } // ------------------------------------------------------------------------- // ----- Init ---------------------------------------------------- void CbmMvdPointToHitConverter::Init(CbmMvdSensor* mySensor) { bFlag = true; fInputPoints = new TClonesArray("CbmMvdPoint",1000); fOutputHits = new TClonesArray("CbmMvdHit", 1000); fSensor=mySensor; fSensorData=fSensor->GetDataSheet(); // cout << endl << "Converter Inti" << endl; } // ------------------------------------------------------------------------- // ----- Exec ---------------------------------------------------- void CbmMvdPointToHitConverter::Exec() { ; } // ------------------------------------------------------------------------- // ----- ExecChain ---------------------------------------------------- void CbmMvdPointToHitConverter::ExecChain() { fOutputHits->Delete(); SetInputArray(fPreviousPlugin->GetOutputArray()); PointToHit(); ; } // ------------------------------------------------------------------------- // ----- PointToHit ---------------------------------------------------- void CbmMvdPointToHitConverter::PointToHit() { Double_t position[3]; Int_t pixelX,pixelY; for (Int_t j = 0; jGetEntriesFast(); j++) { CbmMvdPoint* currentPoint = (CbmMvdPoint*)fInputPoints->At(j); Int_t statNr = currentPoint->GetStationNr(); TVector3* pos = new TVector3 (currentPoint->GetXOut() ,currentPoint->GetYOut(), currentPoint->GetZOut()); TVector3* dpos = new TVector3(); Int_t flag = fOutputHits->GetEntriesFast(); Int_t indexCentralX = currentPoint->GetXOut(); Int_t indexCentralY = currentPoint->GetYOut(); position[0]=currentPoint->GetX(); position[1]=currentPoint->GetY(); position[2]=currentPoint->GetZ(); fSensor->TopToPixel(position, pixelX, pixelY); Double32_t time; Int_t entry = fOutputHits->GetEntriesFast(); new((*fOutputHits)[entry]) CbmMvdHit(statNr, *pos, *dpos, indexCentralX, indexCentralY, j, flag); CbmMvdHit* myHit = (CbmMvdHit*)fOutputHits->At(entry); myHit->SetTimeStamp(currentPoint->GetTime()); //myHit->Print(); //cout << "Time is " << myHit->GetTimeStamp() << " at row " << pixelY << endl << endl; } //fOutputHits->Print(); fInputPoints->Delete(); } // ------------------------------------------------------------------------- // ----- SetInputArray ---------------------------------------------------- void CbmMvdPointToHitConverter::SetInputArray(TClonesArray* inputArray) { CbmMvdPoint* point; Int_t nEntries = inputArray->GetEntriesFast(); Int_t i=0; while ( iAt(i); new((*fInputPoints)[fInputPoints->GetEntriesFast()]) CbmMvdPoint(*((CbmMvdPoint*)inputArray->At(i))); // cout << endl << "new Point in InputPoints" << endl; nEntries = inputArray->GetEntriesFast(); i++; }; }; // ------------------------------------------------------------------------- ClassImp(CbmMvdPointToHitConverter)