1 #include "otsdaq-core/MonicelliInterface/MonicelliEventAnalyzer.h"
2 #include "otsdaq-core/MonicelliInterface/MonicelliFileReader.h"
3 #include "otsdaq-core/MonicelliInterface/Visual3DEvent.h"
5 #include "otsdaq-core/MonicelliInterface/Event.h"
6 #include "otsdaq-core/MonicelliInterface/Geometry.h"
7 #include "otsdaq-core/MonicelliInterface/Detector.h"
12 MonicelliEventAnalyzer::MonicelliEventAnalyzer(
void)
16 MonicelliEventAnalyzer::~MonicelliEventAnalyzer(
void)
20 void MonicelliEventAnalyzer::load(std::string fileName)
22 theVisualEvents_.clear();
23 if(!theReader_.openEventsFile(fileName))
return;
24 if(!theReader_.openGeoFile(fileName.replace(fileName.find(
'.')+1,4,
"geo")))
return;
26 theMonicelliEvent_ = theReader_.getEventPointer () ;
27 theMonicelliHeader_ = theReader_.getEventHeaderPointer() ;
28 theMonicelliGeometry_ = theReader_.getGeometryPointer () ;
30 unsigned int numberOfEvents = theReader_.getNumberOfEvents() ;
31 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Number of events: " << numberOfEvents << std::endl;
32 theVisualEvents_.resize(numberOfEvents);
33 for(
unsigned int event=0;
event<numberOfEvents &&
event<1000;
event++)
36 theReader_.readEvent(event) ;
37 this->analyzeEvent(event) ;
39 theReader_.closeGeoFile();
40 theReader_.closeEventsFile();
41 std::cout << __COUT_HDR_FL__ << __PRETTY_FUNCTION__ <<
"Done!" << std::endl;
45 const Visual3DEvents& MonicelliEventAnalyzer::getEvents(
void)
47 return theVisualEvents_;
51 void MonicelliEventAnalyzer::analyzeEvent(
unsigned int event)
55 monicelli::Event::clustersMapDef & clusters = theMonicelliEvent_->getClusters () ;
56 monicelli::Event::fittedTracksDef & fittedTracks = theMonicelliEvent_->getFittedTracks () ;
61 if( fittedTracks.size() == 0 )
return;
63 for(
unsigned int tr=0; tr<fittedTracks.size(); tr++)
65 ROOT::Math::SVector<double,4> tParameters = fittedTracks[tr] ;
67 tmpVisualTrack.slopeX = tParameters[0];
68 tmpVisualTrack.interceptX = tParameters[1]*10;
69 tmpVisualTrack.slopeY = tParameters[2];
70 tmpVisualTrack.interceptY = tParameters[3]*10;
72 theVisualEvents_[event].addTrack(tmpVisualTrack);
75 for(monicelli::Event::clustersMapDef::iterator itClusters=clusters.begin(); itClusters != clusters.end(); itClusters++)
76 for(monicelli::Event::aClusterMapDef::iterator itClusterMap=itClusters->second.begin(); itClusterMap != itClusters->second.end(); itClusterMap++)
79 tmpVisualHit.x = itClusterMap->second[
"x"];
80 tmpVisualHit.y = itClusterMap->second[
"y"];
82 tmpVisualHit.charge = itClusterMap->second[
"charge"];
85 detector->fromLocalToGlobal(&(tmpVisualHit.x),&(tmpVisualHit.y),&(tmpVisualHit.z));
86 theVisualEvents_[event].addHit(tmpVisualHit*10);