mirror of
https://github.com/sesps/SPS_SABRE_EventBuilder.git
synced 2024-11-10 20:38:51 -05:00
70 lines
2.5 KiB
C
70 lines
2.5 KiB
C
|
/*
|
||
|
CompassRun.h
|
||
|
Class designed as abstraction of a collection of binary files that represent the total data in a single
|
||
|
Compass data run. It handles the user input (shift maps, file collection etc.) and creates a list of
|
||
|
CompassFiles from which to draw data. It then draws data from these files, organizes them in time,
|
||
|
and writes to a ROOT file for further processing.
|
||
|
|
||
|
Written by G.W. McCann Oct. 2020
|
||
|
*/
|
||
|
#ifndef COMPASSRUN_H
|
||
|
#define COMPASSRUN_H
|
||
|
|
||
|
#include "CompassFile.h"
|
||
|
#include "DataStructs.h"
|
||
|
#include "RunCollector.h"
|
||
|
#include "ShiftMap.h"
|
||
|
#include <TParameter.h>
|
||
|
#include <TGProgressBar.h>
|
||
|
#include <TSystem.h>
|
||
|
|
||
|
class CompassRun {
|
||
|
public:
|
||
|
CompassRun();
|
||
|
CompassRun(const std::string& dir);
|
||
|
~CompassRun();
|
||
|
inline void SetDirectory(const std::string& dir) { directory = dir; };
|
||
|
inline void SetScalerInput(const std::string& filename) { m_scalerinput = filename; };
|
||
|
inline void SetRunNumber(int n) { runNum = n; };
|
||
|
inline void SetShiftMap(const std::string& filename) { m_smap.SetFile(filename); };
|
||
|
void Convert2RawRoot(const std::string& name);
|
||
|
void Convert2SortedRoot(const std::string& name, const std::string& mapfile, double window);
|
||
|
void Convert2FastSortedRoot(const std::string& name, const std::string& mapfile, double window, double fsi_window, double fic_window);
|
||
|
void Convert2SlowAnalyzedRoot(const std::string& name, const std::string& mapfile, double window,
|
||
|
int zt, int at, int zp, int ap, int ze, int ae, double bke, double b, double theta);
|
||
|
void Convert2FastAnalyzedRoot(const std::string& name, const std::string& mapfile, double window, double fsi_window, double fic_window,
|
||
|
int zt, int at, int zp, int ap, int ze, int ae, double bke, double b, double theta);
|
||
|
|
||
|
inline void AttachProgressBar(TGProgressBar* pb) { m_pb = pb; };
|
||
|
|
||
|
private:
|
||
|
bool GetBinaryFiles();
|
||
|
bool GetHitsFromFiles();
|
||
|
void SetScalers();
|
||
|
void ReadScalerData(const std::string& filename);
|
||
|
void SetProgressBar();
|
||
|
|
||
|
std::string directory, m_scalerinput;
|
||
|
std::vector<CompassFile> m_datafiles;
|
||
|
unsigned int startIndex; //this is the file we start looking at; increases as we finish files.
|
||
|
ShiftMap m_smap;
|
||
|
std::unordered_map<std::string, TParameter<Long64_t>> m_scaler_map; //maps scaler files to the TParameter to be saved
|
||
|
|
||
|
//Potential branch variables
|
||
|
CompassHit hit;
|
||
|
CoincEvent event;
|
||
|
ProcessedEvent pevent;
|
||
|
|
||
|
//what run is this
|
||
|
int runNum;
|
||
|
unsigned int m_totalHits;
|
||
|
|
||
|
//Scaler switch
|
||
|
bool m_scaler_flag;
|
||
|
|
||
|
//GUI progress bar, if attached
|
||
|
TGProgressBar* m_pb;
|
||
|
};
|
||
|
|
||
|
#endif
|