ATLAS Offline Software
Loading...
Searching...
No Matches
ALFA_LocRec Class Reference

#include <ALFA_LocRec.h>

Inheritance diagram for ALFA_LocRec:

Public Member Functions

 ALFA_LocRec (const std::string &name, ISvcLocator *pSvcLocator)
 ~ALFA_LocRec ()
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool ReadGeometryDetCS ()
bool StoreReconstructionGeometry (const eRPotName eRPName, const eFiberType eFType, const char *szDataDestination)
void SaveGeometry ()
void ClearGeometry ()
StatusCode ALFACollectionReading (std::list< MDHIT > &ListMDHits, std::list< ODHIT > &ListODHits)
StatusCode RecordCollection ()
StatusCode RecordODCollection ()
StatusCode ExecuteRecoMethod (const std::string &strAlgo, const eRPotName eRPName, const std::list< MDHIT > &ListMDHits, const std::list< ODHIT > &ListODHits)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

GEOMETRYCONFIGURATION m_Config
ALFA_GeometryReaderm_pGeometryReader
ALFA_LocRecEvCollectionm_pLocRecEvCollection
ALFA_LocRecEventm_pLocRecEvent
ALFA_LocRecODEvCollectionm_pLocRecODEvCollection
ALFA_LocRecODEventm_pLocRecODEvent
SG::ReadHandleKey< xAOD::EventInfom_eventInfoKey {this, "EvtInfo", "EventInfo", "EventInfo name"}
std::list< eRPotNamem_ListExistingRPots
UInt_t m_eventNum
Int_t m_iDataType
Int_t m_iEvent
Int_t m_iMultiplicityCutMD
Int_t m_iNumLayerCutMD
Int_t m_iUVCutMD
Int_t m_iUVCutMDHalfReco
Int_t m_iMultiplicityCutOD
Float_t m_fOverlapCutMD
Float_t m_fDistanceCutOD
Float_t m_iLayerCutOD
Bool_t m_bEdgeMethod_Opt_Sisters
Bool_t m_bEdgeMethod_Opt_UseGaps
Float_t m_faMD [RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Float_t m_fbMD [RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Float_t m_fzMD [RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Float_t m_faOD [RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Float_t m_fbOD [RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Float_t m_fzOD [RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
std::string m_strKeyGeometryForReco
std::vector< std::string > m_vecListAlgoMD
std::vector< std::string > m_vecListAlgoOD
std::string m_strAlgoOD
std::string m_strAlgoMD
std::string m_strKeyLocRecEvCollection
std::string m_strKeyLocRecODEvCollection
std::string m_strCollectionName
std::string m_strODCollectionName
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 43 of file ALFA_LocRec.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ALFA_LocRec()

ALFA_LocRec::ALFA_LocRec ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 24 of file ALFA_LocRec.cxx.

24 :
25 AthAlgorithm(name, pSvcLocator)
26{
27 ATH_MSG_DEBUG("begin ALFA_LocRec::ALFA_LocRec");
28
29 m_pGeometryReader = new ALFA_GeometryReader();
30
31// m_Config.eOwner=EOT_RECO;
32 m_Config.clear();
33
34 //begin of Geometry properties
35 declareProperty("MetrologyType",m_Config.eRPMetrologyGeoType=EMT_NOMINAL);//EGST_FILE
36 declareProperty("MetrologySource",m_Config.strRPMetrologyConnString=std::string(""));//"rpmetrology.dat"
37 declareProperty("ShiftToX97Pos",m_Config.bShiftToX97Pos=false);
38
39 declareProperty("B7L1U_PosType",m_Config.CfgRPosParams[0].eRPPosType=ERPPT_ACTIVE);
40 declareProperty("B7L1U_MDGeometryType",m_Config.CfgRPosParams[0].eMDGeoType=EGST_IDEALGEOMETRY);
41 declareProperty("B7L1U_ODGeometryType",m_Config.CfgRPosParams[0].eODGeoType=EGST_IDEALGEOMETRY);
42 declareProperty("B7L1U_MDSource",m_Config.CfgRPosParams[0].strMDConnString=std::string(""));
43 declareProperty("B7L1U_ODSource",m_Config.CfgRPosParams[0].strODConnString=std::string(""));
44// declareProperty("B7L1U_CurrentLVDT",m_Config.CfgRPosParams[0].fCurrentLVDTmm=7.0*CLHEP::mm);
45
46 declareProperty("B7L1L_PosType",m_Config.CfgRPosParams[1].eRPPosType=ERPPT_ACTIVE);
47 declareProperty("B7L1L_MDGeometryType",m_Config.CfgRPosParams[1].eMDGeoType=EGST_IDEALGEOMETRY);
48 declareProperty("B7L1L_ODGeometryType",m_Config.CfgRPosParams[1].eODGeoType=EGST_IDEALGEOMETRY);
49 declareProperty("B7L1L_MDSource",m_Config.CfgRPosParams[1].strMDConnString=std::string(""));
50 declareProperty("B7L1L_ODSource",m_Config.CfgRPosParams[1].strODConnString=std::string(""));
51// declareProperty("B7L1L_CurrentLVDT",m_Config.CfgRPosParams[1].fCurrentLVDTmm=7.0*CLHEP::mm);
52
53 declareProperty("A7L1U_PosType",m_Config.CfgRPosParams[2].eRPPosType=ERPPT_ACTIVE);
54 declareProperty("A7L1U_MDGeometryType",m_Config.CfgRPosParams[2].eMDGeoType=EGST_IDEALGEOMETRY);
55 declareProperty("A7L1U_ODGeometryType",m_Config.CfgRPosParams[2].eODGeoType=EGST_IDEALGEOMETRY);
56 declareProperty("A7L1U_MDSource",m_Config.CfgRPosParams[2].strMDConnString=std::string(""));
57 declareProperty("A7L1U_ODSource",m_Config.CfgRPosParams[2].strODConnString=std::string(""));
58// declareProperty("A7L1U_CurrentLVDT",m_Config.CfgRPosParams[2].fCurrentLVDTmm=7.0*CLHEP::mm);
59
60 declareProperty("A7L1L_PosType",m_Config.CfgRPosParams[3].eRPPosType=ERPPT_ACTIVE);
61 declareProperty("A7L1L_MDGeometryType",m_Config.CfgRPosParams[3].eMDGeoType=EGST_IDEALGEOMETRY);
62 declareProperty("A7L1L_ODGeometryType",m_Config.CfgRPosParams[3].eODGeoType=EGST_IDEALGEOMETRY);
63 declareProperty("A7L1L_MDSource",m_Config.CfgRPosParams[3].strMDConnString=std::string(""));
64 declareProperty("A7L1L_ODSource",m_Config.CfgRPosParams[3].strODConnString=std::string(""));
65// declareProperty("A7L1L_CurrentLVDT",m_Config.CfgRPosParams[3].fCurrentLVDTmm=7.0*CLHEP::mm);
66
67 declareProperty("A7R1U_PosType",m_Config.CfgRPosParams[4].eRPPosType=ERPPT_ACTIVE);
68 declareProperty("A7R1U_MDGeometryType",m_Config.CfgRPosParams[4].eMDGeoType=EGST_IDEALGEOMETRY);
69 declareProperty("A7R1U_ODGeometryType",m_Config.CfgRPosParams[4].eODGeoType=EGST_IDEALGEOMETRY);
70 declareProperty("A7R1U_MDSource",m_Config.CfgRPosParams[4].strMDConnString=std::string(""));
71 declareProperty("A7R1U_ODSource",m_Config.CfgRPosParams[4].strODConnString=std::string(""));
72// declareProperty("A7R1U_CurrentLVDT",m_Config.CfgRPosParams[4].fCurrentLVDTmm=7.0*CLHEP::mm);
73
74 declareProperty("A7R1L_PosType",m_Config.CfgRPosParams[5].eRPPosType=ERPPT_ACTIVE);
75 declareProperty("A7R1L_MDGeometryType",m_Config.CfgRPosParams[5].eMDGeoType=EGST_IDEALGEOMETRY);
76 declareProperty("A7R1L_ODGeometryType",m_Config.CfgRPosParams[5].eODGeoType=EGST_IDEALGEOMETRY);
77 declareProperty("A7R1L_MDSource",m_Config.CfgRPosParams[5].strMDConnString=std::string(""));
78 declareProperty("A7R1L_ODSource",m_Config.CfgRPosParams[5].strODConnString=std::string(""));
79// declareProperty("A7L1U_CurrentLVDT",m_Config.CfgRPosParams[5].fCurrentLVDTmm=7.0*CLHEP::mm);
80
81 declareProperty("B7R1U_PosType",m_Config.CfgRPosParams[6].eRPPosType=ERPPT_ACTIVE);
82 declareProperty("B7R1U_MDGeometryType",m_Config.CfgRPosParams[6].eMDGeoType=EGST_IDEALGEOMETRY);
83 declareProperty("B7R1U_ODGeometryType",m_Config.CfgRPosParams[6].eODGeoType=EGST_IDEALGEOMETRY);
84 declareProperty("B7R1U_MDSource",m_Config.CfgRPosParams[6].strMDConnString=std::string(""));
85 declareProperty("B7R1U_ODSource",m_Config.CfgRPosParams[6].strODConnString=std::string(""));
86// declareProperty("B7R1U_CurrentLVDT",m_Config.CfgRPosParams[6].fCurrentLVDTmm=7.0*CLHEP::mm);
87
88 declareProperty("B7R1L_PosType",m_Config.CfgRPosParams[7].eRPPosType=ERPPT_ACTIVE);
89 declareProperty("B7R1L_MDGeometryType",m_Config.CfgRPosParams[7].eMDGeoType=EGST_IDEALGEOMETRY);
90 declareProperty("B7R1L_ODGeometryType",m_Config.CfgRPosParams[7].eODGeoType=EGST_IDEALGEOMETRY);
91 declareProperty("B7R1L_MDSource",m_Config.CfgRPosParams[7].strMDConnString=std::string(""));
92 declareProperty("B7R1L_ODSource",m_Config.CfgRPosParams[7].strODConnString=std::string(""));
93// declareProperty("B7R1L_CurrentLVDT",m_Config.CfgRPosParams[7].fCurrentLVDTmm=7.0*CLHEP::mm);
94 //end of Geometry properties
95
96 // data type using in the local reconstruction
97 // for the simulation data the value is 0, for the real data the value is 1. Unset value is -1
98 declareProperty("DataType", m_iDataType=1, "data type using in the local reconstruction");
99
100 //reconstruction methods properties - MDTracking, MDMultiple, ODTracking
101 declareProperty("MultiplicityCutOD", m_iMultiplicityCutOD=30);
102 declareProperty("DistanceCutOD", m_fDistanceCutOD=0.5);
103 declareProperty("LayerCutOD", m_iLayerCutOD=3);
104
105 declareProperty("OverlapCutMD", m_fOverlapCutMD=0.5);
106 declareProperty("MultiplicityCutMD", m_iMultiplicityCutMD=5);
107 declareProperty("NumLayerCutMD", m_iNumLayerCutMD=3);
108 declareProperty("UVCutMD", m_iUVCutMD=3);
109 declareProperty("UVCutMDHalfReco", m_iUVCutMDHalfReco=3);
110
111 //reconstruction methods properties - EdgeMethod
112 declareProperty("EdgeMethod_Opt_Sisters", m_bEdgeMethod_Opt_Sisters = false);
113 declareProperty("EdgeMethod_Opt_UseGaps", m_bEdgeMethod_Opt_UseGaps = false);
114
115 //reconstruction method selection for OD & MD
116 declareProperty("AlgoOD", m_strAlgoOD="ODTracking");
117 declareProperty("AlgoMD", m_strAlgoMD="MDTracking");
118
119 m_vecListAlgoMD.clear();
120 declareProperty("ListAlgoMD", m_vecListAlgoMD);
121 m_vecListAlgoOD.clear();
122 declareProperty("ListAlgoOD", m_vecListAlgoOD);
123
124 m_ListExistingRPots.clear();
125
126 m_strKeyGeometryForReco = "ALFA_GeometryForReco";
127 m_strCollectionName = "ALFA_DigitCollection";
128 m_strODCollectionName = "ALFA_ODDigitCollection";
129 m_strKeyLocRecEvCollection = "ALFA_LocRecEvCollection";
130 m_strKeyLocRecODEvCollection = "ALFA_LocRecODEvCollection";
131
133 m_pLocRecEvent = NULL;
135 m_pLocRecODEvent = NULL;
136
137 m_eventNum = 0;
138 m_iEvent = 0;
139
140 ATH_MSG_DEBUG("end ALFA_LocRec::ALFA_LocRec");
141}
@ ERPPT_ACTIVE
@ EGST_IDEALGEOMETRY
@ EMT_NOMINAL
#define ATH_MSG_DEBUG(x)
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
ALFA_LocRecEvent * m_pLocRecEvent
Definition ALFA_LocRec.h:54
ALFA_LocRecODEvent * m_pLocRecODEvent
Definition ALFA_LocRec.h:57
std::string m_strAlgoMD
Definition ALFA_LocRec.h:92
Float_t m_fDistanceCutOD
Definition ALFA_LocRec.h:73
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
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
std::string m_strKeyLocRecODEvCollection
Definition ALFA_LocRec.h:94
Int_t m_iDataType
Definition ALFA_LocRec.h:65
Float_t m_iLayerCutOD
Definition ALFA_LocRec.h:74
std::string m_strAlgoOD
Definition ALFA_LocRec.h:91
GEOMETRYCONFIGURATION m_Config
Definition ALFA_LocRec.h:50
Bool_t m_bEdgeMethod_Opt_UseGaps
Definition ALFA_LocRec.h:76
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
std::list< eRPotName > m_ListExistingRPots
Definition ALFA_LocRec.h:62
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()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ ~ALFA_LocRec()

ALFA_LocRec::~ALFA_LocRec ( )

Definition at line 143 of file ALFA_LocRec.cxx.

144{
145 ATH_MSG_DEBUG("begin ALFA_LocRec::~ALFA_LocRec");
146
147// if(m_pGeometryReader!=NULL)
148// {
149// delete m_pGeometryReader;
150// m_pGeometryReader = NULL;
151// }
152
153 ATH_MSG_DEBUG("begin ALFA_LocRec::~ALFA_LocRec");
154}

Member Function Documentation

◆ ALFACollectionReading()

StatusCode ALFA_LocRec::ALFACollectionReading ( std::list< MDHIT > & ListMDHits,
std::list< ODHIT > & ListODHits )
private

Definition at line 361 of file ALFA_LocRec.cxx.

362{
364
365 ATH_MSG_DEBUG("begin ALFA_LocRec::ALFACollectionReading()");
366
367 ODHIT ODHit;
368 MDHIT MDHit;
369
370 ListMDHits.clear();
371 ListODHits.clear();
372
373 const ALFA_DigitCollection* mcGen = 0;
374 const ALFA_ODDigitCollection* mcODGen = 0;
375
376 sc = evtStore()->retrieve(mcGen,m_strCollectionName);
377 if(sc.isFailure() || !mcGen)
378 {
379 return StatusCode::FAILURE;
380 }
381
383 ALFA_DigitCollection::const_iterator mcGenEnd = mcGen->end();
384
385 for(;mcGenBeg!=mcGenEnd;++mcGenBeg)
386 {
387 MDHit.iEvent = m_eventNum;
388
389 MDHit.iRPot = ((*mcGenBeg)->getStation());
390 MDHit.iPlate = ((*mcGenBeg)->getPlate());
391 MDHit.iFiber = ((*mcGenBeg)->getFiber());
392
393 ListMDHits.push_back(MDHit);
394 }
395
396 sc = evtStore()->retrieve(mcODGen,m_strODCollectionName);
397 if(sc.isFailure() || !mcODGen)
398 {
399 return StatusCode::FAILURE;
400 }
401
402 ALFA_ODDigitCollection::const_iterator mcODGenBeg = mcODGen->begin();
403 ALFA_ODDigitCollection::const_iterator mcODGenEnd = mcODGen->end();
404
405 for(;mcODGenBeg!=mcODGenEnd;++mcODGenBeg)
406 {
407 ODHit.iEvent = m_eventNum;
408 ODHit.iRPot = ((*mcODGenBeg)->getStation());
409 ODHit.iPlate = ((*mcODGenBeg)->getPlate());
410 ODHit.iSide = ((*mcODGenBeg)->getSide());
411 ODHit.iFiber = ((*mcODGenBeg)->getFiber());
412
413 ListODHits.push_back(ODHit);
414 }
415
416 ATH_MSG_DEBUG("end ALFA_LocRec::ALFACollectionReading()");
417
418 return StatusCode::SUCCESS;
419}
struct _MDHIT MDHIT
struct _ODHIT ODHIT
static Double_t sc
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ ClearGeometry()

void ALFA_LocRec::ClearGeometry ( )
private

Definition at line 347 of file ALFA_LocRec.cxx.

348{
349 ATH_MSG_DEBUG("begin ALFA_LocRec::ClearGeometry()");
350
351 memset(&m_faMD, 0, sizeof(m_faMD));
352 memset(&m_fbMD, 0, sizeof(m_fbMD));
353 memset(&m_fzMD, 0, sizeof(m_fzMD));
354 memset(&m_faOD, 0, sizeof(m_faOD));
355 memset(&m_fbOD, 0, sizeof(m_fbOD));
356 memset(&m_fzOD, 0, sizeof(m_fzOD));
357
358 ATH_MSG_DEBUG("end ALFA_LocRec::ClearGeometry()");
359}
Float_t m_fbOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:85
Float_t m_faOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:84
Float_t m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:79
Float_t m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:80
Float_t m_fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
Definition ALFA_LocRec.h:81
Float_t m_fzOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
Definition ALFA_LocRec.h:86

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode ALFA_LocRec::execute ( )

Definition at line 211 of file ALFA_LocRec.cxx.

212{
213 ATH_MSG_DEBUG("begin ALFA_LocRec::execute()");
214
216 std::list<eRPotName>::const_iterator iterRPName;
217 eRPotName eRPName;
218
219 std::list<MDHIT> ListMDHits;
220 std::list<ODHIT> ListODHits;
221 ListMDHits.clear();
222 ListODHits.clear();
223
224 m_eventNum = 0;
225 SG::ReadHandle<xAOD::EventInfo> eventInfo (m_eventInfoKey,getContext());
226 if(!eventInfo.isValid()) {
227 ATH_MSG_ERROR("ALFA_LocRec, Cannot get event info.");
228// return sc;
229 }
230 else
231 {
232 // current event number
233 m_eventNum = eventInfo->eventNumber();
234 }
235
236 //************************************************************
237// if (m_eventNum!=73681035) return StatusCode::SUCCESS;
238 //************************************************************
239
241 if (sc.isFailure())
242 {
243 ATH_MSG_ERROR("RecordCollection() failed");
244 return StatusCode::SUCCESS;
245 }
246
248 if (sc.isFailure())
249 {
250 ATH_MSG_ERROR("RecordODCollection() failed");
251 return StatusCode::SUCCESS;
252 }
253
254 sc = ALFACollectionReading(ListMDHits, ListODHits);
255 if (sc.isFailure())
256 {
257 ATH_MSG_WARNING("ALFA_Collection_Reading Failed");
258// return StatusCode::SUCCESS;
259 }
260 else
261 {
262 std::string strAlgoMD;
263 for(auto & i : m_vecListAlgoMD)
264 {
265 strAlgoMD = i;
266 for(iterRPName=m_ListExistingRPots.begin();iterRPName!=m_ListExistingRPots.end();++iterRPName)
267 {
268 eRPName = *iterRPName;
269
270// cout << "eRPName = " << eRPName << endl;
271 //execute MD algorithm
272 sc = ExecuteRecoMethod(strAlgoMD, eRPName, ListMDHits, ListODHits);
273 if (sc.isFailure())
274 {
275 ATH_MSG_FATAL("Algorithm " << strAlgoMD << " for the pot " << m_pGeometryReader->GetRPotLabel(eRPName) << " failure!");
276 return sc;
277 }
278 }
279 }
280
281 std::string strAlgoOD;
282 for(auto & i : m_vecListAlgoOD)
283 {
284 strAlgoOD = i;
285 for(iterRPName=m_ListExistingRPots.begin();iterRPName!=m_ListExistingRPots.end();++iterRPName)
286 {
287 eRPName = *iterRPName;
288
289 // cout << "eRPName = " << eRPName << endl;
290 //execute OD algorithm
291 sc = ExecuteRecoMethod(strAlgoOD, eRPName, ListMDHits, ListODHits);
292 if (sc.isFailure())
293 {
294 ATH_MSG_FATAL("Algorithm " << strAlgoOD << " for the pot " << m_pGeometryReader->GetRPotLabel(eRPName) << " failure!");
295 return sc;
296 }
297 }
298 }
299
300
301
302
303// // local reconstruction process for all existing pots, MD & OD
304// for(iterRPName=m_ListExistingRPots.begin();iterRPName!=m_ListExistingRPots.end();iterRPName++)
305// {
306// eRPName = *iterRPName;
307
308// //execute MD reconstruction method
309// if (!m_strAlgoMD.empty())
310// {
311// sc = ExecuteRecoMethod(m_strAlgoMD, eRPName, ListMDHits, ListODHits);
312// if (sc.isFailure())
313// {
314// ATH_MSG_ERROR("Algorithm " << m_strAlgoMD << " for pot " << m_pGeometryReader->GetRPotLabel(eRPName) << " failure!");
315// // return sc;
316// }
317// }
318
319// //execute OD reconstruction method
320// if (!m_strAlgoOD.empty())
321// {
322// sc = ExecuteRecoMethod(m_strAlgoOD, eRPName, ListMDHits, ListODHits);
323// if (sc.isFailure())
324// {
325// ATH_MSG_ERROR("Algorithm " << m_strAlgoOD << " for pot " << m_pGeometryReader->GetRPotLabel(eRPName) << " failure!");
326// // return sc;
327// }
328// }
329// }
330 }
331
332 m_iEvent++;
333 ATH_MSG_DEBUG("end ALFA_LocRec::execute()");
334 return StatusCode::SUCCESS;
335}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_FATAL(x)
#define ATH_MSG_WARNING(x)
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition ALFA_LocRec.h:59
StatusCode ExecuteRecoMethod(const std::string &strAlgo, const eRPotName eRPName, const std::list< MDHIT > &ListMDHits, const std::list< ODHIT > &ListODHits)
StatusCode ALFACollectionReading(std::list< MDHIT > &ListMDHits, std::list< ODHIT > &ListODHits)
StatusCode RecordODCollection()
StatusCode RecordCollection()

◆ ExecuteRecoMethod()

StatusCode ALFA_LocRec::ExecuteRecoMethod ( const std::string & strAlgo,
const eRPotName eRPName,
const std::list< MDHIT > & ListMDHits,
const std::list< ODHIT > & ListODHits )
private

Definition at line 677 of file ALFA_LocRec.cxx.

678{
679 ATH_MSG_DEBUG("begin ALFA_LocRec::ExecuteRecoMethod()");
680
681 StatusCode sc = StatusCode::SUCCESS;
682 ODRESULT ODResults;
683 std::list<ODRESULT> listODResults;
684 listODResults.clear();
685 Float_t fRecPosX = -9999.0;
686 Float_t fRecPosY = -9999.0;
687
688 std::map<string, int> mapRecoMethods;
689 mapRecoMethods.clear();
690 mapRecoMethods.insert(std::pair<string, int>("ODTracking", 1));
691 mapRecoMethods.insert(std::pair<string, int>("MDTracking", 2));
692 mapRecoMethods.insert(std::pair<string, int>("MDOverlap", 3));
693 mapRecoMethods.insert(std::pair<string, int>("CenterGravity", 4));
694 mapRecoMethods.insert(std::pair<string, int>("MDMultiple", 5));
695 mapRecoMethods.insert(std::pair<string, int>("HalfReco", 6));
696 mapRecoMethods.insert(std::pair<string, int>("MDGap", 7));
697 mapRecoMethods.insert(std::pair<string, int>("EdgeMethod", 8));
698
699 std::vector<int> vecFibSel;
700 vecFibSel.clear();
701
702 switch(mapRecoMethods[strAlgo])
703 {
704 case 1:
705 {
706 ALFA_ODTracking* pODTracking = new ALFA_ODTracking();
707
709 sc = pODTracking->Execute(eRPName-1, ListODHits, m_faOD, m_fbOD);
710 sc = pODTracking->Finalize(&listODResults);
711
712 std::list<ODRESULT>::const_iterator iter;
713 for(iter=listODResults.begin(); iter!=listODResults.end(); ++iter)
714 {
715 ODResults.iSide = (*iter).iSide;
716 ODResults.fRecPos = (*iter).fRecPos;
717 ODResults.fOverY = (*iter).fOverY;
718 ODResults.iNumY = (*iter).iNumY;
719
720 if ((ODResults.fRecPos != -9999.0))
721 {
722 Int_t iFibSel[ODSIDESCNT][ODPLATESCNT];
723 std::fill_n(&iFibSel[0][0], sizeof(iFibSel)/sizeof(Int_t), -9999);
724
725 pODTracking->GetData(iFibSel);
726 vecFibSel.clear();
727 for (int iPlate=0; iPlate<ODPLATESCNT; iPlate++)
728 {
729 vecFibSel.push_back(iFibSel[ODResults.iSide][iPlate]);
730 }
731
732 m_pLocRecODEvCollection->push_back(new ALFA_LocRecODEvent(1, eRPName-1, ODResults.iSide, ODResults.fRecPos, ODResults.fOverY, ODResults.iNumY, vecFibSel));
733 }
734 }
735
736 delete pODTracking;
737 break;
738 }
739 case 2:
740 {
741 ALFA_MDTracking* pMDTracking = new ALFA_MDTracking();
743 sc = pMDTracking->Execute(eRPName-1, ListMDHits);
744 sc = pMDTracking->Finalize(fRecPosX, fRecPosY);
745
746 if (fRecPosX!=-9999.0 && fRecPosY!=-9999.0)
747 {
748 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
749 Int_t iNumU = 0, iNumV = 0;
750 Float_t fOverlapU = -9999.0, fOverlapV = -9999.0;
751 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
752
753 pMDTracking->GetData(iNumU, iNumV, fOverlapU, fOverlapV, iFibSel);
754 vecFibSel.clear();
755 for (int & iLayer : iFibSel)
756 {
757 vecFibSel.push_back(iLayer);
758 }
759
760 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(2, eRPName-1, fRecPosX, fRecPosY, fOverlapU, fOverlapV, iNumU, iNumV, std::move(vecFibSel)));
761 }
762
763 delete pMDTracking;
764 break;
765 }
766 case 3:
767 {
768 ALFA_MDOverlap* pMDOverlap = new ALFA_MDOverlap();
769
770 sc = pMDOverlap->Initialize(eRPName, ListMDHits, m_faMD, m_fbMD, m_fzMD);
771 sc = pMDOverlap->Execute();
772 sc = pMDOverlap->Finalize(fRecPosX, fRecPosY);
773
774 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
775 Int_t iNumU = 0, iNumV = 0;
776 Float_t fOverlapU = -9999.0, fOverlapV = -9999.0;
777 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
778
779 pMDOverlap->GetData(iFibSel);
780 if (fRecPosX!=-9999 && fRecPosY!=-9999)
781 {
782 vecFibSel.clear();
783 for (int & iLayer : iFibSel)
784 {
785 vecFibSel.push_back(iLayer);
786 }
787
788 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(3, eRPName-1, fRecPosX, fRecPosY, fOverlapU, fOverlapV, iNumU, iNumV, std::move(vecFibSel)));
789 }
790
791 delete pMDOverlap;
792 break;
793 }
794 case 4:
795 {
796 ALFA_CenterGravity* pCenterGravity = new ALFA_CenterGravity();
797
798 sc = pCenterGravity->Initialize(eRPName, ListMDHits, m_faMD, m_fbMD, m_fzMD);
799 sc = pCenterGravity->Execute();
800 sc = pCenterGravity->Finalize(fRecPosX, fRecPosY);
801
802 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
803 Int_t iNumU = 0, iNumV = 0;
804 Float_t fOverlapU = -9999.0, fOverlapV = -9999.0;
805 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
806
807 pCenterGravity->GetData(iFibSel);
808 if (fRecPosX!=-9999 && fRecPosY!=-9999)
809 {
810 vecFibSel.clear();
811 for (int & iLayer : iFibSel)
812 {
813 vecFibSel.push_back(iLayer);
814 }
815
816 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(4, eRPName-1, fRecPosX, fRecPosY, fOverlapU, fOverlapV, iNumU, iNumV, std::move(vecFibSel)));
817 }
818
819 delete pCenterGravity;
820 break;
821 }
822 case 5:
823 {
824 // MDMultiple algorihm ------------------------------------------------------
825 Float_t fRecPosX[NTRACK];
826 Float_t fRecPosY[NTRACK];
827 ALFA_MDMultiple* pMDMultiple = new ALFA_MDMultiple();
828
830 sc = pMDMultiple->Execute(ListMDHits);
831 sc = pMDMultiple->Finalize(fRecPosX, fRecPosY);
832
833 Int_t iNumU[NTRACK], iNumV[NTRACK], iFibSel[NTRACK][ALFALAYERSCNT*ALFAPLATESCNT];
834 Float_t fOverU[NTRACK], fOverV[NTRACK];
835 std::fill_n(&iFibSel[0][0], sizeof(iFibSel)/sizeof(Int_t), -9999);
836 std::fill_n(&fOverU[0], sizeof(fOverU)/sizeof(Float_t), -9999.0);
837 std::fill_n(&fOverV[0], sizeof(fOverV)/sizeof(Float_t), -9999.0);
838 memset(&iNumU, 0, sizeof(iNumU));
839 memset(&iNumV, 0, sizeof(iNumV));
840
841 pMDMultiple->GetData(iNumU, iNumV, fOverU, fOverV, iFibSel);
842 for (Int_t iTrack=0; iTrack<NTRACK; iTrack++)
843 {
844 if (fRecPosX[iTrack] != -9999.0 && fRecPosY[iTrack] != -9999.0)
845 {
846 vecFibSel.clear();
847 for (Int_t iLayer=0; iLayer<ALFALAYERSCNT*ALFAPLATESCNT; iLayer++)
848 {
849 vecFibSel.push_back(iFibSel[iTrack][iLayer]);
850 }
851
852 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(5, eRPName-1, fRecPosX[iTrack], fRecPosY[iTrack], fOverU[iTrack], fOverV[iTrack], iNumU[iTrack], iNumV[iTrack], vecFibSel));
853 }
854 }
855
856 delete pMDMultiple;
857 break;
858 }
859 case 6:
860 {
861 //TODO - cele prepracovat
862 ALFA_HalfReco* pHalfReco = new ALFA_HalfReco();
863
864 Int_t iNumU[2] = {0, 0};
865 Int_t iNumV[2] = {0, 0};
866 Int_t iHalfFirst=0;
867 Int_t iHalfSecond=1;
868 Float_t fOverlapU[2] = {-9999, -9999};
869 Float_t fOverlapV[2] = {-9999, -9999};
870 Float_t fRecPosX[2] = {-9999, -9999};
871 Float_t fRecPosY[2] = {-9999, -9999};
872
873 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
874 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
875
876 std::vector<int> vecFibSel0;
877 std::vector<int> vecFibSel1;
878 vecFibSel0.clear();
879 vecFibSel1.clear();
880
881 if (eRPName==1 || eRPName==3 || eRPName==6 || eRPName==8)
882 {
883 iHalfFirst = 0;
884 iHalfSecond = 1;
885 }
886 else
887 {
888 iHalfFirst = 1;
889 iHalfSecond = 0;
890 }
891
893 sc = pHalfReco->Execute(eRPName-1, ListMDHits);
894 sc = pHalfReco->Finalize(fRecPosX[0], fRecPosY[0]);
895
896 pHalfReco->GetData(iNumU[0], iNumV[0], fOverlapU[0], fOverlapV[0], iFibSel);
897 vecFibSel0.clear();
898 for (int & iLayer : iFibSel)
899 {
900 vecFibSel0.push_back(iLayer);
901 }
902
904 sc = pHalfReco->Execute(eRPName-1, ListMDHits);
905 sc = pHalfReco->Finalize(fRecPosX[1], fRecPosY[1]);
906
907 pHalfReco->GetData(iNumU[1], iNumV[1], fOverlapU[1], fOverlapV[1], iFibSel);
908 vecFibSel1.clear();
909 for (int & iLayer : iFibSel)
910 {
911 vecFibSel1.push_back(iLayer);
912 }
913
914 if (fRecPosX[0]!=-9999.0 && fRecPosY[0]!=-9999.0 && fRecPosX[1]!=-9999.0 && fRecPosY[1]!=-9999.0)
915 {
916 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(6, eRPName-1, fRecPosX[0], fRecPosY[0], fOverlapU[0], fOverlapV[0], iNumU[0], iNumV[0], std::move(vecFibSel0)));
917 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(6, eRPName-1, fRecPosX[1], fRecPosY[1], fOverlapU[1], fOverlapV[1], iNumU[1], iNumV[1], std::move(vecFibSel1)));
918 }
919
920 delete pHalfReco;
921 break;
922 }
923 case 7:
924 {
925 Float_t fRecPosX[NTRACK];
926 Float_t fRecPosY[NTRACK];
927 ALFA_MDGap* pMDGap = new ALFA_MDGap();
928
929 sc = pMDGap->Initialize(eRPName-1, m_faMD, m_fbMD, m_iUVCutMD, m_fOverlapCutMD);
930 sc = pMDGap->Execute(ListMDHits);
931 sc = pMDGap->Finalize(fRecPosX, fRecPosY);
932
933 Int_t iNumU[NTRACK], iNumV[NTRACK];
934 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
935 Float_t fOverU[NTRACK], fOverV[NTRACK];
936
937 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
938 std::fill_n(&fOverU[0], sizeof(fOverU)/sizeof(Float_t), -9999.0);
939 std::fill_n(&fOverV[0], sizeof(fOverV)/sizeof(Float_t), -9999.0);
940
941 pMDGap->GetData(iNumU, iNumV, fOverU, fOverV, iFibSel);
942 for (Int_t iTrack=0; iTrack<NTRACK; iTrack++)
943 {
944 if (fRecPosX[iTrack] != -9999.0 && fRecPosY[iTrack] != -9999.0)
945 {
946 vecFibSel.clear();
947 for (int & iLayer : iFibSel)
948 {
949 vecFibSel.push_back(iLayer);
950 }
951
952 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(7, eRPName-1, fRecPosX[iTrack], fRecPosY[iTrack], fOverU[iTrack], fOverV[iTrack], iNumU[iTrack], iNumV[iTrack], vecFibSel));
953 }
954 }
955
956 delete pMDGap;
957 break;
958 }
959 case 8:
960 {
961 Float_t fRecPosX[NTRACK];
962 Float_t fRecPosY[NTRACK];
963 ALFA_EdgeMethod* pEdgeMethod = new ALFA_EdgeMethod(m_bEdgeMethod_Opt_Sisters, m_bEdgeMethod_Opt_UseGaps);
964 pEdgeMethod->Initialize(eRPName-1, m_faMD, m_fbMD, ListMDHits);
965
966 Int_t iNumU[NTRACK], iNumV[NTRACK];
967 Int_t iFibSel[ALFALAYERSCNT*ALFAPLATESCNT];
968 Float_t fOverU[NTRACK], fOverV[NTRACK];
969
970 std::fill_n(&iFibSel[0], sizeof(iFibSel)/sizeof(Int_t), -9999);
971 std::fill_n(&fOverU[0], sizeof(fOverU)/sizeof(Float_t), -9999.0);
972 std::fill_n(&fOverV[0], sizeof(fOverV)/sizeof(Float_t), -9999.0);
973
974
975 std::vector<ALFA_EdgeMethod::Track> tracks;
976 pEdgeMethod->EdgeMethod(eRPName - 1, tracks);
977
978 for (UInt_t iTrack=0; iTrack<tracks.size(); iTrack++)
979 {
980 pEdgeMethod->selectedFibers(eRPName - 1, tracks.at(iTrack), iFibSel);
981
982 iNumU[iTrack] = tracks.at(iTrack).first.second;
983 iNumV[iTrack] = tracks.at(iTrack).second.second;
984 fOverU[iTrack] = tracks.at(iTrack).first.first.second;
985 fOverV[iTrack] = tracks.at(iTrack).second.first.second;
986 fRecPosX[iTrack] = 0.5*TMath::Sqrt2()*(-tracks.at(iTrack).first.first.first-tracks.at(iTrack).second.first.first);
987 fRecPosY[iTrack] = 0.5*TMath::Sqrt2()*(-tracks.at(iTrack).first.first.first+tracks.at(iTrack).second.first.first);
988
989 if (fRecPosX[iTrack] != -9999.0 && fRecPosY[iTrack] != -9999.0)
990 {
991 vecFibSel.clear();
992 for (int & iLayer : iFibSel)
993 {
994 vecFibSel.push_back(iLayer);
995 }
996
997 m_pLocRecEvCollection->push_back(new ALFA_LocRecEvent(8, eRPName-1, fRecPosX[iTrack], fRecPosY[iTrack], fOverU[iTrack], fOverV[iTrack], iNumU[iTrack], iNumV[iTrack], vecFibSel));
998 }
999 }
1000
1001 delete pEdgeMethod;
1002 sc = StatusCode::SUCCESS;
1003 break;
1004 }
1005 default:
1006 {
1007 ATH_MSG_ERROR("Unable to recognize selected algorithm");
1008 std::cout << "strAlgo: " << strAlgo << std::endl;
1009 return StatusCode::SUCCESS;
1010 }
1011 }
1012
1013 ATH_MSG_DEBUG("end ALFA_LocRec::ExecuteRecoMethod()");
1014
1015 return sc;
1016}
#define ODPLATESCNT
struct _ODRESULT ODRESULT
#define NTRACK
Definition ALFA_LocRec.h:36
#define ALFALAYERSCNT
#define ALFAPLATESCNT
#define ODSIDESCNT
void GetData(Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
StatusCode Initialize(const eRPotName &eRPName, const std::list< MDHIT > &ListMDHits, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT])
void selectedFibers(UInt_t no_Detector, Track &track, Int_t *selectedFib)
void Initialize(Int_t iRPot, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], const std::list< MDHIT > &ListMDHits)
Bool_t EdgeMethod(UInt_t no_Detector, std::vector< Track > &tracks)
StatusCode Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
StatusCode Execute(Int_t iRPot, const std::list< MDHIT > &ListMDHits)
StatusCode Initialize(Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iHalf, Int_t fMultiplicityCut, Int_t iUVCut, Float_t fOverlapCut)
void GetData(Int_t &iNumU, Int_t &iNumV, Float_t &fOvU, Float_t &fOvV, Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Finalize(Float_t(&fRecXPos)[MAXTRACKNUM], Float_t(&fRecYPos)[MAXTRACKNUM])
void GetData(Int_t(&iNumU)[MAXTRACKNUM], Int_t(&iNumV)[MAXTRACKNUM], Float_t(&fOvU)[MAXTRACKNUM], Float_t(&fOvV)[MAXTRACKNUM], Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Initialize(Int_t iRPot, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iUVCut, Float_t fOverlapCut)
StatusCode Execute(const std::list< MDHIT > &ListMDHits)
StatusCode Initialize(Int_t iRPot, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iMultiplicityCut, Int_t iNumLayerCut, Int_t iUVCut, Float_t fOverlapCut)
StatusCode Execute(const std::list< MDHIT > &ListMDHits)
StatusCode Finalize(Float_t(&fRecXPos)[MAXTRACKNUM], Float_t(&fRecYPos)[MAXTRACKNUM])
void GetData(Int_t(&iNumU)[MAXTRACKNUM], Int_t(&iNumV)[MAXTRACKNUM], Float_t(&fOvU)[MAXTRACKNUM], Float_t(&fOvV)[MAXTRACKNUM], Int_t(&iFibSel)[MAXTRACKNUM][ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Initialize(const eRPotName &eRPName, const std::list< MDHIT > &ListMDHits, Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT])
StatusCode Execute()
StatusCode Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
void GetData(Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Finalize(Float_t &fRecXPos, Float_t &fRecYPos)
StatusCode Execute(Int_t iRPot, const std::list< MDHIT > &ListMDHits)
void GetData(Int_t &NumU, Int_t &NumV, Float_t &OL_U, Float_t &OL_V, Int_t(&iFibSel)[ALFALAYERSCNT *ALFAPLATESCNT])
StatusCode Initialize(Float_t faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Float_t fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT], Int_t iMultiplicityCut, Int_t iUVCut, Float_t fOverlapCut)
void GetData(Int_t(&iFibSel)[ODSIDESCNT][ODPLATESCNT])
StatusCode Finalize(std::list< ODRESULT > *pListResults)
StatusCode Execute(Int_t iRPot, const std::list< ODHIT > &ListODHits, Float_t faOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT], Float_t fbOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT])
StatusCode Initialize(Int_t fMultiplicityCut, Float_t fDistanceCut, Int_t iLayerCut, Int_t iDataType)
bool first
Definition DeMoScan.py:534

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode ALFA_LocRec::finalize ( )

Definition at line 337 of file ALFA_LocRec.cxx.

338{
339 ATH_MSG_DEBUG("begin ALFA_LocRec::finalize()");
340
341
342
343 ATH_MSG_DEBUG("end ALFA_LocRec::finalize()");
344 return StatusCode::SUCCESS;
345}

◆ initialize()

StatusCode ALFA_LocRec::initialize ( )

Definition at line 156 of file ALFA_LocRec.cxx.

157{
158 ATH_MSG_DEBUG("begin ALFA_LocRec::initialize()");
159
162
163// sc = service("StoreGateSvc",m_storeGate);
164// if(sc.isFailure())
165// {
166// ATH_MSG_ERROR("reconstruction: unable to retrieve pointer to StoreGateSvc");
167// return sc;
168// }
169
170 //read geometry
172 {
173 ATH_MSG_DEBUG("Geometry loaded successfully");
174 }
175 else
176 {
177 ATH_MSG_FATAL("Could not load geometry");
178 return StatusCode::FAILURE;
179 }
180
181 //write ALFA_GeometryReader to StoreGate
182// if (StatusCode::SUCCESS!=service("DetectorStore",m_pDetStore))
183// {
184// ATH_MSG_ERROR("Detector store not found");
185// return StatusCode::FAILURE;
186// }
188 if(sc.isFailure())
189 {
190 ATH_MSG_ERROR("m_pGeometryReader: unable to record to StoreGate");
191 return sc;
192 }
193
194// if (!detStore()->contains<ALFA_GeometryReader>(m_strKeyGeometryForReco))
195// {
196// ATH_MSG_ERROR("m_pGeometryReader is not in StoreGate");
197// }
198// else
199// {
200// ATH_MSG_DEBUG("m_pGeometryReader is in StoreGate");
201// }
202
203 ATH_CHECK(m_eventInfoKey.initialize());
204
205 m_iEvent = 0;
206
207 ATH_MSG_DEBUG("end ALFA_LocRec::initialize()");
208 return StatusCode::SUCCESS;
209}
#define ATH_CHECK
Evaluate an expression and check for errors.
void ClearGeometry()
bool ReadGeometryDetCS()
const ServiceHandle< StoreGateSvc > & detStore() const

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ ReadGeometryDetCS()

bool ALFA_LocRec::ReadGeometryDetCS ( )
private

Definition at line 421 of file ALFA_LocRec.cxx.

422{
423 ATH_MSG_DEBUG("begin ALFA_LocRec::ReadGeometryDetCS()");
424
425 Int_t nPlateID, nFiberID;
426 FIBERPARAMS FiberParams;
427 eRPotName eRPName;
428
429 bool bRes=false;
430 std::list<eRPotName>::const_iterator iterRPName;
431
432 if((bRes=m_pGeometryReader->Initialize(&m_Config,EFCS_ATLAS))==true)
433 {
434 ATH_MSG_DEBUG("Geometry successfully initialized");
435 m_pGeometryReader->GetListOfExistingRPotIDs(&m_ListExistingRPots);
436 }
437 else
438 {
439 ATH_MSG_FATAL("Cannot initialize geometry");
440 return bRes;
441 }
442
443 for(iterRPName=m_ListExistingRPots.begin();iterRPName!=m_ListExistingRPots.end();++iterRPName)
444 {
445 eRPName = *iterRPName;
446
447 //for MD-fibers
448 for (nPlateID = 0; nPlateID < ALFAPLATESCNT; nPlateID++)
449 {
450 for (nFiberID = 0; nFiberID < ALFAFIBERSCNT; nFiberID++)
451 {
452 //for V-fibers
453 if (m_pGeometryReader->GetVFiberParams(&FiberParams, eRPName, nPlateID+1, nFiberID+1))
454 {
455 m_faMD[eRPName-1][2*nPlateID+1][nFiberID] = FiberParams.fSlope;
456 m_fbMD[eRPName-1][2*nPlateID+1][nFiberID] = FiberParams.fOffset;
457 m_fzMD[eRPName-1][2*nPlateID+1][nFiberID] = FiberParams.fZPos;
458 }
459 else
460 {
461 ATH_MSG_ERROR("Unable to get FiberV parameters");
462 return false;
463 }
464
465 //for U-fibers
466 if (m_pGeometryReader->GetUFiberParams(&FiberParams, eRPName, nPlateID+1, nFiberID+1))
467 {
468 m_faMD[eRPName-1][2*nPlateID][nFiberID] = FiberParams.fSlope;
469 m_fbMD[eRPName-1][2*nPlateID][nFiberID] = FiberParams.fOffset;
470 m_fzMD[eRPName-1][2*nPlateID][nFiberID] = FiberParams.fZPos;
471 }
472 else
473 {
474 ATH_MSG_ERROR("Unable to get FiberU parameters");
475 return false;
476 }
477 }
478 }
479
480 //m_ODfiber = (m_ODside==0)? m_ODfiber : 29-m_ODfiber;
481 //for OD-fibers
482 for (nPlateID = 0; nPlateID < ODPLATESCNT; nPlateID++)
483 {
484 for (nFiberID = 0; nFiberID < ODFIBERSCNT; nFiberID++)
485 {
486 //(+16 because U0-nFiberID is indexed from 16 to 30 in Geometry package)
487 if (m_pGeometryReader->GetODFiberParams(&FiberParams, EFT_ODFIBERU0, eRPName, nPlateID+1, nFiberID+16))
488 {
489 m_faOD[eRPName-1][nPlateID][0][nFiberID+15] = FiberParams.fSlope;
490 m_fbOD[eRPName-1][nPlateID][0][nFiberID+15] = FiberParams.fOffset;
491 m_fzOD[eRPName-1][nPlateID][0][nFiberID+15] = FiberParams.fZPos;
492 }
493 else
494 {
495 ATH_MSG_ERROR("Unable to get ODFiberU0 parameters");
496 return false;
497 }
498
499 if (m_pGeometryReader->GetODFiberParams(&FiberParams, EFT_ODFIBERV0, eRPName, nPlateID+1, nFiberID+1))
500 {
501 m_faOD[eRPName-1][nPlateID][0][nFiberID] = FiberParams.fSlope;
502 m_fbOD[eRPName-1][nPlateID][0][nFiberID] = FiberParams.fOffset;
503 m_fzOD[eRPName-1][nPlateID][0][nFiberID] = FiberParams.fZPos;
504 }
505 else
506 {
507 ATH_MSG_ERROR("Unable to get ODFiberV0 parameters");
508 return false;
509 }
510
511 if (m_pGeometryReader->GetODFiberParams(&FiberParams, EFT_ODFIBERU1, eRPName, nPlateID+1, nFiberID+16))
512 {
513 if (m_iDataType==1) //for the tunnel and testbeam data
514 {
515 m_faOD[eRPName-1][nPlateID][1][14-nFiberID] = FiberParams.fSlope;
516 m_fbOD[eRPName-1][nPlateID][1][14-nFiberID] = FiberParams.fOffset;
517 m_fzOD[eRPName-1][nPlateID][1][14-nFiberID] = FiberParams.fZPos;
518 }
519 else //simulation
520 {
521 m_faOD[eRPName-1][nPlateID][1][nFiberID+15] = FiberParams.fSlope;
522 m_fbOD[eRPName-1][nPlateID][1][nFiberID+15] = FiberParams.fOffset;
523 m_fzOD[eRPName-1][nPlateID][1][nFiberID+15] = FiberParams.fZPos;
524 }
525 }
526 else
527 {
528 ATH_MSG_ERROR("Unable to get ODFiberU1 parameters");
529 return false;
530 }
531 //(+16 because V1-nFiberID is indexed from 16 to 30 in Geometry package)
532 if (m_pGeometryReader->GetODFiberParams(&FiberParams, EFT_ODFIBERV1, eRPName, nPlateID+1, nFiberID+1))
533 {
534 if (m_iDataType==1) //for the tunnel and testbeam data
535 {
536 m_faOD[eRPName-1][nPlateID][1][29-nFiberID] = FiberParams.fSlope;
537 m_fbOD[eRPName-1][nPlateID][1][29-nFiberID] = FiberParams.fOffset;
538 m_fzOD[eRPName-1][nPlateID][1][29-nFiberID] = FiberParams.fZPos;
539 }
540 else //simulation
541 {
542 m_faOD[eRPName-1][nPlateID][1][nFiberID] = FiberParams.fSlope;
543 m_fbOD[eRPName-1][nPlateID][1][nFiberID] = FiberParams.fOffset;
544 m_fzOD[eRPName-1][nPlateID][1][nFiberID] = FiberParams.fZPos;
545 }
546 }
547 else
548 {
549 ATH_MSG_ERROR("Unable to get ODFiberV1 parameters");
550 return false;
551 }
552 }
553 }
554 }
555
556// SaveGeometry();
557
558 ATH_MSG_DEBUG("end ALFA_LocRec::ReadGeometryDetCS()");
559
560 return bRes;
561}
#define ODFIBERSCNT
@ EFCS_ATLAS
@ EFT_ODFIBERV0
@ EFT_ODFIBERV1
@ EFT_ODFIBERU0
@ EFT_ODFIBERU1
#define ALFAFIBERSCNT

◆ RecordCollection()

StatusCode ALFA_LocRec::RecordCollection ( )
private

Definition at line 1018 of file ALFA_LocRec.cxx.

1019{
1020 ATH_MSG_DEBUG("begin ALFA_LocRec::RecordCollection()");
1021
1022 StatusCode sc = StatusCode::SUCCESS;
1023
1024 m_pLocRecEvCollection = new ALFA_LocRecEvCollection();
1026
1027 if (sc.isFailure())
1028 {
1029 ATH_MSG_ERROR(m_strAlgoMD << "MD - Could not record the empty LocRecEv collection in StoreGate");
1030 return sc;
1031 }
1032 else
1033 {
1034 ATH_MSG_DEBUG("MD - LocRecEv collection was recorded in StoreGate");
1035 }
1036
1037 ATH_MSG_DEBUG("end ALFA_LocRec::RecordCollection()");
1038
1039 return sc;
1040}

◆ RecordODCollection()

StatusCode ALFA_LocRec::RecordODCollection ( )
private

Definition at line 1042 of file ALFA_LocRec.cxx.

1043{
1044 ATH_MSG_DEBUG("begin ALFA_LocRec::RecordODCollection()");
1045
1046 StatusCode sc = StatusCode::SUCCESS;
1047
1048 m_pLocRecODEvCollection = new ALFA_LocRecODEvCollection();
1050
1051 if (sc.isFailure())
1052 {
1053 ATH_MSG_ERROR(m_strAlgoOD << "OD - Could not record the empty LocRecEv collection in StoreGate");
1054
1055 return sc;
1056 }
1057 else
1058 {
1059 ATH_MSG_DEBUG("OD - LocRecEv collection is recorded in StoreGate");
1060 }
1061
1062 ATH_MSG_DEBUG("end ALFA_LocRec::RecordODCollection()");
1063
1064 return sc;
1065}

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ SaveGeometry()

void ALFA_LocRec::SaveGeometry ( )
private

Definition at line 614 of file ALFA_LocRec.cxx.

615{
616 ATH_MSG_DEBUG("begin ALFA_LocRec::SaveGeometry()");
617
618
619 eGeoSourceType eGeoType;
620 char szFilename[64];
621 std::list<eRPotName>::const_iterator iterRPName;
622
623 for(iterRPName=m_ListExistingRPots.begin();iterRPName!=m_ListExistingRPots.end();++iterRPName)
624 {
625 eGeoType=m_pGeometryReader->GetRPGeometryType(*iterRPName, EFT_FIBERMD);
626 switch(eGeoType)
627 {
629 sprintf(szFilename,"ALFA_LocRec_Idealgeometry_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
630 StoreReconstructionGeometry(*iterRPName, EFT_FIBERMD, szFilename);
631 ATH_MSG_DEBUG("The ALFA Fiber geometry was stored in the "<<szFilename<<" file");
632 break;
633 case EGST_FILE:
634 sprintf(szFilename,"ALFA_LocRec_Realgeometry_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
635 StoreReconstructionGeometry(*iterRPName, EFT_FIBERMD, szFilename);
636 ATH_MSG_DEBUG("The ALFA Fiber geometry was stored in the "<<szFilename<<" file");
637 break;
638 case EGST_DATABASE:
639 sprintf(szFilename,"ALFA_LocRec_Realdbgeometry_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
640 StoreReconstructionGeometry(*iterRPName, EFT_FIBERMD, szFilename);
641 ATH_MSG_DEBUG("The ALFA Fiber geometry was stored in the "<<szFilename<<" file");
642 break;
643 default:
644 ATH_MSG_DEBUG("Unrecognized MD geometry!");
645 return;
646 break;
647 }
648
649 eGeoType=m_pGeometryReader->GetRPGeometryType(*iterRPName, EFT_FIBEROD);
650 switch(eGeoType)
651 {
653 sprintf(szFilename,"ALFA_LocRec_Idealgeometry_OD_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
654 StoreReconstructionGeometry(*iterRPName, EFT_FIBEROD, szFilename);
655 ATH_MSG_DEBUG("The ODFiber geometry was stored in the "<<szFilename<<" file");
656 break;
657 case EGST_FILE:
658 sprintf(szFilename,"ALFA_LocRec_Realgeometry_OD_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
659 StoreReconstructionGeometry(*iterRPName, EFT_FIBEROD, szFilename);
660 ATH_MSG_DEBUG("The ODFiber geometry was stored in the "<<szFilename<<" file");
661 break;
662 case EGST_DATABASE:
663 sprintf(szFilename,"ALFA_LocRec_Realdbgeometry_OD_RP-%s.txt",m_pGeometryReader->GetRPotLabel(*iterRPName));
664 StoreReconstructionGeometry(*iterRPName, EFT_FIBEROD, szFilename);
665 ATH_MSG_DEBUG("The ODFiber geometry was stored in the "<<szFilename<<" file");
666 break;
667 default:
668 ATH_MSG_DEBUG("Unrecognized OD geometry!");
669 return;
670 break;
671 }
672 }
673
674 ATH_MSG_DEBUG("end ALFA_LocRec::SaveGeometry()");
675}
@ EGST_DATABASE
@ EGST_FILE
@ EFT_FIBERMD
@ EFT_FIBEROD
bool StoreReconstructionGeometry(const eRPotName eRPName, const eFiberType eFType, const char *szDataDestination)

◆ StoreReconstructionGeometry()

bool ALFA_LocRec::StoreReconstructionGeometry ( const eRPotName eRPName,
const eFiberType eFType,
const char * szDataDestination )
private

Definition at line 563 of file ALFA_LocRec.cxx.

564{
565 ATH_MSG_DEBUG("begin ALFA_LocRec::StoreReconstructionGeometry()");
566
567 Int_t iLayer, iFiber, iPlate, iSide;
568 Float_t fParamB, fZ, fSlope;
569 FILE * pFile;
570
571 pFile = fopen(szDataDestination, "w");
572 if(pFile==NULL) return false;
573 fprintf(pFile, "xxxxxxxxxxxxxxxxxxx\n");
574 if (eFType==EFT_FIBERMD)
575 {
576 fprintf(pFile, "20\n");
577 for(iLayer=0; iLayer<2*ALFAPLATESCNT; iLayer++)
578 {
579 for(iFiber=0; iFiber<ALFAFIBERSCNT; iFiber++)
580 {
581 fSlope=m_faMD[eRPName-1][iLayer][iFiber];
582 fParamB=m_fbMD[eRPName-1][iLayer][iFiber];
583 fZ=m_fzMD[eRPName-1][iLayer][iFiber];
584
585 fprintf(pFile, " %2d %2d %7.5f %7.4f %7.3f\n", iLayer+1, iFiber+1, fSlope, fParamB, fZ);
586 }
587 }
588 }
589 else if (eFType==EFT_FIBEROD)
590 {
591 fprintf(pFile, "6\n");
592 for(iPlate=0; iPlate<ODPLATESCNT; iPlate++)
593 {
594 for (iSide=0; iSide<ODSIDESCNT; iSide++)
595 {
596 for(iFiber=0; iFiber<ODLAYERSCNT*ODFIBERSCNT; iFiber++)
597 {
598 fSlope=m_faOD[eRPName-1][iPlate][iSide][iFiber];
599 fParamB=m_fbOD[eRPName-1][iPlate][iSide][iFiber];
600 fZ=m_fzOD[eRPName-1][iPlate][iSide][iFiber];
601
602 fprintf(pFile, " %2d %2d %7.5f %7.4f %7.3f\n", (2*iPlate+iSide+1), iFiber+1, fSlope, fParamB, fZ);
603 }
604 }
605 }
606 }
607 fclose(pFile);
608
609 ATH_MSG_DEBUG("end ALFA_LocRec::StoreReconstructionGeometry()");
610
611 return true;
612}
#define ODLAYERSCNT

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_bEdgeMethod_Opt_Sisters

Bool_t ALFA_LocRec::m_bEdgeMethod_Opt_Sisters
private

Definition at line 75 of file ALFA_LocRec.h.

◆ m_bEdgeMethod_Opt_UseGaps

Bool_t ALFA_LocRec::m_bEdgeMethod_Opt_UseGaps
private

Definition at line 76 of file ALFA_LocRec.h.

◆ m_Config

GEOMETRYCONFIGURATION ALFA_LocRec::m_Config
private

Definition at line 50 of file ALFA_LocRec.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eventInfoKey

SG::ReadHandleKey<xAOD::EventInfo> ALFA_LocRec::m_eventInfoKey {this, "EvtInfo", "EventInfo", "EventInfo name"}
private

Definition at line 59 of file ALFA_LocRec.h.

59{this, "EvtInfo", "EventInfo", "EventInfo name"};

◆ m_eventNum

UInt_t ALFA_LocRec::m_eventNum
private

Definition at line 64 of file ALFA_LocRec.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_faMD

Float_t ALFA_LocRec::m_faMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 79 of file ALFA_LocRec.h.

◆ m_faOD

Float_t ALFA_LocRec::m_faOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
private

Definition at line 84 of file ALFA_LocRec.h.

◆ m_fbMD

Float_t ALFA_LocRec::m_fbMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 80 of file ALFA_LocRec.h.

◆ m_fbOD

Float_t ALFA_LocRec::m_fbOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
private

Definition at line 85 of file ALFA_LocRec.h.

◆ m_fDistanceCutOD

Float_t ALFA_LocRec::m_fDistanceCutOD
private

Definition at line 73 of file ALFA_LocRec.h.

◆ m_fOverlapCutMD

Float_t ALFA_LocRec::m_fOverlapCutMD
private

Definition at line 72 of file ALFA_LocRec.h.

◆ m_fzMD

Float_t ALFA_LocRec::m_fzMD[RPOTSCNT][ALFALAYERSCNT *ALFAPLATESCNT][ALFAFIBERSCNT]
private

Definition at line 81 of file ALFA_LocRec.h.

◆ m_fzOD

Float_t ALFA_LocRec::m_fzOD[RPOTSCNT][ODPLATESCNT][ODSIDESCNT][ODLAYERSCNT *ODFIBERSCNT]
private

Definition at line 86 of file ALFA_LocRec.h.

◆ m_iDataType

Int_t ALFA_LocRec::m_iDataType
private

Definition at line 65 of file ALFA_LocRec.h.

◆ m_iEvent

Int_t ALFA_LocRec::m_iEvent
private

Definition at line 66 of file ALFA_LocRec.h.

◆ m_iLayerCutOD

Float_t ALFA_LocRec::m_iLayerCutOD
private

Definition at line 74 of file ALFA_LocRec.h.

◆ m_iMultiplicityCutMD

Int_t ALFA_LocRec::m_iMultiplicityCutMD
private

Definition at line 67 of file ALFA_LocRec.h.

◆ m_iMultiplicityCutOD

Int_t ALFA_LocRec::m_iMultiplicityCutOD
private

Definition at line 71 of file ALFA_LocRec.h.

◆ m_iNumLayerCutMD

Int_t ALFA_LocRec::m_iNumLayerCutMD
private

Definition at line 68 of file ALFA_LocRec.h.

◆ m_iUVCutMD

Int_t ALFA_LocRec::m_iUVCutMD
private

Definition at line 69 of file ALFA_LocRec.h.

◆ m_iUVCutMDHalfReco

Int_t ALFA_LocRec::m_iUVCutMDHalfReco
private

Definition at line 70 of file ALFA_LocRec.h.

◆ m_ListExistingRPots

std::list<eRPotName> ALFA_LocRec::m_ListExistingRPots
private

Definition at line 62 of file ALFA_LocRec.h.

◆ m_pGeometryReader

ALFA_GeometryReader* ALFA_LocRec::m_pGeometryReader
private

Definition at line 51 of file ALFA_LocRec.h.

◆ m_pLocRecEvCollection

ALFA_LocRecEvCollection* ALFA_LocRec::m_pLocRecEvCollection
private

Definition at line 53 of file ALFA_LocRec.h.

◆ m_pLocRecEvent

ALFA_LocRecEvent* ALFA_LocRec::m_pLocRecEvent
private

Definition at line 54 of file ALFA_LocRec.h.

◆ m_pLocRecODEvCollection

ALFA_LocRecODEvCollection* ALFA_LocRec::m_pLocRecODEvCollection
private

Definition at line 56 of file ALFA_LocRec.h.

◆ m_pLocRecODEvent

ALFA_LocRecODEvent* ALFA_LocRec::m_pLocRecODEvent
private

Definition at line 57 of file ALFA_LocRec.h.

◆ m_strAlgoMD

std::string ALFA_LocRec::m_strAlgoMD
private

Definition at line 92 of file ALFA_LocRec.h.

◆ m_strAlgoOD

std::string ALFA_LocRec::m_strAlgoOD
private

Definition at line 91 of file ALFA_LocRec.h.

◆ m_strCollectionName

std::string ALFA_LocRec::m_strCollectionName
private

Definition at line 95 of file ALFA_LocRec.h.

◆ m_strKeyGeometryForReco

std::string ALFA_LocRec::m_strKeyGeometryForReco
private

Definition at line 88 of file ALFA_LocRec.h.

◆ m_strKeyLocRecEvCollection

std::string ALFA_LocRec::m_strKeyLocRecEvCollection
private

Definition at line 93 of file ALFA_LocRec.h.

◆ m_strKeyLocRecODEvCollection

std::string ALFA_LocRec::m_strKeyLocRecODEvCollection
private

Definition at line 94 of file ALFA_LocRec.h.

◆ m_strODCollectionName

std::string ALFA_LocRec::m_strODCollectionName
private

Definition at line 96 of file ALFA_LocRec.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vecListAlgoMD

std::vector<std::string> ALFA_LocRec::m_vecListAlgoMD
private

Definition at line 89 of file ALFA_LocRec.h.

◆ m_vecListAlgoOD

std::vector<std::string> ALFA_LocRec::m_vecListAlgoOD
private

Definition at line 90 of file ALFA_LocRec.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: