CbmRoot
Loading...
Searching...
No Matches
CbmMuchSegmentAuto.h
Go to the documentation of this file.
1/* Copyright (C) 2007-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Mikhail Ryzhinskiy [committer], Florian Uhlig, Volker Friese */
4
14#ifndef CBMMUCHSEGMENTAUTO_H
15#define CBMMUCHSEGMENTAUTO_H 1
16
17#include <FairTask.h> // for FairTask, InitStatus
18
19#include <Rtypes.h> // for THashConsistencyHolder, ClassDef
20#include <RtypesCore.h> // for Double_t, Int_t, Bool_t, Option_t
21#include <TString.h> // for TString
22
23#include <vector> // for vector
24
25class CbmGeoMuchPar;
29class TClonesArray;
30class TH1D;
31class TObjArray;
32
33class CbmMuchSegmentAuto : public FairTask {
34public:
37
39 CbmMuchSegmentAuto(const char* digiFileName);
40
41 void SetNStations(Int_t nStations);
42 void SetSigmaMin(Double_t* sigmaXmin, Double_t* sigmaYmin);
43 void SetSigmaMax(Double_t* sigmaXmax, Double_t* sigmaYmax);
44 void SetOccupancyMax(Double_t* occupancyMax);
45
46
47 virtual InitStatus Init();
48 virtual void Exec(Option_t* option);
49 virtual void FinishTask();
50
52 virtual ~CbmMuchSegmentAuto();
53
54private:
55 Int_t fEvents;
56 TClonesArray* fPoints;
59 TObjArray* fStations;
60
61 TString fDigiFileName; // Digitization file
62 CbmGeoMuchPar* fGeoPar; // Geometry parameters container
63 std::vector<Double_t> fExp0; // Fit parameters for EXP distribution for each station
64 std::vector<Double_t> fExp1; // Fit parameters for EXP distribution for each station
65
66 std::vector<Double_t> fSigmaXmin; // Minimum sigma in X [mm]
67 std::vector<Double_t> fSigmaYmin; // Minimum sigma in Y [mm]
68 std::vector<Double_t> fSigmaXmax; // Maximum sigma in X [mm]
69 std::vector<Double_t> fSigmaYmax; // Maximum sigma in Y [mm]
70 std::vector<Double_t> fOccupancyMax; // Maximum occupancy
71
73 virtual void SetParContainers();
74
76 void InitLayerSide(CbmMuchLayerSide* layerSide);
77 void SegmentModule(CbmMuchModuleGem* module);
81 Int_t IntersectsRad(CbmMuchSectorRectangular* sector, Double_t radius);
82 void DrawSegmentation();
83 void Print(Option_t* = "") const;
84
87
88 ClassDef(CbmMuchSegmentAuto, 2)
89};
90
91#endif
virtual void Exec(Option_t *option)
std::vector< Double_t > fSigmaXmax
Bool_t ShouldSegmentByY(CbmMuchSectorRectangular *sector)
void SetOccupancyMax(Double_t *occupancyMax)
std::vector< Double_t > fSigmaYmax
virtual void SetParContainers()
void SegmentSector(CbmMuchModuleGem *module, CbmMuchSectorRectangular *sector)
Int_t IntersectsRad(CbmMuchSectorRectangular *sector, Double_t radius)
std::vector< Double_t > fExp0
std::vector< Double_t > fExp1
CbmGeoMuchPar * fGeoPar
void SetNStations(Int_t nStations)
CbmMuchSegmentAuto & operator=(const CbmMuchSegmentAuto &)
std::vector< Double_t > fSigmaYmin
void SegmentModule(CbmMuchModuleGem *module)
Bool_t ShouldSegmentByX(CbmMuchSectorRectangular *sector)
void InitLayerSide(CbmMuchLayerSide *layerSide)
std::vector< Double_t > fOccupancyMax
void Print(Option_t *="") const
void SetSigmaMin(Double_t *sigmaXmin, Double_t *sigmaYmin)
virtual InitStatus Init()
void SetSigmaMax(Double_t *sigmaXmax, Double_t *sigmaYmax)
CbmMuchSegmentAuto(const CbmMuchSegmentAuto &)
std::vector< Double_t > fSigmaXmin