30 theDoPedestalSubtraction(theConf.getUntrackedParameter<
bool>(
"SubtractPedestals",
true)),
31 theUseMinuitAlgorithm(theConf.getUntrackedParameter<
bool>(
"RunMinuitAlignmentTubeAlgorithm",
false)),
32 theApplyBeamKinkCorrections(theConf.getUntrackedParameter<
bool>(
"ApplyBeamKinkCorrections",
true)),
33 peakFinderThreshold(theConf.getUntrackedParameter<double>(
"PeakFinderThreshold", 10.)),
34 enableJudgeZeroFilter(theConf.getUntrackedParameter<
bool>(
"EnableJudgeZeroFilter",
true)),
35 judgeOverdriveThreshold(theConf.getUntrackedParameter<unsigned
int>(
"JudgeOverdriveThreshold", 220)),
36 updateFromInputGeometry(theConf.getUntrackedParameter<
bool>(
"UpdateFromInputGeometry",
false)),
37 misalignedByRefGeometry(theConf.getUntrackedParameter<
bool>(
"MisalignedByRefGeometry",
false)),
38 theStoreToDB(theConf.getUntrackedParameter<
bool>(
"SaveToDbase",
false)),
40 theSaveHistograms(theConf.getUntrackedParameter<
bool>(
"SaveHistograms",
false)),
41 theCompression(theConf.getUntrackedParameter<
int>(
"ROOTFileCompression", 1)),
42 theFileName(theConf.getUntrackedParameter<
std::
string>(
"ROOTFileName",
"test.root")),
43 theMaskTecModules(theConf.getUntrackedParameter<
std::
vector<unsigned
int> >(
"MaskTECModules")),
44 theMaskAtModules(theConf.getUntrackedParameter<
std::
vector<unsigned
int> >(
"MaskATModules")),
45 theSetNominalStrips(theConf.getUntrackedParameter<
bool>(
"ForceFitterToNominalStrips",
false)),
48 theAlignableTracker(),
49 theAlignRecordName(
"TrackerAlignmentRcd"),
50 theErrorRecordName(
"TrackerAlignmentErrorExtendedRcd"),
53 std::cout <<
"==============================================================" 54 <<
"\n=== LaserAlignment module configuration ===" 67 <<
"\n Number of TEC modules masked = " <<
theMaskTecModules.size() <<
" (s. below list if > 0)" 68 <<
"\n Number of AT modules masked = " <<
theMaskAtModules.size() <<
" (s. below list if > 0)" 69 <<
"\n Store to database = " << (
theStoreToDB ?
"true" :
"false")
70 <<
"\n ----------------------------------------------- ----------" 72 <<
"\n=============================================================" << std::endl;
76 std::cout <<
" ===============================================================================================\n" 79 <<
" TEC modules have been masked out and will not be considered by the TEC algorithm:\n " << std::flush;
85 std::cout <<
" ===============================================================================================\n\n" 89 std::cout <<
" ===============================================================================================\n" 92 <<
" AT modules have been masked out and will not be considered by the AT algorithm:\n " << std::flush;
98 std::cout <<
" ===============================================================================================\n\n" 106 produces<TkLasBeamCollection, edm::Transition::EndRun>(
"tkLaserBeams").setBranchAlias(
alias +
"TkLasBeamCollection");
144 <<
" ** ERROR: could not open file:" <<
theFileName.c_str() <<
" for writing." << std::endl;
155 std::stringstream nameBuilder;
178 nameBuilder <<
"TEC";
183 nameBuilder <<
"_Ring";
188 nameBuilder <<
"_Beam" <<
beam;
189 nameBuilder <<
"_Disk" << disk;
194 nameBuilder <<
"_Histo";
196 det,
ring,
beam, disk,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
220 nameBuilder <<
"TIB";
222 nameBuilder <<
"TOB";
223 nameBuilder <<
"_Beam" <<
beam;
224 nameBuilder <<
"_Zpos" <<
pos;
230 nameBuilder <<
"_Histo";
232 det,
beam,
pos,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
255 nameBuilder <<
"TEC(AT)";
260 nameBuilder <<
"_Beam" <<
beam;
261 nameBuilder <<
"_Disk" << disk;
266 nameBuilder <<
"_Histo";
268 det,
beam, disk,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
318 LogDebug(
"LaserAlignment") <<
"===========================================================" 319 <<
"\n Private analysis of event #" << theEvent.
id().
event() <<
" in run #" 320 << theEvent.
id().
run();
336 for (det = 0; det < 2; ++det) {
338 for (disk = 0; disk < 9; ++disk) {
369 std::cout <<
" [LaserAlignment::produce] -- LaserAlignment::isTECBeam declares this event " 370 << (isTECMode ?
"" :
"NOT ") <<
"a TEC event." << std::endl;
374 std::cout <<
" [LaserAlignment::produce] -- LaserAlignment::isATBeam declares this event " << (isATMode ?
"" :
"NOT ")
375 <<
"an AT event." << std::endl;
389 LogDebug(
"[LaserAlignment::produce]")
429 LogDebug(
"[LaserAlignment::produce]")
448 LogDebug(
"[LaserAlignment::produce]")
490 std::cout <<
" [LaserAlignment::endRun] -- Total number of events processed: " <<
theEvents << std::endl;
507 std::pair<double, double> peakFinderResults;
533 std::cout <<
" [LaserAlignment::endRun] ** WARNING: Fit failed for TEC det: " << det <<
", ring: " <<
ring 535 <<
")." << std::endl;
550 const float positionInStrips =
553 : peakFinderResults.first;
555 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
563 measuredStripPositions.
GetTECEntry(det,
ring,
beam, disk) = std::pair<float, float>(256., 1000.);
565 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(256.));
586 std::cout <<
" [LaserAlignment::endJob] ** WARNING: Fit failed for TIB/TOB det: " << det <<
", beam: " <<
beam 601 const float positionInStrips =
604 : peakFinderResults.first;
606 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
612 const GlobalPoint& globalPoint = theStripDet->surface().toGlobal(
633 std::cout <<
" [LaserAlignment::endRun] ** WARNING: Fit failed for TEC2TEC det: " << det <<
", beam: " <<
beam 648 const float positionInStrips =
651 : peakFinderResults.first;
653 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
659 const GlobalPoint& globalPoint = theStripDet->surface().toGlobal(
710 const unsigned int nIterations = 30;
722 endcapParameters.
Print();
726 geometryUpdater.
EndcapUpdate(endcapParameters, measuredCoordinates);
756 const unsigned int nIterations = 30;
772 alignmentTubeParameters.
Print();
783 auto laserBeams = std::make_unique<TkLasBeamCollection>();
786 for (det = 0; det < 2; ++det) {
793 const int firstDisk = det == 0 ? 0 : 8;
794 const int lastDisk = det == 0 ? 8 : 0;
797 for (disk = firstDisk; det == 0 ? disk <= lastDisk : disk >= lastDisk; det == 0 ? ++disk : --disk) {
808 theStripDet->specificTopology().localError(
816 laserBeams->push_back(currentBeam);
830 for (disk = 4; disk >= 0; --disk) {
839 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first),
840 theStripDet->specificTopology().localError(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first,
848 for (det = 2; det < 4; ++det) {
859 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTIBTOBEntry(det,
beam,
pos).first),
860 theStripDet->specificTopology().localError(measuredStripPositions.
GetTIBTOBEntry(det,
beam,
pos).first,
870 for (disk = 0; disk < 5; ++disk) {
879 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first),
880 theStripDet->specificTopology().localError(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first,
888 laserBeams->push_back(currentBeam);
901 std::cout <<
" [LaserAlignment::endRun] -- Storing the calculated alignment parameters to the DataBase:" 907 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
928 std::cout <<
" [LaserAlignment::endRun] -- Storing done." << std::endl;
946 bool isRawDigi =
false;
949 int det = 0,
ring = 0,
beam = 0, disk = 0,
pos = 0;
952 for (std::vector<edm::ParameterSet>::iterator itDigiProducersList =
theDigiProducersList.begin();
954 ++itDigiProducersList) {
961 if (digiType ==
"Raw") {
964 }
else if (digiType ==
"Processed") {
969 <<
" ** ERROR: Invalid digi type: \"" << digiType <<
"\" specified in configuration." << std::endl;
988 if (detSetIter == theStripRawDigis->end()) {
990 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
998 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1000 const int channel =
distance(digiRangeStart, digiRangeIterator);
1001 if (channel >= 0 && channel < 512)
1005 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1017 if (detSetIter == theStripDigis->end())
1023 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1025 if (digi.
strip() < 512)
1029 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1051 if (detSetIter == theStripRawDigis->end()) {
1053 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
1061 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1063 const int channel =
distance(digiRangeStart, digiRangeIterator);
1064 if (channel >= 0 && channel < 512)
1068 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1080 if (detSetIter == theStripDigis->end())
1086 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1088 if (digi.
strip() < 512)
1092 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1114 if (detSetIter == theStripRawDigis->end()) {
1116 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
1124 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1126 const int channel =
distance(digiRangeStart, digiRangeIterator);
1127 if (channel >= 0 && channel < 512)
1131 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1143 if (detSetIter == theStripDigis->end())
1149 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1151 if (digi.
strip() < 512)
1155 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1185 if (thePedestal > 895)
1186 thePedestal -= 1024;
1199 if (thePedestal > 895)
1200 thePedestal -= 1024;
1213 if (thePedestal > 895)
1214 thePedestal -= 1024;
1226 int numberOfProfiles = 0;
1229 for (
int det = 0; det < 2; ++det) {
1231 for (
int disk = 0; disk < 9; ++disk) {
1238 LogDebug(
"[LaserAlignment::isTECBeam]") <<
" Found: " << numberOfProfiles <<
"hits." << std::endl;
1239 std::cout <<
" [LaserAlignment::isTECBeam] -- Found: " << numberOfProfiles <<
" hits." << std::endl;
1241 if (numberOfProfiles > 10)
1253 int numberOfProfiles = 0;
1263 LogDebug(
"[LaserAlignment::isATBeam]") <<
" Found: " << numberOfProfiles <<
"hits." << std::endl;
1264 std::cout <<
" [LaserAlignment::isATBeam] -- Found: " << numberOfProfiles <<
" hits." << std::endl;
1266 if (numberOfProfiles > 10)
1280 if (det < 2 || det > 3 ||
beam > 7 ||
pos > 5) {
1281 throw cms::Exception(
"[LaserAlignment::getTIBTOBNominalBeamOffset]")
1282 <<
" ERROR ** Called with nonexisting parameter set: det " << det <<
" beam " <<
beam <<
" pos " <<
pos <<
"." 1286 const double nominalOffsetsTIB[8] = {
1287 0.00035, 2.10687, -2.10827, -0.00173446, 2.10072, -0.00135114, 2.10105, -2.10401};
1292 const int orientationPattern[6] = {-1, 1, 1, -1, -1, 1};
1293 const double nominalOffsetsTOB[8] = {0.00217408, 1.58678, 117.733, 119.321, 120.906, 119.328, 117.743, 1.58947};
1296 return (-1. * nominalOffsetsTIB[
beam]);
1300 return (nominalOffsetsTOB[
beam] * orientationPattern[
pos]);
1302 return (-1. * nominalOffsetsTOB[
beam] * orientationPattern[
pos]);
1315 if (det > 1 ||
beam > 7 || disk > 5) {
1316 throw cms::Exception(
"[LaserAlignment::getTEC2TECNominalBeamOffset]")
1317 <<
" ERROR ** Called with nonexisting parameter set: det " << det <<
" beam " <<
beam <<
" disk " << disk <<
"." 1321 const double nominalOffsets[8] = {0., 2.220, -2.221, 0., 2.214, 0., 2.214, -2.217};
1324 return -1. * nominalOffsets[
beam];
1326 return nominalOffsets[
beam];
1338 const double tecPhiPositions[8] = {
1339 0.392699, 1.178097, 1.963495, 2.748894, 3.534292, 4.319690, 5.105088, 5.890486};
1340 const double atPhiPositions[8] = {
1341 0.392699, 1.289799, 1.851794, 2.748894, 3.645995, 4.319690, 5.216791, 5.778784};
1344 const double tobRPosition = 600.;
1345 const double tibRPosition = 514.;
1346 const double tecRPosition[2] = {564., 840.};
1349 const double tobZPosition[6] = {1040., 580., 220., -140., -500., -860.};
1350 const double tibZPosition[6] = {620., 380., 180., -100., -340., -540.};
1353 const double tecZPosition[9] = {1322.5, 1462.5, 1602.5, 1742.5, 1882.5, 2057.5, 2247.5, 2452.5, 2667.5};
1383 tecPhiPositions[
beam], 0., tecRPosition[
ring], 0., -1. * tecZPosition[disk], 0.));
1416 LASCoordinateSet(atPhiPositions[
beam], 0., tecRPosition[0], 0., -1. * tecZPosition[disk], 0.));
1427 if (angle < -1. * M_PI || angle >
M_PI) {
1429 <<
"** ERROR: Called with illegal input angle: " <<
angle <<
"." << std::endl;
1445 std::cout << std::endl <<
" [LaserAlignment::DumpPosFileSet] -- Dump: " << std::endl;
1453 std::cout <<
"POS " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" <<
ring <<
"\t" 1474 std::cout <<
"POS " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" 1478 }
while (
loop.TEC2TECLoop(det,
beam, disk));
1480 std::cout << std::endl <<
" [LaserAlignment::DumpPosFileSet] -- End dump: " << std::endl;
1490 std::cout << std::endl <<
" [LaserAlignment::DumpStripFileSet] -- Dump: " << std::endl;
1498 std::cout <<
"STRIP " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" <<
ring <<
"\t" 1499 << measuredStripPositions.GetTECEntry(det,
ring,
beam, disk).first <<
"\t" 1500 << measuredStripPositions.GetTECEntry(det,
ring,
beam, disk).second << std::endl;
1510 <<
"\t" << measuredStripPositions.GetTIBTOBEntry(det,
beam,
pos).first <<
"\t" 1511 << measuredStripPositions.GetTIBTOBEntry(det,
beam,
pos).second << std::endl;
1519 std::cout <<
"STRIP " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" 1521 <<
"\t" << measuredStripPositions.GetTEC2TECEntry(det,
beam, disk).first <<
"\t" 1522 << measuredStripPositions.GetTEC2TECEntry(det,
beam, disk).second << std::endl;
1523 }
while (
loop.TEC2TECLoop(det,
beam, disk));
1525 std::cout << std::endl <<
" [LaserAlignment::DumpStripFileSet] -- End dump: " << std::endl;
1532 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Dumping hitmap for TEC+:" << std::endl;
1533 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring4:" << std::endl;
1534 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1538 for (
int disk = 0; disk < 9; ++disk) {
1544 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring6:" << std::endl;
1545 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1549 for (
int disk = 0; disk < 9; ++disk) {
1555 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Dumping hitmap for TEC-:" << std::endl;
1556 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring4:" << std::endl;
1557 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1561 for (
int disk = 0; disk < 9; ++disk) {
1567 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring6:" << std::endl;
1568 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1572 for (
int disk = 0; disk < 9; ++disk) {
1578 std::cout <<
" [LaserAlignment::DumpHitmaps] -- End of dump." << std::endl << std::endl;
1651 const double phiCorrection =
1671 const double phiCorrection =
1690 const double atPhiPositions[8] = {0.392699, 1.289799, 1.851794, 2.748894, 3.645995, 4.319690, 5.216791, 5.778784};
1691 const double tecPhiPositions[8] = {0.392699, 1.178097, 1.963495, 2.748894, 3.534292, 4.319690, 5.105088, 5.890486};
1692 const double zPositions[9] = {125.0, 139.0, 153.0, 167.0, 181.0, 198.5, 217.5, 238.0, 259.5};
1693 const double zPositionsTIB[6] = {62.0, 38.0, 18.0, -10.0, -34.0, -54.0};
1694 const double zPositionsTOB[6] = {104.0, 58.0, 22.0, -14.0, -50.0, -86.0};
1713 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1714 std::cout <<
"__TEC: " << 256. - theStripDet->specificTopology().strip(lp)
1726 (det == 2 ? 51.4 : 58.4);
1727 const double theZ = (det == 2 ? zPositionsTIB[
pos] : zPositionsTOB[
pos]);
1736 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1737 std::cout <<
"__TIBTOB det " << det <<
" beam " <<
beam <<
" pos " <<
pos <<
" " 1738 << 256. - theStripDet->specificTopology().strip(lp);
1739 std::cout <<
" " << theStripDet->position().perp() << std::endl;
1749 const double radius = 56.4;
1758 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1759 std::cout <<
"__TEC2TEC det " << det <<
" beam " <<
beam <<
" disk " << disk <<
" " 1760 << 256. - theStripDet->specificTopology().strip(lp) << std::endl;
bool IsSignalIn(const LASModuleProfile &, double)
void SetTEC2TECEntry(int subdetector, int beam, int tecDisk, T)
unsigned int judgeOverdriveThreshold
config parameters for the LASProfileJudge
void fillDataProfiles(edm::Event const &, edm::EventSetup const &)
fill profiles from SiStrip(Raw)Digi container
T getParameter(std::string const &) const
const edm::ESGetToken< PTrackerParameters, PTrackerParametersRcd > ptpToken_
const Range getRange(const uint32_t &detID) const
bool theSaveHistograms
config switch
void SetPhiError(double aPhiError)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
const edm::ESGetToken< GeometricDet, IdealGeometryRecord > geomDetToken_
void ApplyEndcapMaskingCorrections(LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &, LASEndcapAlignmentParameterSet &)
apply endcap correction to masked modules in TEC
Alignments * alignments() const override
Return alignments, sorted by DetId.
void produce(edm::Event &, edm::EventSetup const &) override
const edm::ESGetToken< SiStripPedestals, SiStripPedestalsRcd > stripPedestalsToken_
void TrackerUpdate(LASEndcapAlignmentParameterSet &, LASBarrelAlignmentParameterSet &, AlignableTracker &)
void SetMisalignmentFromRefGeometry(bool)
bool misalignedByRefGeometry
config switch
std::string theAlignRecordName
const edm::ESGetToken< PTrackerAdditionalParametersPerDet, PTrackerAdditionalParametersPerDetRcd > ptitpToken_
bool isTECBeam(void)
decide whether TEC or AT beams have fired
TrackerGeometry * build(const GeometricDet *gd, const PTrackerAdditionalParametersPerDet *ptitp, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
LaserAlignment(edm::ParameterSet const &theConf)
cond::Time_t beginOfTime() const
double getTIBTOBNominalBeamOffset(unsigned int, unsigned int, unsigned int)
returns the nominal beam position (strips) in TOB for the profileJudge
edm::ESHandle< TrackerGeometry > theTrackerGeometry
double peakFinderThreshold
config parameter
bool TEC2TECLoop(int &, int &, int &) const
void DumpHitmaps(LASGlobalData< int > &)
for debugging only, will disappear
void DumpPosFileSet(LASGlobalData< LASCoordinateSet > &)
for debugging only, will disappear
LASGlobalData< int > numberOfAcceptedProfiles
void SetAllValuesTo(const double &)
std::pair< ContainerIterator, ContainerIterator > Range
bool theDoPedestalSubtraction
config switch
LASGlobalData< LASModuleProfile > currentDataProfiles
data profiles for the current event
std::vector< unsigned int > theMaskTecModules
config parameters
bool theUseMinuitAlgorithm
config switch
TFile * theFile
Tree stuff.
double GetPhiError(void) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
LASGlobalData< int > isAcceptedProfile
void ApplyBeamKinkCorrections(LASGlobalData< LASCoordinateSet > &) const
std::vector< edm::ParameterSet > theDigiProducersList
void DumpStripFileSet(LASGlobalData< std::pair< float, float > > &)
for debugging only, will disappear
float getPed(const uint16_t &strip, const Range &range) const
void fillPedestalProfiles(edm::ESHandle< SiStripPedestals > &)
fill pedestals from dbase
~LaserAlignment() override
const uint16_t & strip() const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
const uint16_t & adc() const
LASGlobalData< TH1D * > summedHistograms
bool FindPeakIn(const LASModuleProfile &, std::pair< double, double > &, TH1D *, const double)
TDirectory * singleModulesDir
void push_back(const SiStripLaserRecHit2D &aHit)
insert a hit in the data vector
double ConvertAngle(double)
convert an angle in the [-pi,pi] range to the [0,2*pi] range
bool TECLoop(int &, int &, int &, int &) const
LASBarrelAlignmentParameterSet CalculateParameters(LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &)
edm::ESHandle< Alignments > theGlobalPositionRcd
std::string theFileName
config parameter (histograms file output name)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Tokens for ESconsumes.
Hash writeOneIOV(const T &payload, Time_t time, const std::string &recordName)
std::vector< unsigned int > tecDoubleHitDetId
#define DEFINE_FWK_MODULE(type)
void SetAmplitudeThreshold(double)
void endRunProduce(edm::Run &, const edm::EventSetup &) override
bool theApplyBeamKinkCorrections
config switch
T & GetTIBTOBEntry(int subdetector, int beam, int tibTobPosition)
bool JudgeProfile(const LASModuleProfile &, double)
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
void SetReverseDirection(bool)
void SetTIBTOBEntry(int subdetector, int beam, int tibTobPosition, T)
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
void CalculateNominalCoordinates(void)
fills a LASGlobalData<LASCoordinateSet> with nominal module positions
const TrackerGeomDet * idToDet(DetId) const override
iterator end()
Return the off-the-end iterator.
LASEndcapAlignmentParameterSet CalculateParameters(LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &)
std::string theErrorRecordName
double GetTEC2TECAlignmentParameterCorrection(int, int, int, LASGlobalData< LASCoordinateSet > &, LASBarrelAlignmentParameterSet &)
bool TIBTOBLoop(int &, int &, int &) const
void SetValue(unsigned int theStripNumber, const double &theValue)
bool theStoreToDB
config switch
double GetPhi(void) const
Detector identifier class for the strip tracker.
LASGlobalData< LASModuleProfile > pedestalProfiles
T & GetTEC2TECEntry(int subdetector, int beam, int tecDisk)
LASGlobalData< LASCoordinateSet > nominalCoordinates
AlignableTracker * theAlignableTracker
int theEvents
counter for the total number of events processed
LASBarrelAlignmentParameterSet CalculateParameters(LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &)
LASConstants theLasConstants
double getTEC2TECNominalBeamOffset(unsigned int, unsigned int, unsigned int)
returns the nominal beam position (strips) in TEC (AT) for the profileJudge
void put(std::unique_ptr< PROD > product)
Put a new product.
void SetOverdriveThreshold(unsigned int)
T & GetTECEntry(int subdetector, int tecRing, int beam, int tecDisk)
LASGlobalData< std::string > theProfileNames
double GetAlignmentParameterCorrection(int, int, int, int, LASGlobalData< LASCoordinateSet > &, LASEndcapAlignmentParameterSet &)
std::vector< unsigned int > theMaskAtModules
AlignmentErrorsExtended * alignmentErrors() const override
Return alignment errors, sorted by DetId.
void ApplyATMaskingCorrections(LASGlobalData< LASCoordinateSet > &, LASGlobalData< LASCoordinateSet > &, LASBarrelAlignmentParameterSet &)
same for alignment tube modules
void testRoutine(void)
for debugging & testing only, will disappear..
LASGlobalData< LASModuleProfile > collectedDataProfiles
void fillDetectorId(void)
fill hard coded detIds
int theCompression
config parameter (histograms file compression level)
void EnableZeroFilter(bool)
LASGlobalData< unsigned int > detectorId
const edm::ESGetToken< Alignments, GlobalPositionRcd > gprToken_
iterator begin()
Return an iterator to the first DetSet.
bool enableJudgeZeroFilter
config switch
collection_type::const_iterator const_iterator
collection_type::const_iterator const_iterator
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
double GetTIBTOBAlignmentParameterCorrection(int, int, int, LASGlobalData< LASCoordinateSet > &, LASBarrelAlignmentParameterSet &)
void SetTECEntry(int subdetector, int tecRing, int beam, int tecDisk, T)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::ESHandle< GeometricDet > gD
tracker geometry;
EventNumber_t event() const
void EndcapUpdate(LASEndcapAlignmentParameterSet &, LASGlobalData< LASCoordinateSet > &)
bool updateFromInputGeometry
config switch
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
bool theSetNominalStrips
config switch