HerdSoftware  0.4.0
CaloAcceptanceCut.h
Go to the documentation of this file.
1 /*
2  * CaloAcceptanceCut.h
3  *
4  * Created on: 03 June 2019
5  * Author: Lorenzo Pacini
6  */
7 
8 #ifndef HERD_CALOACCEPTANCECUT_H_
9 #define HERD_CALOACCEPTANCECUT_H_
10 
11 #include "algorithm/Algorithm.h"
18 
19 namespace Herd {
20 
22 struct MCAccOption {
26  std::for_each(RefFrame::Directions.begin(), RefFrame::Directions.end(), [&](auto &itDir) {
27  if (itDir == RefFrame::Direction::Zneg)
28  selectSurfCalo[itDir] = 0;
29  else
30  selectSurfCalo[itDir] = 1;
31  });
32  };
33 
34  void Dump() {
35  std::cout << trackLengthCaloCm << " ; " << trackLengthCaloCm << " ; ";
36  auto itName = RefFrame::DirectionName.begin();
37  std::for_each(RefFrame::Directions.begin(), RefFrame::Directions.end(), [&](auto &itDir) {
38  std::cout << *itName << "_flag: " << selectSurfCalo[itDir] << " ; ";
39  itName++;
40  });
41  std::cout << std::endl;
42  };
43 
44  float trackLengthCaloCm;
52 };
53 // clang-format off
89 // clang-format on
90 class CaloAcceptanceCut : public EA::Algorithm {
91 public:
96  CaloAcceptanceCut(const std::string &name);
97 
102  bool Initialize() override;
103 
108  bool Process() override;
109 
114  bool Finalize() override;
115 
116 private:
123  bool _GetAcceptanceType(const TrackInfoForCalo &trackInfo);
124 
125  EA::observer_ptr<EA::EventDataStore> m_evStore;
126 
128  EA::observer_ptr<CaloGeoParams> m_caloGeoParams;
129 };
130 
131 } // namespace Herd
132 
133 #endif /* HERD_CALOACCEPTANCECUT_H_ */
Herd::TrackInfoForCalo
Container of information about the track inside the Calo.
Definition: TrackInfoForCalo.h:28
Segment.h
Herd::CaloAcceptanceCut
An algorithm that reject events out of Calo acceptance.
Definition: CaloAcceptanceCut.h:90
Herd::MCAccOption::MCAccOption
MCAccOption()
Definition: CaloAcceptanceCut.h:23
Point.h
DirectionsArray.h
Herd::RefFrame::DirectionName
const std::array< std::string, RefFrame::NDirections > DirectionName
Definition: RefFrame.h:78
Herd::CaloAcceptanceCut::Initialize
bool Initialize() override
Initializes the histogram.
Definition: CaloAcceptanceCut.cpp:43
Herd::RefFrame::Direction::Zneg
@ Zneg
Herd::RefFrame::Directions
constexpr std::array< RefFrame::Direction, RefFrame::NDirections > Directions
Definition: RefFrame.h:72
Herd::MCAccOption::exactTrackLengthLYSOX0
float exactTrackLengthLYSOX0
Exact Track length in LYSO [cm];.
Definition: CaloAcceptanceCut.h:48
Herd::MCAccOption::trackLengthCaloCm
float trackLengthCaloCm
Track length in calo [cm];.
Definition: CaloAcceptanceCut.h:42
Herd::CaloAcceptanceCut::m_caloGeoParams
EA::observer_ptr< CaloGeoParams > m_caloGeoParams
Definition: CaloAcceptanceCut.h:128
Herd::CaloAcceptanceCut::_GetAcceptanceType
bool _GetAcceptanceType(const TrackInfoForCalo &trackInfo)
Returns true if the particle is inside the Calo acceptance.
Definition: CaloAcceptanceCut.cpp:84
TrackInfoForCalo.h
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::CaloAcceptanceCut::CaloAcceptanceCut
CaloAcceptanceCut(const std::string &name)
Constructor.
Definition: CaloAcceptanceCut.cpp:19
Herd::CaloAcceptanceCut::m_evStore
EA::observer_ptr< EA::EventDataStore > m_evStore
Pointer to the event data store.
Definition: CaloAcceptanceCut.h:125
Herd::MCAccOption::trackLengthCaloX0
float trackLengthCaloX0
Track length in calo [X0].
Definition: CaloAcceptanceCut.h:45
Herd::MCAccOption::trackLengthLYSOX0
float trackLengthLYSOX0
Track length in LYSO [X0].
Definition: CaloAcceptanceCut.h:46
Herd::MCAccOption::exactTrackLengthCaloX0
float exactTrackLengthCaloX0
Exact Track length in calo [X0].
Definition: CaloAcceptanceCut.h:47
Herd::MCAccOption
Class which contains the options for CaloAcceptnaceCut.
Definition: CaloAcceptanceCut.h:22
CaloGeoParams.h
Herd::DirectionsArray< int >
Herd::MCAccOption::trackMaxDistanceFromEnvelope
float trackMaxDistanceFromEnvelope
maximum distance of the track inside the calo from the envelope
Definition: CaloAcceptanceCut.h:49
Herd::CaloAcceptanceCut::m_mcAccOpt
MCAccOption m_mcAccOpt
Container of options for the cut.
Definition: CaloAcceptanceCut.h:127
Herd::MCAccOption::selectSurfCalo
DirectionsArray< int > selectSurfCalo
A flag for each calo surfaces which indicates if this surface is valid entrance.
Definition: CaloAcceptanceCut.h:51
Herd::CaloAcceptanceCut::Process
bool Process() override
Fills the histogram.
Definition: CaloAcceptanceCut.cpp:59
Herd::CaloAcceptanceCut::Finalize
bool Finalize() override
Puts the histogram on the event store.
Definition: CaloAcceptanceCut.cpp:79
Herd::MCAccOption::Dump
void Dump()
Definition: CaloAcceptanceCut.h:34
GeomUtils.h