CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Attributes
CSCOverlapsAlignmentAlgorithm Class Reference

#include <Alignment/CSCOverlapsAlignmentAlgorithm/interface/CSCOverlapsAlignmentAlgorithm.h>

Inheritance diagram for CSCOverlapsAlignmentAlgorithm:
AlignmentAlgorithmBase

Public Member Functions

 CSCOverlapsAlignmentAlgorithm (const edm::ParameterSet &iConfig)
 
void initialize (const edm::EventSetup &iSetup, AlignableTracker *alignableTracker, AlignableMuon *alignableMuon, AlignableExtras *alignableExtras, AlignmentParameterStore *alignmentParameterStore) override
 Call at beginning of job (must be implemented in derived class) More...
 
void run (const edm::EventSetup &iSetup, const EventInfo &eventInfo) override
 Run the algorithm (must be implemented in derived class) More...
 
void terminate (const edm::EventSetup &iSetup) override
 Call at end of each loop (must be implemented in derived class) More...
 
 ~CSCOverlapsAlignmentAlgorithm () override
 
- Public Member Functions inherited from AlignmentAlgorithmBase
virtual bool addCalibrations (const Calibrations &)
 
bool addCalibrations (const CalibrationsOwner &cals)
 
 AlignmentAlgorithmBase (const edm::ParameterSet &)
 Constructor. More...
 
virtual void beginLuminosityBlock (const edm::EventSetup &setup)
 called at begin of luminosity block (no lumi block info passed yet) More...
 
virtual void beginRun (const edm::Run &, const edm::EventSetup &, bool changed)
 called at begin of run More...
 
virtual void endLuminosityBlock (const edm::EventSetup &setup)
 called at end of luminosity block (no lumi block info passed yet) More...
 
virtual void endRun (const EndRunInfo &runInfo, const edm::EventSetup &setup)
 called at end of run - order of arguments like in EDProducer etc. More...
 
virtual bool processesEvents ()
 Returns whether algorithm proccesses events in current configuration. More...
 
virtual bool setParametersForRunRange (const RunRange &rr)
 
virtual void startNewLoop ()
 
virtual bool storeAlignments ()
 Returns whether algorithm produced results to be stored. More...
 
virtual bool supportsCalibrations ()
 
virtual void terminate ()
 Called at end of job (must be implemented in derived class) More...
 
virtual ~AlignmentAlgorithmBase ()
 Destructor. More...
 

Public Attributes

bool m_combineME11
 
TH1F * m_drdz
 
bool m_errorFromRMS
 
bool m_fiducial
 
TProfile * m_fiducial_ME11
 
TProfile * m_fiducial_ME12
 
TProfile * m_fiducial_MEx1
 
TProfile * m_fiducial_MEx2
 
TH1F * m_hitsPerChamber
 
bool m_makeHistograms
 
double m_maxdrdz
 
int m_minHitsPerChamber
 
int m_minStationsInTrackRefits
 
int m_minTracksPerOverlap
 
int m_mode
 
TH2F * m_occupancy
 
TH1F * m_offsetResiduals
 
TH1F * m_offsetResiduals_normalized
 
TH1F * m_offsetResiduals_weighted
 
TH2F * m_RPhipos_mem1
 
TH2F * m_RPhipos_mem2
 
TH2F * m_RPhipos_mem3
 
TH2F * m_RPhipos_mem4
 
TH2F * m_RPhipos_mep1
 
TH2F * m_RPhipos_mep2
 
TH2F * m_RPhipos_mep3
 
TH2F * m_RPhipos_mep4
 
TH1F * m_slope
 
TH1F * m_slope_MEm1
 
TH1F * m_slope_MEm2
 
TH1F * m_slope_MEm3
 
TH1F * m_slope_MEm4
 
TH1F * m_slope_MEp1
 
TH1F * m_slope_MEp2
 
TH1F * m_slope_MEp3
 
TH1F * m_slope_MEp4
 
bool m_slopeFromTrackRefit
 
TH1F * m_slopeResiduals
 
TH1F * m_slopeResiduals_normalized
 
TH1F * m_slopeResiduals_weighted
 
double m_truncateOffsetResid
 
double m_truncateSlopeResid
 
bool m_useHitWeights
 
bool m_useTrackWeights
 
TH2F * m_XYpos_mem1
 
TH2F * m_XYpos_mem2
 
TH2F * m_XYpos_mem3
 
TH2F * m_XYpos_mem4
 
TH2F * m_XYpos_mep1
 
TH2F * m_XYpos_mep2
 
TH2F * m_XYpos_mep3
 
TH2F * m_XYpos_mep4
 

Private Attributes

AlignableNavigatorm_alignableNavigator
 
align::Alignables m_alignables
 
AlignmentParameterStorem_alignmentParameterStore
 
bool m_doAlignment
 
std::vector< CSCChamberFitterm_fitters
 
TH1F * m_histP10
 
TH1F * m_histP100
 
TH1F * m_histP1000
 
double m_maxRedChi2
 
double m_minP
 
std::string m_mode_string
 
std::string m_propagatorName
 
const Propagatorm_propagatorPointer
 
std::map< std::pair< CSCDetId, CSCDetId >, CSCPairResidualsConstraint * > m_quickChamberLookup
 
std::vector< std::string > m_readTemporaryFiles
 
std::string m_reportFileName
 
std::vector< CSCPairResidualsConstraint * > m_residualsConstraints
 
TrackTransformerm_trackTransformer
 
std::string m_writeTemporaryFile
 

Additional Inherited Members

- Public Types inherited from AlignmentAlgorithmBase
typedef std::pair< const Trajectory *, const reco::Track * > ConstTrajTrackPair
 
typedef std::vector< ConstTrajTrackPairConstTrajTrackPairCollection
 
using RunNumber = align::RunNumber
 
using RunRange = align::RunRange
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 61 of file CSCOverlapsAlignmentAlgorithm.h.

Constructor & Destructor Documentation

CSCOverlapsAlignmentAlgorithm::CSCOverlapsAlignmentAlgorithm ( const edm::ParameterSet iConfig)

Definition at line 3 of file CSCOverlapsAlignmentAlgorithm.cc.

References Exception, alignBH_cfg::fitters, edm::ParameterSet::getParameter(), mps_fire::i, CSCPairResidualsConstraint::kModePhiPos, CSCPairResidualsConstraint::kModePhiy, CSCPairResidualsConstraint::kModePhiz, CSCPairResidualsConstraint::kModeRadius, m_combineME11, m_drdz, m_fiducial_ME11, m_fiducial_ME12, m_fiducial_MEx1, m_fiducial_MEx2, m_fitters, m_histP10, m_histP100, m_histP1000, m_hitsPerChamber, m_makeHistograms, m_mode, m_mode_string, m_occupancy, m_offsetResiduals, m_offsetResiduals_normalized, m_offsetResiduals_weighted, M_PI, m_propagatorName, m_propagatorPointer, m_quickChamberLookup, m_residualsConstraints, m_RPhipos_mem1, m_RPhipos_mem2, m_RPhipos_mem3, m_RPhipos_mem4, m_RPhipos_mep1, m_RPhipos_mep2, m_RPhipos_mep3, m_RPhipos_mep4, m_slope, m_slope_MEm1, m_slope_MEm2, m_slope_MEm3, m_slope_MEm4, m_slope_MEp1, m_slope_MEp2, m_slope_MEp3, m_slope_MEp4, m_slopeFromTrackRefit, m_slopeResiduals, m_slopeResiduals_normalized, m_slopeResiduals_weighted, m_trackTransformer, m_XYpos_mem1, m_XYpos_mem2, m_XYpos_mem3, m_XYpos_mem4, m_XYpos_mep1, m_XYpos_mep2, m_XYpos_mep3, m_XYpos_mep4, TFileService::make(), AlCaHLTBitMon_QueryRunRegistry::string, and HLT_2018_cff::TrackTransformer.

4  : AlignmentAlgorithmBase(iConfig),
5  m_minHitsPerChamber(iConfig.getParameter<int>("minHitsPerChamber")),
6  m_maxdrdz(iConfig.getParameter<double>("maxdrdz")),
7  m_fiducial(iConfig.getParameter<bool>("fiducial")),
8  m_useHitWeights(iConfig.getParameter<bool>("useHitWeights")),
9  m_slopeFromTrackRefit(iConfig.getParameter<bool>("slopeFromTrackRefit")),
10  m_minStationsInTrackRefits(iConfig.getParameter<int>("minStationsInTrackRefits")),
11  m_truncateSlopeResid(iConfig.getParameter<double>("truncateSlopeResid")),
12  m_truncateOffsetResid(iConfig.getParameter<double>("truncateOffsetResid")),
13  m_combineME11(iConfig.getParameter<bool>("combineME11")),
14  m_useTrackWeights(iConfig.getParameter<bool>("useTrackWeights")),
15  m_errorFromRMS(iConfig.getParameter<bool>("errorFromRMS")),
16  m_minTracksPerOverlap(iConfig.getParameter<int>("minTracksPerOverlap")),
17  m_makeHistograms(iConfig.getParameter<bool>("makeHistograms")),
18  m_mode_string(iConfig.getParameter<std::string>("mode")),
19  m_reportFileName(iConfig.getParameter<std::string>("reportFileName")),
20  m_minP(iConfig.getParameter<double>("minP")),
21  m_maxRedChi2(iConfig.getParameter<double>("maxRedChi2")),
22  m_writeTemporaryFile(iConfig.getParameter<std::string>("writeTemporaryFile")),
23  m_readTemporaryFiles(iConfig.getParameter<std::vector<std::string> >("readTemporaryFiles")),
24  m_doAlignment(iConfig.getParameter<bool>("doAlignment")) {
25  if (m_mode_string == std::string("phiy"))
27  else if (m_mode_string == std::string("phipos"))
29  else if (m_mode_string == std::string("phiz"))
31  else if (m_mode_string == std::string("radius"))
33  else
34  throw cms::Exception("BadConfig") << "mode must be one of \"phiy\", \"phipos\", \"phiz\", \"radius\"" << std::endl;
35 
36  std::vector<edm::ParameterSet> fitters = iConfig.getParameter<std::vector<edm::ParameterSet> >("fitters");
37  for (std::vector<edm::ParameterSet>::const_iterator fitter = fitters.begin(); fitter != fitters.end(); ++fitter) {
39  }
40 
41  for (std::vector<CSCPairResidualsConstraint*>::const_iterator residualsConstraint = m_residualsConstraints.begin();
42  residualsConstraint != m_residualsConstraints.end();
43  ++residualsConstraint) {
44  (*residualsConstraint)->configure(this);
45  m_quickChamberLookup[std::pair<CSCDetId, CSCDetId>((*residualsConstraint)->id_i(), (*residualsConstraint)->id_j())] =
46  *residualsConstraint;
47  }
48 
50  m_trackTransformer = new TrackTransformer(iConfig.getParameter<edm::ParameterSet>("TrackTransformer"));
52  iConfig.getParameter<edm::ParameterSet>("TrackTransformer").getParameter<std::string>("Propagator");
53  } else {
54  m_trackTransformer = nullptr;
56  }
57 
58  m_propagatorPointer = nullptr;
59 
60  if (m_makeHistograms) {
61  edm::Service<TFileService> tFileService;
62  m_histP10 = tFileService->make<TH1F>("P10", "", 100, 0, 10);
63  m_histP100 = tFileService->make<TH1F>("P100", "", 100, 0, 100);
64  m_histP1000 = tFileService->make<TH1F>("P1000", "", 100, 0, 1000);
65 
66  m_hitsPerChamber = tFileService->make<TH1F>("hitsPerChamber", "", 10, -0.5, 9.5);
67 
68  m_fiducial_ME11 = tFileService->make<TProfile>("fiducial_ME11", "", 100, 0.075, 0.100);
69  m_fiducial_ME12 = tFileService->make<TProfile>("fiducial_ME12", "", 100, 0.080, 0.105);
70  m_fiducial_MEx1 = tFileService->make<TProfile>("fiducial_MEx1", "", 100, 0.160, 0.210);
71  m_fiducial_MEx2 = tFileService->make<TProfile>("fiducial_MEx2", "", 100, 0.080, 0.105);
72 
73  m_slope = tFileService->make<TH1F>("slope", "", 100, -0.5, 0.5);
74  m_slope_MEp4 = tFileService->make<TH1F>("slope_MEp4", "", 100, -0.5, 0.5);
75  m_slope_MEp3 = tFileService->make<TH1F>("slope_MEp3", "", 100, -0.5, 0.5);
76  m_slope_MEp2 = tFileService->make<TH1F>("slope_MEp2", "", 100, -0.5, 0.5);
77  m_slope_MEp1 = tFileService->make<TH1F>("slope_MEp1", "", 100, -0.5, 0.5);
78  m_slope_MEm1 = tFileService->make<TH1F>("slope_MEm1", "", 100, -0.5, 0.5);
79  m_slope_MEm2 = tFileService->make<TH1F>("slope_MEm2", "", 100, -0.5, 0.5);
80  m_slope_MEm3 = tFileService->make<TH1F>("slope_MEm3", "", 100, -0.5, 0.5);
81  m_slope_MEm4 = tFileService->make<TH1F>("slope_MEm4", "", 100, -0.5, 0.5);
82 
83  m_slopeResiduals = tFileService->make<TH1F>("slopeResiduals", "mrad", 300, -30., 30.);
84  m_slopeResiduals_weighted = tFileService->make<TH1F>("slopeResiduals_weighted", "mrad", 300, -30., 30.);
85  m_slopeResiduals_normalized = tFileService->make<TH1F>("slopeResiduals_normalized", "", 200, -20., 20.);
86  m_offsetResiduals = tFileService->make<TH1F>("offsetResiduals", "mm", 300, -30., 30.);
87  m_offsetResiduals_weighted = tFileService->make<TH1F>("offsetResiduals_weighted", "mm", 300, -30., 30.);
88  m_offsetResiduals_normalized = tFileService->make<TH1F>("offsetResiduals_normalized", "", 200, -20., 20.);
89 
90  m_drdz = tFileService->make<TH1F>("drdz", "", 100, -0.5, 0.5);
91 
92  m_occupancy = tFileService->make<TH2F>("occupancy", "", 36, 1, 37, 20, 1, 21);
93  for (int i = 1; i <= 36; i++) {
94  std::stringstream pairname;
95  pairname << i << "-";
96  if (i + 1 == 37)
97  pairname << 1;
98  else
99  pairname << (i + 1);
100  m_occupancy->GetXaxis()->SetBinLabel(i, pairname.str().c_str());
101  }
102  m_occupancy->GetYaxis()->SetBinLabel(1, "ME-4/2");
103  m_occupancy->GetYaxis()->SetBinLabel(2, "ME-4/1");
104  m_occupancy->GetYaxis()->SetBinLabel(3, "ME-3/2");
105  m_occupancy->GetYaxis()->SetBinLabel(4, "ME-3/1");
106  m_occupancy->GetYaxis()->SetBinLabel(5, "ME-2/2");
107  m_occupancy->GetYaxis()->SetBinLabel(6, "ME-2/1");
108  m_occupancy->GetYaxis()->SetBinLabel(7, "ME-1/3");
109  m_occupancy->GetYaxis()->SetBinLabel(8, "ME-1/2");
110  if (!m_combineME11) {
111  m_occupancy->GetYaxis()->SetBinLabel(9, "ME-1/1b");
112  m_occupancy->GetYaxis()->SetBinLabel(10, "ME-1/1a");
113  m_occupancy->GetYaxis()->SetBinLabel(11, "ME+1/1a");
114  m_occupancy->GetYaxis()->SetBinLabel(12, "ME+1/1b");
115  } else {
116  m_occupancy->GetYaxis()->SetBinLabel(9, "ME-1/1");
117  m_occupancy->GetYaxis()->SetBinLabel(10, "");
118  m_occupancy->GetYaxis()->SetBinLabel(11, "");
119  m_occupancy->GetYaxis()->SetBinLabel(12, "ME+1/1");
120  }
121  m_occupancy->GetYaxis()->SetBinLabel(13, "ME+1/2");
122  m_occupancy->GetYaxis()->SetBinLabel(14, "ME+1/3");
123  m_occupancy->GetYaxis()->SetBinLabel(15, "ME+2/1");
124  m_occupancy->GetYaxis()->SetBinLabel(16, "ME+2/2");
125  m_occupancy->GetYaxis()->SetBinLabel(17, "ME+3/1");
126  m_occupancy->GetYaxis()->SetBinLabel(18, "ME+3/2");
127  m_occupancy->GetYaxis()->SetBinLabel(19, "ME+4/1");
128  m_occupancy->GetYaxis()->SetBinLabel(20, "ME+4/2");
129 
130  m_XYpos_mep1 = tFileService->make<TH2F>("XYpos_mep1", "Positions: ME+1", 140, -700., 700., 140, -700., 700.);
131  m_XYpos_mep2 = tFileService->make<TH2F>("XYpos_mep2", "Positions: ME+2", 140, -700., 700., 140, -700., 700.);
132  m_XYpos_mep3 = tFileService->make<TH2F>("XYpos_mep3", "Positions: ME+3", 140, -700., 700., 140, -700., 700.);
133  m_XYpos_mep4 = tFileService->make<TH2F>("XYpos_mep4", "Positions: ME+4", 140, -700., 700., 140, -700., 700.);
134  m_XYpos_mem1 = tFileService->make<TH2F>("XYpos_mem1", "Positions: ME-1", 140, -700., 700., 140, -700., 700.);
135  m_XYpos_mem2 = tFileService->make<TH2F>("XYpos_mem2", "Positions: ME-2", 140, -700., 700., 140, -700., 700.);
136  m_XYpos_mem3 = tFileService->make<TH2F>("XYpos_mem3", "Positions: ME-3", 140, -700., 700., 140, -700., 700.);
137  m_XYpos_mem4 = tFileService->make<TH2F>("XYpos_mem4", "Positions: ME-4", 140, -700., 700., 140, -700., 700.);
138  m_RPhipos_mep1 = tFileService->make<TH2F>("RPhipos_mep1", "Positions: ME+1", 144, -M_PI, M_PI, 21, 0., 700.);
139  m_RPhipos_mep2 = tFileService->make<TH2F>("RPhipos_mep2", "Positions: ME+2", 144, -M_PI, M_PI, 21, 0., 700.);
140  m_RPhipos_mep3 = tFileService->make<TH2F>("RPhipos_mep3", "Positions: ME+3", 144, -M_PI, M_PI, 21, 0., 700.);
141  m_RPhipos_mep4 = tFileService->make<TH2F>("RPhipos_mep4", "Positions: ME+4", 144, -M_PI, M_PI, 21, 0., 700.);
142  m_RPhipos_mem1 = tFileService->make<TH2F>("RPhipos_mem1", "Positions: ME-1", 144, -M_PI, M_PI, 21, 0., 700.);
143  m_RPhipos_mem2 = tFileService->make<TH2F>("RPhipos_mem2", "Positions: ME-2", 144, -M_PI, M_PI, 21, 0., 700.);
144  m_RPhipos_mem3 = tFileService->make<TH2F>("RPhipos_mem3", "Positions: ME-3", 144, -M_PI, M_PI, 21, 0., 700.);
145  m_RPhipos_mem4 = tFileService->make<TH2F>("RPhipos_mem4", "Positions: ME-4", 144, -M_PI, M_PI, 21, 0., 700.);
146  } else {
147  m_histP10 = nullptr;
148  m_histP100 = nullptr;
149  m_histP1000 = nullptr;
150  m_hitsPerChamber = nullptr;
151  m_fiducial_ME11 = nullptr;
152  m_fiducial_ME12 = nullptr;
153  m_fiducial_MEx1 = nullptr;
154  m_fiducial_MEx2 = nullptr;
155  m_slope = nullptr;
156  m_slope_MEp4 = nullptr;
157  m_slope_MEp3 = nullptr;
158  m_slope_MEp2 = nullptr;
159  m_slope_MEp1 = nullptr;
160  m_slope_MEm1 = nullptr;
161  m_slope_MEm2 = nullptr;
162  m_slope_MEm3 = nullptr;
163  m_slope_MEm4 = nullptr;
164  m_slopeResiduals = nullptr;
165  m_slopeResiduals_weighted = nullptr;
166  m_slopeResiduals_normalized = nullptr;
167  m_offsetResiduals = nullptr;
168  m_offsetResiduals_weighted = nullptr;
170  m_drdz = nullptr;
171  m_occupancy = nullptr;
172  m_XYpos_mep1 = nullptr;
173  m_XYpos_mep2 = nullptr;
174  m_XYpos_mep3 = nullptr;
175  m_XYpos_mep4 = nullptr;
176  m_XYpos_mem1 = nullptr;
177  m_XYpos_mem2 = nullptr;
178  m_XYpos_mem3 = nullptr;
179  m_XYpos_mem4 = nullptr;
180  m_RPhipos_mep1 = nullptr;
181  m_RPhipos_mep2 = nullptr;
182  m_RPhipos_mep3 = nullptr;
183  m_RPhipos_mep4 = nullptr;
184  m_RPhipos_mem1 = nullptr;
185  m_RPhipos_mem2 = nullptr;
186  m_RPhipos_mem3 = nullptr;
187  m_RPhipos_mem4 = nullptr;
188  }
189 }
T getParameter(std::string const &) const
std::vector< CSCChamberFitter > m_fitters
std::vector< std::string > m_readTemporaryFiles
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::map< std::pair< CSCDetId, CSCDetId >, CSCPairResidualsConstraint * > m_quickChamberLookup
AlignmentAlgorithmBase(const edm::ParameterSet &)
Constructor.
#define M_PI
std::vector< CSCPairResidualsConstraint * > m_residualsConstraints
CSCOverlapsAlignmentAlgorithm::~CSCOverlapsAlignmentAlgorithm ( )
override

Definition at line 191 of file CSCOverlapsAlignmentAlgorithm.cc.

191 {}

Member Function Documentation

void CSCOverlapsAlignmentAlgorithm::initialize ( const edm::EventSetup setup,
AlignableTracker tracker,
AlignableMuon muon,
AlignableExtras extras,
AlignmentParameterStore store 
)
overridevirtual

Call at beginning of job (must be implemented in derived class)

Implements AlignmentAlgorithmBase.

Definition at line 193 of file CSCOverlapsAlignmentAlgorithm.cc.

References AlignmentParameterStore::alignables(), MuonSubdetId::CSC, Exception, FrontierConditions_GlobalTag_cff::file, MillePedeFileConverter_cfg::fileName, edm::EventSetup::get(), mps_fire::i, input, m_alignableNavigator, m_alignables, m_alignmentParameterStore, m_readTemporaryFiles, m_residualsConstraints, and DetId::Muon.

197  {
198  m_alignmentParameterStore = alignmentParameterStore;
200 
201  if (alignableTracker == nullptr)
202  m_alignableNavigator = new AlignableNavigator(alignableMuon);
203  else
204  m_alignableNavigator = new AlignableNavigator(alignableTracker, alignableMuon);
205 
206  for (const auto& alignable : m_alignables) {
207  DetId id = alignable->geomDetId();
208  if (id.det() != DetId::Muon || id.subdetId() != MuonSubdetId::CSC || CSCDetId(id.rawId()).layer() != 0) {
209  throw cms::Exception("BadConfig") << "Only CSC chambers may be alignable" << std::endl;
210  }
211 
212  std::vector<bool> selector = alignable->alignmentParameters()->selector();
213  for (std::vector<bool>::const_iterator i = selector.begin(); i != selector.end(); ++i) {
214  if (!(*i))
215  throw cms::Exception("BadConfig") << "All selector strings should be \"111111\"" << std::endl;
216  }
217  }
218 
219  edm::ESHandle<CSCGeometry> cscGeometry;
220  iSetup.get<MuonGeometryRecord>().get(cscGeometry);
221 
222  for (std::vector<CSCPairResidualsConstraint*>::const_iterator residualsConstraint = m_residualsConstraints.begin();
223  residualsConstraint != m_residualsConstraints.end();
224  ++residualsConstraint) {
225  (*residualsConstraint)->setZplane(&*cscGeometry);
226  }
227 
228  if (!m_readTemporaryFiles.empty()) {
229  std::vector<std::ifstream*> input;
230  for (std::vector<std::string>::const_iterator fileName = m_readTemporaryFiles.begin();
232  ++fileName) {
233  input.push_back(new std::ifstream(fileName->c_str()));
234  }
235 
236  for (std::vector<CSCPairResidualsConstraint*>::const_iterator residualsConstraint = m_residualsConstraints.begin();
237  residualsConstraint != m_residualsConstraints.end();
238  ++residualsConstraint) {
239  (*residualsConstraint)->read(input, m_readTemporaryFiles);
240  }
241 
242  for (std::vector<std::ifstream*>::const_iterator file = input.begin(); file != input.end(); ++file) {
243  delete (*file);
244  }
245  }
246 }
std::vector< std::string > m_readTemporaryFiles
AlignmentParameterStore * m_alignmentParameterStore
static std::string const input
Definition: EdmProvDump.cc:48
Definition: DetId.h:17
std::vector< CSCPairResidualsConstraint * > m_residualsConstraints
static constexpr int CSC
Definition: MuonSubdetId.h:12
const align::Alignables & alignables(void) const
get all alignables
void CSCOverlapsAlignmentAlgorithm::run ( const edm::EventSetup setup,
const EventInfo eventInfo 
)
overridevirtual

Run the algorithm (must be implemented in derived class)

Implements AlignmentAlgorithmBase.

Definition at line 248 of file CSCOverlapsAlignmentAlgorithm.cc.

References TransientTrackBuilder::build(), CSCDetId::chamber(), MuonSubdetId::CSC, CSCDetId::endcap(), edm::EventSetup::get(), m_combineME11, m_histP10, m_histP100, m_histP1000, m_makeHistograms, m_minP, m_propagatorName, m_propagatorPointer, m_quickChamberLookup, m_residualsConstraints, m_RPhipos_mem1, m_RPhipos_mem2, m_RPhipos_mem3, m_RPhipos_mem4, m_RPhipos_mep1, m_RPhipos_mep2, m_RPhipos_mep3, m_RPhipos_mep4, m_slopeFromTrackRefit, m_trackTransformer, m_XYpos_mem1, m_XYpos_mem2, m_XYpos_mem3, m_XYpos_mem4, m_XYpos_mep1, m_XYpos_mep2, m_XYpos_mep3, m_XYpos_mep4, genParticles_cff::map, Trajectory::measurements(), DetId::Muon, reco::TrackBase::p(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), TrackCandidateProducer_cfi::propagator, CSCDetId::ring(), TrackTransformer::setServices(), relativeConstraints::station, CSCDetId::station(), HLT_2018_cff::track, AlignmentAlgorithmBase::EventInfo::trajTrackPairs(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by DTWorkflow.DTWorkflow::all(), Types.EventID::cppID(), Types.LuminosityBlockID::cppID(), and o2olib.O2OTool::execute().

248  {
250  if (m_slopeFromTrackRefit) {
251  iSetup.get<TrackingComponentsRecord>().get(m_propagatorName, propagator);
252  if (m_propagatorPointer != &*propagator) {
254 
255  for (std::vector<CSCPairResidualsConstraint*>::const_iterator residualsConstraint =
256  m_residualsConstraints.begin();
257  residualsConstraint != m_residualsConstraints.end();
258  ++residualsConstraint) {
259  (*residualsConstraint)->setPropagator(m_propagatorPointer);
260  }
261  }
262  }
263 
264  edm::ESHandle<TransientTrackBuilder> transientTrackBuilder;
265  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder", transientTrackBuilder);
266 
267  if (m_trackTransformer != nullptr)
269 
270  const ConstTrajTrackPairCollection& trajtracks = eventInfo.trajTrackPairs();
271  for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end();
272  ++trajtrack) {
273  const Trajectory* traj = (*trajtrack).first;
274  const reco::Track* track = (*trajtrack).second;
275 
276  if (m_makeHistograms) {
277  m_histP10->Fill(track->p());
278  m_histP100->Fill(track->p());
279  m_histP1000->Fill(track->p());
280  }
281  if (track->p() >= m_minP) {
282  std::vector<TrajectoryMeasurement> measurements = traj->measurements();
283  reco::TransientTrack transientTrack = transientTrackBuilder->build(track);
284 
285  std::map<int, std::map<CSCDetId, bool> > stationsToChambers;
286  for (std::vector<TrajectoryMeasurement>::const_iterator measurement = measurements.begin();
287  measurement != measurements.end();
288  ++measurement) {
289  DetId id = measurement->recHit()->geographicalId();
290  if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC) {
291  CSCDetId cscid(id.rawId());
292  CSCDetId chamberId(cscid.endcap(), cscid.station(), cscid.ring(), cscid.chamber(), 0);
293  if (m_combineME11 && cscid.station() == 1 && cscid.ring() == 4)
294  chamberId = CSCDetId(cscid.endcap(), 1, 1, cscid.chamber(), 0);
295  int station = (cscid.endcap() == 1 ? 1 : -1) * cscid.station();
296 
297  if (stationsToChambers.find(station) == stationsToChambers.end())
298  stationsToChambers[station] = std::map<CSCDetId, bool>();
299  stationsToChambers[station][chamberId] = true;
300 
301  if (m_makeHistograms) {
302  GlobalPoint pos = measurement->recHit()->globalPosition();
303  if (cscid.endcap() == 1 && cscid.station() == 1) {
304  m_XYpos_mep1->Fill(pos.x(), pos.y());
305  m_RPhipos_mep1->Fill(pos.phi(), pos.perp());
306  }
307  if (cscid.endcap() == 1 && cscid.station() == 2) {
308  m_XYpos_mep2->Fill(pos.x(), pos.y());
309  m_RPhipos_mep2->Fill(pos.phi(), pos.perp());
310  }
311  if (cscid.endcap() == 1 && cscid.station() == 3) {
312  m_XYpos_mep3->Fill(pos.x(), pos.y());
313  m_RPhipos_mep3->Fill(pos.phi(), pos.perp());
314  }
315  if (cscid.endcap() == 1 && cscid.station() == 4) {
316  m_XYpos_mep4->Fill(pos.x(), pos.y());
317  m_RPhipos_mep4->Fill(pos.phi(), pos.perp());
318  }
319  if (cscid.endcap() == 2 && cscid.station() == 1) {
320  m_XYpos_mem1->Fill(pos.x(), pos.y());
321  m_RPhipos_mem1->Fill(pos.phi(), pos.perp());
322  }
323  if (cscid.endcap() == 2 && cscid.station() == 2) {
324  m_XYpos_mem2->Fill(pos.x(), pos.y());
325  m_RPhipos_mem2->Fill(pos.phi(), pos.perp());
326  }
327  if (cscid.endcap() == 2 && cscid.station() == 3) {
328  m_XYpos_mem3->Fill(pos.x(), pos.y());
329  m_RPhipos_mem3->Fill(pos.phi(), pos.perp());
330  }
331  if (cscid.endcap() == 2 && cscid.station() == 4) {
332  m_XYpos_mem4->Fill(pos.x(), pos.y());
333  m_RPhipos_mem4->Fill(pos.phi(), pos.perp());
334  }
335  }
336  }
337  }
338 
339  std::map<CSCPairResidualsConstraint*, bool> residualsConstraints;
340  for (std::map<int, std::map<CSCDetId, bool> >::const_iterator iter = stationsToChambers.begin();
341  iter != stationsToChambers.end();
342  ++iter) {
343  for (std::map<CSCDetId, bool>::const_iterator one = iter->second.begin(); one != iter->second.end(); ++one) {
344  for (std::map<CSCDetId, bool>::const_iterator two = one; two != iter->second.end(); ++two) {
345  if (one != two) {
346  std::map<std::pair<CSCDetId, CSCDetId>, CSCPairResidualsConstraint*>::const_iterator quick;
347 
348  quick = m_quickChamberLookup.find(std::pair<CSCDetId, CSCDetId>(one->first, two->first));
349  if (quick != m_quickChamberLookup.end())
350  residualsConstraints[quick->second] = true;
351 
352  quick = m_quickChamberLookup.find(std::pair<CSCDetId, CSCDetId>(two->first, one->first));
353  if (quick != m_quickChamberLookup.end())
354  residualsConstraints[quick->second] = true;
355  }
356  }
357  }
358  }
359 
360  for (std::map<CSCPairResidualsConstraint*, bool>::const_iterator residualsConstraint =
361  residualsConstraints.begin();
362  residualsConstraint != residualsConstraints.end();
363  ++residualsConstraint) {
364  residualsConstraint->first->addTrack(measurements, transientTrack, m_trackTransformer);
365  }
366  }
367  }
368 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:599
T perp() const
Definition: PV3DBase.h:69
void setServices(const edm::EventSetup &) override
set the services needed by the TrackTransformer
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
reco::TransientTrack build(const reco::Track *p) const
T y() const
Definition: PV3DBase.h:60
std::map< std::pair< CSCDetId, CSCDetId >, CSCPairResidualsConstraint * > m_quickChamberLookup
const ConstTrajTrackPairCollection & trajTrackPairs() const
DataContainer const & measurements() const
Definition: Trajectory.h:178
Definition: DetId.h:17
std::vector< CSCPairResidualsConstraint * > m_residualsConstraints
static constexpr int CSC
Definition: MuonSubdetId.h:12
T x() const
Definition: PV3DBase.h:59
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
void CSCOverlapsAlignmentAlgorithm::terminate ( const edm::EventSetup iSetup)
overridevirtual

Call at end of each loop (must be implemented in derived class)

Implements AlignmentAlgorithmBase.

Definition at line 370 of file CSCOverlapsAlignmentAlgorithm.cc.

References pfMETCorrectionType0_cfi::correction, DEFINE_EDM_PLUGIN, CSCPairResidualsConstraint::kModeRadius, m_alignableNavigator, m_alignmentParameterStore, m_combineME11, m_doAlignment, m_fitters, m_makeHistograms, m_mode, m_reportFileName, m_residualsConstraints, m_writeTemporaryFile, convertSQLitetoXML_cfg::output, edmIntegrityCheck::report, and AlCaHLTBitMon_QueryRunRegistry::string.

370  {
371  // write residuals partial fits to temporary files for collection
372  if (m_writeTemporaryFile != std::string("")) {
373  std::ofstream output(m_writeTemporaryFile.c_str());
374  for (std::vector<CSCPairResidualsConstraint*>::const_iterator residualsConstraint = m_residualsConstraints.begin();
375  residualsConstraint != m_residualsConstraints.end();
376  ++residualsConstraint) {
377  (*residualsConstraint)->write(output);
378  }
379  }
380 
381  // write report for alignment results
382  if (m_doAlignment) {
383  std::ofstream report;
384  bool writeReport = (m_reportFileName != std::string(""));
385  if (writeReport) {
386  report.open(m_reportFileName.c_str());
387  report << "cscReports = []" << std::endl
388  << std::endl
389  << "class CSCChamberCorrection:" << std::endl
390  << " def __init__(self, name, detid, value):" << std::endl
391  << " self.name, self.detid, self.value = name, detid, value" << std::endl
392  << std::endl
393  << "class CSCErrorMode:" << std::endl
394  << " def __init__(self, error):" << std::endl
395  << " self.error = error" << std::endl
396  << " self.terms = {}" << std::endl
397  << " self.detids = {}" << std::endl
398  << " def addTerm(self, name, detid, coefficient):" << std::endl
399  << " self.terms[name] = coefficient" << std::endl
400  << " self.detids[name] = detid" << std::endl
401  << std::endl
402  << "class CSCConstraintResidual:" << std::endl
403  << " def __init__(self, i, j, before, uncert, residual, pull):" << std::endl
404  << " self.i, self.j, self.before, self.error, self.residual, self.pull = i, j, before, uncert, "
405  "residual, pull"
406  << std::endl
407  << std::endl
408  << "class CSCFitterReport:" << std::endl
409  << " def __init__(self, name, oldchi2, newchi2):" << std::endl
410  << " self.name, self.oldchi2, self.newchi2 = name, oldchi2, newchi2" << std::endl
411  << " self.chamberCorrections = []" << std::endl
412  << " self.errorModes = []" << std::endl
413  << " self.constraintResiduals = []" << std::endl
414  << std::endl
415  << " def addChamberCorrection(self, name, detid, value):" << std::endl
416  << " self.chamberCorrections.append(CSCChamberCorrection(name, detid, value))" << std::endl
417  << std::endl
418  << " def addErrorMode(self, error):" << std::endl
419  << " self.errorModes.append(CSCErrorMode(error))" << std::endl
420  << std::endl
421  << " def addErrorModeTerm(self, name, detid, coefficient):" << std::endl
422  << " self.errorModes[-1].addTerm(name, detid, coefficient)" << std::endl
423  << std::endl
424  << " def addCSCConstraintResidual(self, i, j, before, uncert, residual, pull):" << std::endl
425  << " self.constraintResiduals.append(CSCConstraintResidual(i, j, before, uncert, residual, pull))"
426  << std::endl
427  << std::endl
428  << "import re" << std::endl
429  << "def nameToKey(name):" << std::endl
430  << " match = re.match(\"ME([\\+\\-])([1-4])/([1-4])/([0-9]{2})\", name)" << std::endl
431  << " if match is None: return None" << std::endl
432  << " endcap, station, ring, chamber = match.groups()" << std::endl
433  << " if endcap == \"+\": endcap = 1" << std::endl
434  << " else: endcap = 2" << std::endl
435  << " station = int(station)" << std::endl
436  << " ring = int(ring)" << std::endl
437  << " chamber = int(chamber)" << std::endl
438  << " return endcap, station, ring, chamber" << std::endl
439  << std::endl;
440  }
441 
442  for (std::vector<CSCChamberFitter>::const_iterator fitter = m_fitters.begin(); fitter != m_fitters.end();
443  ++fitter) {
446 
447  } else {
448  std::vector<CSCAlignmentCorrections*> corrections;
449  fitter->fit(corrections);
450 
451  // corrections only exist if the fit was successful
452  for (std::vector<CSCAlignmentCorrections*>::iterator correction = corrections.begin();
453  correction != corrections.end();
454  ++correction) {
455  (*correction)->applyAlignment(m_alignableNavigator, m_alignmentParameterStore, m_mode, m_combineME11);
456  if (m_makeHistograms)
457  (*correction)->plot();
458  if (writeReport)
459  (*correction)->report(report);
460  }
461  }
462  }
463  }
464 }
std::vector< CSCChamberFitter > m_fitters
AlignmentParameterStore * m_alignmentParameterStore
std::vector< CSCPairResidualsConstraint * > m_residualsConstraints

Member Data Documentation

AlignableNavigator* CSCOverlapsAlignmentAlgorithm::m_alignableNavigator
private

Definition at line 146 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by initialize(), and terminate().

align::Alignables CSCOverlapsAlignmentAlgorithm::m_alignables
private

Definition at line 145 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by initialize().

AlignmentParameterStore* CSCOverlapsAlignmentAlgorithm::m_alignmentParameterStore
private

Definition at line 144 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by initialize(), and terminate().

bool CSCOverlapsAlignmentAlgorithm::m_combineME11
bool CSCOverlapsAlignmentAlgorithm::m_doAlignment
private

Definition at line 142 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by terminate().

TH1F* CSCOverlapsAlignmentAlgorithm::m_drdz
bool CSCOverlapsAlignmentAlgorithm::m_errorFromRMS

Definition at line 131 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCPairResidualsConstraint::error().

bool CSCOverlapsAlignmentAlgorithm::m_fiducial
TProfile* CSCOverlapsAlignmentAlgorithm::m_fiducial_ME11
TProfile* CSCOverlapsAlignmentAlgorithm::m_fiducial_ME12
TProfile* CSCOverlapsAlignmentAlgorithm::m_fiducial_MEx1
TProfile* CSCOverlapsAlignmentAlgorithm::m_fiducial_MEx2
std::vector<CSCChamberFitter> CSCOverlapsAlignmentAlgorithm::m_fitters
private

Definition at line 147 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and terminate().

TH1F* CSCOverlapsAlignmentAlgorithm::m_histP10
private

Definition at line 155 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH1F* CSCOverlapsAlignmentAlgorithm::m_histP100
private

Definition at line 156 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH1F* CSCOverlapsAlignmentAlgorithm::m_histP1000
private

Definition at line 157 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH1F* CSCOverlapsAlignmentAlgorithm::m_hitsPerChamber
bool CSCOverlapsAlignmentAlgorithm::m_makeHistograms
double CSCOverlapsAlignmentAlgorithm::m_maxdrdz
double CSCOverlapsAlignmentAlgorithm::m_maxRedChi2
private

Definition at line 139 of file CSCOverlapsAlignmentAlgorithm.h.

int CSCOverlapsAlignmentAlgorithm::m_minHitsPerChamber
double CSCOverlapsAlignmentAlgorithm::m_minP
private

Definition at line 138 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by run().

int CSCOverlapsAlignmentAlgorithm::m_minStationsInTrackRefits
int CSCOverlapsAlignmentAlgorithm::m_minTracksPerOverlap

Definition at line 132 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCPairResidualsConstraint::valid().

int CSCOverlapsAlignmentAlgorithm::m_mode
std::string CSCOverlapsAlignmentAlgorithm::m_mode_string
private

Definition at line 136 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm().

TH2F* CSCOverlapsAlignmentAlgorithm::m_occupancy
TH1F* CSCOverlapsAlignmentAlgorithm::m_offsetResiduals
TH1F* CSCOverlapsAlignmentAlgorithm::m_offsetResiduals_normalized
TH1F* CSCOverlapsAlignmentAlgorithm::m_offsetResiduals_weighted
std::string CSCOverlapsAlignmentAlgorithm::m_propagatorName
private

Definition at line 152 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

const Propagator* CSCOverlapsAlignmentAlgorithm::m_propagatorPointer
private

Definition at line 153 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

std::map<std::pair<CSCDetId, CSCDetId>, CSCPairResidualsConstraint *> CSCOverlapsAlignmentAlgorithm::m_quickChamberLookup
private

Definition at line 149 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

std::vector<std::string> CSCOverlapsAlignmentAlgorithm::m_readTemporaryFiles
private

Definition at line 141 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by initialize().

std::string CSCOverlapsAlignmentAlgorithm::m_reportFileName
private

Definition at line 137 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by terminate().

std::vector<CSCPairResidualsConstraint *> CSCOverlapsAlignmentAlgorithm::m_residualsConstraints
private
TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mem1

Definition at line 115 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mem2

Definition at line 116 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mem3

Definition at line 117 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mem4

Definition at line 118 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mep1

Definition at line 111 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mep2

Definition at line 112 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mep3

Definition at line 113 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_RPhipos_mep4

Definition at line 114 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH1F* CSCOverlapsAlignmentAlgorithm::m_slope
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEm1
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEm2
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEm3
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEm4
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEp1
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEp2
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEp3
TH1F* CSCOverlapsAlignmentAlgorithm::m_slope_MEp4
bool CSCOverlapsAlignmentAlgorithm::m_slopeFromTrackRefit
TH1F* CSCOverlapsAlignmentAlgorithm::m_slopeResiduals
TH1F* CSCOverlapsAlignmentAlgorithm::m_slopeResiduals_normalized
TH1F* CSCOverlapsAlignmentAlgorithm::m_slopeResiduals_weighted
TrackTransformer* CSCOverlapsAlignmentAlgorithm::m_trackTransformer
private

Definition at line 151 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

double CSCOverlapsAlignmentAlgorithm::m_truncateOffsetResid
double CSCOverlapsAlignmentAlgorithm::m_truncateSlopeResid
bool CSCOverlapsAlignmentAlgorithm::m_useHitWeights
bool CSCOverlapsAlignmentAlgorithm::m_useTrackWeights
std::string CSCOverlapsAlignmentAlgorithm::m_writeTemporaryFile
private

Definition at line 140 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by terminate().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mem1

Definition at line 107 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mem2

Definition at line 108 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mem3

Definition at line 109 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mem4

Definition at line 110 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mep1

Definition at line 103 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mep2

Definition at line 104 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mep3

Definition at line 105 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().

TH2F* CSCOverlapsAlignmentAlgorithm::m_XYpos_mep4

Definition at line 106 of file CSCOverlapsAlignmentAlgorithm.h.

Referenced by CSCOverlapsAlignmentAlgorithm(), and run().