CbmRoot
Loading...
Searching...
No Matches
CbmMuchSegmentSector Class Reference

#include <CbmMuchSegmentSector.h>

Inheritance diagram for CbmMuchSegmentSector:
[legend]
Collaboration diagram for CbmMuchSegmentSector:
[legend]

Public Member Functions

 CbmMuchSegmentSector ()
 
virtual ~CbmMuchSegmentSector ()
 
 CbmMuchSegmentSector (TString inputFile, TString digiFileName, Int_t flag)
 
virtual InitStatus Init ()
 
void SegmentMuch ()
 
void DebugSwitchOn ()
 

Private Member Functions

virtual void SetParContainers ()
 
Int_t SegmentLayerSide (CbmMuchLayerSide *layerSide)
 
Int_t SegmentModule (CbmMuchModuleGemRadial *module, Bool_t useModuleDesign)
 
void SegmentSector (CbmMuchModuleGemRadial *module, CbmMuchSectorRadial *sector)
 
void ReadInputFile ()
 
void DrawSegmentation ()
 
void Trim (std::string &str)
 
Bool_t IsDummyLine (std::string &str)
 
void OmitDummyLines (std::ifstream &infile, std::string &str)
 
std::vector< std::string > & Split (const std::string &s, char delim, std::vector< std::string > &elems)
 
std::vector< std::string > Split (const std::string &s, char delim)
 
template<class T>
void StrToNum (std::string &str, T &number)
 
 CbmMuchSegmentSector (const CbmMuchSegmentSector &)
 
CbmMuchSegmentSectoroperator= (const CbmMuchSegmentSector &)
 

Private Attributes

CbmGeoMuchParfGeoPar
 
Int_t fNStations
 
Int_t fFlag
 
TObjArray * fStations
 
TString fInputFileName
 
TString fDigiFileName
 
std::map< Int_t, Int_tfNRegions
 
std::map< Int_t, std::vector< Double_t > > fRadii
 
std::map< Int_t, std::vector< Double_t > > fAngles
 
std::map< Int_t, std::vector< Double_t > > fSecLx
 
std::map< Int_t, std::vector< Double_t > > fSecLy
 
std::map< Int_t, Int_tfNChannels
 
std::map< Int_t, std::vector< Int_t > > fNCols
 
std::map< Int_t, std::vector< Int_t > > fNRows
 
Int_t fDebug
 

Detailed Description

Definition at line 37 of file CbmMuchSegmentSector.h.

Constructor & Destructor Documentation

◆ CbmMuchSegmentSector() [1/3]

CbmMuchSegmentSector::CbmMuchSegmentSector ( )

◆ ~CbmMuchSegmentSector()

CbmMuchSegmentSector::~CbmMuchSegmentSector ( )
virtual

Destructor.

Definition at line 90 of file CbmMuchSegmentSector.cxx.

◆ CbmMuchSegmentSector() [2/3]

CbmMuchSegmentSector::CbmMuchSegmentSector ( TString inputFile,
TString digiFileName,
Int_t flag )

Standard constructor.

Parameters
inputFileName of the input parameters file
digiFileNameName of the output file with segmentation parameters for C++11 compatible mode char* changed to TString.

Definition at line 68 of file CbmMuchSegmentSector.cxx.

References fAngles, fDebug, fDigiFileName, fFlag, fGeoPar, fInputFileName, fNChannels, fNCols, fNRegions, fNRows, fNStations, fRadii, fSecLx, fSecLy, and fStations.

◆ CbmMuchSegmentSector() [3/3]

CbmMuchSegmentSector::CbmMuchSegmentSector ( const CbmMuchSegmentSector & )
private

Member Function Documentation

◆ DebugSwitchOn()

void CbmMuchSegmentSector::DebugSwitchOn ( )
inline

Definition at line 59 of file CbmMuchSegmentSector.h.

References fDebug.

◆ DrawSegmentation()

◆ Init()

InitStatus CbmMuchSegmentSector::Init ( )
virtual

Initialization.

Definition at line 104 of file CbmMuchSegmentSector.cxx.

References fAngles, fDebug, fGeoPar, fNRegions, fNStations, fStations, ReadInputFile(), and SegmentMuch().

◆ IsDummyLine()

Bool_t CbmMuchSegmentSector::IsDummyLine ( std::string & str)
inlineprivate

Definition at line 120 of file CbmMuchSegmentSector.h.

References Trim().

Referenced by OmitDummyLines().

◆ OmitDummyLines()

void CbmMuchSegmentSector::OmitDummyLines ( std::ifstream & infile,
std::string & str )
inlineprivate

Definition at line 126 of file CbmMuchSegmentSector.h.

References IsDummyLine().

Referenced by ReadInputFile().

◆ operator=()

CbmMuchSegmentSector & CbmMuchSegmentSector::operator= ( const CbmMuchSegmentSector & )
private

◆ ReadInputFile()

void CbmMuchSegmentSector::ReadInputFile ( )
private

Reads input parameters for the segmentation.

Definition at line 252 of file CbmMuchSegmentSector.cxx.

References fAngles, fInputFileName, fNRegions, fNStations, fRadii, OmitDummyLines(), Split(), and StrToNum().

Referenced by Init().

◆ SegmentLayerSide()

Int_t CbmMuchSegmentSector::SegmentLayerSide ( CbmMuchLayerSide * layerSide)
private

Performs segmentation of the given layer side.

Parameters
layerSidelayer side to segment
Returns
number of segmented sectors

