|
ATLAS Offline Software
|
#include <PadTdsOfflineTool.h>
|
| PadTdsOfflineTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual | ~PadTdsOfflineTool ()=default |
|
virtual StatusCode initialize | ATLAS_NOT_THREAD_SAFE () override |
|
virtual void | handle (const Incident &inc) 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 > &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...
|
|
StatusCode fill_pad_validation_id | ATLAS_NOT_THREAD_SAFE (std::vector< std::vector< std::shared_ptr< PadData >> > &pad_cache) const |
| Fill the ntuple branch for the PadTdsOffline. 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 > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ServiceHandle< IIncidentSvc > | m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
| Athena/Gaudi incident Service. 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"} |
|
const MuonGM::MuonDetectorManager * | m_detManager |
| MuonDetectorManager. More...
|
|
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< bool > | m_doNtuple {this, "DoNtuple", false, "Input PadTds branches into the analysis ntuple"} |
|
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"} |
|
std::unique_ptr< PadTdsValidationTree > | m_validation_tree |
|
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 83 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 |
◆ ATLAS_NOT_THREAD_SAFE() [1/2]
virtual StatusCode initialize NSWL1::PadTdsOfflineTool::ATLAS_NOT_THREAD_SAFE |
( |
| ) |
|
|
overridevirtual |
◆ ATLAS_NOT_THREAD_SAFE() [2/2]
StatusCode fill_pad_validation_id NSWL1::PadTdsOfflineTool::ATLAS_NOT_THREAD_SAFE |
( |
std::vector< std::vector< std::shared_ptr< PadData >> > & |
pad_cache | ) |
const |
|
private |
Fill the ntuple branch for the PadTdsOffline.
◆ cache_index()
int NSWL1::PadTdsOfflineTool::cache_index |
( |
const sTgcDigit * |
digit | ) |
const |
|
private |
Definition at line 333 of file PadTdsOfflineTool.cxx.
339 int isSmall = stName[2] ==
'S';
340 int trigger_sector = (isSmall)? stationPhi*2-1 : stationPhi*2-2;
341 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 282 of file PadTdsOfflineTool.cxx.
284 CLHEP::HepRandomEngine * engine = rngWrapper->
getEngine(Gaudi::Hive::currentContext());
285 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 268 of file PadTdsOfflineTool.cxx.
276 double distance = std::sqrt( pad_gpos.x()*pad_gpos.x() +
277 pad_gpos.y()*pad_gpos.y() +
278 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 346 of file PadTdsOfflineTool.cxx.
349 bool success =
false;
350 if(!
digit)
return success;
352 double arrival_time =
digit->time();
353 delayed_time = arrival_time;
357 if((delayed_time>200 || delayed_time<-200) ||
358 (capture_time>200 || capture_time<-200) ){
359 ATH_MSG_WARNING(
"sTGC Pad hit "<<pad_hit_number<<
" time outside of the range -200 ns / +200 ns,"
361 ATH_MSG_WARNING(
"sTGC Pad hit "<<pad_hit_number<<
": delayed time ["<<delayed_time<<
" ns]"
362 " capture time ["<<capture_time<<
" ns]");
365 for (
unsigned int i=0;
i<16;
i++) {
366 double bunch_start =
i*25;
367 double bunch_stop = (
i+1)*25;
368 double signal_start = delayed_time + 200;
369 double signal_stop = capture_time + 200;
370 if ((signal_start>=bunch_start && signal_start<bunch_stop) ||
371 (signal_stop>=bunch_start && signal_stop<bunch_stop) ){
372 BCtag = BCtag | (0x1<<
i);
375 if(bunch_start>=signal_start && bunch_stop<signal_stop){
376 BCtag = BCtag | (0x1<<
i);
379 std::string bctag =
"";
381 for(
unsigned int i=0;
i<16;
i++) {
382 if(BCtag & (last_bit>>
i)) bctag +=
"1";
385 ATH_MSG_DEBUG(
"sTGC Pad hit " << pad_hit_number <<
": arrival time [" << arrival_time <<
" ns]"
386 <<
" delayed time [" << delayed_time <<
" ns]"
387 <<
" capture time [" << capture_time <<
" ns]"
388 <<
" 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 223 of file PadTdsOfflineTool.cxx.
225 if(!digit_container.isValid()){
226 ATH_MSG_ERROR(
"could not retrieve the sTGC Digit container: cannot return the STRIP hits");
227 return StatusCode::FAILURE;
232 ATH_MSG_DEBUG(
"retrieved sTGC Digit Container with size "<<digit_container->digit_size());
235 std::vector<PadHits> pad_hits;
236 uint16_t BC0 = 0, BCP1 = 1, BCP2 = 2, BCP3 = 3, BCP4 = 4, BCM1 = ~BCP1, BCM2 = ~BCP2, BCM3 = ~BCP3;
237 std::vector<uint16_t> bcWindow={BC0, BCP1, BCP2, BCP3, BCP4, BCM1, BCM2, BCM3};
239 for(;
it!=it_e; ++
it) {
247 if (
std::find(bcWindow.begin(), bcWindow.end(),
digit->bcTag()) != bcWindow.end()){
265 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 157 of file PadTdsOfflineTool.cxx.
158 ATH_MSG_DEBUG(
"gather_pad_data: start gathering the PAD hits for side " <<
side <<
", sector " << sector );
160 if ( side <-1 || side >1 ) {
161 ATH_MSG_ERROR(
"requested side " <<
side <<
" is out of range: [-1==All, 0==side C, 1==side A]");
162 return StatusCode::FAILURE;
165 if ( sector <-1 || sector >15 ) {
166 ATH_MSG_ERROR(
"requested sector " << sector <<
" is out of range: [-1==All, 0 - 15]");
167 return StatusCode::FAILURE;
179 const bool anySide = (
side==-1);
180 const bool anySector = (sector==-1);
181 if (anySide && anySector) {
185 std::vector<std::shared_ptr<PadData>>& pad_sec = pad_cache.at(
i);
186 pads.insert( pads.end(), std::make_move_iterator(pad_sec.begin()), std::make_move_iterator(pad_sec.end()));
189 else if (anySector and not anySide) {
195 std::vector<std::shared_ptr<PadData>>& pad_sec = pad_cache.at(
i);
196 pads.insert( pads.end(), std::make_move_iterator(pad_sec.begin()), std::make_move_iterator(pad_sec.end()));
199 else if (anySide and not anySector) {
201 ATH_MSG_DEBUG(
"copying the PAD hit set of all trigger sector " << sector <<
" in both side" );
203 std::vector<std::shared_ptr<PadData>>& pad_secA = pad_cache.at(sectorA);
204 pads.insert( pads.end(), std::make_move_iterator(pad_secA.begin()), std::make_move_iterator(pad_secA.end()));
207 std::vector<std::shared_ptr<PadData>>& pad_secC = pad_cache.at(sectorC);
208 pads.insert( pads.end(), std::make_move_iterator(pad_secC.begin()), std::make_move_iterator(pad_secC.end()));
212 ATH_MSG_DEBUG(
"copying the PAD hit set of all trigger sector "<<sector
215 std::vector<std::shared_ptr<PadData>>& pad_secAorC = pad_cache.at(sectorAorC);
216 pads.insert( pads.end(), std::make_move_iterator(pad_secAorC.begin()), std::make_move_iterator(pad_secAorC.end()));
218 ATH_MSG_DEBUG(
"delivered n. " << pads.size() <<
" PAD hits." );
220 return StatusCode::SUCCESS;
◆ get_truth_hits_this_pad()
Definition at line 393 of file PadTdsOfflineTool.cxx.
399 if(!sdo_container.isValid()) {
400 ATH_MSG_WARNING(
"could not retrieve the sTGC SDO container: it will not be possible to associate the MC truth");
403 ptrMuonSimDataCollection = sdo_container.cptr();
◆ handle()
void NSWL1::PadTdsOfflineTool::handle |
( |
const Incident & |
inc | ) |
|
|
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 427 of file PadTdsOfflineTool.cxx.
434 int multiplet =
m_idHelperSvc->stgcIdHelper().multilayer(Id);
443 <<
" Station Name [" <<stName <<
"]"
444 <<
" Station Eta [" <<stationEta <<
"]"
445 <<
" Station Phi [" <<stationPhi <<
"]"
446 <<
" Multiplet [" <<multiplet <<
"]"
447 <<
" GasGap [" <<gas_gap <<
"]"
450 <<
" Pad Eta [" <<pad_eta <<
"]"
451 <<
" Pad Phi [" <<pad_phi <<
"]"
452 <<
" BCTag [" <<
digit->bcTag() <<
"]"
453 <<
" 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 461 of file PadTdsOfflineTool.cxx.
463 for (
const std::vector<std::shared_ptr<PadData>>& pad : pad_cache) {
464 for (
const auto &
padhit : pad)
466 <<
", trigger sector " <<
padhit->sectorId()
467 <<
", module " <<
padhit->moduleId()
468 <<
", multiplet " <<
padhit->multipletId()
469 <<
", gas gap " <<
padhit->gasGapId()
470 <<
", pad eta " <<
padhit->padEtaId()
471 <<
", 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 288 of file PadTdsOfflineTool.cxx.
292 for (
unsigned int i=0;
i<
h.size();
i++) {
295 if (
it!=channel_map.end() ) {
296 (*it).second.push_back(
h[
i]);
298 std::vector<PadHits>
tmp;
306 while (
it!=channel_map.end() ) {
307 std::vector<PadHits>&
hits = (*it).second;
310 while ( p_next!=
hits.end() ) {
311 if (std::fabs((*p_next).t_pad->time()-(*p).t_pad->time())<=
m_vmmDeadTime){
312 p_next =
hits.erase(p_next);
320 it = channel_map.begin();
321 while (
it!=channel_map.end() ) {
322 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 411 of file PadTdsOfflineTool.cxx.
413 for (
unsigned int i=0;
i<pad_hits.size();
i++) {
414 const std::vector<std::shared_ptr<PadData>>& pads = pad_cache.at(pad_hits[
i].t_cache_index);
415 bool fill = pads.empty();
416 for(
unsigned int p=0;
p<pads.size();
p++) {
418 if(Id==pad_hits[
i].t_id) {
420 ATH_MSG_WARNING(
"Pad Hits entered multiple times Discarding!!! Id:" << Id );
423 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_detManager
◆ m_detStore
◆ m_doNtuple
Gaudi::Property<bool> NSWL1::PadTdsOfflineTool::m_doNtuple {this, "DoNtuple", false, "Input PadTds branches into the analysis ntuple"} |
|
private |
◆ m_evtStore
◆ m_idHelperSvc
◆ m_incidentSvc
ServiceHandle<IIncidentSvc> NSWL1::PadTdsOfflineTool::m_incidentSvc {this, "IncidentSvc", "IncidentSvc"} |
|
private |
◆ 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_validation_tree
◆ 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
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::map< Identifier, std::vector< PadHits > > PAD_MAP
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...
void deposits(std::vector< Deposit > &deposits) const
::StatusCode StatusCode
StatusCode definition for legacy code.
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)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void fill(H5::Group &out_file, size_t iterations)
A wrapper class for event-slot-local random engines.
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.
#define ATLAS_THREAD_SAFE
const T * at(size_type n) const
Access an element, as an rvalue.
const sTgcReadoutElement * getsTgcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
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.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>