ARTEMIS-CRIB
 
Loading...
Searching...
No Matches
TReconstProcessor.h
Go to the documentation of this file.
1/**
2 * @file TReconstProcessor.h
3 * @brief for solid target reconstruction
4 * @author Kodai Okawa <okawa@cns.s.u-tokyo.ac.jp>
5 * @date 2024-09-03 14:33:21
6 * @note last modified: 2025-01-08 10:34:18
7 * @details
8 */
9
10#ifndef _CRIB_TRECONSTPROCESSOR_H_
11#define _CRIB_TRECONSTPROCESSOR_H_
12
14#include <TProcessor.h>
15#include <TTrack.h>
16
17namespace art::crib {
18class TReconstProcessor;
19} // namespace art::crib
20
21class TClonesArray;
22
24 public:
25 /// @brief Default constructor.
27 /// @brief Default destructor.
28 ~TReconstProcessor() override;
29
30 /// @brief Initialization
31 void Init(TEventCollection *col) override;
32 /// @brief Main process
33 void Process() override;
34
35 protected:
36 /// @brief input telescope collection name (art::TTelescopeData)
38 /// @brief input tracking collection name (art::TTrack)
40 /// @brief output collection name (art::TReactionInfo)
42 /// @brief detector parameter name (art::TDetectorParameter)
44 /// @brief target parameter name (art::TTargetParameter)
46
47 /// @brief telescope input object (TClonesArray(art::TTelescopeData))
48 TClonesArray **fInData; //!
49 /// @brief tracking input object (TClonesArray(art::TTrack))
50 TClonesArray **fInTrackData; //!
51 /// @brief output object (TClonesArray(art::TReactionInfo))
52 TClonesArray *fOutData;
53
54 /// @brief detector parameter object (TClonesArray(art::TDetectorParameter))
55 TClonesArray **fDetectorPrm; //!
56 /// @brief target parameter obejct (TClonesArray(art::TTargetParameter))
57 TClonesArray **fTargetPrm; //!
58
59 /// @brief reaction particles Atomic num array
61 /// @brief reaction particles Mass num array
63 /// @brief Excited Energy
65 /// @brief Flag of custom processor
67
68 Double_t M1;
69 Double_t M2;
70 Double_t M3_default;
71 Double_t M3;
72 Double_t M4;
73
74 private:
75 /// @brief Get LAB energy and angle from detected particle information
76 /// @param z (mm)
77 /// @param track (art::TTrack)
78 /// @param data (art::TTelescopeData)
79 /// @return Ecm (MeV)
80 std::pair<Double_t, Double_t> GetELabALabPair(Double_t z, const TTrack *track, const TTelescopeData *data);
81
82 /// @brief Get Ecm from detected particle information
83 /// @param z (mm)
84 /// @param track (art::TTrack)
85 /// @param data (art::TTelescopeData)
86 /// @return Ecm (MeV)
87 Double_t GetEcmFromDetectParticle(Double_t z, const TTrack *track, const TTelescopeData *data);
88
89 /// @brief Get Ecm from detected particle information (relativity kinematics)
90 /// @param energy (MeV)
91 /// @param theta (radian)
92 /// @param low_e (minimum energy)
93 /// @param high_e (maxmum energy)
94 /// @return Ecm (MeV)
95 Double_t GetEcm_kinematics(Double_t energy, Double_t theta, Double_t low_e, Double_t high_e);
96
97 /// @brief Get Ecm from detected particle information (classic kinematics)
98 /// @param energy (MeV)
99 /// @param theta (radian)
100 /// @return Ecm (MeV)
101 Double_t GetEcm_classic_kinematics(Double_t energy, Double_t theta);
102
103 /// @brief Get Lab Angle after reconstruction
104 /// @param ELab (MeV)
105 /// @param Ecm (MeV)
106 /// @param ALab (radian)
107 /// @return angle (radian)
108 Double_t GetCMAngle(Double_t ELab, Double_t Ecm, Double_t ALab);
109
110 // Copy constructor (prohibited)
112 // Assignment operator (prohibited)
114
115 ClassDefOverride(TReconstProcessor, 1)
116};
117
118#endif // end of #ifndef _TRECONSTPROCESSOR_H_
Double_t GetEcm_classic_kinematics(Double_t energy, Double_t theta)
Get Ecm from detected particle information (classic kinematics)
TClonesArray * fOutData
output object (TClonesArray(art::TReactionInfo))
Double_t GetCMAngle(Double_t ELab, Double_t Ecm, Double_t ALab)
Get Lab Angle after reconstruction.
IntVec_t fParticleZArray
reaction particles Atomic num array
IntVec_t fParticleAArray
reaction particles Mass num array
std::pair< Double_t, Double_t > GetELabALabPair(Double_t z, const TTrack *track, const TTelescopeData *data)
Get LAB energy and angle from detected particle information.
TString fInputTrackColName
input tracking collection name (art::TTrack)
TReconstProcessor()
Default constructor.
Double_t GetEcmFromDetectParticle(Double_t z, const TTrack *track, const TTelescopeData *data)
Get Ecm from detected particle information.
void Init(TEventCollection *col) override
Initialization.
TString fInputColName
input telescope collection name (art::TTelescopeData)
void Process() override
Main process.
TString fDetectorParameterName
detector parameter name (art::TDetectorParameter)
TClonesArray ** fInTrackData
tracking input object (TClonesArray(art::TTrack))
TString fOutputColName
output collection name (art::TReactionInfo)
~TReconstProcessor() override
Default destructor.
Double_t GetEcm_kinematics(Double_t energy, Double_t theta, Double_t low_e, Double_t high_e)
Get Ecm from detected particle information (relativity kinematics)
TClonesArray ** fTargetPrm
target parameter obejct (TClonesArray(art::TTargetParameter))
Double_t fExcitedEnergy
Excited Energy.
TClonesArray ** fInData
telescope input object (TClonesArray(art::TTelescopeData))
TClonesArray ** fDetectorPrm
detector parameter object (TClonesArray(art::TDetectorParameter))
TString fTargetParameterName
target parameter name (art::TTargetParameter)
TReconstProcessor(const TReconstProcessor &rhs)=delete
TReconstProcessor & operator=(const TReconstProcessor &rhs)=delete
Bool_t fDoCenterPos
Flag of custom processor.
return to the guide