modified for rpc

Definition at line 167 of file CbmMuchSegmentSector.cxx.

References CbmMuchModule::GetDetectorType(), CbmMuchLayerSide::GetModule(), CbmMuchLayerSide::GetNModules(), and SegmentModule().

Referenced by SegmentMuch().

◆ SegmentModule()

Int_t CbmMuchSegmentSector::SegmentModule ( CbmMuchModuleGemRadial * module,
Bool_t useModuleDesign )
private

Performs segmentation of the given module.

Parameters
moduleModule to segment
useModuleDesignWhether module design is used

Definition at line 188 of file CbmMuchSegmentSector.cxx.

References fAngles, fDebug, fFlag, fNRegions, fRadii, fStations, CbmMuchAddress::GetLayerIndex(), CbmMuchAddress::GetLayerSideIndex(), CbmMuchAddress::GetModuleIndex(), CbmMuchStation::GetRmax(), CbmMuchStation::GetRmin(), CbmMuchAddress::GetStationIndex(), and sqrt().

Referenced by SegmentLayerSide().

◆ SegmentMuch()

void CbmMuchSegmentSector::SegmentMuch ( )

Performs the segmentation of all stations.

Save old global file and folder pointer to avoid messing with FairRoot

Restore old global file and folder pointer to avoid messing with FairRoot

Definition at line 133 of file CbmMuchSegmentSector.cxx.

References DrawSegmentation(), fDigiFileName, fStations, CbmMuchStation::GetLayer(), CbmMuchStation::GetNLayers(), CbmMuchLayer::GetSideB(), CbmMuchLayer::GetSideF(), and SegmentLayerSide().

Referenced by Init().

◆ SegmentSector()

void CbmMuchSegmentSector::SegmentSector ( CbmMuchModuleGemRadial * module,
CbmMuchSectorRadial * sector )
private

Performs segmentation of the given sector in the module.

Parameters
moduleModule which contains the given sector
sectorSector to segment

◆ SetParContainers()

void CbmMuchSegmentSector::SetParContainers ( )
privatevirtual

Get parameter containers

Definition at line 94 of file CbmMuchSegmentSector.cxx.

References fGeoPar.

◆ Split() [1/2]

std::vector< std::string > CbmMuchSegmentSector::Split ( const std::string & s,
char delim )
inlineprivate

Definition at line 144 of file CbmMuchSegmentSector.h.

References Split().

◆ Split() [2/2]

std::vector< std::string > & CbmMuchSegmentSector::Split ( const std::string & s,
char delim,
std::vector< std::string > & elems )
inlineprivate

Definition at line 133 of file CbmMuchSegmentSector.h.

Referenced by ReadInputFile(), and Split().

◆ StrToNum()

template<class T>
void CbmMuchSegmentSector::StrToNum ( std::string & str,
T & number )
inlineprivate

Definition at line 151 of file CbmMuchSegmentSector.h.

Referenced by ReadInputFile().

◆ Trim()

void CbmMuchSegmentSector::Trim ( std::string & str)
inlineprivate

Definition at line 112 of file CbmMuchSegmentSector.h.

Referenced by IsDummyLine().

Member Data Documentation

◆ fAngles

std::map<Int_t, std::vector<Double_t> > CbmMuchSegmentSector::fAngles
private

◆ fDebug

Int_t CbmMuchSegmentSector::fDebug
private

◆ fDigiFileName

TString CbmMuchSegmentSector::fDigiFileName
private

◆ fFlag

Int_t CbmMuchSegmentSector::fFlag
private

◆ fGeoPar

CbmGeoMuchPar* CbmMuchSegmentSector::fGeoPar
private

◆ fInputFileName

TString CbmMuchSegmentSector::fInputFileName
private

◆ fNChannels

std::map<Int_t, Int_t> CbmMuchSegmentSector::fNChannels
private

Definition at line 76 of file CbmMuchSegmentSector.h.

Referenced by CbmMuchSegmentSector(), and CbmMuchSegmentSector().

◆ fNCols

std::map<Int_t, std::vector<Int_t> > CbmMuchSegmentSector::fNCols
private

Definition at line 77 of file CbmMuchSegmentSector.h.

Referenced by CbmMuchSegmentSector(), and CbmMuchSegmentSector().

◆ fNRegions

std::map<Int_t, Int_t> CbmMuchSegmentSector::fNRegions
private

◆ fNRows

std::map<Int_t, std::vector<Int_t> > CbmMuchSegmentSector::fNRows
private

Definition at line 78 of file CbmMuchSegmentSector.h.

Referenced by CbmMuchSegmentSector(), and CbmMuchSegmentSector().

◆ fNStations

Int_t CbmMuchSegmentSector::fNStations
private

◆ fRadii

std::map<Int_t, std::vector<Double_t> > CbmMuchSegmentSector::fRadii
private

◆ fSecLx

std::map<Int_t, std::vector<Double_t> > CbmMuchSegmentSector::fSecLx
private

Definition at line 73 of file CbmMuchSegmentSector.h.

Referenced by CbmMuchSegmentSector(), and CbmMuchSegmentSector().

◆ fSecLy

std::map<Int_t, std::vector<Double_t> > CbmMuchSegmentSector::fSecLy
private

Definition at line 75 of file CbmMuchSegmentSector.h.

Referenced by CbmMuchSegmentSector(), and CbmMuchSegmentSector().

◆ fStations

TObjArray* CbmMuchSegmentSector::fStations
private

The documentation for this class was generated from the following files: