 |
ATLAS Offline Software
|
Go to the documentation of this file.
23 #include "GaudiKernel/Algorithm.h"
24 #include "GaudiKernel/AlgTool.h"
26 #include "CLHEP/Units/SystemOfUnits.h"
27 #include "CLHEP/Units/PhysicalConstants.h"
40 m_propertyNotSetMagicNumber(-999.0e50),
41 m_propertyNotSetMagicNumber_int(-9999)
132 defineNewUIntVariable(
"numberOfBins",&
m_numberOfBins,
"Number of internal bins in time interval covered by each digit (must be whole multiple of numberOfBinsInEncodingBin)",24,480);
183 std::cout << front <<
"======= Printing TRT Digitization Settings ======="<<std::endl;
185 std::map <std::string,doubleparameter>::const_iterator itd =
m_doubleparMap.begin();
186 std::map <std::string,doubleparameter>::const_iterator itdE =
m_doubleparMap.end();
188 for (;itd!=itdE;++itd) {
189 std::cout << front << itd->second.description<<
": "<<(*(itd->second.directvaraddress))/itd->second.unit<<
" "<<itd->second.unitname <<std::endl;
192 std::map <std::string,intboolparameter>::const_iterator itib =
m_intboolparMap.begin();
193 std::map <std::string,intboolparameter>::const_iterator itibE =
m_intboolparMap.end();
195 for (;itib!=itibE;++itib) {
196 if (itib->second.directvaraddress_int) {
198 std::cout << front << itib->second.description<<
": "<<*(itib->second.directvaraddress_int)<<std::endl;
199 }
else if (itib->second.directvaraddress_uint) {
201 std::cout << front << itib->second.description<<
": "<<*(itib->second.directvaraddress_uint)<<std::endl;
204 assert(itib->second.directvaraddress_bool);
205 std::cout << front << itib->second.description<<
": "<<(*(itib->second.directvaraddress_bool)?1:0)<<std::endl;
209 std::cout << front <<
"==============================================="<<std::endl;
219 for (;itd!=itdE;++itd) {
220 alg->declareProperty(std::string(
"Override_")+itd->first, itd->second.valueSetByUser );
226 for (;itib!=itibE;++itib) {
227 alg->declareProperty(std::string(
"Override_")+itib->first, itib->second.valueSetByUser );
237 for (;itd!=itdE;++itd) {
238 algt->declareProperty(std::string(
"Override_")+itd->first, itd->second.valueSetByUser );
244 for (;itib!=itibE;++itib) {
245 algt->declareProperty(std::string(
"Override_")+itib->first, itib->second.valueSetByUser );
253 std::cout << front <<
"======= Printing TRT Digitization Settings Overrideable parameters ======="<<std::endl;
255 std::map <std::string,doubleparameter>::const_iterator itd =
m_doubleparMap.begin();
256 std::map <std::string,doubleparameter>::const_iterator itdE =
m_doubleparMap.end();
258 for (;itd!=itdE;++itd) {
259 std::cout << front << std::endl;
260 std::cout << front <<
"Alg. Property: Override_"<<itd->first<<std::endl;
261 std::cout << front <<
" Type: Double"<<std::endl;
262 std::cout << front <<
" Range: ["<<itd->second.okrange_low/itd->second.unit<<
" "
263 << itd->second.unitname<<
", "
264 << itd->second.okrange_high/itd->second.unit<<
" "<<itd->second.unitname<<
"]"<<std::endl;
265 std::cout << front <<
" Description: "<<itd->second.description<<std::endl;
268 std::map <std::string,intboolparameter>::const_iterator itib =
m_intboolparMap.begin();
269 std::map <std::string,intboolparameter>::const_iterator itibE =
m_intboolparMap.end();
271 for (;itib!=itibE;++itib) {
272 std::cout << front << std::endl;
273 std::cout << front <<
"Alg. Property: Override_"<<itib->first<<std::endl;
274 std::cout << front <<
" Type: Int"<<std::endl;
275 std::cout << front <<
" Range: ["<<itib->second.okrange_low<<
", "
276 << itib->second.okrange_high<<
"]"<<std::endl;
277 std::cout << front <<
" Description: "<<itib->second.description<<std::endl;
280 std::cout << front <<std::endl;
281 std::cout << front <<
"==============================================="<<std::endl;
287 const std::string & unitname,
double unitval,
double lowrange,
double highrange) {
301 p.directvaraddress = datamember;
302 p.unitname = unitname;
304 p.okrange_low = lowrange*unitval;
305 p.okrange_high = highrange*unitval;
314 unsigned int lowrange,
unsigned int highrange) {
320 if (lowrange > highrange ) {
328 p.directvaraddress_int =
nullptr;
329 p.directvaraddress_uint = datamember;
330 p.directvaraddress_bool =
nullptr;
331 p.okrange_low =
static_cast<int>(lowrange);
332 p.okrange_high =
static_cast<int>(highrange);
341 int lowrange,
int highrange) {
355 p.directvaraddress_int = datamember;
356 p.directvaraddress_uint =
nullptr;
357 p.directvaraddress_bool =
nullptr;
358 p.okrange_low = lowrange;
359 p.okrange_high = highrange;
377 p.directvaraddress_int =
nullptr;
378 p.directvaraddress_uint =
nullptr;
379 p.directvaraddress_bool = datamember;
397 ATH_MSG_WARNING(
"Active gas setting seems incompatible with dig. version number.");
398 ATH_MSG_WARNING(
"If not deliberate, it might indicate a configuration or DB problem.");
506 ATH_MSG_WARNING(
"Setting up non suppressed double counted delta-ray xenon tune");
558 bool anyoverrides =
false;
562 for (;itd!=itdE;++itd) {
564 if (itd->second.valueSetByUser < itd->second.okrange_low || itd->second.valueSetByUser > itd->second.okrange_high) {
565 ATH_MSG_ERROR(
"Can not override value of "<<itd->first<<
" : New value outside allowed range");
567 if (
static_cast<float>(*(itd->second.directvaraddress)) !=
static_cast<float>(itd->second.valueSetByUser) ) {
569 << (*(itd->second.directvaraddress))/itd->second.unit<<
" "<<itd->second.unitname<<
" -> "
570 << itd->second.valueSetByUser/itd->second.unit<<
" "<<itd->second.unitname<<
")");
571 *(itd->second.directvaraddress) = itd->second.valueSetByUser;
581 for (;itib!=itibE;++itib) {
583 if (itib->second.valueSetByUser < itib->second.okrange_low || itib->second.valueSetByUser > itib->second.okrange_high) {
584 ATH_MSG_ERROR(
"Can not override value of "<<itib->first<<
" : New value outside allowed range");
586 if (itib->second.directvaraddress_int) {
588 if ( (*(itib->second.directvaraddress_int)) != itib->second.valueSetByUser ) {
590 << *(itib->second.directvaraddress_int)<<
" -> "<< itib->second.valueSetByUser<<
")");
591 *(itib->second.directvaraddress_int) = itib->second.valueSetByUser;
594 }
else if (itib->second.directvaraddress_uint) {
596 if ( (*(itib->second.directvaraddress_uint)) !=
static_cast<unsigned int>(itib->second.valueSetByUser) ) {
598 << *(itib->second.directvaraddress_uint)<<
" -> "<< itib->second.valueSetByUser<<
")");
599 *(itib->second.directvaraddress_uint) = itib->second.valueSetByUser;
604 assert(itib->second.directvaraddress_bool);
605 if ( (*(itib->second.directvaraddress_bool)) != itib->second.valueSetByUser ) {
607 << (*(itib->second.directvaraddress_bool)?1:0)<<
" -> "
608 << (itib->second.valueSetByUser?1:0)<<
")");
609 *(itib->second.directvaraddress_bool) = itib->second.valueSetByUser == 1;
618 ATH_MSG_WARNING(
"Settings overridden from joboptions => possible deviation from version defaults.");
Settable parameter, int and bool.
JetConstituentVector::iterator iterator
double m_smearingFactor
Cluster energy smearing factor.
void defineNewBoolVariable(const std::string &name, bool *datamember, const std::string &description)
Define new bool variable.
double m_relativeHighThresholdFluctuation
Relative high threshold fluctuation.
unsigned int m_numberOfBins
No.
double m_trEfficiencyEndCapBArgon
Transition Radiation efficiency, end cap B, Argon.
double m_highThresholdECAwheelsKrypton
High threshold discriminator setting Krypton.
double m_averageNoiseLevel
Average noise level.
int m_ltT0shiftECBwheelsKr
double m_highThresholdBarShort
High threshold discriminator setting.
bool m_killEndCap
Disable end cap.
double m_ionisationPotential
Mean ionisation potential.
double m_trEfficiencyEndCapBKrypton
Transition Radiation efficiency, end cap B, Krypton.
double m_lowThresholdBarKrypton
Low threshold discriminator setting for Krypton mixture.
double m_highThresholdBarLongKrypton
High threshold discriminator setting Krypton.
double m_trEfficiencyBarrelArgon
Transition Radiation efficiency, barrel, Argon.
double m_discriminatorSettlingTime
Discriminator settling time.
double m_lowThresholdECKrypton
Low threshold discriminator setting for Krypton mixture.
std::map< std::string, doubleparameter > m_doubleparMap
Map of settable parameters (double)
bool m_useMagneticFieldMap
void printFlagsForOverrideableParameters(const std::string &front="") const
Print TRT digitization settings overrideable parameters.
void addPropertiesForOverrideableParameters(Algorithm *alg)
Add properties for overrideable parameters.
double m_crosstalkNoiseLevel
Average cross talk noise level.
double m_slowPeriodicNoisePulseDistance
Slow periodic noise pulse distance (time)
double m_highThresholdBarShortKrypton
High threshold discriminator setting Krypton.
double m_slowPeriodicNoisePulseFraction
Slow periodic noise pulse fraction.
double m_highThresholdBarLongArgon
High threshold discriminator setting Argon.
void defineNewVariable(const std::string &name, double *datamember, const std::string &description, const std::string &unitname, double unitval, double lowrange, double highrange)
Define new double variable.
bool m_killBarrel
Disable barrel.
bool m_electronicsAreAtFarEnd
Electronics assumed at far end of straw.
double m_highThresholdECAwheels
High threshold discriminator setting.
double m_pileUpSDOsMinEkin
Min.
int m_propertyNotSetMagicNumber_int
double m_trEfficiencyEndCapB
Transition Radiation efficiency, end cap B.
unsigned int m_numberOfCrossingsBeforeMain
For pileup: BCs before main event.
double m_trEfficiencyBarrel
Transition Radiation efficiency, barrel.
double m_lowThresholdBarArgon
Low threshold discriminator setting for Argon mixture.
void fillDefaults(const InDetDD::TRT_DetectorManager *detmgr)
Fill default values into settable variables.
unsigned int m_storeSDO
Time window in which to store SDOs.
bool m_isCTB
Data is from CTB (Combined Test Beam)
bool m_timeCorrection
Corrrect for flight and wire propagation delays.
double m_highThresholdECBwheels
High threshold discriminator setting.
int m_ltT0shiftECAwheelsXe
int m_ltT0shiftBarShortKr
LT T0 shift.
double m_ionisationPotentialKrypton
Mean ionisation potential for Krypton mixture.
double m_propertyNotSetMagicNumber
bool m_timeshiftsSymmetricForPhiSectors
Time offset assumed phi symmetric.
double m_smearingFactorKrypton
Cluster energy smearing factor for Krypton mixture.
double m_signalPropagationSpeed
Signal propagation time in signal wire.
double m_timeOffsetCalcVertexY
y-coord.
double m_minDiscriminatorWidth
Min.
int m_htT0shiftBarLong
HT T0 shift.
TRTDigSettings()
Parameters and settings for TRT digitization.
double m_trEfficiencyEndCapAKrypton
Transition Radiation efficiency, end cap A, Krypton.
int m_ltT0shiftECBwheelsAr
Class to provide easy MsgStream access and capabilities.
double m_timeInterval
Time interval covered by each digit.
double m_highThresholdECBwheelsArgon
High threshold discriminator setting Argon.
double m_outerRadiusOfWire
Radius of drift wire.
double m_timeOffsetCalcVertexZ
z-coord.
double m_highThresholdBarLong
High threshold discriminator setting.
double m_trtRangeCutProperty
Electrons xenon range cut in TRT simulation
double m_discriminatorDeadTime
Discriminator dead time.
double m_jitterTimeOffset
Event time not correlated with LHC clock.
double m_relativeLowThresholdFluctuation
Relative low threshold fluctuation.
double m_lowThresholdECArgon
Low threshold discriminator setting for Argon mixture.
double m_highThresholdECAwheelsArgon
High threshold discriminator setting Argon.
double m_trEfficiencyEndCapA
Transition Radiation efficiency, end cap A.
double m_highThresholdBarShortArgon
High threshold discriminator setting Argon.
double m_crosstalkNoiseLevelOtherEnd
Average cross talk noise level - other end.
void processOverrides()
Overwrite default values by uses values.
int m_ltT0shiftECBwheelsXe
bool m_noiseInUnhitStraws
Simulate noise in unhit straws.
double m_fastElectronicsNoisePulseDistance
Fast electronics noise pulse distance (time)
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
bool m_noiseInSimhits
Simulate noise in hit straws.
void defineNewIntVariable(const std::string &name, int *datamember, const std::string &description, int lowrange, int highrange)
Define new int variable.
unsigned int m_cosmicFlag
Data is cosmics.
#define ATH_MSG_WARNING(x)
ActiveGasType gasType() const
double m_trEfficiencyEndCapAArgon
Transition Radiation efficiency, end cap A, Argon.
void defineNewUIntVariable(const std::string &name, unsigned int *datamember, const std::string &description, unsigned int lowrange, unsigned int highrange)
Define new unsigned int variable.
double m_lowThresholdBar
Low threshold discriminator setting.
int m_ltT0shiftBarShortXe
double m_attenuationLength
bool m_doCrosstalk
Crosstalk noise.
void print(const std::string &front="") const
Printing of TRT digitization settings.
double m_timeOffsetCalcVertexX
x-coord.
int m_ltT0shiftECAwheelsKr
void defineVariables()
Define settable variables.
void initialize(const InDetDD::TRT_DetectorManager *detmgr)
Initialize: fill defaults and overwrite by user values where appropriate.
std::map< std::string, intboolparameter > m_intboolparMap
Map of settable parameters (int & bool)
double m_smearingFactorArgon
Cluster energy smearing factor for Argon mixture.
double m_distanceToTimeFactor
Fudge factor: time to distance.
bool m_isOverlay
Doing overlay.
double m_highThresholdECBwheelsKrypton
High threshold discriminator setting Krypton.
double m_maxVertexDisplacement
Max.
double m_lowThresholdEC
Low threshold discriminator setting.
int m_ltT0shiftBarShortAr
unsigned int m_numberOfBinsInEncodingBin
No.
double m_trEfficiencyBarrelKrypton
Transition Radiation efficiency, barrel, Krypton.
double m_innerRadiusOfStraw
Inner radius of straw.
double m_ionisationPotentialArgon
Mean ionisation potential for Argon mixture.
double m_lengthOfDeadRegion
Length of dead region at straw end.
Settable parameter, double.
int m_ltT0shiftECAwheelsAr
bool m_doCosmicTimingPit
Cosmics pit setup.
std::string description
glabal timer - how long have I taken so far?
double m_solenoidFieldStrength
Solenoid field strength.