#include "Clicpix2Correlator.h" Clicpix2Correlator::Clicpix2Correlator(bool debugging) : Algorithm("Clicpix2Correlator"){ debug = debugging; } template std::string makeString(T number) { std::ostringstream ss; ss << number; return ss.str(); } void Clicpix2Correlator::initialise(Parameters* par){ parameters = par; // Get the DUT ID dutID = parameters->DUT; // Initialise histograms hTrackDiffX["standard"] = new TH1F("hTrackDiffX_standard","hTrackDiffX_standard",4000,-20,20); hTrackDiffY["standard"] = new TH1F("hTrackDiffY_standard","hTrackDiffY_standard",4000,-20,20); hTrackDiffX["prevEvent"] = new TH1F("hTrackDiffX_prevEvent","hTrackDiffX_prevEvent",4000,-20,20); hTrackDiffY["prevEvent"] = new TH1F("hTrackDiffY_prevEvent","hTrackDiffY_prevEvent",4000,-20,20); // Rotatation histograms angleStart = 0; angleStep = 0.6; angleStop = 2.*M_PI; for(double angle=angleStart;angleget(dutID,"clusters"); if(clusters == NULL){ if(debug) tcout<<"No clusters for "<get("tracks"); if(tracks == NULL){ m_eventNumber++; return Success; } // Make local copies of these objects for(int iTrack=0; iTracksize(); iTrack++){ Track* track = (*tracks)[iTrack]; Track* storageTrack = new Track(track); m_eventTracks[m_eventNumber].push_back(storageTrack); } for(int iCluster=0; iClustersize(); iCluster++){ Cluster* cluster = (*clusters)[iCluster]; Cluster* storageCluster = new Cluster(cluster); m_eventClusters[m_eventNumber].push_back(storageCluster); } // Increment event counter m_eventNumber++; // Return value telling analysis to keep running return Success; } void Clicpix2Correlator::finalise(){ if(debug) tcout<<"Analysed "<detector[dutID]->rotationX(angle); parameters->detector[dutID]->update(); int event; for(event=0;event > trackIntercept = parameters->detector[dutID]->getIntercept(track); // Loop over all clusters from this event for(int iCluster=0;iClusterglobalX()-trackIntercept.X(); double ycorr = cluster->globalY()-trackIntercept.Y(); // Fill histograms on correlations string name = "rotated" + makeString(angle); hTrackDiffX[name]->Fill(xcorr); hTrackDiffY[name]->Fill(ycorr); } } } } }