 |
ATLAS Offline Software
|
#include <PadTdsOfflineTool.h>
|
| PadTdsOfflineTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~PadTdsOfflineTool ()=default |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | gather_pad_data (std::vector< std::shared_ptr< PadData >> &pads, int side=-1, int sector=-1) const override |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
StatusCode | fill_pad_cache (std::vector< std::vector< std::shared_ptr< PadData >> > &pad_cache) const |
| Apply the additional processing then fill the cache, locally. More...
|
|
double | computeTof (const sTgcDigit *digit) const |
| compute the time of flight of particle giving the PAD hit More...
|
|
double | computeTimeJitter () const |
| extract the time jitter t subtract from the PAD hit time More...
|
|
void | simulateDeadTime (std::vector< PadHits > &h) const |
| simulate the dead time of the VMM More...
|
|
bool | get_truth_hits_this_pad (const Identifier &pad_id, std::vector< MuonSimData::Deposit > &deposits) const |
|
bool | is_pad_digit (const sTgcDigit *digit) const |
|
int | cache_index (const sTgcDigit *digit) const |
|
bool | determine_delay_and_bc (const sTgcDigit *digit, const int pad_hit_number, double &delayed_time, uint16_t &BCtag) const |
|
void | store_pads (const std::vector< PadHits > &pad_hits, std::vector< std::vector< std::shared_ptr< PadData >> > &pad_cache) const |
| Store pad data in the cache. More...
|
|
void | print_digit (const sTgcDigit *digit) const |
|
void | print_pad_time (const std::vector< PadHits > &pad_hits) const |
| Print time for each pad. More...
|
|
void | print_pad_cache (std::vector< std::vector< std::shared_ptr< PadData >> > &pad_cache) const |
| Print all info stored in the pad cache. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
| Random number generator engine to use. More...
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_detManagerKey {this, "MuonManagerKey", "MuonDetectorManager"} |
|
Gaudi::Property< bool > | m_isMC {this, "IsMC", true, "This is MC"} |
|
Gaudi::Property< std::string > | m_rndmEngineName {this, "RndmEngineName", "PadTdsOfflineTool", "Name of the random engine"} |
|
Gaudi::Property< float > | m_vmmTimeOverThreshold {this, "VMM_TimeOverThreshold", 0., "Time to form a digital signal"} |
|
Gaudi::Property< float > | m_vmmShapingTime {this, "VMM_ShapingTime", 0., "Time from the leading edge of the signal and its peak"} |
|
Gaudi::Property< float > | m_vmmDeadTime {this, "VMM_DeadTime", 50., "VMM chip dead time to produce another signal on the same channel"} |
|
Gaudi::Property< float > | m_triggerCaptureWindow {this, "TriggerCaptureWindow", 30., "Time window for valid hit coincidences"} |
|
Gaudi::Property< float > | m_timeJitter {this, "TimeJitter", 2., "Time jitter"} |
|
Gaudi::Property< bool > | m_applyTDS_TofSubtraction {this, "ApplyTofSubtraction", false, "Time of flight subtraction"} |
|
Gaudi::Property< bool > | m_applyTDS_TimeJitterSubtraction {this, "ApplyTimeJitterSubtraction", false, "Time jitter subtraction"} |
|
Gaudi::Property< bool > | m_applyVMM_ToT {this, "ApplyToT", false, "Time over threshold criteria"} |
|
Gaudi::Property< bool > | m_applyVMM_ShapingTime {this, "ApplyVMMShapingTime", false, "VMM Shaping time condition"} |
|
Gaudi::Property< bool > | m_applyVMM_DeadTime {this, "ApplyVMMDeadTime", false, "VMM Dead time condition"} |
|
SG::ReadHandleKey< sTgcDigitContainer > | m_sTgcDigitContainer = {this,"sTGC_DigitContainerName","sTGC_DIGITS","the name of the sTGC digit container"} |
|
SG::ReadHandleKey< MuonSimDataCollection > | m_sTgcSdoContainer = {this,"sTGC_SdoContainerName","sTGC_SDO","the name of the sTGC SDO container"} |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 78 of file PadTdsOfflineTool.h.
◆ StoreGateSvc_t
◆ PadTdsOfflineTool()
NSWL1::PadTdsOfflineTool::PadTdsOfflineTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ ~PadTdsOfflineTool()
virtual NSWL1::PadTdsOfflineTool::~PadTdsOfflineTool |
( |
| ) |
|
|
virtualdefault |
◆ cache_index()
int NSWL1::PadTdsOfflineTool::cache_index |
( |
const sTgcDigit * |
digit | ) |
const |
|
private |
Definition at line 237 of file PadTdsOfflineTool.cxx.
244 int trigger_sector = (
isSmall)? stationPhi*2-1 : stationPhi*2-2;
245 return (stationEta>0)? trigger_sector + 16 : trigger_sector;
◆ computeTimeJitter()
double NSWL1::PadTdsOfflineTool::computeTimeJitter |
( |
| ) |
const |
|
private |
extract the time jitter t subtract from the PAD hit time
Definition at line 186 of file PadTdsOfflineTool.cxx.
188 CLHEP::HepRandomEngine * engine = rngWrapper->
getEngine(Gaudi::Hive::currentContext());
189 return CLHEP::RandGauss::shoot(engine, 0,
m_timeJitter);
◆ computeTof()
double NSWL1::PadTdsOfflineTool::computeTof |
( |
const sTgcDigit * |
digit | ) |
const |
|
private |
compute the time of flight of particle giving the PAD hit
Definition at line 171 of file PadTdsOfflineTool.cxx.
180 double distance = std::sqrt( pad_gpos.x()*pad_gpos.x() +
181 pad_gpos.y()*pad_gpos.y() +
182 pad_gpos.z()*pad_gpos.z() );
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ determine_delay_and_bc()
bool NSWL1::PadTdsOfflineTool::determine_delay_and_bc |
( |
const sTgcDigit * |
digit, |
|
|
const int |
pad_hit_number, |
|
|
double & |
delayed_time, |
|
|
uint16_t & |
BCtag |
|
) |
| const |
|
private |
Definition at line 250 of file PadTdsOfflineTool.cxx.
253 bool success =
false;
254 if(!
digit)
return success;
256 double arrival_time =
digit->time();
257 delayed_time = arrival_time;
261 if((delayed_time>200 || delayed_time<-200) ||
262 (capture_time>200 || capture_time<-200) ){
263 ATH_MSG_WARNING(
"sTGC Pad hit "<<pad_hit_number<<
" time outside of the range -200 ns / +200 ns,"
265 ATH_MSG_WARNING(
"sTGC Pad hit "<<pad_hit_number<<
": delayed time ["<<delayed_time<<
" ns]"
266 " capture time ["<<capture_time<<
" ns]");
269 for (
unsigned int i=0;
i<16;
i++) {
270 double bunch_start =
i*25;
271 double bunch_stop = (
i+1)*25;
272 double signal_start = delayed_time + 200;
273 double signal_stop = capture_time + 200;
274 if ((signal_start>=bunch_start && signal_start<bunch_stop) ||
275 (signal_stop>=bunch_start && signal_stop<bunch_stop) ){
276 BCtag = BCtag | (0x1<<
i);
279 if(bunch_start>=signal_start && bunch_stop<signal_stop){
280 BCtag = BCtag | (0x1<<
i);
283 std::string bctag =
"";
285 for(
unsigned int i=0;
i<16;
i++) {
286 if(BCtag & (last_bit>>
i)) bctag +=
"1";
289 ATH_MSG_DEBUG(
"sTGC Pad hit " << pad_hit_number <<
": arrival time [" << arrival_time <<
" ns]"
290 <<
" delayed time [" << delayed_time <<
" ns]"
291 <<
" capture time [" << capture_time <<
" ns]"
292 <<
" BC tag [" << bctag <<
"]" );
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ fill_pad_cache()
StatusCode NSWL1::PadTdsOfflineTool::fill_pad_cache |
( |
std::vector< std::vector< std::shared_ptr< PadData >> > & |
pad_cache | ) |
const |
|
private |
Apply the additional processing then fill the cache, locally.
Definition at line 125 of file PadTdsOfflineTool.cxx.
128 if(!digit_container.isValid()){
129 ATH_MSG_ERROR(
"could not retrieve the sTGC Digit container: cannot return the STRIP hits");
130 return StatusCode::FAILURE;
135 ATH_MSG_DEBUG(
"retrieved sTGC Digit Container with size "<<digit_container->digit_size());
138 std::vector<PadHits> pad_hits;
139 uint16_t BC0 = 0, BCP1 = 1, BCP2 = 2, BCP3 = 3, BCP4 = 4, BCM1 = ~BCP1, BCM2 = ~BCP2, BCM3 = ~BCP3;
140 std::vector<uint16_t> bcWindow={BC0, BCP1, BCP2, BCP3, BCP4, BCM1, BCM2, BCM3};
142 for(;
it!=it_e; ++
it) {
150 if (
std::find(bcWindow.begin(), bcWindow.end(),
digit->bcTag()) != bcWindow.end()){
155 auto pad=std::make_shared<PadOfflineData>(Id,
digit->time(),
digit->bcTag(), *detManager);
168 return StatusCode::SUCCESS;
◆ firstSector() [1/2]
static size_t NSWL1::PadTdsOfflineTool::firstSector |
( |
| ) |
|
|
inlinestatic |
◆ firstSector() [2/2]
static size_t NSWL1::PadTdsOfflineTool::firstSector |
( |
const int & |
side | ) |
|
|
inlinestatic |
◆ firstSectorAside()
static size_t NSWL1::PadTdsOfflineTool::firstSectorAside |
( |
| ) |
|
|
inlinestatic |
◆ firstSectorCside()
static size_t NSWL1::PadTdsOfflineTool::firstSectorCside |
( |
| ) |
|
|
inlinestatic |
◆ gather_pad_data()
StatusCode NSWL1::PadTdsOfflineTool::gather_pad_data |
( |
std::vector< std::shared_ptr< PadData >> & |
pads, |
|
|
int |
side = -1 , |
|
|
int |
sector = -1 |
|
) |
| const |
|
overridevirtual |
Implements NSWL1::IPadTdsTool.
Definition at line 64 of file PadTdsOfflineTool.cxx.
65 ATH_MSG_DEBUG(
"gather_pad_data: start gathering the PAD hits for side " <<
side <<
", sector " << sector );
67 if ( side <-1 || side >1 ) {
68 ATH_MSG_ERROR(
"requested side " <<
side <<
" is out of range: [-1==All, 0==side C, 1==side A]");
69 return StatusCode::FAILURE;
72 if ( sector <-1 || sector >15 ) {
73 ATH_MSG_ERROR(
"requested sector " << sector <<
" is out of range: [-1==All, 0 - 15]");
74 return StatusCode::FAILURE;
81 const bool anySide = (
side==-1);
82 const bool anySector = (sector==-1);
83 if (anySide && anySector) {
87 std::vector<std::shared_ptr<PadData>>& pad_sec = pad_cache.at(
i);
88 pads.insert( pads.end(), std::make_move_iterator(pad_sec.begin()), std::make_move_iterator(pad_sec.end()));
91 else if (anySector and not anySide) {
97 std::vector<std::shared_ptr<PadData>>& pad_sec = pad_cache.at(
i);
98 pads.insert( pads.end(), std::make_move_iterator(pad_sec.begin()), std::make_move_iterator(pad_sec.end()));
101 else if (anySide and not anySector) {
103 ATH_MSG_DEBUG(
"copying the PAD hit set of all trigger sector " << sector <<
" in both side" );
105 std::vector<std::shared_ptr<PadData>>& pad_secA = pad_cache.at(sectorA);
106 pads.insert( pads.end(), std::make_move_iterator(pad_secA.begin()), std::make_move_iterator(pad_secA.end()));
109 std::vector<std::shared_ptr<PadData>>& pad_secC = pad_cache.at(sectorC);
110 pads.insert( pads.end(), std::make_move_iterator(pad_secC.begin()), std::make_move_iterator(pad_secC.end()));
114 ATH_MSG_DEBUG(
"copying the PAD hit set of all trigger sector "<<sector
117 std::vector<std::shared_ptr<PadData>>& pad_secAorC = pad_cache.at(sectorAorC);
118 pads.insert( pads.end(), std::make_move_iterator(pad_secAorC.begin()), std::make_move_iterator(pad_secAorC.end()));
120 ATH_MSG_DEBUG(
"delivered n. " << pads.size() <<
" PAD hits." );
122 return StatusCode::SUCCESS;
◆ get_truth_hits_this_pad()
Definition at line 297 of file PadTdsOfflineTool.cxx.
303 if(!sdo_container.isValid()) {
304 ATH_MSG_WARNING(
"could not retrieve the sTGC SDO container: it will not be possible to associate the MC truth");
307 ptrMuonSimDataCollection = sdo_container.cptr();
◆ initialize()
StatusCode NSWL1::PadTdsOfflineTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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.
◆ interfaceID()
static const InterfaceID& NSWL1::IPadTdsTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Definition at line 41 of file IPadTdsTool.h.
42 static const InterfaceID IID_IPadTdsTool(
"NSWL1::IPadTdsTool", 1 ,0);
43 return IID_IPadTdsTool;
◆ is_pad_digit()
bool NSWL1::PadTdsOfflineTool::is_pad_digit |
( |
const sTgcDigit * |
digit | ) |
const |
|
private |
◆ lastSector() [1/2]
static size_t NSWL1::PadTdsOfflineTool::lastSector |
( |
| ) |
|
|
inlinestatic |
◆ lastSector() [2/2]
static size_t NSWL1::PadTdsOfflineTool::lastSector |
( |
const int & |
side | ) |
|
|
inlinestatic |
◆ lastSectorAside()
static size_t NSWL1::PadTdsOfflineTool::lastSectorAside |
( |
| ) |
|
|
inlinestatic |
◆ lastSectorCside()
static size_t NSWL1::PadTdsOfflineTool::lastSectorCside |
( |
| ) |
|
|
inlinestatic |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ numberOfSectors()
static size_t NSWL1::PadTdsOfflineTool::numberOfSectors |
( |
| ) |
|
|
inlinestatic |
◆ numberOfSectorsPerSide()
static size_t NSWL1::PadTdsOfflineTool::numberOfSectorsPerSide |
( |
| ) |
|
|
inlinestatic |
◆ outputHandles()
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.
◆ print_digit()
void NSWL1::PadTdsOfflineTool::print_digit |
( |
const sTgcDigit * |
digit | ) |
const |
|
private |
Definition at line 331 of file PadTdsOfflineTool.cxx.
338 int multiplet =
m_idHelperSvc->stgcIdHelper().multilayer(Id);
347 <<
" Station Name [" <<
stName <<
"]"
348 <<
" Station Eta [" <<stationEta <<
"]"
349 <<
" Station Phi [" <<stationPhi <<
"]"
350 <<
" Multiplet [" <<multiplet <<
"]"
351 <<
" GasGap [" <<gas_gap <<
"]"
354 <<
" Pad Eta [" <<pad_eta <<
"]"
355 <<
" Pad Phi [" <<pad_phi <<
"]"
356 <<
" BCTag [" <<
digit->bcTag() <<
"]"
357 <<
" Id Hash [" <<Id <<
"]");
◆ print_pad_cache()
void NSWL1::PadTdsOfflineTool::print_pad_cache |
( |
std::vector< std::vector< std::shared_ptr< PadData >> > & |
pad_cache | ) |
const |
|
private |
Print all info stored in the pad cache.
Definition at line 365 of file PadTdsOfflineTool.cxx.
367 for (
const std::vector<std::shared_ptr<PadData>>& pad : pad_cache) {
368 for (
const auto &
padhit : pad)
370 <<
", trigger sector " <<
padhit->sectorId()
371 <<
", module " <<
padhit->moduleId()
372 <<
", multiplet " <<
padhit->multipletId()
373 <<
", gas gap " <<
padhit->gasGapId()
374 <<
", pad eta " <<
padhit->padEtaId()
375 <<
", pad phi " <<
padhit->padPhiId());
◆ print_pad_time()
void NSWL1::PadTdsOfflineTool::print_pad_time |
( |
const std::vector< PadHits > & |
pad_hits | ) |
const |
|
private |
◆ renounce()
◆ renounceArray()
◆ sectorIndex()
static size_t NSWL1::PadTdsOfflineTool::sectorIndex |
( |
const int & |
side, |
|
|
const int & |
sector |
|
) |
| |
|
inlinestatic |
◆ sideLabel()
static char NSWL1::PadTdsOfflineTool::sideLabel |
( |
const int & |
side | ) |
|
|
inlinestatic |
◆ simulateDeadTime()
void NSWL1::PadTdsOfflineTool::simulateDeadTime |
( |
std::vector< PadHits > & |
h | ) |
const |
|
private |
simulate the dead time of the VMM
Definition at line 192 of file PadTdsOfflineTool.cxx.
196 for (
unsigned int i=0;
i<
h.size();
i++) {
199 if (
it!=channel_map.end() ) {
200 (*it).second.push_back(
h[
i]);
202 std::vector<PadHits>
tmp;
210 while (
it!=channel_map.end() ) {
211 std::vector<PadHits>&
hits = (*it).second;
214 while ( p_next!=
hits.end() ) {
215 if (std::fabs((*p_next).t_pad->time()-(*p).t_pad->time())<=
m_vmmDeadTime){
216 p_next =
hits.erase(p_next);
224 it = channel_map.begin();
225 while (
it!=channel_map.end() ) {
226 std::vector<PadHits>
hits = (*it).second;
◆ store_pads()
void NSWL1::PadTdsOfflineTool::store_pads |
( |
const std::vector< PadHits > & |
pad_hits, |
|
|
std::vector< std::vector< std::shared_ptr< PadData >> > & |
pad_cache |
|
) |
| const |
|
private |
Store pad data in the cache.
Definition at line 315 of file PadTdsOfflineTool.cxx.
317 for (
unsigned int i=0;
i<pad_hits.size();
i++) {
318 const std::vector<std::shared_ptr<PadData>>& pads = pad_cache.at(pad_hits[
i].t_cache_index);
319 bool fill = pads.empty();
320 for(
unsigned int p=0;
p<pads.size();
p++) {
322 if(Id==pad_hits[
i].t_id) {
324 ATH_MSG_WARNING(
"Pad Hits entered multiple times Discarding!!! Id:" << Id );
327 if(
fill ) pad_cache.at(pad_hits[
i].t_cache_index).push_back(pad_hits[
i].t_pad);
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_applyTDS_TimeJitterSubtraction
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_applyTDS_TimeJitterSubtraction {this, "ApplyTimeJitterSubtraction", false, "Time jitter subtraction"} |
|
private |
◆ m_applyTDS_TofSubtraction
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_applyTDS_TofSubtraction {this, "ApplyTofSubtraction", false, "Time of flight subtraction"} |
|
private |
◆ m_applyVMM_DeadTime
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_applyVMM_DeadTime {this, "ApplyVMMDeadTime", false, "VMM Dead time condition"} |
|
private |
◆ m_applyVMM_ShapingTime
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_applyVMM_ShapingTime {this, "ApplyVMMShapingTime", false, "VMM Shaping time condition"} |
|
private |
◆ m_applyVMM_ToT
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_applyVMM_ToT {this, "ApplyToT", false, "Time over threshold criteria"} |
|
private |
◆ m_detManagerKey
◆ m_detStore
◆ m_evtStore
◆ m_idHelperSvc
◆ m_isMC
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_isMC {this, "IsMC", true, "This is MC"} |
|
private |
◆ m_rndmEngineName
Gaudi::Property<std::string> NSWL1::PadTdsOfflineTool::m_rndmEngineName {this, "RndmEngineName", "PadTdsOfflineTool", "Name of the random engine"} |
|
private |
◆ m_rndmSvc
◆ m_sTgcDigitContainer
◆ m_sTgcSdoContainer
◆ m_timeJitter
Gaudi::Property<float> NSWL1::PadTdsOfflineTool::m_timeJitter {this, "TimeJitter", 2., "Time jitter"} |
|
private |
◆ m_triggerCaptureWindow
Gaudi::Property<float> NSWL1::PadTdsOfflineTool::m_triggerCaptureWindow {this, "TriggerCaptureWindow", 30., "Time window for valid hit coincidences"} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_vmmDeadTime
Gaudi::Property<float> NSWL1::PadTdsOfflineTool::m_vmmDeadTime {this, "VMM_DeadTime", 50., "VMM chip dead time to produce another signal on the same channel"} |
|
private |
◆ m_vmmShapingTime
Gaudi::Property<float> NSWL1::PadTdsOfflineTool::m_vmmShapingTime {this, "VMM_ShapingTime", 0., "Time from the leading edge of the signal and its peak"} |
|
private |
◆ m_vmmTimeOverThreshold
Gaudi::Property<float> NSWL1::PadTdsOfflineTool::m_vmmTimeOverThreshold {this, "VMM_TimeOverThreshold", 0., "Time to form a digital signal"} |
|
private |
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
constexpr uint8_t stationPhi
station Phi 1 to 8
std::string find(const std::string &s)
return a remapped string
Eigen::Matrix< double, 2, 1 > Vector2D
std::map< Identifier, std::vector< PadHits > > PAD_MAP
const std::string & stName(StIndex index)
convert StIndex into a string
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
virtual void setOwner(IDataHandleHolder *o)=0
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position - should be renamed to channel position If the strip number is outside the range of va...
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
void deposits(std::vector< Deposit > &deposits) const
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
std::pair< Identifier, std::vector< PadHits > > PAD_MAP_ITEM
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
A wrapper class for event-slot-local random engines.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
std::map< Identifier, std::vector< PadHits > >::iterator PAD_MAP_IT
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
const T * at(size_type n) const
Access an element, as an rvalue.
constexpr uint8_t stationEta
1 to 3
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
size_type size() const noexcept
Returns the number of elements in the collection.
bool isSmall(const ChIndex index)
Returns true if the chamber index is in a small sector.