REST-for-Physics  v2.3
Rare Event Searches ToolKit for Physics
TRestDetectorHitsRotationProcess.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 http://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 http://www.gnu.org/licenses/. *
20  * For the list of contributors see $REST_PATH/CREDITS. *
21  *************************************************************************/
22 
23 #ifndef RestCore_TRestDetectorHitsRotationProcess
24 #define RestCore_TRestDetectorHitsRotationProcess
25 
26 #include <TRestDetectorHitsEvent.h>
27 #include <TRestEventProcess.h>
28 
31  private:
34 
37 
38  void InitFromConfigFile() override;
39  void Initialize() override;
40 
41  protected:
43  Double_t fAngle = 0; //<
44 
46  TVector3 fCenter = {0, 0, 0}; //<
47 
49  TVector3 fAxis = {0, 0, 1}; //<
50 
51  public:
52  RESTValue GetInputEvent() const override { return fInputEvent; }
53  RESTValue GetOutputEvent() const override { return fOutputEvent; }
54 
55  TRestEvent* ProcessEvent(TRestEvent* inputEvent) override;
56 
57  void PrintMetadata() override;
58 
59  const char* GetProcessName() const override { return "hitsRotation"; }
60 
61  inline Double_t GetAngle() const { return fAngle; }
62  inline TVector3 GetAxis() const { return fAxis; }
63  inline TVector3 GetCenter() const { return fCenter; }
64 
66  TRestDetectorHitsRotationProcess(const char* configFilename);
68 
69  ClassDefOverride(TRestDetectorHitsRotationProcess, 1);
70 };
71 #endif
A process to rotate hits from a given center and axis.
void InitFromConfigFile() override
To make settings from rml file. This method must be implemented in the derived class.
TRestDetectorHitsEvent * fInputEvent
A pointer to the process input event.
void Initialize() override
Making default settings.
void PrintMetadata() override
Implemented it in the derived metadata class to print out specific metadata information.
RESTValue GetOutputEvent() const override
Get pointer to output event. Must be implemented in the derived class.
TRestEvent * ProcessEvent(TRestEvent *inputEvent) override
Process one event.
Double_t fAngle
Angle of rotation respect to the given axis.
RESTValue GetInputEvent() const override
Get pointer to input event. Must be implemented in the derived class.
TRestDetectorHitsEvent * fOutputEvent
A pointer to the process output event.
A base class for any REST event process.
A base class for any REST event.
Definition: TRestEvent.h:38