29 theDoPedestalSubtraction(theConf.getUntrackedParameter<
bool>(
"SubtractPedestals",
true)),
30 theUseMinuitAlgorithm(theConf.getUntrackedParameter<
bool>(
"RunMinuitAlignmentTubeAlgorithm",
false)),
31 theApplyBeamKinkCorrections(theConf.getUntrackedParameter<
bool>(
"ApplyBeamKinkCorrections",
true)),
32 peakFinderThreshold(theConf.getUntrackedParameter<double>(
"PeakFinderThreshold", 10.)),
33 enableJudgeZeroFilter(theConf.getUntrackedParameter<
bool>(
"EnableJudgeZeroFilter",
true)),
34 judgeOverdriveThreshold(theConf.getUntrackedParameter<unsigned
int>(
"JudgeOverdriveThreshold", 220)),
35 updateFromInputGeometry(theConf.getUntrackedParameter<
bool>(
"UpdateFromInputGeometry",
false)),
36 misalignedByRefGeometry(theConf.getUntrackedParameter<
bool>(
"MisalignedByRefGeometry",
false)),
37 theStoreToDB(theConf.getUntrackedParameter<
bool>(
"SaveToDbase",
false)),
39 theSaveHistograms(theConf.getUntrackedParameter<
bool>(
"SaveHistograms",
false)),
40 theCompression(theConf.getUntrackedParameter<
int>(
"ROOTFileCompression", 1)),
41 theFileName(theConf.getUntrackedParameter<
std::
string>(
"ROOTFileName",
"test.root")),
42 theMaskTecModules(theConf.getUntrackedParameter<
std::
vector<unsigned
int> >(
"MaskTECModules")),
43 theMaskAtModules(theConf.getUntrackedParameter<
std::
vector<unsigned
int> >(
"MaskATModules")),
44 theSetNominalStrips(theConf.getUntrackedParameter<
bool>(
"ForceFitterToNominalStrips",
false)),
47 theAlignableTracker(),
48 theAlignRecordName(
"TrackerAlignmentRcd"),
49 theErrorRecordName(
"TrackerAlignmentErrorExtendedRcd"),
52 std::cout <<
"==============================================================" 53 <<
"\n=== LaserAlignment module configuration ===" 66 <<
"\n Number of TEC modules masked = " <<
theMaskTecModules.size() <<
" (s. below list if > 0)" 67 <<
"\n Number of AT modules masked = " <<
theMaskAtModules.size() <<
" (s. below list if > 0)" 68 <<
"\n Store to database = " << (
theStoreToDB ?
"true" :
"false")
69 <<
"\n ----------------------------------------------- ----------" 71 <<
"\n=============================================================" << std::endl;
75 std::cout <<
" ===============================================================================================\n" 78 <<
" TEC modules have been masked out and will not be considered by the TEC algorithm:\n " << std::flush;
84 std::cout <<
" ===============================================================================================\n\n" 88 std::cout <<
" ===============================================================================================\n" 91 <<
" AT modules have been masked out and will not be considered by the AT algorithm:\n " << std::flush;
97 std::cout <<
" ===============================================================================================\n\n" 105 produces<TkLasBeamCollection, edm::Transition::EndRun>(
"tkLaserBeams").setBranchAlias(
alias +
"TkLasBeamCollection");
143 <<
" ** ERROR: could not open file:" <<
theFileName.c_str() <<
" for writing." << std::endl;
154 std::stringstream nameBuilder;
177 nameBuilder <<
"TEC";
182 nameBuilder <<
"_Ring";
187 nameBuilder <<
"_Beam" <<
beam;
188 nameBuilder <<
"_Disk" << disk;
193 nameBuilder <<
"_Histo";
195 det,
ring,
beam, disk,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
219 nameBuilder <<
"TIB";
221 nameBuilder <<
"TOB";
222 nameBuilder <<
"_Beam" <<
beam;
223 nameBuilder <<
"_Zpos" <<
pos;
229 nameBuilder <<
"_Histo";
231 det,
beam,
pos,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
254 nameBuilder <<
"TEC(AT)";
259 nameBuilder <<
"_Beam" <<
beam;
260 nameBuilder <<
"_Disk" << disk;
265 nameBuilder <<
"_Histo";
267 det,
beam, disk,
new TH1D(nameBuilder.str().c_str(), nameBuilder.str().c_str(), 512, 0, 512));
316 LogDebug(
"LaserAlignment") <<
"===========================================================" 317 <<
"\n Private analysis of event #" << theEvent.
id().
event() <<
" in run #" 318 << theEvent.
id().
run();
334 for (det = 0; det < 2; ++det) {
336 for (disk = 0; disk < 9; ++disk) {
367 std::cout <<
" [LaserAlignment::produce] -- LaserAlignment::isTECBeam declares this event " 368 << (isTECMode ?
"" :
"NOT ") <<
"a TEC event." << std::endl;
372 std::cout <<
" [LaserAlignment::produce] -- LaserAlignment::isATBeam declares this event " << (isATMode ?
"" :
"NOT ")
373 <<
"an AT event." << std::endl;
387 LogDebug(
"[LaserAlignment::produce]")
427 LogDebug(
"[LaserAlignment::produce]")
446 LogDebug(
"[LaserAlignment::produce]")
488 std::cout <<
" [LaserAlignment::endRun] -- Total number of events processed: " <<
theEvents << std::endl;
505 std::pair<double, double> peakFinderResults;
531 std::cout <<
" [LaserAlignment::endRun] ** WARNING: Fit failed for TEC det: " << det <<
", ring: " <<
ring 533 <<
")." << std::endl;
548 const float positionInStrips =
551 : peakFinderResults.first;
553 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
561 measuredStripPositions.
GetTECEntry(det,
ring,
beam, disk) = std::pair<float, float>(256., 1000.);
563 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(256.));
584 std::cout <<
" [LaserAlignment::endJob] ** WARNING: Fit failed for TIB/TOB det: " << det <<
", beam: " <<
beam 599 const float positionInStrips =
602 : peakFinderResults.first;
604 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
610 const GlobalPoint& globalPoint = theStripDet->surface().toGlobal(
631 std::cout <<
" [LaserAlignment::endRun] ** WARNING: Fit failed for TEC2TEC det: " << det <<
", beam: " <<
beam 646 const float positionInStrips =
649 : peakFinderResults.first;
651 theStripDet->surface().toGlobal(theStripDet->specificTopology().localPosition(positionInStrips));
657 const GlobalPoint& globalPoint = theStripDet->surface().toGlobal(
708 const unsigned int nIterations = 30;
720 endcapParameters.
Print();
724 geometryUpdater.
EndcapUpdate(endcapParameters, measuredCoordinates);
754 const unsigned int nIterations = 30;
770 alignmentTubeParameters.
Print();
781 auto laserBeams = std::make_unique<TkLasBeamCollection>();
784 for (det = 0; det < 2; ++det) {
791 const int firstDisk = det == 0 ? 0 : 8;
792 const int lastDisk = det == 0 ? 8 : 0;
795 for (disk = firstDisk; det == 0 ? disk <= lastDisk : disk >= lastDisk; det == 0 ? ++disk : --disk) {
806 theStripDet->specificTopology().localError(
814 laserBeams->push_back(currentBeam);
828 for (disk = 4; disk >= 0; --disk) {
837 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first),
838 theStripDet->specificTopology().localError(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first,
846 for (det = 2; det < 4; ++det) {
857 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTIBTOBEntry(det,
beam,
pos).first),
858 theStripDet->specificTopology().localError(measuredStripPositions.
GetTIBTOBEntry(det,
beam,
pos).first,
868 for (disk = 0; disk < 5; ++disk) {
877 theStripDet->specificTopology().localPosition(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first),
878 theStripDet->specificTopology().localError(measuredStripPositions.
GetTEC2TECEntry(det,
beam, disk).first,
886 laserBeams->push_back(currentBeam);
899 std::cout <<
" [LaserAlignment::endRun] -- Storing the calculated alignment parameters to the DataBase:" 905 throw cms::Exception(
"NotAvailable") <<
"PoolDBOutputService not available";
926 std::cout <<
" [LaserAlignment::endRun] -- Storing done." << std::endl;
944 bool isRawDigi =
false;
947 int det = 0,
ring = 0,
beam = 0, disk = 0,
pos = 0;
950 for (std::vector<edm::ParameterSet>::iterator itDigiProducersList =
theDigiProducersList.begin();
952 ++itDigiProducersList) {
959 if (digiType ==
"Raw") {
962 }
else if (digiType ==
"Processed") {
967 <<
" ** ERROR: Invalid digi type: \"" << digiType <<
"\" specified in configuration." << std::endl;
986 if (detSetIter == theStripRawDigis->end()) {
988 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
996 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
998 const int channel =
distance(digiRangeStart, digiRangeIterator);
999 if (channel >= 0 && channel < 512)
1003 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1015 if (detSetIter == theStripDigis->end())
1021 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1023 if (digi.
strip() < 512)
1027 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1049 if (detSetIter == theStripRawDigis->end()) {
1051 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
1059 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1061 const int channel =
distance(digiRangeStart, digiRangeIterator);
1062 if (channel >= 0 && channel < 512)
1066 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1078 if (detSetIter == theStripDigis->end())
1084 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1086 if (digi.
strip() < 512)
1090 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1112 if (detSetIter == theStripRawDigis->end()) {
1114 <<
" ** ERROR: No raw DetSet found for det: " << detRawId <<
"." << std::endl;
1122 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1124 const int channel =
distance(digiRangeStart, digiRangeIterator);
1125 if (channel >= 0 && channel < 512)
1129 <<
" ** ERROR: raw digi channel: " << channel <<
" out of range for det: " << detRawId <<
"." 1141 if (detSetIter == theStripDigis->end())
1147 for (; digiRangeIterator != detSetIter->data.
end(); ++digiRangeIterator) {
1149 if (digi.
strip() < 512)
1153 <<
" ** ERROR: digi strip: " << digi.
strip() <<
" out of range for det: " << detRawId <<
"." 1183 if (thePedestal > 895)
1184 thePedestal -= 1024;
1197 if (thePedestal > 895)
1198 thePedestal -= 1024;
1211 if (thePedestal > 895)
1212 thePedestal -= 1024;
1224 int numberOfProfiles = 0;
1227 for (
int det = 0; det < 2; ++det) {
1229 for (
int disk = 0; disk < 9; ++disk) {
1236 LogDebug(
"[LaserAlignment::isTECBeam]") <<
" Found: " << numberOfProfiles <<
"hits." << std::endl;
1237 std::cout <<
" [LaserAlignment::isTECBeam] -- Found: " << numberOfProfiles <<
" hits." << std::endl;
1239 if (numberOfProfiles > 10)
1251 int numberOfProfiles = 0;
1261 LogDebug(
"[LaserAlignment::isATBeam]") <<
" Found: " << numberOfProfiles <<
"hits." << std::endl;
1262 std::cout <<
" [LaserAlignment::isATBeam] -- Found: " << numberOfProfiles <<
" hits." << std::endl;
1264 if (numberOfProfiles > 10)
1278 if (det < 2 || det > 3 ||
beam > 7 ||
pos > 5) {
1279 throw cms::Exception(
"[LaserAlignment::getTIBTOBNominalBeamOffset]")
1280 <<
" ERROR ** Called with nonexisting parameter set: det " << det <<
" beam " <<
beam <<
" pos " <<
pos <<
"." 1284 const double nominalOffsetsTIB[8] = {
1285 0.00035, 2.10687, -2.10827, -0.00173446, 2.10072, -0.00135114, 2.10105, -2.10401};
1290 const int orientationPattern[6] = {-1, 1, 1, -1, -1, 1};
1291 const double nominalOffsetsTOB[8] = {0.00217408, 1.58678, 117.733, 119.321, 120.906, 119.328, 117.743, 1.58947};
1294 return (-1. * nominalOffsetsTIB[
beam]);
1298 return (nominalOffsetsTOB[
beam] * orientationPattern[
pos]);
1300 return (-1. * nominalOffsetsTOB[
beam] * orientationPattern[
pos]);
1313 if (det > 1 ||
beam > 7 || disk > 5) {
1314 throw cms::Exception(
"[LaserAlignment::getTEC2TECNominalBeamOffset]")
1315 <<
" ERROR ** Called with nonexisting parameter set: det " << det <<
" beam " <<
beam <<
" disk " << disk <<
"." 1319 const double nominalOffsets[8] = {0., 2.220, -2.221, 0., 2.214, 0., 2.214, -2.217};
1322 return -1. * nominalOffsets[
beam];
1324 return nominalOffsets[
beam];
1336 const double tecPhiPositions[8] = {
1337 0.392699, 1.178097, 1.963495, 2.748894, 3.534292, 4.319690, 5.105088, 5.890486};
1338 const double atPhiPositions[8] = {
1339 0.392699, 1.289799, 1.851794, 2.748894, 3.645995, 4.319690, 5.216791, 5.778784};
1342 const double tobRPosition = 600.;
1343 const double tibRPosition = 514.;
1344 const double tecRPosition[2] = {564., 840.};
1347 const double tobZPosition[6] = {1040., 580., 220., -140., -500., -860.};
1348 const double tibZPosition[6] = {620., 380., 180., -100., -340., -540.};
1351 const double tecZPosition[9] = {1322.5, 1462.5, 1602.5, 1742.5, 1882.5, 2057.5, 2247.5, 2452.5, 2667.5};
1381 tecPhiPositions[
beam], 0., tecRPosition[
ring], 0., -1. * tecZPosition[disk], 0.));
1414 LASCoordinateSet(atPhiPositions[
beam], 0., tecRPosition[0], 0., -1. * tecZPosition[disk], 0.));
1425 if (angle < -1. * M_PI || angle >
M_PI) {
1427 <<
"** ERROR: Called with illegal input angle: " <<
angle <<
"." << std::endl;
1443 std::cout << std::endl <<
" [LaserAlignment::DumpPosFileSet] -- Dump: " << std::endl;
1451 std::cout <<
"POS " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" <<
ring <<
"\t" 1472 std::cout <<
"POS " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" 1476 }
while (
loop.TEC2TECLoop(det,
beam, disk));
1478 std::cout << std::endl <<
" [LaserAlignment::DumpPosFileSet] -- End dump: " << std::endl;
1488 std::cout << std::endl <<
" [LaserAlignment::DumpStripFileSet] -- Dump: " << std::endl;
1496 std::cout <<
"STRIP " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" <<
ring <<
"\t" 1497 << measuredStripPositions.GetTECEntry(det,
ring,
beam, disk).first <<
"\t" 1498 << measuredStripPositions.GetTECEntry(det,
ring,
beam, disk).second << std::endl;
1508 <<
"\t" << measuredStripPositions.GetTIBTOBEntry(det,
beam,
pos).first <<
"\t" 1509 << measuredStripPositions.GetTIBTOBEntry(det,
beam,
pos).second << std::endl;
1517 std::cout <<
"STRIP " << det <<
"\t" <<
beam <<
"\t" << disk <<
"\t" 1519 <<
"\t" << measuredStripPositions.GetTEC2TECEntry(det,
beam, disk).first <<
"\t" 1520 << measuredStripPositions.GetTEC2TECEntry(det,
beam, disk).second << std::endl;
1521 }
while (
loop.TEC2TECLoop(det,
beam, disk));
1523 std::cout << std::endl <<
" [LaserAlignment::DumpStripFileSet] -- End dump: " << std::endl;
1530 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Dumping hitmap for TEC+:" << std::endl;
1531 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring4:" << std::endl;
1532 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1536 for (
int disk = 0; disk < 9; ++disk) {
1542 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring6:" << std::endl;
1543 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1547 for (
int disk = 0; disk < 9; ++disk) {
1553 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Dumping hitmap for TEC-:" << std::endl;
1554 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring4:" << std::endl;
1555 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1559 for (
int disk = 0; disk < 9; ++disk) {
1565 std::cout <<
" [LaserAlignment::DumpHitmaps] -- Ring6:" << std::endl;
1566 std::cout <<
" disk0 disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8" << std::endl;
1570 for (
int disk = 0; disk < 9; ++disk) {
1576 std::cout <<
" [LaserAlignment::DumpHitmaps] -- End of dump." << std::endl << std::endl;
1649 const double phiCorrection =
1669 const double phiCorrection =
1688 const double atPhiPositions[8] = {0.392699, 1.289799, 1.851794, 2.748894, 3.645995, 4.319690, 5.216791, 5.778784};
1689 const double tecPhiPositions[8] = {0.392699, 1.178097, 1.963495, 2.748894, 3.534292, 4.319690, 5.105088, 5.890486};
1690 const double zPositions[9] = {125.0, 139.0, 153.0, 167.0, 181.0, 198.5, 217.5, 238.0, 259.5};
1691 const double zPositionsTIB[6] = {62.0, 38.0, 18.0, -10.0, -34.0, -54.0};
1692 const double zPositionsTOB[6] = {104.0, 58.0, 22.0, -14.0, -50.0, -86.0};
1711 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1712 std::cout <<
"__TEC: " << 256. - theStripDet->specificTopology().strip(lp)
1724 (det == 2 ? 51.4 : 58.4);
1725 const double theZ = (det == 2 ? zPositionsTIB[
pos] : zPositionsTOB[
pos]);
1734 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1735 std::cout <<
"__TIBTOB det " << det <<
" beam " <<
beam <<
" pos " <<
pos <<
" " 1736 << 256. - theStripDet->specificTopology().strip(lp);
1737 std::cout <<
" " << theStripDet->position().perp() << std::endl;
1747 const double radius = 56.4;
1756 const LocalPoint lp(theStripDet->surface().toLocal(
gp));
1757 std::cout <<
"__TEC2TEC det " << det <<
" beam " <<
beam <<
" disk " << disk <<
" " 1758 << 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
bool isTECBeam(void)
decide whether TEC or AT beams have fired
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 &)
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp, const TrackerTopology *tTopo)
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