REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
TRestRadialStrippedMask.h
1 /*************************************************************************
2  * This file is part of the REST software framework. *
3  * *
4  * Copyright (C) 2016 GIFNA/TREX (University of Zaragoza) *
5  * For more information see https://gifna.unizar.es/trex *
6  * *
7  * REST is free software: you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation, either version 3 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * REST is distributed in the hope that it will be useful, *
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15  * GNU General Public License for more details. *
16  * *
17  * You should have a copy of the GNU General Public License along with *
18  * REST in $REST_PATH/LICENSE. *
19  * If not, see https://www.gnu.org/licenses/. *
20  * For the list of contributors see $REST_PATH/CREDITS. *
21  *************************************************************************/
22 
23 #ifndef REST_TRestRadialStrippedMask
24 #define REST_TRestRadialStrippedMask
25 
26 #include <TRestPatternMask.h>
27 
30  private:
31  void Initialize() override;
32 
34  Double_t fStripsAngle = TMath::Pi() / 3; //<
35 
37  Double_t fStripsThickness = 0.5; //<
38 
40  Double_t fInitialRadius = 20.; //<
41 
43  Double_t fInternalRegionRadius = 0.; //<
44 
46  Int_t fModulus = 10;
47 
48  public:
49  virtual Int_t GetRegion(Double_t& x, Double_t& y) override;
50 
52  Double_t GetStripsAngle() { return fStripsAngle * units("degrees"); }
53 
55  Double_t GetStripsThickness() { return fStripsThickness; }
56 
58  Int_t GetModulus() { return fModulus; }
59 
60  void PrintMetadata() override;
61  void PrintMaskMembers() override;
62  void PrintMask() override;
63 
65  TRestRadialStrippedMask(const char* cfgFileName, std::string name = "");
67 
68  ClassDefOverride(TRestRadialStrippedMask, 1);
69 };
70 #endif
An abstract class used to encapsulate different mask pattern class definitions.
A class used to define a stripped mask pattern.
Double_t fStripsAngle
The periodity of the stripped structure in radians.
Double_t GetStripsThickness()
It returns the thickness of the strips in mm.
Double_t fInitialRadius
The spacers structure will be effective from this radius, in mm. Default is from 20 mm.
virtual Int_t GetRegion(Double_t &x, Double_t &y) override
It returns a number identifying the region where the particle with coordinates (x,...
void Initialize() override
Function to initialize input/output event members and define the section name.
Double_t fStripsThickness
The width of the stripped structure in mm.
Int_t fModulus
It defines the maximum number of cells/regions in each axis.
TRestRadialStrippedMask()
Default constructor.
Double_t GetStripsAngle()
It returns the gap/periodicity of the strips in degrees.
void PrintMaskMembers() override
Prints on screen the information about the metadata members of TRestRingsMask, excluding common metad...
~TRestRadialStrippedMask()
Default destructor.
void PrintMask() override
Prints on screen the information about the metadata members of TRestRingsMask, including common patte...
void PrintMetadata() override
Prints on screen the complete information about the metadata members from this class.
Int_t GetModulus()
It returns the modulus used to define a finite set of ids.
Double_t fInternalRegionRadius
Radius of an internal circular region defined inside the fInitialRadius. If 0, there will be no regio...