Skip to content
Snippets Groups Projects
Select Git revision
  • f375832513f7276b3f151041b79c8104a0166033
  • master default protected
  • nightly_master
  • online_much_readconf_cleanup protected
  • online_mvd_readconf_cleanup protected
  • jul25_patches
  • cleanup_rich_v25a
  • jul24_patches
  • nov23_patches
  • DC_2404
  • nighly_master
  • DC_Jan24
  • DC_Nov23
  • DC_Oct23
  • feb23_patches
  • L1Algo-dev9
  • dec21_patches protected
  • apr21_patches protected
  • dev_2025_47
  • RC2_jul25
  • dev_2025_46
  • dev_2025_45
  • dev_2025_44
  • dev_2025_43
  • dev_2025_42
  • dev_2025_41
  • dev_2025_40
  • dev_2025_39
  • dev_2025_38
  • dev_2025_37
  • dev_2025_36
  • dev_2025_35
  • dev_2025_34
  • dev_2025_33
  • dev_2025_32
  • dev_2025_31
  • dev_2025_30
  • RC_jul25
38 results

CbmDigitizeBase.cxx

Blame
  • CbmDigitizeBase.cxx 3.00 KiB
    /* Copyright (C) 2018-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
       SPDX-License-Identifier: GPL-3.0-only
       Authors: Volker Friese [committer] */
    
    /** @file CbmDigitizeBase.cxx
     ** @author Volker Friese <v.friese@gsi.de>
     ** @date 01.06.2018
     **/
    #include "CbmDigitizeBase.h"
    
    #include <FairEventHeader.h>  // for FairEventHeader
    #include <FairRootManager.h>  // for FairRootManager
    #include <FairRunAna.h>       // for FairRunAna
    #include <FairTask.h>         // for FairTask
    
    #include <TGenericClassInfo.h>  // for TGenericClassInfo
    
    #include <cassert>  // for assert
    #include <cstdio>
    
    // -----   Default constructor   --------------------------------------------
    CbmDigitizeBase::CbmDigitizeBase()
      : FairTask("Digitizer")
      , fEventMode(kFALSE)
      , fProduceNoise(kTRUE)
      , fCreateMatches(kTRUE)
      , fCurrentInput(-1)
      , fCurrentEvent(-1)
      , fCurrentMCEntry(-1)
      , fCurrentEventTime(0.)
    {
    }
    // --------------------------------------------------------------------------
    
    
    // -----   Default constructor   --------------------------------------------
    CbmDigitizeBase::CbmDigitizeBase(const char* name)
      : FairTask(name)
      , fEventMode(kFALSE)
      , fProduceNoise(kTRUE)
      , fCreateMatches(kTRUE)
      , fCurrentInput(-1)
      , fCurrentEvent(-1)
      , fCurrentMCEntry(-1)
      , fCurrentEventTime(0.)
    {
    }
    // --------------------------------------------------------------------------
    
    
    // -----   Destructor   -----------------------------------------------------
    CbmDigitizeBase::~CbmDigitizeBase() {}
    // --------------------------------------------------------------------------
    
    
    // -----   Get event information   ------------------------------------------
    void CbmDigitizeBase::GetEventInfo()
    {
    
      // --- The event number is taken from the FairRootManager
      fCurrentEvent = FairRootManager::Instance()->GetEntryNr();
    
      if (FairRunAna::Instance()) {
        FairEventHeader* event = FairRunAna::Instance()->GetEventHeader();
        assert(event);
        fCurrentInput     = event->GetInputFileId();
        fCurrentMCEntry   = event->GetMCEntryNumber();
        fCurrentEventTime = event->GetEventTime();
      }       //? FairRunAna
      else {  // no FairRunAna
        fCurrentInput     = -1;
        fCurrentMCEntry   = -1;
        fCurrentEventTime = 0.;
      }  //? not FairRunAna
    }
    // --------------------------------------------------------------------------
    
    
    // -----   Read list of inactive channels   ---------------------------------
    std::pair<size_t, bool> CbmDigitizeBase::ReadInactiveChannels()
    {
    
      if (fInactiveChannelFileName.IsNull()) return std::make_pair(0, true);
    
      FILE* channelFile = fopen(fInactiveChannelFileName.Data(), "r");
      if (channelFile == nullptr) return std::make_pair(0, false);
    
      size_t nLines    = 0;
      uint32_t channel = 0;
      while (fscanf(channelFile, "%u", &channel) == 1) {
        fInactiveChannels.insert(channel);
        nLines++;
      }
      bool success = feof(channelFile);
    
      fclose(channelFile);
      return std::make_pair(nLines, success);
    }
    // --------------------------------------------------------------------------
    
    
    ClassImp(CbmDigitizeBase)