#ifndef TFgdCollinearCosmicControlSample_h #define TFgdCollinearCosmicControlSample_h #include "TH1F.h" #include "TFile.h" #include "TRandom3.h" #include // Class to select events based on FGD tracks. Selection criteria is // that there must be one (and only one) iso-recon reconstructed track // in each FGD (using 1st time bin hits) and that they are collinear in the // X/Z plane direction (allow bending in Y). class IFgdCollinearCosmicControlSample : public IControlSampleBase { public: IFgdCollinearCosmicControlSample(); ~IFgdCollinearCosmicControlSample(){} void SetXZor3D(int i) { fXZor3D = i;} void SetCollCut(double d){ fCollCut = d;} int GetXZor3D(int i) { return fXZor3D; } double GetCollCut(double d){ return fCollCut; } private: bool IsEventSelectedInternal(COMET::ICOMETEvent& event) ; void InitHistograms(); void InitPrescaleUy(); // int 2D XZ collinearity or 3D cut collinearity (0 for 2D(default) 1 for 3D) int fXZor3D; // cut on collinearity double fCollCut; // prescale on UY int fPrescaleUy; TFile* fUyHistoFile; TH1F* fUyHisto; double fUyPcut; TRandom3 fRandom; // Histograms TH1F *hUY1, *hUY2, *hUYAvg; TH1F *hUX1, *hUX2, *hUXAvg; TH1F *hUZ1, *hUZ2, *hUZAvg; TH1F *hUY1Fgd, *hUY2Fgd, *hUYAvgFgd; TH1F *hUX1Fgd, *hUX2Fgd, *hUXAvgFgd; TH1F *hUZ1Fgd, *hUZ2Fgd, *hUZAvgFgd; TH1F *hUY1Tfb, *hUY2Tfb, *hUYAvgTfb; TH1F *hUX1Tfb, *hUX2Tfb, *hUXAvgTfb; TH1F *hUZ1Tfb, *hUZ2Tfb, *hUZAvgTfb; TH1F *hUXAvgPrescaled, *hUYAvgPrescaled, *hUZAvgPrescaled; }; #endif