10#include <framework/core/Module.h>
11#include <framework/datastore/StoreArray.h>
12#include <mdst/dataobjects/ECLCluster.h>
13#include <mdst/dataobjects/Track.h>
14#include <top/dataobjects/TOPBackSplashFitResult.h>
15#include <top/dataobjects/TOPDigit.h>
16#include <top/dataobjects/TOPRecBunch.h>
19#include <RooRealVar.h>
20#include <RooDataSet.h>
21#include <RooFitResult.h>
22#include <RooWorkspace.h>
51 void event()
override;
76 double clusterE,
double clusterCosTheta,
int nTracksPerSlot);
89 void makePlot(
double cosTheta,
double clusterE,
int moduleID, RooAbsPdf* model,
90 RooRealVar* x, RooDataSet data, RooFitResult* res,
int nTracksPerSlot);
Accessor to arrays stored in the data store.
Type-safe access to single objects in the data store.
Class to store the quantities determined in the TOPBackSplashTiming module and relate to correspondin...
TOPBackSplashFitResult * fitTimingDigits(int moduleID, const std::vector< const TOPDigit * > &digitsPerSlot, double clusterE, double clusterCosTheta, int nTracksPerSlot)
Perform fitting of TOP timing in nearby slot.
TOPBackSplashTimingModule()
Constructor.
StoreObjPtr< TOPRecBunch > m_recBunch
reconstructed bunch
static int getModuleFromPhi(double phi)
Maps azimuthal angle to corresponding TOP slot no.
void initialize() override
Initialize the Module.
bool m_saveMoreFitParams
saves additional fit parameters (e.g.
void event() override
Event processor.
std::array< std::array< double, 11 >, 15 > m_fitparams
container of 11 TOP timing fit params per cosTheta
int m_minNphotons
minimum no.
bool m_saveFits
plot and save fits of TOP timing
bool m_includeSlotsWithTracks
whether to fit neutral cluster TOP signal in slots with bkg tracks
void prepareFitModels()
Constructs RooFit objects for fitting.
std::vector< RooWorkspace > m_wss
container of RooWorkSpaces, containing fit funcs per cosTheta
StoreArray< Track > m_tracks
Store Array of Track.
StoreArray< TOPBackSplashFitResult > m_fitresult
StoreArray of TOPBackSplashFitResult.
StoreArray< ECLCluster > m_eclClusters
StoreArray of ECLCluster.
double m_minClusterNHits
minimum no.
StoreArray< TOPDigit > m_digits
StoreArray of TOPDigit.
void makePlot(double cosTheta, double clusterE, int moduleID, RooAbsPdf *model, RooRealVar *x, RooDataSet data, RooFitResult *res, int nTracksPerSlot)
Creates RooPlots of fitted TOPtiming and save as png.
double m_minClusterE
minimum energy of ECL clusters to consider [GeV]
Abstract base class for different kinds of events.