Skip to content
Snippets Groups Projects
  • Administrator's avatar
    116a2dc6
    Create separate libraries for the mvd code · 116a2dc6
    Administrator authored and Florian Uhlig's avatar Florian Uhlig committed
    Add build system files for new mvd code structure
    Move code from mvd directory to core/detectors/mvd, sim/detectors/mvd,
    reco/detectors/mvd and analysis/detectors/mvd.
    Create the libraries CbmMvdCore, CbmMvdSim, CbmMvdReco and CbmMvdAna.
    
    This commit will not compile.
    116a2dc6
    History
    Create separate libraries for the mvd code
    Administrator authored and Florian Uhlig's avatar Florian Uhlig committed
    Add build system files for new mvd code structure
    Move code from mvd directory to core/detectors/mvd, sim/detectors/mvd,
    reco/detectors/mvd and analysis/detectors/mvd.
    Create the libraries CbmMvdCore, CbmMvdSim, CbmMvdReco and CbmMvdAna.
    
    This commit will not compile.
CbmMvdDigitizerTB.h 2.43 KiB
/* Copyright (C) 2017 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
   SPDX-License-Identifier: GPL-3.0-only
   Authors: Philipp Sitzmann [committer] */

// ----------------------------------------------------------------------------
// -----                    CbmMvdDigitizerTB header file                   -----
// -----                   Created by P.Sitzmann (p.sitzmann(att)gsi.de    -----
// ----------------------------------------------------------------------------

#ifndef CBMMVDDIGITIZERTB_H
#define CBMMVDDIGITIZERTB_H 1

#include "FairTask.h"

#include "TStopwatch.h"
#include "TString.h"

class FairTask;
class CbmMvdDetector;
class CbmMvdPileupManager;

using std::pair;


class CbmMvdDigitizerTB : public FairTask {

public:
  /** Default constructor **/
  CbmMvdDigitizerTB();


  /** Standard constructor 
  *@param name  Task name
  *@param mode  0 = MAPS, 1 = Ideal
  **/
  CbmMvdDigitizerTB(const char* name, Int_t mode = 0, Int_t iVerbose = 1);


  /** Destructor **/
  ~CbmMvdDigitizerTB();

  void Exec(Option_t* opt);
  void SetMisalignment(Float_t misalignment[3])
  {
    for (Int_t i = 0; i < 3; i++)
      epsilon[i] = misalignment[i];
  }  // set the misalignment in cm
  void ShowDebugHistograms() { fShowDebugHistos = kTRUE; }
  void SetProduceNoise() { fNoiseSensors = kTRUE; };

private:
  /** Hit producer mode (0 = MAPS, 1 = Ideal) **/
  Int_t fMode;
  Int_t eventNumber;

  Bool_t fShowDebugHistos;
  Bool_t fNoiseSensors;

  CbmMvdDetector* fDetector;

  TClonesArray* fInputPoints;
  TClonesArray* fTracks;
  TClonesArray* fDigis;
  TClonesArray* fDigiMatch;

  std::pair<Float_t, Int_t> fPerformanceDigi;

  UInt_t fDigiPluginNr;

  Double_t fFakeRate;  // Fake hit rate

  Float_t epsilon[3];

  TString fBranchName;  // Name of input branch (MvdPoint)

  TStopwatch fTimer;  ///< ROOT timer

  // -----   Private methods   ---------------------------------------------
  /** Intialisation **/
  virtual InitStatus Init();


  /** Reinitialisation **/
  virtual InitStatus ReInit();


  /** Virtual method Finish **/
  virtual void Finish();


  /** Register the output arrays to the IOManager **/
  void Register();

  void GetMvdGeometry();


  /** Clear the hit arrays **/
  void Reset();


  /** Print digitisation parameters **/
  void PrintParameters();

private:
  CbmMvdDigitizerTB(const CbmMvdDigitizerTB&);
  CbmMvdDigitizerTB operator=(const CbmMvdDigitizerTB&);

  ClassDef(CbmMvdDigitizerTB, 1);
};


#endif