ATLAS Offline Software
ALFA_LocRec.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ALFA_LOCREC_h
6 #define ALFA_LOCREC_h
7 
9 #include "ALFA_LocRec/ALFA_UserObjects.h" //for MDHIT etc
10 #include "ALFA_Geometry/ALFA_GeometryReader.h" //for GEOMETRYCONFIGURATION
13 #include "CLHEP/Vector/ThreeVector.h"
14 #include "RtypesCore.h"
15 
16 #include <string>
17 #include <list>
18 #include <vector>
19 
22 class ALFA_LocRecEvent;
23 class ALFA_LocRecODEvent;
24 
25 typedef struct _USERTRANSFORM
26 {
27  Int_t iRPot;
28  Float_t fAngle;
29  CLHEP::Hep3Vector vecRotation;
30  CLHEP::Hep3Vector vecTranslation;
31 
33 
34 
35 #define NSIDE 3
36 #define NTRACK 10
37 #define NTRIG 4
38 #define NBPM 4
39 //#define MAXNUMTRACKS 100
40 
41 class StoreGateSvc;
42 
43 class ALFA_LocRec : public AthAlgorithm
44 {
45  public:
46  ALFA_LocRec(const std::string& name, ISvcLocator* pSvcLocator);
47  ~ALFA_LocRec();
48 
49  private:
52 
55 
58 
59  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfoKey{this, "EvtInfo", "EventInfo", "EventInfo name"};
60 
61  private:
62  std::list<eRPotName> m_ListExistingRPots;
63 
64  UInt_t m_eventNum; // real event number
65  Int_t m_iDataType; // data type (simulation or real data) using in the local reconstruction
66  Int_t m_iEvent; // event number from zero value
67  Int_t m_iMultiplicityCutMD; // for Main Detector
68  Int_t m_iNumLayerCutMD; // for Main Detector
69  Int_t m_iUVCutMD; // for Main Detector
70  Int_t m_iUVCutMDHalfReco; // for Main Detector HalfReco algorithm
71  Int_t m_iMultiplicityCutOD; // for Overlap Detector
72  Float_t m_fOverlapCutMD; // for Main Detector
73  Float_t m_fDistanceCutOD; // for Overlap Detector
74  Float_t m_iLayerCutOD; // for Overlap Detector
75  Bool_t m_bEdgeMethod_Opt_Sisters; // for EdgeMethod
76  Bool_t m_bEdgeMethod_Opt_UseGaps; // for EdgeMethod
77 
78  //slope, offset and Z-pos for MD fibers [8][2*10][64]
82 
83  //slope, offset and Z-pos for OD fibers [8][3][2][2*15], side 0 = right; side 1 = left (in +z direction)
87 
89  std::vector<std::string> m_vecListAlgoMD;
90  std::vector<std::string> m_vecListAlgoOD;
91  std::string m_strAlgoOD;
92  std::string m_strAlgoMD;
95  std::string m_strCollectionName;
96  std::string m_strODCollectionName;
97 
98  public:
102 
103  private:
104  bool ReadGeometryDetCS();
105  bool StoreReconstructionGeometry(const eRPotName eRPName, const eFiberType eFType, const char* szDataDestination);
106  void SaveGeometry();
107  void ClearGeometry();
108 
109  StatusCode ALFACollectionReading(std::list<MDHIT> &ListMDHits, std::list<ODHIT> &ListODHits);
110 
113  StatusCode ExecuteRecoMethod(const std::string& strAlgo, const eRPotName eRPName, const std::list<MDHIT> &ListMDHits, const std::list<ODHIT> &ListODHits);
114 };
115 
116 #endif //ALFA_LOCREC_h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
ALFA_LocRec::m_fzMD
Float_t m_fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_LocRec.h:81
eFiberType
eFiberType
Definition: ALFA_GeometryReader.h:25
ALFA_LocRec::StoreReconstructionGeometry
bool StoreReconstructionGeometry(const eRPotName eRPName, const eFiberType eFType, const char *szDataDestination)
Definition: ALFA_LocRec.cxx:563
ALFA_LocRec::m_fbOD
Float_t m_fbOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition: ALFA_LocRec.h:85
ALFA_LocRec::m_strODCollectionName
std::string m_strODCollectionName
Definition: ALFA_LocRec.h:96
ALFA_LocRec::m_bEdgeMethod_Opt_UseGaps
Bool_t m_bEdgeMethod_Opt_UseGaps
Definition: ALFA_LocRec.h:76
ALFA_LocRec::m_strAlgoOD
std::string m_strAlgoOD
Definition: ALFA_LocRec.h:91
ALFA_LocRec::m_ListExistingRPots
std::list< eRPotName > m_ListExistingRPots
Definition: ALFA_LocRec.h:62
_USERTRANSFORM::vecRotation
CLHEP::Hep3Vector vecRotation
Definition: ALFA_DetectorTool.h:21
ALFA_LocRec::m_Config
GEOMETRYCONFIGURATION m_Config
Definition: ALFA_LocRec.h:50
ALFA_LocRec::m_iMultiplicityCutOD
Int_t m_iMultiplicityCutOD
Definition: ALFA_LocRec.h:71
ODLAYERSCNT
#define ODLAYERSCNT
Definition: ALFA_CLinkAlg.h:30
ALFA_LocRec::m_strKeyGeometryForReco
std::string m_strKeyGeometryForReco
Definition: ALFA_LocRec.h:88
ALFA_LocRec::RecordODCollection
StatusCode RecordODCollection()
Definition: ALFA_LocRec.cxx:1042
ALFA_LocRec::SaveGeometry
void SaveGeometry()
Definition: ALFA_LocRec.cxx:614
ALFA_LocRec::initialize
StatusCode initialize()
Definition: ALFA_LocRec.cxx:156
ALFAFIBERSCNT
#define ALFAFIBERSCNT
Definition: ALFA_constants.h:10
eRPotName
eRPotName
Definition: ALFA_GeometryReader.h:27
ALFA_LocRec::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: ALFA_LocRec.h:59
ALFA_GeometryReader.h
_USERTRANSFORM::fAngle
Float_t fAngle
Definition: ALFA_LocRec.h:28
ALFA_LocRec::m_pLocRecODEvent
ALFA_LocRecODEvent * m_pLocRecODEvent
Definition: ALFA_LocRec.h:57
RPOTSCNT
#define RPOTSCNT
Definition: ALFA_CLinkAlg.h:26
ALFA_LocRec::m_strKeyLocRecEvCollection
std::string m_strKeyLocRecEvCollection
Definition: ALFA_LocRec.h:93
USERTRANSFORM
struct _USERTRANSFORM USERTRANSFORM
ALFA_LocRec::m_pLocRecODEvCollection
ALFA_LocRecODEvCollection * m_pLocRecODEvCollection
Definition: ALFA_LocRec.h:56
SG::ReadHandleKey< xAOD::EventInfo >
ALFA_LocRec::m_bEdgeMethod_Opt_Sisters
Bool_t m_bEdgeMethod_Opt_Sisters
Definition: ALFA_LocRec.h:75
ALFA_LocRec::m_iLayerCutOD
Float_t m_iLayerCutOD
Definition: ALFA_LocRec.h:74
ALFA_LocRec::~ALFA_LocRec
~ALFA_LocRec()
Definition: ALFA_LocRec.cxx:143
ALFA_LocRec::finalize
StatusCode finalize()
Definition: ALFA_LocRec.cxx:337
ALFA_LocRecEvent
Definition: ALFA_LocRecEvent.h:10
ALFA_LocRec::m_strKeyLocRecODEvCollection
std::string m_strKeyLocRecODEvCollection
Definition: ALFA_LocRec.h:94
GEOMETRYCONFIGURATION
Definition: ALFA_GeometryReader.h:196
ALFA_LocRecODEvCollection
Definition: ALFA_LocRecODEvCollection.h:13
ALFA_LocRec::m_fDistanceCutOD
Float_t m_fDistanceCutOD
Definition: ALFA_LocRec.h:73
AthAlgorithm.h
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:122
_USERTRANSFORM::vecTranslation
CLHEP::Hep3Vector vecTranslation
Definition: ALFA_DetectorTool.h:22
ALFA_LocRec::m_vecListAlgoMD
std::vector< std::string > m_vecListAlgoMD
Definition: ALFA_LocRec.h:89
ALFA_LocRec::m_strCollectionName
std::string m_strCollectionName
Definition: ALFA_LocRec.h:95
ALFA_LocRec::ReadGeometryDetCS
bool ReadGeometryDetCS()
Definition: ALFA_LocRec.cxx:421
ALFA_LocRec::m_pLocRecEvent
ALFA_LocRecEvent * m_pLocRecEvent
Definition: ALFA_LocRec.h:54
ALFA_LocRec::ExecuteRecoMethod
StatusCode ExecuteRecoMethod(const std::string &strAlgo, const eRPotName eRPName, const std::list< MDHIT > &ListMDHits, const std::list< ODHIT > &ListODHits)
Definition: ALFA_LocRec.cxx:677
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ALFA_LocRec::m_iUVCutMD
Int_t m_iUVCutMD
Definition: ALFA_LocRec.h:69
ALFA_LocRec::ALFACollectionReading
StatusCode ALFACollectionReading(std::list< MDHIT > &ListMDHits, std::list< ODHIT > &ListODHits)
Definition: ALFA_LocRec.cxx:361
ALFA_LocRec::m_pGeometryReader
ALFA_GeometryReader * m_pGeometryReader
Definition: ALFA_LocRec.h:51
ALFA_LocRec::m_iEvent
Int_t m_iEvent
Definition: ALFA_LocRec.h:66
ODSIDESCNT
#define ODSIDESCNT
Definition: ALFA_constants.h:16
ALFA_LocRecODEvent
Definition: ALFA_LocRecODEvent.h:10
ALFALAYERSCNT
#define ALFALAYERSCNT
Definition: ALFA_constants.h:8
AthAlgorithm
Definition: AthAlgorithm.h:47
_USERTRANSFORM::iRPot
Int_t iRPot
Definition: ALFA_LocRec.h:27
ALFA_LocRec::m_eventNum
UInt_t m_eventNum
Definition: ALFA_LocRec.h:64
ALFA_LocRecEvCollection
Definition: ALFA_LocRecEvCollection.h:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ALFA_LocRec::m_vecListAlgoOD
std::vector< std::string > m_vecListAlgoOD
Definition: ALFA_LocRec.h:90
ALFA_LocRec::m_iNumLayerCutMD
Int_t m_iNumLayerCutMD
Definition: ALFA_LocRec.h:68
ALFA_LocRec::m_faOD
Float_t m_faOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition: ALFA_LocRec.h:84
ALFA_LocRec::ALFA_LocRec
ALFA_LocRec(const std::string &name, ISvcLocator *pSvcLocator)
Definition: ALFA_LocRec.cxx:24
EventInfo.h
ALFA_LocRec::m_strAlgoMD
std::string m_strAlgoMD
Definition: ALFA_LocRec.h:92
ALFA_LocRec::m_pLocRecEvCollection
ALFA_LocRecEvCollection * m_pLocRecEvCollection
Definition: ALFA_LocRec.h:53
ALFA_LocRec
Definition: ALFA_LocRec.h:44
ALFA_GeometryReader
Definition: ALFA_GeometryReader.h:215
ALFA_LocRec::m_fbMD
Float_t m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_LocRec.h:80
ODPLATESCNT
#define ODPLATESCNT
Definition: ALFA_CLinkAlg.h:31
ALFA_UserObjects.h
ODFIBERSCNT
#define ODFIBERSCNT
Definition: ALFA_CLinkAlg.h:32
_USERTRANSFORM
Definition: ALFA_DetectorTool.h:18
ALFA_LocRec::m_iUVCutMDHalfReco
Int_t m_iUVCutMDHalfReco
Definition: ALFA_LocRec.h:70
ALFA_LocRec::execute
StatusCode execute()
Definition: ALFA_LocRec.cxx:211
ALFA_LocRec::ClearGeometry
void ClearGeometry()
Definition: ALFA_LocRec.cxx:347
ALFA_LocRec::m_faMD
Float_t m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition: ALFA_LocRec.h:79
PUSERTRANSFORM
struct _USERTRANSFORM * PUSERTRANSFORM
ALFA_LocRec::m_fOverlapCutMD
Float_t m_fOverlapCutMD
Definition: ALFA_LocRec.h:72
ALFAPLATESCNT
#define ALFAPLATESCNT
Definition: ALFA_constants.h:9
ALFA_LocRec::RecordCollection
StatusCode RecordCollection()
Definition: ALFA_LocRec.cxx:1018
ALFA_LocRec::m_iMultiplicityCutMD
Int_t m_iMultiplicityCutMD
Definition: ALFA_LocRec.h:67
ALFA_LocRec::m_fzOD
Float_t m_fzOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition: ALFA_LocRec.h:86
ALFA_LocRec::m_iDataType
Int_t m_iDataType
Definition: ALFA_LocRec.h:65