Skip to content
Snippets Groups Projects
CbmMcbm2019TimeWinEventBuilderTask.h 3.04 KiB
Newer Older
/********************************************************************************
 *    Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH    *
 *                                                                              *
 *              This software is distributed under the terms of the             *
 *              GNU Lesser General Public Licence (LGPL) version 3,             *
 *                  copied verbatim in the file "LICENSE"                       *
 ********************************************************************************/
#ifndef CBMMCBM2019TIMEWINEVENTBUILDERTASK_H
#define CBMMCBM2019TIMEWINEVENTBUILDERTASK_H

/// CBM headers
#include "CbmMcbm2019TimeWinEventBuilderAlgo.h"

/// FAIRROOT headers
#include "FairTask.h"

/// FAIRSOFT headers (geant, boost, ...)

/// C/C++ headers
Administrator's avatar
Administrator committed
#include "CbmTofDigi.h"
#include <array>
#include <map>
#include <set>
#include <tuple>
#include <vector>

class TClonesArray;

Administrator's avatar
Administrator committed
class CbmMcbm2019TimeWinEventBuilderTask : public FairTask {
public:
  /** Default constructor **/
  CbmMcbm2019TimeWinEventBuilderTask();
Administrator's avatar
Administrator committed
  CbmMcbm2019TimeWinEventBuilderTask(
    const CbmMcbm2019TimeWinEventBuilderTask&) = delete;
  CbmMcbm2019TimeWinEventBuilderTask
  operator=(const CbmMcbm2019TimeWinEventBuilderTask&) = delete;
Administrator's avatar
Administrator committed
  /** Constructor with parameters (Optional) **/
  //  CbmMcbm2019TimeWinEventBuilderTask(Int_t verbose);
Administrator's avatar
Administrator committed
  /** Destructor **/
  ~CbmMcbm2019TimeWinEventBuilderTask();
Administrator's avatar
Administrator committed
  /** Initiliazation of task at the beginning of a run **/
  virtual InitStatus Init();
Administrator's avatar
Administrator committed
  /** ReInitiliazation of task when the runID changes **/
  virtual InitStatus ReInit();
Administrator's avatar
Administrator committed
  /** Executed for each event. **/
  virtual void Exec(Option_t*);
Administrator's avatar
Administrator committed
  /** Load the parameter container from the runtime database **/
  virtual void SetParContainers();
Administrator's avatar
Administrator committed
  /** Finish task called at the end of the run **/
  virtual void Finish();
Administrator's avatar
Administrator committed
  void SetFillHistos(Bool_t bFlag = kTRUE);
  void SetOutFilename(TString sNameIn);
  void SetReferenceDetector(ECbmModuleId refDet) __attribute__((deprecated));
  void AddDetector(ECbmModuleId selDet) __attribute__((deprecated));
  void RemoveDetector(ECbmModuleId selDet) __attribute__((deprecated));

  void SetReferenceDetector(EventBuilderDetector refDet);
  void AddDetector(EventBuilderDetector selDet);
  void RemoveDetector(EventBuilderDetector selDet);
Administrator's avatar
Administrator committed
  void SetTriggerMinNumber(ECbmModuleId selDet, UInt_t uVal);
  void SetTriggerMaxNumber(ECbmModuleId selDet, Int_t iVal);
Administrator's avatar
Administrator committed
  void SetTriggerWindow(ECbmModuleId det, Double_t dWinBeg, Double_t dWinEnd);
Administrator's avatar
Administrator committed
  void SetEventOverlapMode(EOverlapMode mode);
  void SetIgnoreTsOverlap(Bool_t bFlagIn);
Administrator's avatar
Administrator committed
private:
  void FillOutput();
  void SaveHistos();
Administrator's avatar
Administrator committed
  CbmMcbm2019TimeWinEventBuilderAlgo* fpAlgo = nullptr;
Administrator's avatar
Administrator committed
  TClonesArray* fEvents = nullptr;  //! output container of CbmEvents
Administrator's avatar
Administrator committed
  Bool_t fbFillHistos {kTRUE};  //! Switch ON/OFF filling of histograms
Administrator's avatar
Administrator committed
  /** Name of the histogram output file **/
  TString fsOutFileName {"data/HistosEvtWin.root"};
Administrator's avatar
Administrator committed
  ClassDef(CbmMcbm2019TimeWinEventBuilderTask, 1);
Administrator's avatar
Administrator committed
#endif  // CBMMCBM2019TIMEWINEVENTBUILDERTASK_H