CbmRoot
CbmMuchSegmentAuto.h
Go to the documentation of this file.
1 
10 #ifndef CBMMUCHSEGMENTAUTO_H
11 #define CBMMUCHSEGMENTAUTO_H 1
12 
13 #include <Rtypes.h> // for THashConsistencyHolder, ClassDef
14 #include <RtypesCore.h> // for Double_t, Int_t, Bool_t, Option_t
15 #include <TString.h> // for TString
16 
17 #include <vector> // for vector
18 
19 #include <FairTask.h> // for FairTask, InitStatus
20 
21 class CbmGeoMuchPar;
22 class CbmMuchLayerSide;
23 class CbmMuchModuleGem;
25 class TClonesArray;
26 class TH1D;
27 class TObjArray;
28 
29 class CbmMuchSegmentAuto : public FairTask {
30 public:
33 
35  CbmMuchSegmentAuto(const char* digiFileName);
36 
37  void SetNStations(Int_t nStations);
38  void SetSigmaMin(Double_t* sigmaXmin, Double_t* sigmaYmin);
39  void SetSigmaMax(Double_t* sigmaXmax, Double_t* sigmaYmax);
40  void SetOccupancyMax(Double_t* occupancyMax);
41 
42 
43  virtual InitStatus Init();
44  virtual void Exec(Option_t* option);
45  virtual void FinishTask();
46 
48  virtual ~CbmMuchSegmentAuto();
49 
50 private:
51  Int_t fEvents;
52  TClonesArray* fPoints;
54  Int_t fNStations;
55  TObjArray* fStations;
56 
57  TString fDigiFileName; // Digitization file
58  CbmGeoMuchPar* fGeoPar; // Geometry parameters container
59  std::vector<Double_t>
60  fExp0; // Fit parameters for EXP distribution for each station
61  std::vector<Double_t>
62  fExp1; // Fit parameters for EXP distribution for each station
63 
64  std::vector<Double_t> fSigmaXmin; // Minimum sigma in X [mm]
65  std::vector<Double_t> fSigmaYmin; // Minimum sigma in Y [mm]
66  std::vector<Double_t> fSigmaXmax; // Maximum sigma in X [mm]
67  std::vector<Double_t> fSigmaYmax; // Maximum sigma in Y [mm]
68  std::vector<Double_t> fOccupancyMax; // Maximum occupancy
69 
71  virtual void SetParContainers();
72 
74  void InitLayerSide(CbmMuchLayerSide* layerSide);
75  void SegmentModule(CbmMuchModuleGem* module);
76  void SegmentSector(CbmMuchModuleGem* module,
77  CbmMuchSectorRectangular* sector);
80  Int_t IntersectsRad(CbmMuchSectorRectangular* sector, Double_t radius);
81  void DrawSegmentation();
82  void Print(Option_t* = "") const;
83 
86 
87  ClassDef(CbmMuchSegmentAuto, 2)
88 };
89 
90 #endif
CbmMuchSegmentAuto::ShouldSegmentByX
Bool_t ShouldSegmentByX(CbmMuchSectorRectangular *sector)
Definition: CbmMuchSegmentAuto.cxx:373
CbmMuchSegmentAuto::SetSigmaMax
void SetSigmaMax(Double_t *sigmaXmax, Double_t *sigmaYmax)
Definition: CbmMuchSegmentAuto.cxx:104
CbmMuchSegmentAuto::FinishTask
virtual void FinishTask()
Definition: CbmMuchSegmentAuto.cxx:182
CbmMuchSegmentAuto::SetParContainers
virtual void SetParContainers()
Definition: CbmMuchSegmentAuto.cxx:118
CbmMuchSegmentAuto::fHistHitDensity
TH1D ** fHistHitDensity
Definition: CbmMuchSegmentAuto.h:53
CbmMuchSegmentAuto
Definition: CbmMuchSegmentAuto.h:29
CbmMuchSegmentAuto::fSigmaXmin
std::vector< Double_t > fSigmaXmin
Definition: CbmMuchSegmentAuto.h:64
CbmMuchSegmentAuto::SetOccupancyMax
void SetOccupancyMax(Double_t *occupancyMax)
Definition: CbmMuchSegmentAuto.cxx:111
CbmMuchSegmentAuto::CbmMuchSegmentAuto
CbmMuchSegmentAuto()
Definition: CbmMuchSegmentAuto.cxx:48
CbmMuchSegmentAuto::operator=
CbmMuchSegmentAuto & operator=(const CbmMuchSegmentAuto &)
CbmMuchSegmentAuto::CbmMuchSegmentAuto
CbmMuchSegmentAuto(const CbmMuchSegmentAuto &)
CbmMuchSegmentAuto::InitLayerSide
void InitLayerSide(CbmMuchLayerSide *layerSide)
Definition: CbmMuchSegmentAuto.cxx:249
CbmGeoMuchPar
Definition: CbmGeoMuchPar.h:25
CbmMuchSegmentAuto::fStations
TObjArray * fStations
Definition: CbmMuchSegmentAuto.h:55
CbmMuchSegmentAuto::SetSigmaMin
void SetSigmaMin(Double_t *sigmaXmin, Double_t *sigmaYmin)
Definition: CbmMuchSegmentAuto.cxx:98
CbmMuchSegmentAuto::fExp1
std::vector< Double_t > fExp1
Definition: CbmMuchSegmentAuto.h:62
CbmMuchSegmentAuto::fGeoPar
CbmGeoMuchPar * fGeoPar
Definition: CbmMuchSegmentAuto.h:58
CbmMuchSegmentAuto::Print
void Print(Option_t *="") const
Definition: CbmMuchSegmentAuto.cxx:498
CbmMuchSegmentAuto::fSigmaXmax
std::vector< Double_t > fSigmaXmax
Definition: CbmMuchSegmentAuto.h:66
CbmMuchSegmentAuto::DrawSegmentation
void DrawSegmentation()
Definition: CbmMuchSegmentAuto.cxx:583
CbmMuchSegmentAuto::~CbmMuchSegmentAuto
virtual ~CbmMuchSegmentAuto()
Definition: CbmMuchSegmentAuto.cxx:86
CbmMuchModuleGem
Definition: CbmMuchModuleGem.h:24
CbmMuchSectorRectangular
Definition: CbmMuchSectorRectangular.h:24
CbmMuchSegmentAuto::fPoints
TClonesArray * fPoints
Definition: CbmMuchSegmentAuto.h:52
CbmMuchSegmentAuto::ShouldSegmentByY
Bool_t ShouldSegmentByY(CbmMuchSectorRectangular *sector)
Definition: CbmMuchSegmentAuto.cxx:419
CbmMuchSegmentAuto::fOccupancyMax
std::vector< Double_t > fOccupancyMax
Definition: CbmMuchSegmentAuto.h:68
CbmMuchLayerSide
Definition: CbmMuchLayerSide.h:22
CbmMuchSegmentAuto::fSigmaYmax
std::vector< Double_t > fSigmaYmax
Definition: CbmMuchSegmentAuto.h:67
CbmMuchSegmentAuto::SegmentModule
void SegmentModule(CbmMuchModuleGem *module)
Definition: CbmMuchSegmentAuto.cxx:263
CbmMuchSegmentAuto::fExp0
std::vector< Double_t > fExp0
Definition: CbmMuchSegmentAuto.h:60
CbmMuchSegmentAuto::IntersectsRad
Int_t IntersectsRad(CbmMuchSectorRectangular *sector, Double_t radius)
Definition: CbmMuchSegmentAuto.cxx:465
CbmMuchSegmentAuto::Init
virtual InitStatus Init()
Definition: CbmMuchSegmentAuto.cxx:129
CbmMuchSegmentAuto::fNStations
Int_t fNStations
Definition: CbmMuchSegmentAuto.h:54
CbmMuchSegmentAuto::fEvents
Int_t fEvents
Definition: CbmMuchSegmentAuto.h:51
CbmMuchSegmentAuto::SetNStations
void SetNStations(Int_t nStations)
Definition: CbmMuchSegmentAuto.cxx:89
CbmMuchSegmentAuto::fSigmaYmin
std::vector< Double_t > fSigmaYmin
Definition: CbmMuchSegmentAuto.h:65
CbmMuchSegmentAuto::fDigiFileName
TString fDigiFileName
Definition: CbmMuchSegmentAuto.h:57
CbmMuchSegmentAuto::Exec
virtual void Exec(Option_t *option)
Definition: CbmMuchSegmentAuto.cxx:156
CbmMuchSegmentAuto::SegmentSector
void SegmentSector(CbmMuchModuleGem *module, CbmMuchSectorRectangular *sector)
Definition: CbmMuchSegmentAuto.cxx:294