ATLAS Offline Software
Loading...
Searching...
No Matches
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
24
25typedef 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
41class StoreGateSvc;
42
44{
45 public:
46 ALFA_LocRec(const std::string& name, ISvcLocator* pSvcLocator);
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;
97
98 public:
99 StatusCode initialize();
100 StatusCode execute();
101 StatusCode finalize();
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
111 StatusCode RecordCollection();
112 StatusCode RecordODCollection();
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
#define ODLAYERSCNT
#define RPOTSCNT
#define ODPLATESCNT
#define ODFIBERSCNT
struct _USERTRANSFORM USERTRANSFORM
struct _USERTRANSFORM * PUSERTRANSFORM
#define ALFALAYERSCNT
#define ALFAPLATESCNT
#define ALFAFIBERSCNT
#define ODSIDESCNT
Property holding a SG store/key/clid from which a ReadHandle is made.
Bool_t m_bEdgeMethod_Opt_Sisters
Definition ALFA_LocRec.h:75
std::string m_strODCollectionName
Definition ALFA_LocRec.h:96
std::vector< std::string > m_vecListAlgoMD
Definition ALFA_LocRec.h:89
Float_t m_fbOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:85
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition ALFA_LocRec.h:59
ALFA_LocRecEvent * m_pLocRecEvent
Definition ALFA_LocRec.h:54
StatusCode execute()
ALFA_LocRecODEvent * m_pLocRecODEvent
Definition ALFA_LocRec.h:57
std::string m_strAlgoMD
Definition ALFA_LocRec.h:92
StatusCode ExecuteRecoMethod(const std::string &strAlgo, const eRPotName eRPName, const std::list< MDHIT > &ListMDHits, const std::list< ODHIT > &ListODHits)
Float_t m_fDistanceCutOD
Definition ALFA_LocRec.h:73
StatusCode ALFACollectionReading(std::list< MDHIT > &ListMDHits, std::list< ODHIT > &ListODHits)
Float_t m_faOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:84
Int_t m_iEvent
Definition ALFA_LocRec.h:66
Int_t m_iMultiplicityCutOD
Definition ALFA_LocRec.h:71
ALFA_LocRecODEvCollection * m_pLocRecODEvCollection
Definition ALFA_LocRec.h:56
Float_t m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:79
ALFA_LocRec(const std::string &name, ISvcLocator *pSvcLocator)
Float_t m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:80
std::string m_strCollectionName
Definition ALFA_LocRec.h:95
Int_t m_iUVCutMDHalfReco
Definition ALFA_LocRec.h:70
std::string m_strKeyGeometryForReco
Definition ALFA_LocRec.h:88
Float_t m_fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:81
std::string m_strKeyLocRecODEvCollection
Definition ALFA_LocRec.h:94
StatusCode RecordODCollection()
Int_t m_iDataType
Definition ALFA_LocRec.h:65
Float_t m_iLayerCutOD
Definition ALFA_LocRec.h:74
Float_t m_fzOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:86
StatusCode RecordCollection()
std::string m_strAlgoOD
Definition ALFA_LocRec.h:91
void SaveGeometry()
bool StoreReconstructionGeometry(const eRPotName eRPName, const eFiberType eFType, const char *szDataDestination)
GEOMETRYCONFIGURATION m_Config
Definition ALFA_LocRec.h:50
Bool_t m_bEdgeMethod_Opt_UseGaps
Definition ALFA_LocRec.h:76
void ClearGeometry()
StatusCode initialize()
ALFA_LocRecEvCollection * m_pLocRecEvCollection
Definition ALFA_LocRec.h:53
ALFA_GeometryReader * m_pGeometryReader
Definition ALFA_LocRec.h:51
Int_t m_iMultiplicityCutMD
Definition ALFA_LocRec.h:67
Int_t m_iUVCutMD
Definition ALFA_LocRec.h:69
Float_t m_fOverlapCutMD
Definition ALFA_LocRec.h:72
bool ReadGeometryDetCS()
std::list< eRPotName > m_ListExistingRPots
Definition ALFA_LocRec.h:62
StatusCode finalize()
UInt_t m_eventNum
Definition ALFA_LocRec.h:64
Int_t m_iNumLayerCutMD
Definition ALFA_LocRec.h:68
std::vector< std::string > m_vecListAlgoOD
Definition ALFA_LocRec.h:90
std::string m_strKeyLocRecEvCollection
Definition ALFA_LocRec.h:93
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Property holding a SG store/key/clid from which a ReadHandle is made.
The Athena Transient Store API.
CLHEP::Hep3Vector vecTranslation
CLHEP::Hep3Vector vecRotation