#include <LaserAlignment.h>
Public Member Functions | |
virtual void | beginJob (void) |
virtual void | endJob (void) |
virtual void | endRun (edm::Run &, const edm::EventSetup &) |
LaserAlignment (edm::ParameterSet const &theConf) | |
virtual void | produce (edm::Event &, edm::EventSetup const &) |
void | testRoutine (void) |
for debugging & testing only, will disappear.. More... | |
~LaserAlignment () | |
Public Member Functions inherited from edm::EDProducer | |
EDProducer () | |
virtual | ~EDProducer () |
Public Member Functions inherited from edm::ProducerBase | |
ProducerBase () | |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
boost::function< void(const BranchDescription &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
virtual | ~ProducerBase () |
Private Member Functions | |
void | ApplyATMaskingCorrections (LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &, LASBarrelAlignmentParameterSet &) |
same for alignment tube modules More... | |
void | ApplyEndcapMaskingCorrections (LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &, LASEndcapAlignmentParameterSet &) |
apply endcap correction to masked modules in TEC More... | |
void | CalculateNominalCoordinates (void) |
fills a LASGlobalData<LASCoordinateSet> with nominal module positions More... | |
double | ConvertAngle (double) |
convert an angle in the [-pi,pi] range to the [0,2*pi] range More... | |
void | DumpHitmaps (LASGlobalData< int > &) |
for debugging only, will disappear More... | |
void | DumpPosFileSet (LASGlobalData< LASCoordinateSet > &) |
for debugging only, will disappear More... | |
void | DumpStripFileSet (LASGlobalData< std::pair< float, float > > &) |
for debugging only, will disappear More... | |
void | fillDataProfiles (edm::Event const &, edm::EventSetup const &) |
fill profiles from SiStrip(Raw)Digi container More... | |
void | fillDetectorId (void) |
fill hard coded detIds More... | |
void | fillPedestalProfiles (edm::ESHandle< SiStripPedestals > &) |
fill pedestals from dbase More... | |
double | getTEC2TECNominalBeamOffset (unsigned int, unsigned int, unsigned int) |
returns the nominal beam position (strips) in TEC (AT) for the profileJudge More... | |
double | getTIBTOBNominalBeamOffset (unsigned int, unsigned int, unsigned int) |
returns the nominal beam position (strips) in TOB for the profileJudge More... | |
bool | isATBeam (void) |
bool | isTECBeam (void) |
decide whether TEC or AT beams have fired More... | |
Additional Inherited Members | |
Public Types inherited from edm::EDProducer | |
typedef EDProducer | ModuleType |
typedef WorkerT< EDProducer > | WorkerType |
Public Types inherited from edm::ProducerBase | |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Static Public Member Functions inherited from edm::EDProducer | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
Protected Member Functions inherited from edm::EDProducer | |
CurrentProcessingContext const * | currentContext () const |
Protected Member Functions inherited from edm::ProducerBase | |
template<class TProducer , class TMethod > | |
void | callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod) |
Main reconstruction module for the Laser Alignment System
Definition at line 84 of file LaserAlignment.h.
|
explicit |
Definition at line 19 of file LaserAlignment.cc.
References gather_cfg::cout, enableJudgeZeroFilter, LASProfileJudge::EnableZeroFilter(), edm::ParameterSet::getParameter(), judge, judgeOverdriveThreshold, misalignedByRefGeometry, peakFinderThreshold, LASProfileJudge::SetOverdriveThreshold(), theApplyBeamKinkCorrections, theCompression, theDoPedestalSubtraction, theFileName, theMaskAtModules, theMaskTecModules, theSaveHistograms, theSetNominalStrips, theStoreToDB, theUseMinuitAlgorithm, and updateFromInputGeometry.
LaserAlignment::~LaserAlignment | ( | ) |
Definition at line 111 of file LaserAlignment.cc.
References theAlignableTracker, theFile, and theSaveHistograms.
|
private |
same for alignment tube modules
loop the list of alignment tube modules to be masked and apply the corrections from the "barrelParameters" to them
Definition at line 1636 of file LaserAlignment.cc.
References detectorId, LASCoordinateSet::GetPhi(), LASAlignmentTubeAlgorithm::GetTEC2TECAlignmentParameterCorrection(), LASGlobalData< T >::GetTEC2TECEntry(), LASAlignmentTubeAlgorithm::GetTIBTOBAlignmentParameterCorrection(), LASGlobalData< T >::GetTIBTOBEntry(), moduleLoop, pos, LASCoordinateSet::SetPhi(), LASGlobalLoop::TEC2TECLoop(), theMaskAtModules, and LASGlobalLoop::TIBTOBLoop().
Referenced by endRun().
|
private |
apply endcap correction to masked modules in TEC
loop the list of endcap modules to be masked and apply the corrections from the "endcapParameters" to them
Definition at line 1592 of file LaserAlignment.cc.
References detectorId, LASEndcapAlgorithm::GetAlignmentParameterCorrection(), LASCoordinateSet::GetPhi(), LASGlobalData< T >::GetTECEntry(), moduleLoop, relativeConstraints::ring, LASCoordinateSet::SetPhi(), LASGlobalLoop::TECLoop(), and theMaskTecModules.
Referenced by endRun().
|
virtual |
Reimplemented from edm::EDProducer.
Definition at line 126 of file LaserAlignment.cc.
References collectedDataProfiles, currentDataProfiles, edm::hlt::Exception, fillDetectorId(), firstEvent_, LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), isAcceptedProfile, moduleLoop, numberOfAcceptedProfiles, pedestalProfiles, pos, relativeConstraints::ring, LASModuleProfile::SetAllValuesTo(), LASGlobalData< T >::SetTEC2TECEntry(), LASGlobalData< T >::SetTECEntry(), LASGlobalData< T >::SetTIBTOBEntry(), singleModulesDir, summedHistograms, LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), theCompression, theFile, theFileName, theProfileNames, theSaveHistograms, and LASGlobalLoop::TIBTOBLoop().
|
private |
fills a LASGlobalData<LASCoordinateSet> with nominal module positions
Definition at line 1351 of file LaserAlignment.cc.
References moduleLoop, nominalCoordinates, pos, relativeConstraints::ring, LASGlobalData< T >::SetTEC2TECEntry(), LASGlobalData< T >::SetTECEntry(), LASGlobalData< T >::SetTIBTOBEntry(), LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), and LASGlobalLoop::TIBTOBLoop().
Referenced by endRun().
|
private |
convert an angle in the [-pi,pi] range to the [0,2*pi] range
convert an angle in the [-pi,pi] range to the [0,2*pi] range
Definition at line 1438 of file LaserAlignment.cc.
References angle(), edm::hlt::Exception, and M_PI.
Referenced by endRun().
|
private |
for debugging only, will disappear
Definition at line 1532 of file LaserAlignment.cc.
References gather_cfg::cout, and LASGlobalData< T >::GetTECEntry().
Referenced by endRun().
|
private |
for debugging only, will disappear
debug only, will disappear
Definition at line 1456 of file LaserAlignment.cc.
References gather_cfg::cout, LASCoordinateSet::GetPhi(), LASCoordinateSet::GetPhiError(), LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), python.cmstools::loop(), pos, relativeConstraints::ring, LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), and LASGlobalLoop::TIBTOBLoop().
|
private |
for debugging only, will disappear
Definition at line 1492 of file LaserAlignment.cc.
References gather_cfg::cout, python.cmstools::loop(), pos, relativeConstraints::ring, LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), and LASGlobalLoop::TIBTOBLoop().
|
virtual |
|
virtual |
laser hit section for trackbased interface
due to the peculiar order of beams in TkLasBeamCollection, we cannot use the LASGlobalLoop object here
Reimplemented from edm::EDProducer.
Definition at line 461 of file LaserAlignment.cc.
References AlignableTracker::alignmentErrors(), AlignableTracker::alignments(), ApplyATMaskingCorrections(), LASGeometryUpdater::ApplyBeamKinkCorrections(), ApplyEndcapMaskingCorrections(), PV3DBase< T, PVType, FrameType >::barePhi(), cond::service::PoolDBOutputService::beginOfTime(), CalculateNominalCoordinates(), LASAlignmentTubeAlgorithm::CalculateParameters(), LASBarrelAlgorithm::CalculateParameters(), LASEndcapAlgorithm::CalculateParameters(), collectedDataProfiles, ConvertAngle(), gather_cfg::cout, detectorId, DumpHitmaps(), LASGeometryUpdater::EndcapUpdate(), LASPeakFinder::FindPeakIn(), LASGlobalData< T >::GetTEC2TECEntry(), getTEC2TECNominalBeamOffset(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), getTIBTOBNominalBeamOffset(), TrackerGeometry::idToDet(), edm::Service< T >::isAvailable(), align_cfg::iteration, laserBeams, misalignedByRefGeometry, moduleLoop, nominalCoordinates, numberOfAcceptedProfiles, peakFinderThreshold, pos, LASBarrelAlignmentParameterSet::Print(), LASEndcapAlignmentParameterSet::Print(), TkLasBeam::push_back(), edm::Run::put(), relativeConstraints::ring, LASPeakFinder::SetAmplitudeThreshold(), LASGeometryUpdater::SetMisalignmentFromRefGeometry(), LASCoordinateSet::SetPhi(), LASCoordinateSet::SetPhiError(), LASGeometryUpdater::SetReverseDirection(), LASGlobalData< T >::SetTEC2TECEntry(), LASGlobalData< T >::SetTECEntry(), LASGlobalData< T >::SetTIBTOBEntry(), summedHistograms, LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), theAlignableTracker, theAlignRecordName, theApplyBeamKinkCorrections, theErrorRecordName, theEvents, theLasConstants, theMaskAtModules, theMaskTecModules, theSetNominalStrips, theStoreToDB, theTrackerGeometry, theUseMinuitAlgorithm, LASGlobalLoop::TIBTOBLoop(), LASGeometryUpdater::TrackerUpdate(), updateFromInputGeometry, and cond::service::PoolDBOutputService::writeOne().
|
private |
fill profiles from SiStrip(Raw)Digi container
fills the module profiles (LASGlobalLoop<LASModuleProfile> currentDataProfiles) from the event digi containers, distinguishing between SiStripDigi or SiStripRawDigi.
Definition at line 970 of file LaserAlignment.cc.
References SiStripRawDigi::adc(), SiStripDigi::adc(), edm::DetSetVector< T >::begin(), currentDataProfiles, detectorId, dtTPAnalyzer_cfg::digiLabel, EcnaSystemPythonModuleInsert_2::digiProducer, edm::DetSetVector< T >::end(), edm::hlt::Exception, edm::Event::getByLabel(), LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), moduleLoop, pos, relativeConstraints::ring, LASModuleProfile::SetAllValuesTo(), LASModuleProfile::SetValue(), SiStripDigi::strip(), LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), theDigiProducersList, and LASGlobalLoop::TIBTOBLoop().
Referenced by produce().
|
private |
fill hard coded detIds
all the detector ids for the LAS modules hard-coded
Definition at line 8 of file LaserAlignmentFillDetId.cc.
References detectorId, LASGlobalData< T >::SetTEC2TECEntry(), LASGlobalData< T >::SetTECEntry(), LASGlobalData< T >::SetTIBTOBEntry(), and tecDoubleHitDetId.
Referenced by beginJob().
|
private |
fill pedestals from dbase
This function fills the pedestal profiles (LASGlobalData<LASModuleProfiles> pedestalProfiles) from the ESHandle (from file or DB)
Argument: readily connected SiStripPedestals object (get() alredy called) The functionality inside the loops is basically taken from: CommonTools/SiStripZeroSuppression/src/SiStripPedestalsSubtractor.cc
Definition at line 1186 of file LaserAlignment.cc.
References detectorId, LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), moduleLoop, pedestalProfiles, pos, relativeConstraints::ring, LASModuleProfile::SetValue(), strip(), LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), and LASGlobalLoop::TIBTOBLoop().
Referenced by produce().
|
private |
returns the nominal beam position (strips) in TEC (AT) for the profileJudge
not all TEC-AT modules are hit in the center; this func returns the nominal beam offset locally on a module (in strips) for the ProfileJudge and the LASPeakFinder in strips. (offset = middle of module - nominal position)
the hard coded numbers will later be supplied by a special geometry class..
Definition at line 1331 of file LaserAlignment.cc.
References edm::hlt::Exception.
Referenced by endRun().
|
private |
returns the nominal beam position (strips) in TOB for the profileJudge
not all TIB & TOB modules are hit in the center; this func returns the nominal beam offset locally on a module (in strips) for the ProfileJudge and the LASPeakFinder in strips. (offset = middle of module - nominal position)
the hard coded numbers will later be supplied by a special geometry class..
Definition at line 1296 of file LaserAlignment.cc.
References edm::hlt::Exception, and or.
Referenced by endRun(), and produce().
|
private |
count useable profiles in TIBTOB, operates on LASGlobalData<bool> LaserAlignment::isAcceptedProfile to allow for more elaborate patterns in the future
Definition at line 1267 of file LaserAlignment.cc.
References gather_cfg::cout, LASGlobalData< T >::GetTIBTOBEntry(), isAcceptedProfile, LogDebug, moduleLoop, pos, and LASGlobalLoop::TIBTOBLoop().
Referenced by produce().
|
private |
decide whether TEC or AT beams have fired
count useable profiles in TEC, operates on LASGlobalData<int> LaserAlignment::isAcceptedProfile to allow for more elaborate patterns in the future
Definition at line 1236 of file LaserAlignment.cc.
References gather_cfg::cout, LASGlobalData< T >::GetTECEntry(), isAcceptedProfile, LogDebug, and relativeConstraints::ring.
Referenced by produce().
|
virtual |
Implements edm::EDProducer.
Definition at line 263 of file LaserAlignment.cc.
References TrackerGeomBuilderFromGeometricDet::build(), collectedDataProfiles, gather_cfg::cout, currentDataProfiles, detectorId, edm::EventID::event(), fillDataProfiles(), fillPedestalProfiles(), spr::find(), firstEvent_, gD, edm::EventSetup::get(), edm::eventsetup::EventSetupRecord::get(), LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), getTIBTOBNominalBeamOffset(), edm::EventBase::id(), isAcceptedProfile, isATBeam(), LASProfileJudge::IsSignalIn(), isTECBeam(), judge, LASProfileJudge::JudgeProfile(), LogDebug, moduleLoop, numberOfAcceptedProfiles, pedestalProfiles, pos, relativeConstraints::ring, edm::EventID::run(), LASGlobalData< T >::SetTECEntry(), LASGlobalData< T >::SetTIBTOBEntry(), LASGlobalLoop::TEC2TECLoop(), tecDoubleHitDetId, LASGlobalLoop::TECLoop(), theAlignableTracker, theDoPedestalSubtraction, theEvents, theGlobalPositionRcd, theProfileNames, theTrackerGeometry, LASGlobalLoop::TIBTOBLoop(), and updateFromInputGeometry.
Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().
void LaserAlignment::testRoutine | ( | void | ) |
for debugging & testing only, will disappear..
this function is for debugging and testing only and will disappear..
Definition at line 1705 of file LaserAlignment.cc.
References gather_cfg::cout, detectorId, LASGlobalData< T >::GetTEC2TECEntry(), LASGlobalData< T >::GetTECEntry(), LASGlobalData< T >::GetTIBTOBEntry(), TrackerGeometry::idToDet(), moduleLoop, pos, CosmicsPD_Skims::radius, relativeConstraints::ring, LASGlobalLoop::TEC2TECLoop(), LASGlobalLoop::TECLoop(), theTrackerGeometry, theZ, and LASGlobalLoop::TIBTOBLoop().
|
private |
Definition at line 210 of file LaserAlignment.h.
Referenced by beginJob(), endRun(), and produce().
|
private |
data profiles for the current event
Definition at line 207 of file LaserAlignment.h.
Referenced by beginJob(), fillDataProfiles(), and produce().
|
private |
Definition at line 198 of file LaserAlignment.h.
Referenced by ApplyATMaskingCorrections(), ApplyEndcapMaskingCorrections(), endRun(), fillDataProfiles(), fillDetectorId(), fillPedestalProfiles(), produce(), and testRoutine().
|
private |
|
private |
Definition at line 247 of file LaserAlignment.h.
Referenced by beginJob(), and produce().
|
private |
|
private |
Definition at line 220 of file LaserAlignment.h.
Referenced by beginJob(), isATBeam(), isTECBeam(), and produce().
|
private |
Definition at line 192 of file LaserAlignment.h.
Referenced by LaserAlignment(), and produce().
|
private |
config parameters for the LASProfileJudge
Definition at line 160 of file LaserAlignment.h.
Referenced by LaserAlignment().
|
private |
config switch
Definition at line 166 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
Definition at line 231 of file LaserAlignment.h.
Referenced by ApplyATMaskingCorrections(), ApplyEndcapMaskingCorrections(), beginJob(), CalculateNominalCoordinates(), endRun(), fillDataProfiles(), fillPedestalProfiles(), isATBeam(), produce(), and testRoutine().
|
private |
Definition at line 227 of file LaserAlignment.h.
Referenced by CalculateNominalCoordinates(), and endRun().
|
private |
Definition at line 216 of file LaserAlignment.h.
Referenced by beginJob(), endRun(), and produce().
|
private |
config parameter
Definition at line 154 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
Definition at line 204 of file LaserAlignment.h.
Referenced by beginJob(), fillPedestalProfiles(), and produce().
|
private |
Definition at line 235 of file LaserAlignment.h.
Referenced by beginJob().
|
private |
Definition at line 224 of file LaserAlignment.h.
Referenced by beginJob(), and endRun().
|
private |
Definition at line 201 of file LaserAlignment.h.
Referenced by fillDetectorId(), and produce().
|
private |
Definition at line 243 of file LaserAlignment.h.
Referenced by endRun(), produce(), and ~LaserAlignment().
|
private |
Definition at line 245 of file LaserAlignment.h.
Referenced by endRun().
|
private |
config switch
Definition at line 151 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
config parameter (histograms file compression level)
Definition at line 178 of file LaserAlignment.h.
Referenced by beginJob(), and LaserAlignment().
|
private |
Definition at line 172 of file LaserAlignment.h.
Referenced by fillDataProfiles().
|
private |
config switch
Definition at line 145 of file LaserAlignment.h.
Referenced by LaserAlignment(), and produce().
|
private |
Definition at line 245 of file LaserAlignment.h.
Referenced by endRun().
|
private |
counter for the total number of events processed
Definition at line 142 of file LaserAlignment.h.
|
private |
Tree stuff.
Definition at line 234 of file LaserAlignment.h.
Referenced by beginJob(), and ~LaserAlignment().
|
private |
config parameter (histograms file output name)
Definition at line 181 of file LaserAlignment.h.
Referenced by beginJob(), and LaserAlignment().
|
private |
Definition at line 240 of file LaserAlignment.h.
Referenced by produce().
|
private |
Definition at line 195 of file LaserAlignment.h.
Referenced by endRun().
|
private |
Definition at line 185 of file LaserAlignment.h.
Referenced by ApplyATMaskingCorrections(), endRun(), and LaserAlignment().
|
private |
config parameters
Definition at line 184 of file LaserAlignment.h.
Referenced by ApplyEndcapMaskingCorrections(), endRun(), and LaserAlignment().
|
private |
Definition at line 213 of file LaserAlignment.h.
Referenced by beginJob(), and produce().
|
private |
config switch
Definition at line 175 of file LaserAlignment.h.
Referenced by beginJob(), LaserAlignment(), and ~LaserAlignment().
|
private |
config switch
Definition at line 188 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
config switch
Definition at line 169 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
Definition at line 239 of file LaserAlignment.h.
Referenced by endRun(), produce(), and testRoutine().
|
private |
config switch
Definition at line 148 of file LaserAlignment.h.
Referenced by endRun(), and LaserAlignment().
|
private |
config switch
Definition at line 163 of file LaserAlignment.h.
Referenced by endRun(), LaserAlignment(), and produce().