|  | 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.