CMS 3D CMS Logo

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

#include <MuonAlignmentAnalyzer.h>

Inheritance diagram for MuonAlignmentAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void beginJob () override
 
void endJob () override
 
 MuonAlignmentAnalyzer (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~MuonAlignmentAnalyzer () override
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

RecHitVector doMatching (const reco::Track &, edm::Handle< DTRecSegment4DCollection > &, edm::Handle< CSCSegmentCollection > &, intDVector *, intDVector *, edm::ESHandle< GlobalTrackingGeometry > &)
 

Private Attributes

std::vector< long > detectorCollection
 
bool doGBplots
 
bool doResplots
 
bool doSAplots
 
edm::Service< TFileServicefs
 
TH1F * hGBChi2
 
TH1F * hGBChi2_Barrel
 
TH1F * hGBChi2_Endcap
 
TH1F * hGBInvM
 
TH1F * hGBInvM_Barrel
 
TH1F * hGBInvM_Endcap
 
TH1F * hGBInvM_Overlap
 
TH1F * hGBinvPTres
 
TH2F * hGBinvPTvsEta
 
TH2F * hGBinvPTvsNhits
 
TH2F * hGBinvPTvsPhi
 
TH1F * hGBNhits
 
TH1F * hGBNhits_Barrel
 
TH1F * hGBNhits_Endcap
 
TH1F * hGBNmuons
 
TH1F * hGBNmuons_Barrel
 
TH1F * hGBNmuons_Endcap
 
TH2F * hGBPhivsEta
 
TH1F * hGBPTDiff
 
TH2F * hGBPTDiffvsEta
 
TH2F * hGBPTDiffvsPhi
 
TH1F * hGBPTRec
 
TH1F * hGBPTRec_Barrel
 
TH1F * hGBPTRec_Endcap
 
TH1F * hGBPTres
 
TH1F * hGBPTres_Barrel
 
TH1F * hGBPTres_Endcap
 
TH2F * hGBPTvsEta
 
TH2F * hGBPTvsPhi
 
TH2F * hprofGlobalAngleCSC
 
TH2F * hprofGlobalAngleDT
 
TH2F * hprofGlobalAngleRmsCSC
 
TH2F * hprofGlobalAngleRmsDT
 
TH1F * hprofGlobalPhiCSC
 
TH1F * hprofGlobalPhiDT
 
TH2F * hprofGlobalPositionCSC
 
TH2F * hprofGlobalPositionDT
 
TH2F * hprofGlobalPositionRmsCSC
 
TH2F * hprofGlobalPositionRmsDT
 
TH1F * hprofGlobalRCSC
 
TH1F * hprofGlobalRPhiCSC
 
TH1F * hprofGlobalRPhiDT
 
TH1F * hprofGlobalThetaCSC
 
TH1F * hprofGlobalThetaDT
 
TH1F * hprofGlobalZDT
 
TH2F * hprofLocalAngleCSC
 
TH2F * hprofLocalAngleDT
 
TH2F * hprofLocalAngleRmsCSC
 
TH2F * hprofLocalAngleRmsDT
 
TH1F * hprofLocalPhiCSC
 
TH1F * hprofLocalPhiDT
 
TH2F * hprofLocalPositionCSC
 
TH2F * hprofLocalPositionDT
 
TH2F * hprofLocalPositionRmsCSC
 
TH2F * hprofLocalPositionRmsDT
 
TH1F * hprofLocalThetaCSC
 
TH1F * hprofLocalThetaDT
 
TH1F * hprofLocalXCSC
 
TH1F * hprofLocalXDT
 
TH1F * hprofLocalYCSC
 
TH1F * hprofLocalYDT
 
TH1F * hResidualGlobalPhiCSC
 
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
 
TH1F * hResidualGlobalPhiDT
 
std::vector< TH1F * > hResidualGlobalPhiDT_MB
 
std::vector< TH1F * > hResidualGlobalPhiDT_W
 
TH1F * hResidualGlobalRCSC
 
std::vector< TH1F * > hResidualGlobalRCSC_ME
 
TH1F * hResidualGlobalRPhiCSC
 
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
 
TH1F * hResidualGlobalRPhiDT
 
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
 
std::vector< TH1F * > hResidualGlobalRPhiDT_W
 
TH1F * hResidualGlobalThetaCSC
 
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
 
TH1F * hResidualGlobalThetaDT
 
std::vector< TH1F * > hResidualGlobalThetaDT_MB
 
std::vector< TH1F * > hResidualGlobalThetaDT_W
 
TH1F * hResidualGlobalZDT
 
std::vector< TH1F * > hResidualGlobalZDT_MB
 
std::vector< TH1F * > hResidualGlobalZDT_W
 
TH1F * hResidualLocalPhiCSC
 
std::vector< TH1F * > hResidualLocalPhiCSC_ME
 
TH1F * hResidualLocalPhiDT
 
std::vector< TH1F * > hResidualLocalPhiDT_MB
 
std::vector< TH1F * > hResidualLocalPhiDT_W
 
TH1F * hResidualLocalThetaCSC
 
std::vector< TH1F * > hResidualLocalThetaCSC_ME
 
TH1F * hResidualLocalThetaDT
 
std::vector< TH1F * > hResidualLocalThetaDT_MB
 
std::vector< TH1F * > hResidualLocalThetaDT_W
 
TH1F * hResidualLocalXCSC
 
std::vector< TH1F * > hResidualLocalXCSC_ME
 
TH1F * hResidualLocalXDT
 
std::vector< TH1F * > hResidualLocalXDT_MB
 
std::vector< TH1F * > hResidualLocalXDT_W
 
TH1F * hResidualLocalYCSC
 
std::vector< TH1F * > hResidualLocalYCSC_ME
 
TH1F * hResidualLocalYDT
 
std::vector< TH1F * > hResidualLocalYDT_MB
 
std::vector< TH1F * > hResidualLocalYDT_W
 
TH1F * hSAChi2
 
TH1F * hSAChi2_Barrel
 
TH1F * hSAChi2_Endcap
 
TH1F * hSAInvM
 
TH1F * hSAInvM_Barrel
 
TH1F * hSAInvM_Endcap
 
TH1F * hSAInvM_Overlap
 
TH1F * hSAinvPTres
 
TH2F * hSAinvPTvsEta
 
TH2F * hSAinvPTvsNhits
 
TH2F * hSAinvPTvsPhi
 
TH1F * hSANhits
 
TH1F * hSANhits_Barrel
 
TH1F * hSANhits_Endcap
 
TH1F * hSANmuons
 
TH1F * hSANmuons_Barrel
 
TH1F * hSANmuons_Endcap
 
TH2F * hSAPhivsEta
 
TH1F * hSAPTDiff
 
TH2F * hSAPTDiffvsEta
 
TH2F * hSAPTDiffvsPhi
 
TH1F * hSAPTRec
 
TH1F * hSAPTRec_Barrel
 
TH1F * hSAPTRec_Endcap
 
TH1F * hSAPTres
 
TH1F * hSAPTres_Barrel
 
TH1F * hSAPTres_Endcap
 
TH2F * hSAPTvsEta
 
TH2F * hSAPTvsPhi
 
TH1F * hSimInvM
 
TH1F * hSimInvM_Barrel
 
TH1F * hSimInvM_Endcap
 
TH1F * hSimInvM_Overlap
 
TH1F * hSimNmuons
 
TH1F * hSimNmuons_Barrel
 
TH1F * hSimNmuons_Endcap
 
TH2F * hSimPhivsEta
 
TH1F * hSimPT
 
TH1F * hSimPT_Barrel
 
TH1F * hSimPT_Endcap
 
TH2F * hSimPTvsEta
 
TH2F * hSimPTvsPhi
 
double invMassRangeMax
 
double invMassRangeMin
 
unsigned int min1DTrackRecHitSize
 
unsigned int min4DTrackSegmentSize
 
unsigned int nbins
 
int numberOfGBRecTracks
 
int numberOfHits
 
int numberOfSARecTracks
 
int numberOfSimTracks
 
double ptRangeMax
 
double ptRangeMin
 
double resLocalXRangeStation1
 
double resLocalXRangeStation2
 
double resLocalXRangeStation3
 
double resLocalXRangeStation4
 
double resLocalYRangeStation1
 
double resLocalYRangeStation2
 
double resLocalYRangeStation3
 
double resLocalYRangeStation4
 
double resPhiRange
 
double resThetaRange
 
std::string theDataType
 
edm::InputTag theGLBMuonTag
 
PropagatorthePropagator
 
edm::InputTag theRecHits4DTagCSC
 
edm::InputTag theRecHits4DTagDT
 
edm::InputTag theSTAMuonTag
 
std::vector< TH1F * > unitsGlobalPhi
 
std::vector< TH1F * > unitsGlobalRPhi
 
std::vector< TH1F * > unitsGlobalRZ
 
std::vector< TH1F * > unitsGlobalTheta
 
std::vector< TH1F * > unitsLocalPhi
 
std::vector< TH1F * > unitsLocalTheta
 
std::vector< TH1F * > unitsLocalX
 
std::vector< TH1F * > unitsLocalY
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

MuonAlignment offline Monitor Analyzer Makes histograms of high level Muon objects/quantities for Alignment Scenarios/DB comparison

Date
2011/09/04 17:40:58
Revision
1.13
Author
J. Fernandez - Univ. Oviedo Javie.nosp@m.r.Fe.nosp@m.rnand.nosp@m.ez@c.nosp@m.ern.c.nosp@m.h

Definition at line 40 of file MuonAlignmentAnalyzer.h.

Constructor & Destructor Documentation

◆ MuonAlignmentAnalyzer()

MuonAlignmentAnalyzer::MuonAlignmentAnalyzer ( const edm::ParameterSet pset)

Constructor.

Definition at line 50 of file MuonAlignmentAnalyzer.cc.

51  : hGBNmuons(nullptr),
52  hSANmuons(nullptr),
53  hSimNmuons(nullptr),
54  hGBNmuons_Barrel(nullptr),
55  hSANmuons_Barrel(nullptr),
56  hSimNmuons_Barrel(nullptr),
57  hGBNmuons_Endcap(nullptr),
58  hSANmuons_Endcap(nullptr),
59  hSimNmuons_Endcap(nullptr),
60  hGBNhits(nullptr),
61  hGBNhits_Barrel(nullptr),
62  hGBNhits_Endcap(nullptr),
63  hSANhits(nullptr),
64  hSANhits_Barrel(nullptr),
65  hSANhits_Endcap(nullptr),
66  hGBChi2(nullptr),
67  hSAChi2(nullptr),
68  hGBChi2_Barrel(nullptr),
69  hSAChi2_Barrel(nullptr),
70  hGBChi2_Endcap(nullptr),
71  hSAChi2_Endcap(nullptr),
72  hGBInvM(nullptr),
73  hSAInvM(nullptr),
74  hSimInvM(nullptr),
75  hGBInvM_Barrel(nullptr),
76  hSAInvM_Barrel(nullptr),
77  hSimInvM_Barrel(nullptr),
78  hGBInvM_Endcap(nullptr),
79  hSAInvM_Endcap(nullptr),
80  hSimInvM_Endcap(nullptr),
81  hGBInvM_Overlap(nullptr),
82  hSAInvM_Overlap(nullptr),
83  hSimInvM_Overlap(nullptr),
84  hSAPTRec(nullptr),
85  hGBPTRec(nullptr),
86  hSimPT(nullptr),
87  hSAPTRec_Barrel(nullptr),
88  hGBPTRec_Barrel(nullptr),
89  hSimPT_Barrel(nullptr),
90  hSAPTRec_Endcap(nullptr),
91  hGBPTRec_Endcap(nullptr),
92  hSimPT_Endcap(nullptr),
93  hGBPTvsEta(nullptr),
94  hGBPTvsPhi(nullptr),
95  hSAPTvsEta(nullptr),
96  hSAPTvsPhi(nullptr),
97  hSimPTvsEta(nullptr),
98  hSimPTvsPhi(nullptr),
99  hSimPhivsEta(nullptr),
100  hSAPhivsEta(nullptr),
101  hGBPhivsEta(nullptr),
102  hSAPTres(nullptr),
103  hSAinvPTres(nullptr),
104  hGBPTres(nullptr),
105  hGBinvPTres(nullptr),
106  hSAPTres_Barrel(nullptr),
107  hSAPTres_Endcap(nullptr),
108  hGBPTres_Barrel(nullptr),
109  hGBPTres_Endcap(nullptr),
110  hSAPTDiff(nullptr),
111  hGBPTDiff(nullptr),
112  hSAPTDiffvsEta(nullptr),
113  hSAPTDiffvsPhi(nullptr),
114  hGBPTDiffvsEta(nullptr),
115  hGBPTDiffvsPhi(nullptr),
116  hGBinvPTvsEta(nullptr),
117  hGBinvPTvsPhi(nullptr),
118  hSAinvPTvsEta(nullptr),
119  hSAinvPTvsPhi(nullptr),
120  hSAinvPTvsNhits(nullptr),
121  hGBinvPTvsNhits(nullptr),
122  hResidualLocalXDT(nullptr),
123  hResidualLocalPhiDT(nullptr),
124  hResidualLocalThetaDT(nullptr),
125  hResidualLocalYDT(nullptr),
126  hResidualLocalXCSC(nullptr),
127  hResidualLocalPhiCSC(nullptr),
128  hResidualLocalThetaCSC(nullptr),
129  hResidualLocalYCSC(nullptr),
130 
143 
144  hResidualGlobalRPhiDT(nullptr),
145  hResidualGlobalPhiDT(nullptr),
146  hResidualGlobalThetaDT(nullptr),
147  hResidualGlobalZDT(nullptr),
148  hResidualGlobalRPhiCSC(nullptr),
149  hResidualGlobalPhiCSC(nullptr),
150  hResidualGlobalThetaCSC(nullptr),
151  hResidualGlobalRCSC(nullptr),
152 
165 
166  hprofLocalPositionCSC(nullptr),
167  hprofLocalAngleCSC(nullptr),
168  hprofLocalPositionRmsCSC(nullptr),
169  hprofLocalAngleRmsCSC(nullptr),
170  hprofGlobalPositionCSC(nullptr),
171  hprofGlobalAngleCSC(nullptr),
172  hprofGlobalPositionRmsCSC(nullptr),
173  hprofGlobalAngleRmsCSC(nullptr),
174  hprofLocalPositionDT(nullptr),
175  hprofLocalAngleDT(nullptr),
176  hprofLocalPositionRmsDT(nullptr),
177  hprofLocalAngleRmsDT(nullptr),
178  hprofGlobalPositionDT(nullptr),
179  hprofGlobalAngleDT(nullptr),
180  hprofGlobalPositionRmsDT(nullptr),
181  hprofGlobalAngleRmsDT(nullptr),
182  hprofLocalXDT(nullptr),
183  hprofLocalPhiDT(nullptr),
184  hprofLocalThetaDT(nullptr),
185  hprofLocalYDT(nullptr),
186  hprofLocalXCSC(nullptr),
187  hprofLocalPhiCSC(nullptr),
188  hprofLocalThetaCSC(nullptr),
189  hprofLocalYCSC(nullptr),
190  hprofGlobalRPhiDT(nullptr),
191  hprofGlobalPhiDT(nullptr),
192  hprofGlobalThetaDT(nullptr),
193  hprofGlobalZDT(nullptr),
194  hprofGlobalRPhiCSC(nullptr),
195  hprofGlobalPhiCSC(nullptr),
196  hprofGlobalThetaCSC(nullptr),
197  hprofGlobalRCSC(nullptr) {
198  theSTAMuonTag = pset.getParameter<edm::InputTag>("StandAloneTrackCollectionTag");
199  theGLBMuonTag = pset.getParameter<edm::InputTag>("GlobalMuonTrackCollectionTag");
200 
201  theRecHits4DTagDT = pset.getParameter<edm::InputTag>("RecHits4DDTCollectionTag");
202  theRecHits4DTagCSC = pset.getParameter<edm::InputTag>("RecHits4DCSCCollectionTag");
203 
204  theDataType = pset.getUntrackedParameter<std::string>("DataType");
205  ptRangeMin = pset.getUntrackedParameter<double>("ptRangeMin");
206  ptRangeMax = pset.getUntrackedParameter<double>("ptRangeMax");
207  invMassRangeMin = pset.getUntrackedParameter<double>("invMassRangeMin");
208  invMassRangeMax = pset.getUntrackedParameter<double>("invMassRangeMax");
209 
210  doSAplots = pset.getUntrackedParameter<bool>("doSAplots");
211  doGBplots = pset.getUntrackedParameter<bool>("doGBplots");
212  doResplots = pset.getUntrackedParameter<bool>("doResplots");
213 
214  resLocalXRangeStation1 = pset.getUntrackedParameter<double>("resLocalXRangeStation1");
215  resLocalXRangeStation2 = pset.getUntrackedParameter<double>("resLocalXRangeStation2");
216  resLocalXRangeStation3 = pset.getUntrackedParameter<double>("resLocalXRangeStation3");
217  resLocalXRangeStation4 = pset.getUntrackedParameter<double>("resLocalXRangeStation4");
218  resLocalYRangeStation1 = pset.getUntrackedParameter<double>("resLocalYRangeStation1");
219  resLocalYRangeStation2 = pset.getUntrackedParameter<double>("resLocalYRangeStation2");
220  resLocalYRangeStation3 = pset.getUntrackedParameter<double>("resLocalYRangeStation3");
221  resLocalYRangeStation4 = pset.getUntrackedParameter<double>("resLocalYRangeStation4");
222  resPhiRange = pset.getUntrackedParameter<double>("resPhiRange");
223  resThetaRange = pset.getUntrackedParameter<double>("resThetaRange");
224  nbins = pset.getUntrackedParameter<unsigned int>("nbins");
225  min1DTrackRecHitSize = pset.getUntrackedParameter<unsigned int>("min1DTrackRecHitSize");
226  min4DTrackSegmentSize = pset.getUntrackedParameter<unsigned int>("min4DTrackSegmentSize");
227 
228  if (theDataType != "RealData" && theDataType != "SimData")
229  edm::LogError("MuonAlignmentAnalyzer") << "Error in Data Type!!" << std::endl;
230 
231  numberOfSimTracks = 0;
234  numberOfHits = 0;
235 }

References doGBplots, doResplots, doSAplots, invMassRangeMax, invMassRangeMin, min1DTrackRecHitSize, min4DTrackSegmentSize, nbins, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, muonDTDigis_cfi::pset, ptRangeMax, ptRangeMin, resLocalXRangeStation1, resLocalXRangeStation2, resLocalXRangeStation3, resLocalXRangeStation4, resLocalYRangeStation1, resLocalYRangeStation2, resLocalYRangeStation3, resLocalYRangeStation4, resPhiRange, resThetaRange, AlCaHLTBitMon_QueryRunRegistry::string, theDataType, theGLBMuonTag, theRecHits4DTagCSC, theRecHits4DTagDT, and theSTAMuonTag.

◆ ~MuonAlignmentAnalyzer()

MuonAlignmentAnalyzer::~MuonAlignmentAnalyzer ( )
override

Destructor.

Definition at line 238 of file MuonAlignmentAnalyzer.cc.

238 {}

Member Function Documentation

◆ analyze()

void MuonAlignmentAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overridevirtual

Implements edm::EDAnalyzer.

Definition at line 1720 of file MuonAlignmentAnalyzer.cc.

1720  {
1721  GlobalVector p1, p2;
1722  std::vector<double> simPar[4]; //pt,eta,phi,charge
1723 
1724  // ######### if data= MC, do Simulation Plots#####
1725  if (theDataType == "SimData") {
1726  double simEta = 0;
1727  double simPt = 0;
1728  double simPhi = 0;
1729  int i = 0, ie = 0, ib = 0;
1730 
1731  // Get the SimTrack collection from the event
1733  event.getByLabel("g4SimHits", simTracks);
1734 
1735  edm::SimTrackContainer::const_iterator simTrack;
1736 
1737  for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
1738  if (abs((*simTrack).type()) == 13) {
1739  i++;
1740  simPt = (*simTrack).momentum().Pt();
1741  simEta = (*simTrack).momentum().eta();
1742  simPhi = (*simTrack).momentum().phi();
1744  hSimPT->Fill(simPt);
1745  if (fabs(simEta) < 1.04) {
1746  hSimPT_Barrel->Fill(simPt);
1747  ib++;
1748  } else {
1749  hSimPT_Endcap->Fill(simPt);
1750  ie++;
1751  }
1752  hSimPTvsEta->Fill(simEta, simPt);
1753  hSimPTvsPhi->Fill(simPhi, simPt);
1754  hSimPhivsEta->Fill(simEta, simPhi);
1755 
1756  simPar[0].push_back(simPt);
1757  simPar[1].push_back(simEta);
1758  simPar[2].push_back(simPhi);
1759  simPar[3].push_back((*simTrack).charge());
1760 
1761  // Save the muon pair
1762  if (i == 1)
1763  p1 = GlobalVector((*simTrack).momentum().x(), (*simTrack).momentum().y(), (*simTrack).momentum().z());
1764  if (i == 2)
1765  p2 = GlobalVector((*simTrack).momentum().x(), (*simTrack).momentum().y(), (*simTrack).momentum().z());
1766  }
1767  }
1768  hSimNmuons->Fill(i);
1769  hSimNmuons_Barrel->Fill(ib);
1770  hSimNmuons_Endcap->Fill(ie);
1771 
1772  if (i > 1) { // Take 2 first muons :-(
1773  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1774  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1775  TLorentzVector pair = mu1 + mu2;
1776  double Minv = pair.M();
1777  hSimInvM->Fill(Minv);
1778  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1779  hSimInvM_Barrel->Fill(Minv);
1780  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1781  hSimInvM_Endcap->Fill(Minv);
1782  else
1783  hSimInvM_Overlap->Fill(Minv);
1784  }
1785 
1786  } //simData
1787 
1788  // ############ Stand Alone Muon plots ###############
1789  if (doSAplots) {
1790  double SArecPt = 0.;
1791  double SAeta = 0.;
1792  double SAphi = 0.;
1793  int i = 0, ie = 0, ib = 0;
1794  double ich = 0;
1795 
1796  // Get the RecTrack collection from the event
1798  event.getByLabel(theSTAMuonTag, staTracks);
1799  numberOfSARecTracks += staTracks->size();
1800 
1801  reco::TrackCollection::const_iterator staTrack;
1802 
1803  for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
1804  i++;
1805 
1806  SArecPt = (*staTrack).pt();
1807  SAeta = (*staTrack).eta();
1808  SAphi = (*staTrack).phi();
1809  ich = (*staTrack).charge();
1810 
1811  hSAPTRec->Fill(SArecPt);
1812  hSAPhivsEta->Fill(SAeta, SAphi);
1813  hSAChi2->Fill((*staTrack).chi2());
1814  hSANhits->Fill((*staTrack).numberOfValidHits());
1815  if (fabs(SAeta) < 1.04) {
1816  hSAPTRec_Barrel->Fill(SArecPt);
1817  hSAChi2_Barrel->Fill((*staTrack).chi2());
1818  hSANhits_Barrel->Fill((*staTrack).numberOfValidHits());
1819  ib++;
1820  } else {
1821  hSAPTRec_Endcap->Fill(SArecPt);
1822  hSAChi2_Endcap->Fill((*staTrack).chi2());
1823  hSANhits_Endcap->Fill((*staTrack).numberOfValidHits());
1824  ie++;
1825  }
1826 
1827  // save the muon pair
1828  if (i == 1)
1829  p1 = GlobalVector((*staTrack).momentum().x(), (*staTrack).momentum().y(), (*staTrack).momentum().z());
1830  if (i == 2)
1831  p2 = GlobalVector((*staTrack).momentum().x(), (*staTrack).momentum().y(), (*staTrack).momentum().z());
1832 
1833  if (SArecPt && theDataType == "SimData") {
1834  double candDeltaR = -999.0, dR;
1835  int iCand = 0;
1836  if (!simPar[0].empty()) {
1837  for (unsigned int iSim = 0; iSim < simPar[0].size(); iSim++) {
1838  dR = deltaR(SAeta, SAphi, simPar[1][iSim], simPar[2][iSim]);
1839  if (candDeltaR < 0 || dR < candDeltaR) {
1840  candDeltaR = dR;
1841  iCand = iSim;
1842  }
1843  }
1844  }
1845 
1846  double simPt = simPar[0][iCand];
1847  hSAPTres->Fill((SArecPt - simPt) / simPt);
1848  if (fabs(SAeta) < 1.04)
1849  hSAPTres_Barrel->Fill((SArecPt - simPt) / simPt);
1850  else
1851  hSAPTres_Endcap->Fill((SArecPt - simPt) / simPt);
1852 
1853  hSAPTDiff->Fill(SArecPt - simPt);
1854 
1855  hSAPTDiffvsEta->Fill(SAeta, SArecPt - simPt);
1856  hSAPTDiffvsPhi->Fill(SAphi, SArecPt - simPt);
1857  double ptInvRes = (ich / SArecPt - simPar[3][iCand] / simPt) / (simPar[3][iCand] / simPt);
1858  hSAinvPTres->Fill(ptInvRes);
1859 
1860  hSAinvPTvsEta->Fill(SAeta, ptInvRes);
1861  hSAinvPTvsPhi->Fill(SAphi, ptInvRes);
1862  hSAinvPTvsNhits->Fill((*staTrack).numberOfValidHits(), ptInvRes);
1863  }
1864 
1865  hSAPTvsEta->Fill(SAeta, SArecPt);
1866  hSAPTvsPhi->Fill(SAphi, SArecPt);
1867  }
1868 
1869  hSANmuons->Fill(i);
1870  hSANmuons_Barrel->Fill(ib);
1871  hSANmuons_Endcap->Fill(ie);
1872 
1873  if (i > 1) { // Take 2 first muons :-(
1874  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1875  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1876  TLorentzVector pair = mu1 + mu2;
1877  double Minv = pair.M();
1878  hSAInvM->Fill(Minv);
1879  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1880  hSAInvM_Barrel->Fill(Minv);
1881  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1882  hSAInvM_Endcap->Fill(Minv);
1883  else
1884  hSAInvM_Overlap->Fill(Minv);
1885  } // 2 first muons
1886 
1887  } //end doSAplots
1888 
1889  // ############### Global Muons plots ##########
1890 
1891  if (doGBplots) {
1892  // Get the RecTrack collection from the event
1894  event.getByLabel(theGLBMuonTag, glbTracks);
1895  numberOfGBRecTracks += glbTracks->size();
1896 
1897  double GBrecPt = 0;
1898  double GBeta = 0;
1899  double GBphi = 0;
1900  double ich = 0;
1901  int i = 0, ie = 0, ib = 0;
1902 
1903  reco::TrackCollection::const_iterator glbTrack;
1904 
1905  for (glbTrack = glbTracks->begin(); glbTrack != glbTracks->end(); ++glbTrack) {
1906  i++;
1907 
1908  GBrecPt = (*glbTrack).pt();
1909  GBeta = (*glbTrack).eta();
1910  GBphi = (*glbTrack).phi();
1911  ich = (*glbTrack).charge();
1912 
1913  hGBPTRec->Fill(GBrecPt);
1914  hGBPhivsEta->Fill(GBeta, GBphi);
1915  hGBChi2->Fill((*glbTrack).chi2());
1916  hGBNhits->Fill((*glbTrack).numberOfValidHits());
1917  if (fabs(GBeta) < 1.04) {
1918  hGBPTRec_Barrel->Fill(GBrecPt);
1919  hGBChi2_Barrel->Fill((*glbTrack).chi2());
1920  hGBNhits_Barrel->Fill((*glbTrack).numberOfValidHits());
1921  ib++;
1922  } else {
1923  hGBPTRec_Endcap->Fill(GBrecPt);
1924  hGBChi2_Endcap->Fill((*glbTrack).chi2());
1925  hGBNhits_Endcap->Fill((*glbTrack).numberOfValidHits());
1926  ie++;
1927  }
1928 
1929  // save the muon pair
1930  if (i == 1)
1931  p1 = GlobalVector((*glbTrack).momentum().x(), (*glbTrack).momentum().y(), (*glbTrack).momentum().z());
1932  if (i == 2)
1933  p2 = GlobalVector((*glbTrack).momentum().x(), (*glbTrack).momentum().y(), (*glbTrack).momentum().z());
1934 
1935  if (GBrecPt && theDataType == "SimData") {
1936  double candDeltaR = -999.0, dR;
1937  int iCand = 0;
1938  if (!simPar[0].empty()) {
1939  for (unsigned int iSim = 0; iSim < simPar[0].size(); iSim++) {
1940  dR = deltaR(GBeta, GBphi, simPar[1][iSim], simPar[2][iSim]);
1941  if (candDeltaR < 0 || dR < candDeltaR) {
1942  candDeltaR = dR;
1943  iCand = iSim;
1944  }
1945  }
1946  }
1947 
1948  double simPt = simPar[0][iCand];
1949 
1950  hGBPTres->Fill((GBrecPt - simPt) / simPt);
1951  if (fabs(GBeta) < 1.04)
1952  hGBPTres_Barrel->Fill((GBrecPt - simPt) / simPt);
1953  else
1954  hGBPTres_Endcap->Fill((GBrecPt - simPt) / simPt);
1955 
1956  hGBPTDiff->Fill(GBrecPt - simPt);
1957 
1958  hGBPTDiffvsEta->Fill(GBeta, GBrecPt - simPt);
1959  hGBPTDiffvsPhi->Fill(GBphi, GBrecPt - simPt);
1960 
1961  double ptInvRes = (ich / GBrecPt - simPar[3][iCand] / simPt) / (simPar[3][iCand] / simPt);
1962  hGBinvPTres->Fill(ptInvRes);
1963 
1964  hGBinvPTvsEta->Fill(GBeta, ptInvRes);
1965  hGBinvPTvsPhi->Fill(GBphi, ptInvRes);
1966  hGBinvPTvsNhits->Fill((*glbTrack).numberOfValidHits(), ptInvRes);
1967  }
1968 
1969  hGBPTvsEta->Fill(GBeta, GBrecPt);
1970  hGBPTvsPhi->Fill(GBphi, GBrecPt);
1971  }
1972 
1973  hGBNmuons->Fill(i);
1974  hGBNmuons_Barrel->Fill(ib);
1975  hGBNmuons_Endcap->Fill(ie);
1976 
1977  if (i > 1) { // Take 2 first muons :-(
1978  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1979  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1980  TLorentzVector pair = mu1 + mu2;
1981  double Minv = pair.M();
1982  hGBInvM->Fill(Minv);
1983  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1984  hGBInvM_Barrel->Fill(Minv);
1985  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1986  hGBInvM_Endcap->Fill(Minv);
1987  else
1988  hGBInvM_Overlap->Fill(Minv);
1989  }
1990 
1991  } //end doGBplots
1992 
1993  // ############ Residual plots ###################
1994 
1995  if (doResplots) {
1996  edm::ESHandle<MagneticField> theMGField;
1997  eventSetup.get<IdealMagneticFieldRecord>().get(theMGField);
1998 
1999  edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
2000  eventSetup.get<GlobalTrackingGeometryRecord>().get(theTrackingGeometry);
2001 
2002  // Get the RecTrack collection from the event
2004  event.getByLabel(theSTAMuonTag, staTracks);
2005 
2006  // Get the 4D DTSegments
2007  edm::Handle<DTRecSegment4DCollection> all4DSegmentsDT;
2008  event.getByLabel(theRecHits4DTagDT, all4DSegmentsDT);
2010 
2011  // Get the 4D CSCSegments
2012  edm::Handle<CSCSegmentCollection> all4DSegmentsCSC;
2013  event.getByLabel(theRecHits4DTagCSC, all4DSegmentsCSC);
2015 
2016  //Vectors used to perform the matching between Segments and hits from Track
2017  intDVector indexCollectionDT;
2018  intDVector indexCollectionCSC;
2019 
2020  /* std::cout << "<MuonAlignmentAnalyzer> List of DTSegments found in Local Reconstruction" << std::endl;
2021  std::cout << "Number: " << all4DSegmentsDT->size() << std::endl;
2022  for (segmentDT = all4DSegmentsDT->begin(); segmentDT != all4DSegmentsDT->end(); ++segmentDT){
2023  const GeomDet* geomDet = theTrackingGeometry->idToDet((*segmentDT).geographicalId());
2024  std::cout << "<MuonAlignmentAnalyzer> " << geomDet->toGlobal((*segmentDT).localPosition()) << std::endl;
2025  std::cout << "<MuonAlignmentAnalyzer> Local " << (*segmentDT).localPosition() << std::endl;
2026  }
2027  std::cout << "<MuonAlignmentAnalyzer> List of CSCSegments found in Local Reconstruction" << std::endl;
2028  for (segmentCSC = all4DSegmentsCSC->begin(); segmentCSC != all4DSegmentsCSC->end(); ++segmentCSC){
2029  const GeomDet* geomDet = theTrackingGeometry->idToDet((*segmentCSC).geographicalId());
2030  std::cout << "<MuonAlignmentAnalyzer>" << geomDet->toGlobal((*segmentCSC).localPosition()) << std::endl;
2031  }
2032 */
2034 
2035  reco::TrackCollection::const_iterator staTrack;
2036  for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
2037  int countPoints = 0;
2038 
2039  reco::TransientTrack track(*staTrack, &*theMGField, theTrackingGeometry);
2040 
2041  if (staTrack->numberOfValidHits() > (min1DTrackRecHitSize - 1)) {
2042  RecHitVector my4DTrack = this->doMatching(
2043  *staTrack, all4DSegmentsDT, all4DSegmentsCSC, &indexCollectionDT, &indexCollectionCSC, theTrackingGeometry);
2044 
2045  //cut in number of segments
2046 
2047  if (my4DTrack.size() > (min4DTrackSegmentSize - 1)) {
2048  // start propagation
2049  // TrajectoryStateOnSurface innerTSOS = track.impactPointState();
2050  TrajectoryStateOnSurface innerTSOS = track.innermostMeasurementState();
2051 
2052  //If the state is valid
2053  if (innerTSOS.isValid()) {
2054  //Loop over Associated segments
2055  for (RecHitVector::iterator rechit = my4DTrack.begin(); rechit != my4DTrack.end(); ++rechit) {
2056  const GeomDet *geomDet = theTrackingGeometry->idToDet((*rechit)->geographicalId());
2057  //Otherwise the propagator could throw an exception
2058  const Plane *pDest = dynamic_cast<const Plane *>(&geomDet->surface());
2059  const Cylinder *cDest = dynamic_cast<const Cylinder *>(&geomDet->surface());
2060 
2061  if (pDest != nullptr || cDest != nullptr) { //Donde antes iba el try
2062 
2063  TrajectoryStateOnSurface destiny =
2064  thePropagator->propagate(*(innerTSOS.freeState()), geomDet->surface());
2065 
2066  if (!destiny.isValid() || !destiny.hasError())
2067  continue;
2068 
2069  /* std::cout << "<MuonAlignmentAnalyzer> Segment: " << geomDet->toGlobal((*rechit)->localPosition()) << std::endl;
2070  std::cout << "<MuonAlignmentAnalyzer> Segment local: " << (*rechit)->localPosition() << std::endl;
2071  std::cout << "<MuonAlignmentAnalyzer> Predicted: " << destiny.freeState()->position() << std::endl;
2072  std::cout << "<MuonAlignmentAnalyzer> Predicted local: " << destiny.localPosition() << std::endl;
2073 */
2074  const long rawId = (*rechit)->geographicalId().rawId();
2075  int position = -1;
2076  bool newDetector = true;
2077  //Loop over the DetectorCollection to see if the detector is new and requires a new entry
2078  for (std::vector<long>::iterator myIds = detectorCollection.begin(); myIds != detectorCollection.end();
2079  myIds++) {
2080  ++position;
2081  //If matches newDetector = false
2082  if (*myIds == rawId) {
2083  newDetector = false;
2084  break;
2085  }
2086  }
2087 
2088  DetId myDet(rawId);
2089  int det = myDet.subdetId();
2090  int wheel = 0, station = 0, sector = 0;
2091  int endcap = 0, ring = 0, chamber = 0;
2092 
2093  double residualGlobalRPhi = 0, residualGlobalPhi = 0, residualGlobalR = 0, residualGlobalTheta = 0,
2094  residualGlobalZ = 0;
2095  double residualLocalX = 0, residualLocalPhi = 0, residualLocalY = 0, residualLocalTheta = 0;
2096 
2097  // Fill generic histograms
2098  //If it's a DT
2099  if (det == 1) {
2100  DTChamberId myChamber(rawId);
2101  wheel = myChamber.wheel();
2102  station = myChamber.station();
2103  sector = myChamber.sector();
2104 
2105  //global
2106  residualGlobalRPhi =
2107  geomDet->toGlobal((*rechit)->localPosition()).perp() *
2108  geomDet->toGlobal((*rechit)->localPosition()).barePhi() -
2109  destiny.freeState()->position().perp() * destiny.freeState()->position().barePhi();
2110 
2111  //local
2112  residualLocalX = (*rechit)->localPosition().x() - destiny.localPosition().x();
2113 
2114  //global
2115  residualGlobalPhi = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).barePhi() -
2116  destiny.globalDirection().barePhi();
2117 
2118  //local
2119  residualLocalPhi = atan2(((RecSegment *)(*rechit))->localDirection().z(),
2120  ((RecSegment *)(*rechit))->localDirection().x()) -
2121  atan2(destiny.localDirection().z(), destiny.localDirection().x());
2122 
2123  hResidualGlobalRPhiDT->Fill(residualGlobalRPhi);
2124  hResidualGlobalPhiDT->Fill(residualGlobalPhi);
2125  hResidualLocalXDT->Fill(residualLocalX);
2126  hResidualLocalPhiDT->Fill(residualLocalPhi);
2127 
2128  if (station != 4) {
2129  //global
2130  residualGlobalZ =
2131  geomDet->toGlobal((*rechit)->localPosition()).z() - destiny.freeState()->position().z();
2132 
2133  //local
2134  residualLocalY = (*rechit)->localPosition().y() - destiny.localPosition().y();
2135 
2136  //global
2137  residualGlobalTheta = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).bareTheta() -
2138  destiny.globalDirection().bareTheta();
2139 
2140  //local
2141  residualLocalTheta = atan2(((RecSegment *)(*rechit))->localDirection().z(),
2142  ((RecSegment *)(*rechit))->localDirection().y()) -
2143  atan2(destiny.localDirection().z(), destiny.localDirection().y());
2144 
2145  hResidualGlobalThetaDT->Fill(residualGlobalTheta);
2146  hResidualGlobalZDT->Fill(residualGlobalZ);
2147  hResidualLocalThetaDT->Fill(residualLocalTheta);
2148  hResidualLocalYDT->Fill(residualLocalY);
2149  }
2150 
2151  int index = wheel + 2;
2152  hResidualGlobalRPhiDT_W[index]->Fill(residualGlobalRPhi);
2153  hResidualGlobalPhiDT_W[index]->Fill(residualGlobalPhi);
2154  hResidualLocalXDT_W[index]->Fill(residualLocalX);
2155  hResidualLocalPhiDT_W[index]->Fill(residualLocalPhi);
2156  if (station != 4) {
2157  hResidualGlobalThetaDT_W[index]->Fill(residualGlobalTheta);
2158  hResidualGlobalZDT_W[index]->Fill(residualGlobalZ);
2159  hResidualLocalThetaDT_W[index]->Fill(residualLocalTheta);
2160  hResidualLocalYDT_W[index]->Fill(residualLocalY);
2161  }
2162 
2163  index = wheel * 4 + station + 7;
2164  hResidualGlobalRPhiDT_MB[index]->Fill(residualGlobalRPhi);
2165  hResidualGlobalPhiDT_MB[index]->Fill(residualGlobalPhi);
2166  hResidualLocalXDT_MB[index]->Fill(residualLocalX);
2167  hResidualLocalPhiDT_MB[index]->Fill(residualLocalPhi);
2168 
2169  if (station != 4) {
2170  hResidualGlobalThetaDT_MB[index]->Fill(residualGlobalTheta);
2171  hResidualGlobalZDT_MB[index]->Fill(residualGlobalZ);
2172  hResidualLocalThetaDT_MB[index]->Fill(residualLocalTheta);
2173  hResidualLocalYDT_MB[index]->Fill(residualLocalY);
2174  }
2175  } else if (det == 2) {
2176  CSCDetId myChamber(rawId);
2177  endcap = myChamber.endcap();
2178  station = myChamber.station();
2179  if (endcap == 2)
2180  station = -station;
2181  ring = myChamber.ring();
2182  chamber = myChamber.chamber();
2183 
2184  //global
2185  residualGlobalRPhi =
2186  geomDet->toGlobal((*rechit)->localPosition()).perp() *
2187  geomDet->toGlobal((*rechit)->localPosition()).barePhi() -
2188  destiny.freeState()->position().perp() * destiny.freeState()->position().barePhi();
2189 
2190  //local
2191  residualLocalX = (*rechit)->localPosition().x() - destiny.localPosition().x();
2192 
2193  //global
2194  residualGlobalR =
2195  geomDet->toGlobal((*rechit)->localPosition()).perp() - destiny.freeState()->position().perp();
2196 
2197  //local
2198  residualLocalY = (*rechit)->localPosition().y() - destiny.localPosition().y();
2199 
2200  //global
2201  residualGlobalPhi = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).barePhi() -
2202  destiny.globalDirection().barePhi();
2203 
2204  //local
2205  residualLocalPhi = atan2(((RecSegment *)(*rechit))->localDirection().y(),
2206  ((RecSegment *)(*rechit))->localDirection().x()) -
2207  atan2(destiny.localDirection().y(), destiny.localDirection().x());
2208 
2209  //global
2210  residualGlobalTheta = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).bareTheta() -
2211  destiny.globalDirection().bareTheta();
2212 
2213  //local
2214  residualLocalTheta = atan2(((RecSegment *)(*rechit))->localDirection().y(),
2215  ((RecSegment *)(*rechit))->localDirection().z()) -
2216  atan2(destiny.localDirection().y(), destiny.localDirection().z());
2217 
2218  hResidualGlobalRPhiCSC->Fill(residualGlobalRPhi);
2219  hResidualGlobalPhiCSC->Fill(residualGlobalPhi);
2220  hResidualGlobalThetaCSC->Fill(residualGlobalTheta);
2221  hResidualGlobalRCSC->Fill(residualGlobalR);
2222  hResidualLocalXCSC->Fill(residualLocalX);
2223  hResidualLocalPhiCSC->Fill(residualLocalPhi);
2224  hResidualLocalThetaCSC->Fill(residualLocalTheta);
2225  hResidualLocalYCSC->Fill(residualLocalY);
2226 
2227  int index = 2 * station + ring + 7;
2228  if (station == -1) {
2229  index = 5 + ring;
2230  if (ring == 4)
2231  index = 6;
2232  }
2233  if (station == 1) {
2234  index = 8 + ring;
2235  if (ring == 4)
2236  index = 9;
2237  }
2238  hResidualGlobalRPhiCSC_ME[index]->Fill(residualGlobalRPhi);
2239  hResidualGlobalPhiCSC_ME[index]->Fill(residualGlobalPhi);
2240  hResidualGlobalThetaCSC_ME[index]->Fill(residualGlobalTheta);
2241  hResidualGlobalRCSC_ME[index]->Fill(residualGlobalR);
2242  hResidualLocalXCSC_ME[index]->Fill(residualLocalX);
2243  hResidualLocalPhiCSC_ME[index]->Fill(residualLocalPhi);
2244  hResidualLocalThetaCSC_ME[index]->Fill(residualLocalTheta);
2245  hResidualLocalYCSC_ME[index]->Fill(residualLocalY);
2246 
2247  } else {
2248  residualGlobalRPhi = 0, residualGlobalPhi = 0, residualGlobalR = 0, residualGlobalTheta = 0,
2249  residualGlobalZ = 0;
2250  residualLocalX = 0, residualLocalPhi = 0, residualLocalY = 0, residualLocalTheta = 0,
2251  residualLocalY = 0;
2252  }
2253  // Fill individual chamber histograms
2254  if (newDetector) {
2255  //Create an RawIdDetector, fill it and push it into the collection
2256  detectorCollection.push_back(rawId);
2257 
2258  //This piece of code calculates the range of the residuals
2259  double rangeX = 3.0, rangeY = 5.;
2260  switch (abs(station)) {
2261  case 1: {
2262  rangeX = resLocalXRangeStation1;
2263  rangeY = resLocalYRangeStation1;
2264  } break;
2265  case 2: {
2266  rangeX = resLocalXRangeStation2;
2267  rangeY = resLocalYRangeStation2;
2268  } break;
2269  case 3: {
2270  rangeX = resLocalXRangeStation3;
2271  rangeY = resLocalYRangeStation3;
2272  } break;
2273  case 4: {
2274  rangeX = resLocalXRangeStation4;
2275  rangeY = resLocalYRangeStation4;
2276  } break;
2277  default:
2278  break;
2279  }
2280 
2281  //create new histograms
2282 
2283  char nameOfHistoLocalX[50];
2284  char nameOfHistoLocalTheta[50];
2285  char nameOfHistoLocalY[50];
2286  char nameOfHistoLocalPhi[50];
2287  char nameOfHistoGlobalRPhi[50];
2288  char nameOfHistoGlobalTheta[50];
2289  char nameOfHistoGlobalR[50];
2290  char nameOfHistoGlobalPhi[50];
2291  char nameOfHistoGlobalZ[50];
2292 
2293  if (det == 1) { // DT
2294  snprintf(nameOfHistoLocalX,
2295  sizeof(nameOfHistoLocalX),
2296  "ResidualLocalX_W%dMB%1dS%1d",
2297  wheel,
2298  station,
2299  sector);
2300  snprintf(nameOfHistoLocalPhi,
2301  sizeof(nameOfHistoLocalPhi),
2302  "ResidualLocalPhi_W%dMB%1dS%1d",
2303  wheel,
2304  station,
2305  sector);
2306  snprintf(nameOfHistoGlobalRPhi,
2307  sizeof(nameOfHistoGlobalRPhi),
2308  "ResidualGlobalRPhi_W%dMB%1dS%1d",
2309  wheel,
2310  station,
2311  sector);
2312  snprintf(nameOfHistoGlobalPhi,
2313  sizeof(nameOfHistoGlobalPhi),
2314  "ResidualGlobalPhi_W%dMB%1dS%1d",
2315  wheel,
2316  station,
2317  sector);
2318  snprintf(nameOfHistoLocalTheta,
2319  sizeof(nameOfHistoLocalTheta),
2320  "ResidualLocalTheta_W%dMB%1dS%1d",
2321  wheel,
2322  station,
2323  sector);
2324  snprintf(nameOfHistoLocalY,
2325  sizeof(nameOfHistoLocalY),
2326  "ResidualLocalY_W%dMB%1dS%1d",
2327  wheel,
2328  station,
2329  sector);
2330  TH1F *histoLocalY = fs->make<TH1F>(nameOfHistoLocalY, nameOfHistoLocalY, nbins, -rangeY, rangeY);
2331  unitsLocalY.push_back(histoLocalY);
2332  snprintf(nameOfHistoGlobalTheta,
2333  sizeof(nameOfHistoGlobalTheta),
2334  "ResidualGlobalTheta_W%dMB%1dS%1d",
2335  wheel,
2336  station,
2337  sector);
2338  snprintf(nameOfHistoGlobalZ,
2339  sizeof(nameOfHistoGlobalZ),
2340  "ResidualGlobalZ_W%dMB%1dS%1d",
2341  wheel,
2342  station,
2343  sector);
2344  TH1F *histoGlobalZ = fs->make<TH1F>(nameOfHistoGlobalZ, nameOfHistoGlobalZ, nbins, -rangeY, rangeY);
2345  unitsGlobalRZ.push_back(histoGlobalZ);
2346 
2347  } else if (det == 2) { //CSC
2348  snprintf(nameOfHistoLocalX,
2349  sizeof(nameOfHistoLocalX),
2350  "ResidualLocalX_ME%dR%1dC%1d",
2351  station,
2352  ring,
2353  chamber);
2354  snprintf(nameOfHistoLocalPhi,
2355  sizeof(nameOfHistoLocalPhi),
2356  "ResidualLocalPhi_ME%dR%1dC%1d",
2357  station,
2358  ring,
2359  chamber);
2360  snprintf(nameOfHistoLocalTheta,
2361  sizeof(nameOfHistoLocalTheta),
2362  "ResidualLocalTheta_ME%dR%1dC%1d",
2363  station,
2364  ring,
2365  chamber);
2366  snprintf(nameOfHistoLocalY,
2367  sizeof(nameOfHistoLocalY),
2368  "ResidualLocalY_ME%dR%1dC%1d",
2369  station,
2370  ring,
2371  chamber);
2372  TH1F *histoLocalY = fs->make<TH1F>(nameOfHistoLocalY, nameOfHistoLocalY, nbins, -rangeY, rangeY);
2373  unitsLocalY.push_back(histoLocalY);
2374  snprintf(nameOfHistoGlobalRPhi,
2375  sizeof(nameOfHistoGlobalRPhi),
2376  "ResidualGlobalRPhi_ME%dR%1dC%1d",
2377  station,
2378  ring,
2379  chamber);
2380  snprintf(nameOfHistoGlobalPhi,
2381  sizeof(nameOfHistoGlobalPhi),
2382  "ResidualGlobalPhi_ME%dR%1dC%1d",
2383  station,
2384  ring,
2385  chamber);
2386  snprintf(nameOfHistoGlobalTheta,
2387  sizeof(nameOfHistoGlobalTheta),
2388  "ResidualGlobalTheta_ME%dR%1dC%1d",
2389  station,
2390  ring,
2391  chamber);
2392  snprintf(nameOfHistoGlobalR,
2393  sizeof(nameOfHistoGlobalR),
2394  "ResidualGlobalR_ME%dR%1dC%1d",
2395  station,
2396  ring,
2397  chamber);
2398  TH1F *histoGlobalR = fs->make<TH1F>(nameOfHistoGlobalR, nameOfHistoGlobalR, nbins, -rangeY, rangeY);
2399  unitsGlobalRZ.push_back(histoGlobalR);
2400  }
2401 
2402  // Common histos to DT and CSC
2403  TH1F *histoLocalX = fs->make<TH1F>(nameOfHistoLocalX, nameOfHistoLocalX, nbins, -rangeX, rangeX);
2404  TH1F *histoGlobalRPhi =
2405  fs->make<TH1F>(nameOfHistoGlobalRPhi, nameOfHistoGlobalRPhi, nbins, -rangeX, rangeX);
2406  TH1F *histoLocalPhi =
2407  fs->make<TH1F>(nameOfHistoLocalPhi, nameOfHistoLocalPhi, nbins, -resPhiRange, resPhiRange);
2408  TH1F *histoGlobalPhi =
2409  fs->make<TH1F>(nameOfHistoGlobalPhi, nameOfHistoGlobalPhi, nbins, -resPhiRange, resPhiRange);
2410  TH1F *histoGlobalTheta = fs->make<TH1F>(
2411  nameOfHistoGlobalTheta, nameOfHistoGlobalTheta, nbins, -resThetaRange, resThetaRange);
2412  TH1F *histoLocalTheta = fs->make<TH1F>(
2413  nameOfHistoLocalTheta, nameOfHistoLocalTheta, nbins, -resThetaRange, resThetaRange);
2414 
2415  histoLocalX->Fill(residualLocalX);
2416  histoLocalPhi->Fill(residualLocalPhi);
2417  histoLocalTheta->Fill(residualLocalTheta);
2418  histoGlobalRPhi->Fill(residualGlobalRPhi);
2419  histoGlobalPhi->Fill(residualGlobalPhi);
2420  histoGlobalTheta->Fill(residualGlobalTheta);
2421  //Push them into their respective vectors
2422  unitsLocalX.push_back(histoLocalX);
2423  unitsLocalPhi.push_back(histoLocalPhi);
2424  unitsLocalTheta.push_back(histoLocalTheta);
2425  unitsGlobalRPhi.push_back(histoGlobalRPhi);
2426  unitsGlobalPhi.push_back(histoGlobalPhi);
2427  unitsGlobalTheta.push_back(histoGlobalTheta);
2428 
2429  } // new detector
2430  else {
2431  //If the detector was not new, just fill the histogram
2432  unitsLocalX.at(position)->Fill(residualLocalX);
2433  unitsLocalPhi.at(position)->Fill(residualLocalPhi);
2434  unitsLocalTheta.at(position)->Fill(residualLocalTheta);
2435  unitsGlobalRPhi.at(position)->Fill(residualGlobalRPhi);
2436  unitsGlobalPhi.at(position)->Fill(residualGlobalPhi);
2437  unitsGlobalTheta.at(position)->Fill(residualGlobalTheta);
2438  if (det == 1) {
2439  unitsLocalY.at(position)->Fill(residualLocalY);
2440  unitsGlobalRZ.at(position)->Fill(residualGlobalZ);
2441  } else if (det == 2) {
2442  unitsLocalY.at(position)->Fill(residualLocalY);
2443  unitsGlobalRZ.at(position)->Fill(residualGlobalR);
2444  }
2445  }
2446 
2447  countPoints++;
2448 
2449  innerTSOS = destiny;
2450 
2451  } else {
2452  edm::LogError("MuonAlignmentAnalyzer") << " Error!! Exception in propagator catched" << std::endl;
2453  continue;
2454  }
2455 
2456  } //loop over my4DTrack
2457  } //TSOS was valid
2458 
2459  } // cut in at least 4 segments
2460 
2461  } //end cut in RecHitsSize>36
2462  numberOfHits = numberOfHits + countPoints;
2463  } //loop over STAtracks
2464 
2465  delete thePropagator;
2466 
2467  } //end doResplots
2468 }

References funct::abs(), alongMomentum, PV3DBase< T, PVType, FrameType >::barePhi(), barePhi(), PV3DBase< T, PVType, FrameType >::bareTheta(), relativeConstraints::chamber, CSCDetId::chamber(), PbPb_ZMuSkimMuonDPG_cff::deltaR, detectorCollection, doGBplots, doMatching(), doResplots, doSAplots, HGC3DClusterGenMatchSelector_cfi::dR, relativeConstraints::empty, CSCDetId::endcap(), makeMuonMisalignmentScenario::endcap, TrajectoryStateOnSurface::freeState(), fs, edm::EventSetup::get(), get, TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::hasError(), hGBChi2, hGBChi2_Barrel, hGBChi2_Endcap, hGBInvM, hGBInvM_Barrel, hGBInvM_Endcap, hGBInvM_Overlap, hGBinvPTres, hGBinvPTvsEta, hGBinvPTvsNhits, hGBinvPTvsPhi, hGBNhits, hGBNhits_Barrel, hGBNhits_Endcap, hGBNmuons, hGBNmuons_Barrel, hGBNmuons_Endcap, hGBPhivsEta, hGBPTDiff, hGBPTDiffvsEta, hGBPTDiffvsPhi, hGBPTRec, hGBPTRec_Barrel, hGBPTRec_Endcap, hGBPTres, hGBPTres_Barrel, hGBPTres_Endcap, hGBPTvsEta, hGBPTvsPhi, hResidualGlobalPhiCSC, hResidualGlobalPhiCSC_ME, hResidualGlobalPhiDT, hResidualGlobalPhiDT_MB, hResidualGlobalPhiDT_W, hResidualGlobalRCSC, hResidualGlobalRCSC_ME, hResidualGlobalRPhiCSC, hResidualGlobalRPhiCSC_ME, hResidualGlobalRPhiDT, hResidualGlobalRPhiDT_MB, hResidualGlobalRPhiDT_W, hResidualGlobalThetaCSC, hResidualGlobalThetaCSC_ME, hResidualGlobalThetaDT, hResidualGlobalThetaDT_MB, hResidualGlobalThetaDT_W, hResidualGlobalZDT, hResidualGlobalZDT_MB, hResidualGlobalZDT_W, hResidualLocalPhiCSC, hResidualLocalPhiCSC_ME, hResidualLocalPhiDT, hResidualLocalPhiDT_MB, hResidualLocalPhiDT_W, hResidualLocalThetaCSC, hResidualLocalThetaCSC_ME, hResidualLocalThetaDT, hResidualLocalThetaDT_MB, hResidualLocalThetaDT_W, hResidualLocalXCSC, hResidualLocalXCSC_ME, hResidualLocalXDT, hResidualLocalXDT_MB, hResidualLocalXDT_W, hResidualLocalYCSC, hResidualLocalYCSC_ME, hResidualLocalYDT, hResidualLocalYDT_MB, hResidualLocalYDT_W, hSAChi2, hSAChi2_Barrel, hSAChi2_Endcap, hSAInvM, hSAInvM_Barrel, hSAInvM_Endcap, hSAInvM_Overlap, hSAinvPTres, hSAinvPTvsEta, hSAinvPTvsNhits, hSAinvPTvsPhi, hSANhits, hSANhits_Barrel, hSANhits_Endcap, hSANmuons, hSANmuons_Barrel, hSANmuons_Endcap, hSAPhivsEta, hSAPTDiff, hSAPTDiffvsEta, hSAPTDiffvsPhi, hSAPTRec, hSAPTRec_Barrel, hSAPTRec_Endcap, hSAPTres, hSAPTres_Barrel, hSAPTres_Endcap, hSAPTvsEta, hSAPTvsPhi, hSimInvM, hSimInvM_Barrel, hSimInvM_Endcap, hSimInvM_Overlap, hSimNmuons, hSimNmuons_Barrel, hSimNmuons_Endcap, hSimPhivsEta, hSimPT, hSimPT_Barrel, hSimPT_Endcap, hSimPTvsEta, hSimPTvsPhi, mps_fire::i, cuy::ib, GlobalTrackingGeometry::idToDet(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localDirection(), TrajectoryStateOnSurface::localPosition(), TFileService::make(), min1DTrackRecHitSize, min4DTrackSegmentSize, nbins, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, p1, p2, PV3DBase< T, PVType, FrameType >::perp(), perp(), FreeTrajectoryState::position(), position, Propagator::propagate(), resLocalXRangeStation1, resLocalXRangeStation2, resLocalXRangeStation3, resLocalXRangeStation4, resLocalYRangeStation1, resLocalYRangeStation2, resLocalYRangeStation3, resLocalYRangeStation4, resPhiRange, resThetaRange, relativeConstraints::ring, CSCDetId::ring(), DTChamberId::sector(), muonSimHitMatcherPSet::simTrack, TrackCandidateProducer_cfi::simTracks, DTChamberId::station(), relativeConstraints::station, CSCDetId::station(), muonTagProbeFilters_cff::staTracks, SteppingHelixPropagator_cfi::SteppingHelixPropagator, DetId::subdetId(), GeomDet::surface(), theDataType, theGLBMuonTag, thePropagator, theRecHits4DTagCSC, theRecHits4DTagDT, theSTAMuonTag, GeomDet::toGlobal(), HLT_2018_cff::track, unitsGlobalPhi, unitsGlobalRPhi, unitsGlobalRZ, unitsGlobalTheta, unitsLocalPhi, unitsLocalTheta, unitsLocalX, unitsLocalY, DTChamberId::wheel(), makeMuonMisalignmentScenario::wheel, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

◆ beginJob()

void MuonAlignmentAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 240 of file MuonAlignmentAnalyzer.cc.

240  {
241  // eventSetup.get<IdealMagneticFieldRecord>().get(theMGField);
242 
243  //Create the propagator
244  // if(doResplots) thePropagator = new SteppingHelixPropagator(&*theMGField, alongMomentum);
245 
246  int nBinsPt = (int)fabs(ptRangeMax - ptRangeMin);
247  int nBinsMass = (int)fabs(invMassRangeMax - invMassRangeMin);
248 
249  // Define and book histograms for SA and GB muon quantities/objects
250 
251  if (doGBplots) {
252  hGBNmuons = fs->make<TH1F>("GBNmuons", "Nmuons", 10, 0, 10);
253  hGBNmuons_Barrel = fs->make<TH1F>("GBNmuons_Barrel", "Nmuons", 10, 0, 10);
254  hGBNmuons_Endcap = fs->make<TH1F>("GBNmuons_Endcap", "Nmuons", 10, 0, 10);
255  hGBNhits = fs->make<TH1F>("GBNhits", "Nhits", 100, 0, 100);
256  hGBNhits_Barrel = fs->make<TH1F>("GBNhits_Barrel", "Nhits", 100, 0, 100);
257  hGBNhits_Endcap = fs->make<TH1F>("GBNhits_Endcap", "Nhits", 100, 0, 100);
258  hGBPTRec = fs->make<TH1F>("GBpTRec", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
259  hGBPTRec_Barrel = fs->make<TH1F>("GBpTRec_Barrel", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
260  hGBPTRec_Endcap = fs->make<TH1F>("GBpTRec_Endcap", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
261  hGBPTvsEta = fs->make<TH2F>("GBPTvsEta", "p_{T}^{rec} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
262  hGBPTvsPhi =
263  fs->make<TH2F>("GBPTvsPhi", "p_{T}^{rec} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
264  hGBPhivsEta = fs->make<TH2F>("GBPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
265 
266  if (theDataType == "SimData") {
267  hGBPTDiff = fs->make<TH1F>("GBpTDiff", "p_{T}^{rec} - p_{T}^{gen} ", 250, -120, 120);
269  fs->make<TH2F>("GBPTDiffvsEta", "p_{T}^{rec} - p_{T}^{gen} VS #eta", 100, -2.5, 2.5, 250, -120, 120);
271  fs->make<TH2F>("GBPTDiffvsPhi", "p_{T}^{rec} - p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, 250, -120, 120);
272  hGBPTres = fs->make<TH1F>("GBpTRes", "pT Resolution", 100, -2, 2);
273  hGBPTres_Barrel = fs->make<TH1F>("GBpTRes_Barrel", "pT Resolution", 100, -2, 2);
274  hGBPTres_Endcap = fs->make<TH1F>("GBpTRes_Endcap", "pT Resolution", 100, -2, 2);
275  hGBinvPTres = fs->make<TH1F>("GBinvPTRes", "#sigma (q/p_{T}) Resolution", 100, -2, 2);
276  hGBinvPTvsEta = fs->make<TH2F>("GBinvPTvsEta", "#sigma (q/p_{T}) VS #eta", 100, -2.5, 2.5, 100, -2, 2);
277  hGBinvPTvsPhi = fs->make<TH2F>("GBinvPTvsPhi", "#sigma (q/p_{T}) VS #phi", 100, -3.1416, 3.1416, 100, -2, 2);
278  hGBinvPTvsNhits = fs->make<TH2F>("GBinvPTvsNhits", "#sigma (q/p_{T}) VS Nhits", 100, 0, 100, 100, -2, 2);
279  }
280 
281  hGBChi2 = fs->make<TH1F>("GBChi2", "Chi2", 200, 0, 200);
282  hGBChi2_Barrel = fs->make<TH1F>("GBChi2_Barrel", "Chi2", 200, 0, 200);
283  hGBChi2_Endcap = fs->make<TH1F>("GBChi2_Endcap ", "Chi2", 200, 0, 200);
284  hGBInvM = fs->make<TH1F>("GBInvM", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
285  hGBInvM_Barrel = fs->make<TH1F>("GBInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
286  hGBInvM_Endcap = fs->make<TH1F>("GBInvM_Endcap ", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
287  hGBInvM_Overlap = fs->make<TH1F>("GBInvM_Overlap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
288  }
289 
290  if (doSAplots) {
291  hSANmuons = fs->make<TH1F>("SANmuons", "Nmuons", 10, 0, 10);
292  hSANmuons_Barrel = fs->make<TH1F>("SANmuons_Barrel", "Nmuons", 10, 0, 10);
293  hSANmuons_Endcap = fs->make<TH1F>("SANmuons_Endcap", "Nmuons", 10, 0, 10);
294  hSANhits = fs->make<TH1F>("SANhits", "Nhits", 100, 0, 100);
295  hSANhits_Barrel = fs->make<TH1F>("SANhits_Barrel", "Nhits", 100, 0, 100);
296  hSANhits_Endcap = fs->make<TH1F>("SANhits_Endcap", "Nhits", 100, 0, 100);
297  hSAPTRec = fs->make<TH1F>("SApTRec", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
298  hSAPTRec_Barrel = fs->make<TH1F>("SApTRec_Barrel", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
299  hSAPTRec_Endcap = fs->make<TH1F>("SApTRec_Endcap", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
300  hSAPTvsEta = fs->make<TH2F>("SAPTvsEta", "p_{T}^{rec} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
301  hSAPTvsPhi =
302  fs->make<TH2F>("SAPTvsPhi", "p_{T}^{rec} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
303  hSAPhivsEta = fs->make<TH2F>("SAPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
304 
305  if (theDataType == "SimData") {
306  hSAPTDiff = fs->make<TH1F>("SApTDiff", "p_{T}^{rec} - p_{T}^{gen} ", 250, -120, 120);
308  fs->make<TH2F>("SAPTDiffvsEta", "p_{T}^{rec} - p_{T}^{gen} VS #eta", 100, -2.5, 2.5, 250, -120, 120);
310  fs->make<TH2F>("SAPTDiffvsPhi", "p_{T}^{rec} - p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, 250, -120, 120);
311  hSAPTres = fs->make<TH1F>("SApTRes", "pT Resolution", 100, -2, 2);
312  hSAPTres_Barrel = fs->make<TH1F>("SApTRes_Barrel", "pT Resolution", 100, -2, 2);
313  hSAPTres_Endcap = fs->make<TH1F>("SApTRes_Endcap", "pT Resolution", 100, -2, 2);
314  hSAinvPTres = fs->make<TH1F>("SAinvPTRes", "1/pT Resolution", 100, -2, 2);
315 
316  hSAinvPTvsEta = fs->make<TH2F>("SAinvPTvsEta", "#sigma (q/p_{T}) VS #eta", 100, -2.5, 2.5, 100, -2, 2);
317  hSAinvPTvsPhi = fs->make<TH2F>("SAinvPTvsPhi", "#sigma (q/p_{T}) VS #phi", 100, -3.1416, 3.1416, 100, -2, 2);
318  hSAinvPTvsNhits = fs->make<TH2F>("SAinvPTvsNhits", "#sigma (q/p_{T}) VS Nhits", 100, 0, 100, 100, -2, 2);
319  }
320  hSAInvM = fs->make<TH1F>("SAInvM", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
321  hSAInvM_Barrel = fs->make<TH1F>("SAInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
322  hSAInvM_Endcap = fs->make<TH1F>("SAInvM_Endcap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
323  hSAInvM_Overlap = fs->make<TH1F>("SAInvM_Overlap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
324  hSAChi2 = fs->make<TH1F>("SAChi2", "Chi2", 200, 0, 200);
325  hSAChi2_Barrel = fs->make<TH1F>("SAChi2_Barrel", "Chi2", 200, 0, 200);
326  hSAChi2_Endcap = fs->make<TH1F>("SAChi2_Endcap", "Chi2", 200, 0, 200);
327  }
328 
329  if (theDataType == "SimData") {
330  hSimNmuons = fs->make<TH1F>("SimNmuons", "Nmuons", 10, 0, 10);
331  hSimNmuons_Barrel = fs->make<TH1F>("SimNmuons_Barrel", "Nmuons", 10, 0, 10);
332  hSimNmuons_Endcap = fs->make<TH1F>("SimNmuons_Endcap", "Nmuons", 10, 0, 10);
333  hSimPT = fs->make<TH1F>("SimPT", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
334  hSimPT_Barrel = fs->make<TH1F>("SimPT_Barrel", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
335  hSimPT_Endcap = fs->make<TH1F>("SimPT_Endcap", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
336  hSimPTvsEta = fs->make<TH2F>("SimPTvsEta", "p_{T}^{gen} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
337  hSimPTvsPhi =
338  fs->make<TH2F>("SimPTvsPhi", "p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
339  hSimPhivsEta = fs->make<TH2F>("SimPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
340  hSimInvM = fs->make<TH1F>("SimInvM", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
341  hSimInvM_Barrel = fs->make<TH1F>("SimInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
342  hSimInvM_Endcap = fs->make<TH1F>("SimInvM_Endcap", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
343  hSimInvM_Overlap = fs->make<TH1F>("SimInvM_Overlap", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
344  }
345 
346  if (doResplots) {
347  // All DT and CSC chambers
348  hResidualLocalXDT = fs->make<TH1F>("hResidualLocalXDT", "hResidualLocalXDT", 200, -10, 10);
349  hResidualLocalPhiDT = fs->make<TH1F>("hResidualLocalPhiDT", "hResidualLocalPhiDT", 100, -1, 1);
350  hResidualLocalThetaDT = fs->make<TH1F>("hResidualLocalThetaDT", "hResidualLocalThetaDT", 100, -1, 1);
351  hResidualLocalYDT = fs->make<TH1F>("hResidualLocalYDT", "hResidualLocalYDT", 200, -10, 10);
352  hResidualLocalXCSC = fs->make<TH1F>("hResidualLocalXCSC", "hResidualLocalXCSC", 200, -10, 10);
353  hResidualLocalPhiCSC = fs->make<TH1F>("hResidualLocalPhiCSC", "hResidualLocalPhiCSC", 100, -1, 1);
354  hResidualLocalThetaCSC = fs->make<TH1F>("hResidualLocalThetaCSC", "hResidualLocalThetaCSC", 100, -1, 1);
355  hResidualLocalYCSC = fs->make<TH1F>("hResidualLocalYCSC", "hResidualLocalYCSC", 200, -10, 10);
356  hResidualGlobalRPhiDT = fs->make<TH1F>("hResidualGlobalRPhiDT", "hResidualGlobalRPhiDT", 200, -10, 10);
357  hResidualGlobalPhiDT = fs->make<TH1F>("hResidualGlobalPhiDT", "hResidualGlobalPhiDT", 100, -1, 1);
358  hResidualGlobalThetaDT = fs->make<TH1F>("hResidualGlobalThetaDT", "hResidualGlobalThetaDT", 100, -1, 1);
359  hResidualGlobalZDT = fs->make<TH1F>("hResidualGlobalZDT", "hResidualGlobalZDT", 200, -10, 10);
360  hResidualGlobalRPhiCSC = fs->make<TH1F>("hResidualGlobalRPhiCSC", "hResidualGlobalRPhiCSC", 200, -10, 10);
361  hResidualGlobalPhiCSC = fs->make<TH1F>("hResidualGlobalPhiCSC", "hResidualGlobalPhiCSC", 100, -1, 1);
362  hResidualGlobalThetaCSC = fs->make<TH1F>("hResidualGlobalThetaCSC", "hResidualGlobalThetaCSC", 100, -1, 1);
363  hResidualGlobalRCSC = fs->make<TH1F>("hResidualGlobalRCSC", "hResidualGlobalRCSC", 200, -10, 10);
364 
365  // DT Wheels
366  hResidualLocalXDT_W[0] = fs->make<TH1F>("hResidualLocalXDT_W-2", "hResidualLocalXDT_W-2", 200, -10, 10);
367  hResidualLocalPhiDT_W[0] = fs->make<TH1F>("hResidualLocalPhiDT_W-2", "hResidualLocalPhiDT_W-2", 200, -1, 1);
368  hResidualLocalThetaDT_W[0] = fs->make<TH1F>("hResidualLocalThetaDT_W-2", "hResidualLocalThetaDT_W-2", 200, -1, 1);
369  hResidualLocalYDT_W[0] = fs->make<TH1F>("hResidualLocalYDT_W-2", "hResidualLocalYDT_W-2", 200, -10, 10);
370  hResidualLocalXDT_W[1] = fs->make<TH1F>("hResidualLocalXDT_W-1", "hResidualLocalXDT_W-1", 200, -10, 10);
371  hResidualLocalPhiDT_W[1] = fs->make<TH1F>("hResidualLocalPhiDT_W-1", "hResidualLocalPhiDT_W-1", 200, -1, 1);
372  hResidualLocalThetaDT_W[1] = fs->make<TH1F>("hResidualLocalThetaDT_W-1", "hResidualLocalThetaDT_W-1", 200, -1, 1);
373  hResidualLocalYDT_W[1] = fs->make<TH1F>("hResidualLocalYDT_W-1", "hResidualLocalYDT_W-1", 200, -10, 10);
374  hResidualLocalXDT_W[2] = fs->make<TH1F>("hResidualLocalXDT_W0", "hResidualLocalXDT_W0", 200, -10, 10);
375  hResidualLocalPhiDT_W[2] = fs->make<TH1F>("hResidualLocalPhiDT_W0", "hResidualLocalPhiDT_W0", 200, -1, 1);
376  hResidualLocalThetaDT_W[2] = fs->make<TH1F>("hResidualLocalThetaDT_W0", "hResidualLocalThetaDT_W0", 200, -1, 1);
377  hResidualLocalYDT_W[2] = fs->make<TH1F>("hResidualLocalYDT_W0", "hResidualLocalYDT_W0", 200, -10, 10);
378  hResidualLocalXDT_W[3] = fs->make<TH1F>("hResidualLocalXDT_W1", "hResidualLocalXDT_W1", 200, -10, 10);
379  hResidualLocalPhiDT_W[3] = fs->make<TH1F>("hResidualLocalPhiDT_W1", "hResidualLocalPhiDT_W1", 200, -1, 1);
380  hResidualLocalThetaDT_W[3] = fs->make<TH1F>("hResidualLocalThetaDT_W1", "hResidualLocalThetaDT_W1", 200, -1, 1);
381  hResidualLocalYDT_W[3] = fs->make<TH1F>("hResidualLocalYDT_W1", "hResidualLocalYDT_W1", 200, -10, 10);
382  hResidualLocalXDT_W[4] = fs->make<TH1F>("hResidualLocalXDT_W2", "hResidualLocalXDT_W2", 200, -10, 10);
383  hResidualLocalPhiDT_W[4] = fs->make<TH1F>("hResidualLocalPhiDT_W2", "hResidualLocalPhiDT_W2", 200, -1, 1);
384  hResidualLocalThetaDT_W[4] = fs->make<TH1F>("hResidualLocalThetaDT_W2", "hResidualLocalThetaDT_W2", 200, -1, 1);
385  hResidualLocalYDT_W[4] = fs->make<TH1F>("hResidualLocalYDT_W2", "hResidualLocalYDT_W2", 200, -10, 10);
386  hResidualGlobalRPhiDT_W[0] = fs->make<TH1F>("hResidualGlobalRPhiDT_W-2", "hResidualGlobalRPhiDT_W-2", 200, -10, 10);
387  hResidualGlobalPhiDT_W[0] = fs->make<TH1F>("hResidualGlobalPhiDT_W-2", "hResidualGlobalPhiDT_W-2", 200, -1, 1);
389  fs->make<TH1F>("hResidualGlobalThetaDT_W-2", "hResidualGlobalThetaDT_W-2", 200, -1, 1);
390  hResidualGlobalZDT_W[0] = fs->make<TH1F>("hResidualGlobalZDT_W-2", "hResidualGlobalZDT_W-2", 200, -10, 10);
391  hResidualGlobalRPhiDT_W[1] = fs->make<TH1F>("hResidualGlobalRPhiDT_W-1", "hResidualGlobalRPhiDT_W-1", 200, -10, 10);
392  hResidualGlobalPhiDT_W[1] = fs->make<TH1F>("hResidualGlobalPhiDT_W-1", "hResidualGlobalPhiDT_W-1", 200, -1, 1);
394  fs->make<TH1F>("hResidualGlobalThetaDT_W-1", "hResidualGlobalThetaDT_W-1", 200, -1, 1);
395  hResidualGlobalZDT_W[1] = fs->make<TH1F>("hResidualGlobalZDT_W-1", "hResidualGlobalZDT_W-1", 200, -10, 10);
396  hResidualGlobalRPhiDT_W[2] = fs->make<TH1F>("hResidualGlobalRPhiDT_W0", "hResidualGlobalRPhiDT_W0", 200, -10, 10);
397  hResidualGlobalPhiDT_W[2] = fs->make<TH1F>("hResidualGlobalPhiDT_W0", "hResidualGlobalPhiDT_W0", 200, -1, 1);
398  hResidualGlobalThetaDT_W[2] = fs->make<TH1F>("hResidualGlobalThetaDT_W0", "hResidualGlobalThetaDT_W0", 200, -1, 1);
399  hResidualGlobalZDT_W[2] = fs->make<TH1F>("hResidualGlobalZDT_W0", "hResidualGlobalZDT_W0", 200, -10, 10);
400  hResidualGlobalRPhiDT_W[3] = fs->make<TH1F>("hResidualGlobalRPhiDT_W1", "hResidualGlobalRPhiDT_W1", 200, -10, 10);
401  hResidualGlobalPhiDT_W[3] = fs->make<TH1F>("hResidualGlobalPhiDT_W1", "hResidualGlobalPhiDT_W1", 200, -1, 1);
402  hResidualGlobalThetaDT_W[3] = fs->make<TH1F>("hResidualGlobalThetaDT_W1", "hResidualGlobalThetaDT_W1", 200, -1, 1);
403  hResidualGlobalZDT_W[3] = fs->make<TH1F>("hResidualGlobalZDT_W1", "hResidualGlobalZDT_W1", 200, -10, 10);
404  hResidualGlobalRPhiDT_W[4] = fs->make<TH1F>("hResidualGlobalRPhiDT_W2", "hResidualGlobalRPhiDT_W2", 200, -10, 10);
405  hResidualGlobalPhiDT_W[4] = fs->make<TH1F>("hResidualGlobalPhiDT_W2", "hResidualGlobalPhiDT_W2", 200, -1, 1);
406  hResidualGlobalThetaDT_W[4] = fs->make<TH1F>("hResidualGlobalThetaDT_W2", "hResidualGlobalThetaDT_W2", 200, -1, 1);
407  hResidualGlobalZDT_W[4] = fs->make<TH1F>("hResidualGlobalZDT_W2", "hResidualGlobalZDT_W2", 200, -10, 10);
408 
409  // DT Stations
410  hResidualLocalXDT_MB[0] = fs->make<TH1F>("hResidualLocalXDT_MB-2/1", "hResidualLocalXDT_MB-2/1", 200, -10, 10);
411  hResidualLocalPhiDT_MB[0] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/1", "hResidualLocalPhiDT_MB-2/1", 200, -1, 1);
413  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/1", "hResidualLocalThetaDT_MB-2/1", 200, -1, 1);
414  hResidualLocalYDT_MB[0] = fs->make<TH1F>("hResidualLocalYDT_MB-2/1", "hResidualLocalYDT_MB-2/1", 200, -10, 10);
415  hResidualLocalXDT_MB[1] = fs->make<TH1F>("hResidualLocalXDT_MB-2/2", "hResidualLocalXDT_MB-2/2", 200, -10, 10);
416  hResidualLocalPhiDT_MB[1] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/2", "hResidualLocalPhiDT_MB-2/2", 200, -1, 1);
418  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/2", "hResidualLocalThetaDT_MB-2/2", 200, -1, 1);
419  hResidualLocalYDT_MB[1] = fs->make<TH1F>("hResidualLocalYDT_MB-2/2", "hResidualLocalYDT_MB-2/2", 200, -10, 10);
420  hResidualLocalXDT_MB[2] = fs->make<TH1F>("hResidualLocalXDT_MB-2/3", "hResidualLocalXDT_MB-2/3", 200, -10, 10);
421  hResidualLocalPhiDT_MB[2] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/3", "hResidualLocalPhiDT_MB-2/3", 200, -1, 1);
423  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/3", "hResidualLocalThetaDT_MB-2/3", 200, -1, 1);
424  hResidualLocalYDT_MB[2] = fs->make<TH1F>("hResidualLocalYDT_MB-2/3", "hResidualLocalYDT_MB-2/3", 200, -10, 10);
425  hResidualLocalXDT_MB[3] = fs->make<TH1F>("hResidualLocalXDT_MB-2/4", "hResidualLocalXDT_MB-2/4", 200, -10, 10);
426  hResidualLocalPhiDT_MB[3] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/4", "hResidualLocalPhiDT_MB-2/4", 200, -1, 1);
428  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/4", "hResidualLocalThetaDT_MB-2/4", 200, -1, 1);
429  hResidualLocalYDT_MB[3] = fs->make<TH1F>("hResidualLocalYDT_MB-2/4", "hResidualLocalYDT_MB-2/4", 200, -10, 10);
430  hResidualLocalXDT_MB[4] = fs->make<TH1F>("hResidualLocalXDT_MB-1/1", "hResidualLocalXDT_MB-1/1", 200, -10, 10);
431  hResidualLocalPhiDT_MB[4] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/1", "hResidualLocalPhiDT_MB-1/1", 200, -1, 1);
433  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/1", "hResidualLocalThetaDT_MB-1/1", 200, -1, 1);
434  hResidualLocalYDT_MB[4] = fs->make<TH1F>("hResidualLocalYDT_MB-1/1", "hResidualLocalYDT_MB-1/1", 200, -10, 10);
435  hResidualLocalXDT_MB[5] = fs->make<TH1F>("hResidualLocalXDT_MB-1/2", "hResidualLocalXDT_MB-1/2", 200, -10, 10);
436  hResidualLocalPhiDT_MB[5] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/2", "hResidualLocalPhiDT_MB-1/2", 200, -1, 1);
438  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/2", "hResidualLocalThetaDT_MB-1/2", 200, -1, 1);
439  hResidualLocalYDT_MB[5] = fs->make<TH1F>("hResidualLocalYDT_MB-1/2", "hResidualLocalYDT_MB-1/2", 200, -10, 10);
440  hResidualLocalXDT_MB[6] = fs->make<TH1F>("hResidualLocalXDT_MB-1/3", "hResidualLocalXDT_MB-1/3", 200, -10, 10);
441  hResidualLocalPhiDT_MB[6] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/3", "hResidualLocalPhiDT_MB-1/3", 200, -1, 1);
443  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/3", "hResidualLocalThetaDT_MB-1/3", 200, -1, 1);
444  hResidualLocalYDT_MB[6] = fs->make<TH1F>("hResidualLocalYDT_MB-1/3", "hResidualLocalYDT_MB-1/3", 200, -10, 10);
445  hResidualLocalXDT_MB[7] = fs->make<TH1F>("hResidualLocalXDT_MB-1/4", "hResidualLocalXDT_MB-1/4", 200, -10, 10);
446  hResidualLocalPhiDT_MB[7] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/4", "hResidualLocalPhiDT_MB-1/4", 200, -1, 1);
448  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/4", "hResidualLocalThetaDT_MB-1/4", 200, -1, 1);
449  hResidualLocalYDT_MB[7] = fs->make<TH1F>("hResidualLocalYDT_MB-1/4", "hResidualLocalYDT_MB-1/4", 200, -10, 10);
450  hResidualLocalXDT_MB[8] = fs->make<TH1F>("hResidualLocalXDT_MB0/1", "hResidualLocalXDT_MB0/1", 200, -10, 10);
451  hResidualLocalPhiDT_MB[8] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/1", "hResidualLocalPhiDT_MB0/1", 200, -1, 1);
453  fs->make<TH1F>("hResidualLocalThetaDT_MB0/1", "hResidualLocalThetaDT_MB0/1", 200, -1, 1);
454  hResidualLocalYDT_MB[8] = fs->make<TH1F>("hResidualLocalYDT_MB0/1", "hResidualLocalYDT_MB0/1", 200, -10, 10);
455  hResidualLocalXDT_MB[9] = fs->make<TH1F>("hResidualLocalXDT_MB0/2", "hResidualLocalXDT_MB0/2", 200, -10, 10);
456  hResidualLocalPhiDT_MB[9] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/2", "hResidualLocalPhiDT_MB0/2", 200, -1, 1);
458  fs->make<TH1F>("hResidualLocalThetaDT_MB0/2", "hResidualLocalThetaDT_MB0/2", 200, -1, 1);
459  hResidualLocalYDT_MB[9] = fs->make<TH1F>("hResidualLocalYDT_MB0/2", "hResidualLocalYDT_MB0/2", 200, -10, 10);
460  hResidualLocalXDT_MB[10] = fs->make<TH1F>("hResidualLocalXDT_MB0/3", "hResidualLocalXDT_MB0/3", 200, -10, 10);
462  fs->make<TH1F>("hResidualLocalThetaDT_MB0/3", "hResidualLocalThetaDT_MB0/3", 200, -1, 1);
463  hResidualLocalPhiDT_MB[10] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/3", "hResidualLocalPhiDT_MB0/3", 200, -1, 1);
464  hResidualLocalYDT_MB[10] = fs->make<TH1F>("hResidualLocalYDT_MB0/3", "hResidualLocalYDT_MB0/3", 200, -10, 10);
465  hResidualLocalXDT_MB[11] = fs->make<TH1F>("hResidualLocalXDT_MB0/4", "hResidualLocalXDT_MB0/4", 200, -10, 10);
466  hResidualLocalPhiDT_MB[11] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/4", "hResidualLocalPhiDT_MB0/4", 200, -1, 1);
468  fs->make<TH1F>("hResidualLocalThetaDT_MB0/4", "hResidualLocalThetaDT_MB0/4", 200, -1, 1);
469  hResidualLocalYDT_MB[11] = fs->make<TH1F>("hResidualLocalYDT_MB0/4", "hResidualLocalYDT_MB0/4", 200, -10, 10);
470  hResidualLocalXDT_MB[12] = fs->make<TH1F>("hResidualLocalXDT_MB1/1", "hResidualLocalXDT_MB1/1", 200, -10, 10);
471  hResidualLocalPhiDT_MB[12] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/1", "hResidualLocalPhiDT_MB1/1", 200, -1, 1);
473  fs->make<TH1F>("hResidualLocalThetaDT_MB1/1", "hResidualLocalThetaDT_MB1/1", 200, -1, 1);
474  hResidualLocalYDT_MB[12] = fs->make<TH1F>("hResidualLocalYDT_MB1/1", "hResidualLocalYDT_MB1/1", 200, -10, 10);
475  hResidualLocalXDT_MB[13] = fs->make<TH1F>("hResidualLocalXDT_MB1/2", "hResidualLocalXDT_MB1/2", 200, -10, 10);
476  hResidualLocalPhiDT_MB[13] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/2", "hResidualLocalPhiDT_MB1/2", 200, -1, 1);
478  fs->make<TH1F>("hResidualLocalThetaDT_MB1/2", "hResidualLocalThetaDT_MB1/2", 200, -1, 1);
479  hResidualLocalYDT_MB[13] = fs->make<TH1F>("hResidualLocalYDT_MB1/2", "hResidualLocalYDT_MB1/2", 200, -10, 10);
480  hResidualLocalXDT_MB[14] = fs->make<TH1F>("hResidualLocalXDT_MB1/3", "hResidualLocalXDT_MB1/3", 200, -10, 10);
481  hResidualLocalPhiDT_MB[14] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/3", "hResidualLocalPhiDT_MB1/3", 200, -1, 1);
483  fs->make<TH1F>("hResidualLocalThetaDT_MB1/3", "hResidualLocalThetaDT_MB1/3", 200, -1, 1);
484  hResidualLocalYDT_MB[14] = fs->make<TH1F>("hResidualLocalYDT_MB1/3", "hResidualLocalYDT_MB1/3", 200, -10, 10);
485  hResidualLocalXDT_MB[15] = fs->make<TH1F>("hResidualLocalXDT_MB1/4", "hResidualLocalXDT_MB1/4", 200, -10, 10);
486  hResidualLocalPhiDT_MB[15] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/4", "hResidualLocalPhiDT_MB1/4", 200, -1, 1);
488  fs->make<TH1F>("hResidualLocalThetaDT_MB1/4", "hResidualLocalThetaDT_MB1/4", 200, -1, 1);
489  hResidualLocalYDT_MB[15] = fs->make<TH1F>("hResidualLocalYDT_MB1/4", "hResidualLocalYDT_MB1/4", 200, -10, 10);
490  hResidualLocalXDT_MB[16] = fs->make<TH1F>("hResidualLocalXDT_MB2/1", "hResidualLocalXDT_MB2/1", 200, -10, 10);
491  hResidualLocalPhiDT_MB[16] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/1", "hResidualLocalPhiDT_MB2/1", 200, -1, 1);
493  fs->make<TH1F>("hResidualLocalThetaDT_MB2/1", "hResidualLocalThetaDT_MB2/1", 200, -1, 1);
494  hResidualLocalYDT_MB[16] = fs->make<TH1F>("hResidualLocalYDT_MB2/1", "hResidualLocalYDT_MB2/1", 200, -10, 10);
495  hResidualLocalXDT_MB[17] = fs->make<TH1F>("hResidualLocalXDT_MB2/2", "hResidualLocalXDT_MB2/2", 200, -10, 10);
496  hResidualLocalPhiDT_MB[17] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/2", "hResidualLocalPhiDT_MB2/2", 200, -1, 1);
498  fs->make<TH1F>("hResidualLocalThetaDT_MB2/2", "hResidualLocalThetaDT_MB2/2", 200, -1, 1);
499  hResidualLocalYDT_MB[17] = fs->make<TH1F>("hResidualLocalYDT_MB2/2", "hResidualLocalYDT_MB2/2", 200, -10, 10);
500  hResidualLocalXDT_MB[18] = fs->make<TH1F>("hResidualLocalXDT_MB2/3", "hResidualLocalXDT_MB2/3", 200, -10, 10);
501  hResidualLocalPhiDT_MB[18] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/3", "hResidualLocalPhiDT_MB2/3", 200, -1, 1);
503  fs->make<TH1F>("hResidualLocalThetaDT_MB2/3", "hResidualLocalThetaDT_MB2/3", 200, -1, 1);
504  hResidualLocalYDT_MB[18] = fs->make<TH1F>("hResidualLocalYDT_MB2/3", "hResidualLocalYDT_MB2/3", 200, -10, 10);
505  hResidualLocalXDT_MB[19] = fs->make<TH1F>("hResidualLocalXDT_MB2/4", "hResidualLocalXDT_MB2/4", 200, -10, 10);
506  hResidualLocalPhiDT_MB[19] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/4", "hResidualLocalPhiDT_MB2/4", 200, -1, 1);
508  fs->make<TH1F>("hResidualLocalThetaDT_MB2/4", "hResidualLocalThetaDT_MB2/4", 200, -1, 1);
509  hResidualLocalYDT_MB[19] = fs->make<TH1F>("hResidualLocalYDT_MB2/4", "hResidualLocalYDT_MB2/4", 200, -10, 10);
511  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/1", "hResidualGlobalRPhiDT_MB-2/1", 200, -10, 10);
513  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/1", "hResidualGlobalPhiDT_MB-2/1", 200, -1, 1);
515  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/1", "hResidualGlobalThetaDT_MB-2/1", 200, -1, 1);
516  hResidualGlobalZDT_MB[0] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/1", "hResidualGlobalZDT_MB-2/1", 200, -10, 10);
518  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/2", "hResidualGlobalRPhiDT_MB-2/2", 200, -10, 10);
520  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/2", "hResidualGlobalPhiDT_MB-2/2", 200, -1, 1);
522  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/2", "hResidualGlobalThetaDT_MB-2/2", 200, -1, 1);
523  hResidualGlobalZDT_MB[1] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/2", "hResidualGlobalZDT_MB-2/2", 200, -10, 10);
525  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/3", "hResidualGlobalRPhiDT_MB-2/3", 200, -10, 10);
527  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/3", "hResidualGlobalPhiDT_MB-2/3", 200, -1, 1);
529  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/3", "hResidualGlobalThetaDT_MB-2/3", 200, -1, 1);
530  hResidualGlobalZDT_MB[2] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/3", "hResidualGlobalZDT_MB-2/3", 200, -10, 10);
532  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/4", "hResidualGlobalRPhiDT_MB-2/4", 200, -10, 10);
534  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/4", "hResidualGlobalPhiDT_MB-2/4", 200, -1, 1);
536  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/4", "hResidualGlobalThetaDT_MB-2/4", 200, -1, 1);
537  hResidualGlobalZDT_MB[3] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/4", "hResidualGlobalZDT_MB-2/4", 200, -10, 10);
539  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/1", "hResidualGlobalRPhiDT_MB-1/1", 200, -10, 10);
541  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/1", "hResidualGlobalPhiDT_MB-1/1", 200, -1, 1);
543  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/1", "hResidualGlobalThetaDT_MB-1/1", 200, -1, 1);
544  hResidualGlobalZDT_MB[4] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/1", "hResidualGlobalZDT_MB-1/1", 200, -10, 10);
546  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/2", "hResidualGlobalRPhiDT_MB-1/2", 200, -10, 10);
548  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/2", "hResidualGlobalPhiDT_MB-1/2", 200, -1, 1);
550  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/2", "hResidualGlobalThetaDT_MB-1/2", 200, -1, 1);
551  hResidualGlobalZDT_MB[5] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/2", "hResidualGlobalZDT_MB-1/2", 200, -10, 10);
553  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/3", "hResidualGlobalRPhiDT_MB-1/3", 200, -10, 10);
555  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/3", "hResidualGlobalPhiDT_MB-1/3", 200, -1, 1);
557  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/3", "hResidualGlobalThetaDT_MB-1/3", 200, -1, 1);
558  hResidualGlobalZDT_MB[6] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/3", "hResidualGlobalZDT_MB-1/3", 200, -10, 10);
560  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/4", "hResidualGlobalRPhiDT_MB-1/4", 200, -10, 10);
562  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/4", "hResidualGlobalPhiDT_MB-1/4", 200, -1, 1);
564  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/4", "hResidualGlobalThetaDT_MB-1/4", 200, -1, 1);
565  hResidualGlobalZDT_MB[7] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/4", "hResidualGlobalZDT_MB-1/4", 200, -10, 10);
567  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/1", "hResidualGlobalRPhiDT_MB0/1", 200, -10, 10);
568  hResidualGlobalPhiDT_MB[8] = fs->make<TH1F>("hResidualGlobalPhiDT_MB0/1", "hResidualGlobalPhiDT_MB0/1", 200, -1, 1);
570  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/1", "hResidualGlobalThetaDT_MB0/1", 200, -1, 1);
571  hResidualGlobalZDT_MB[8] = fs->make<TH1F>("hResidualGlobalZDT_MB0/1", "hResidualGlobalZDT_MB0/1", 200, -10, 10);
573  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/2", "hResidualGlobalRPhiDT_MB0/2", 200, -10, 10);
574  hResidualGlobalPhiDT_MB[9] = fs->make<TH1F>("hResidualGlobalPhiDT_MB0/2", "hResidualGlobalPhiDT_MB0/2", 200, -1, 1);
576  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/2", "hResidualGlobalThetaDT_MB0/2", 200, -1, 1);
577  hResidualGlobalZDT_MB[9] = fs->make<TH1F>("hResidualGlobalZDT_MB0/2", "hResidualGlobalZDT_MB0/2", 200, -10, 10);
579  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/3", "hResidualGlobalRPhiDT_MB0/3", 200, -10, 10);
581  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/3", "hResidualGlobalThetaDT_MB0/3", 200, -1, 1);
583  fs->make<TH1F>("hResidualGlobalPhiDT_MB0/3", "hResidualGlobalPhiDT_MB0/3", 200, -1, 1);
584  hResidualGlobalZDT_MB[10] = fs->make<TH1F>("hResidualGlobalZDT_MB0/3", "hResidualGlobalZDT_MB0/3", 200, -10, 10);
586  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/4", "hResidualGlobalRPhiDT_MB0/4", 200, -10, 10);
588  fs->make<TH1F>("hResidualGlobalPhiDT_MB0/4", "hResidualGlobalPhiDT_MB0/4", 200, -1, 1);
590  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/4", "hResidualGlobalThetaDT_MB0/4", 200, -1, 1);
591  hResidualGlobalZDT_MB[11] = fs->make<TH1F>("hResidualGlobalZDT_MB0/4", "hResidualGlobalZDT_MB0/4", 200, -10, 10);
593  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/1", "hResidualGlobalRPhiDT_MB1/1", 200, -10, 10);
595  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/1", "hResidualGlobalPhiDT_MB1/1", 200, -1, 1);
597  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/1", "hResidualGlobalThetaDT_MB1/1", 200, -1, 1);
598  hResidualGlobalZDT_MB[12] = fs->make<TH1F>("hResidualGlobalZDT_MB1/1", "hResidualGlobalZDT_MB1/1", 200, -10, 10);
600  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/2", "hResidualGlobalRPhiDT_MB1/2", 200, -10, 10);
602  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/2", "hResidualGlobalPhiDT_MB1/2", 200, -1, 1);
604  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/2", "hResidualGlobalThetaDT_MB1/2", 200, -1, 1);
605  hResidualGlobalZDT_MB[13] = fs->make<TH1F>("hResidualGlobalZDT_MB1/2", "hResidualGlobalZDT_MB1/2", 200, -10, 10);
607  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/3", "hResidualGlobalRPhiDT_MB1/3", 200, -10, 10);
609  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/3", "hResidualGlobalPhiDT_MB1/3", 200, -1, 1);
611  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/3", "hResidualGlobalThetaDT_MB1/3", 200, -1, 1);
612  hResidualGlobalZDT_MB[14] = fs->make<TH1F>("hResidualGlobalZDT_MB1/3", "hResidualGlobalZDT_MB1/3", 200, -10, 10);
614  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/4", "hResidualGlobalRPhiDT_MB1/4", 200, -10, 10);
616  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/4", "hResidualGlobalPhiDT_MB1/4", 200, -1, 1);
618  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/4", "hResidualGlobalThetaDT_MB1/4", 200, -1, 1);
619  hResidualGlobalZDT_MB[15] = fs->make<TH1F>("hResidualGlobalZDT_MB1/4", "hResidualGlobalZDT_MB1/4", 200, -10, 10);
621  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/1", "hResidualGlobalRPhiDT_MB2/1", 200, -10, 10);
623  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/1", "hResidualGlobalPhiDT_MB2/1", 200, -1, 1);
625  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/1", "hResidualGlobalThetaDT_MB2/1", 200, -1, 1);
626  hResidualGlobalZDT_MB[16] = fs->make<TH1F>("hResidualGlobalZDT_MB2/1", "hResidualGlobalZDT_MB2/1", 200, -10, 10);
628  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/2", "hResidualGlobalRPhiDT_MB2/2", 200, -10, 10);
630  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/2", "hResidualGlobalPhiDT_MB2/2", 200, -1, 1);
632  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/2", "hResidualGlobalThetaDT_MB2/2", 200, -1, 1);
633  hResidualGlobalZDT_MB[17] = fs->make<TH1F>("hResidualGlobalZDT_MB2/2", "hResidualGlobalZDT_MB2/2", 200, -10, 10);
635  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/3", "hResidualGlobalRPhiDT_MB2/3", 200, -10, 10);
637  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/3", "hResidualGlobalPhiDT_MB2/3", 200, -1, 1);
639  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/3", "hResidualGlobalThetaDT_MB2/3", 200, -1, 1);
640  hResidualGlobalZDT_MB[18] = fs->make<TH1F>("hResidualGlobalZDT_MB2/3", "hResidualGlobalZDT_MB2/3", 200, -10, 10);
642  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/4", "hResidualGlobalRPhiDT_MB2/4", 200, -10, 10);
644  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/4", "hResidualGlobalPhiDT_MB2/4", 200, -1, 1);
646  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/4", "hResidualGlobalThetaDT_MB2/4", 200, -1, 1);
647  hResidualGlobalZDT_MB[19] = fs->make<TH1F>("hResidualGlobalZDT_MB2/4", "hResidualGlobalZDT_MB2/4", 200, -10, 10);
648 
649  // CSC Stations
650  hResidualLocalXCSC_ME[0] = fs->make<TH1F>("hResidualLocalXCSC_ME-4/1", "hResidualLocalXCSC_ME-4/1", 200, -10, 10);
652  fs->make<TH1F>("hResidualLocalPhiCSC_ME-4/1", "hResidualLocalPhiCSC_ME-4/1", 200, -1, 1);
654  fs->make<TH1F>("hResidualLocalThetaCSC_ME-4/1", "hResidualLocalThetaCSC_ME-4/1", 200, -1, 1);
655  hResidualLocalYCSC_ME[0] = fs->make<TH1F>("hResidualLocalYCSC_ME-4/1", "hResidualLocalYCSC_ME-4/1", 200, -10, 10);
656  hResidualLocalXCSC_ME[1] = fs->make<TH1F>("hResidualLocalXCSC_ME-4/2", "hResidualLocalXCSC_ME-4/2", 200, -10, 10);
658  fs->make<TH1F>("hResidualLocalPhiCSC_ME-4/2", "hResidualLocalPhiCSC_ME-4/2", 200, -1, 1);
660  fs->make<TH1F>("hResidualLocalThetaCSC_ME-4/2", "hResidualLocalThetaCSC_ME-4/2", 200, -1, 1);
661  hResidualLocalYCSC_ME[1] = fs->make<TH1F>("hResidualLocalYCSC_ME-4/2", "hResidualLocalYCSC_ME-4/2", 200, -10, 10);
662  hResidualLocalXCSC_ME[2] = fs->make<TH1F>("hResidualLocalXCSC_ME-3/1", "hResidualLocalXCSC_ME-3/1", 200, -10, 10);
664  fs->make<TH1F>("hResidualLocalPhiCSC_ME-3/1", "hResidualLocalPhiCSC_ME-3/1", 200, -1, 1);
666  fs->make<TH1F>("hResidualLocalThetaCSC_ME-3/1", "hResidualLocalThetaCSC_ME-3/1", 200, -1, 1);
667  hResidualLocalYCSC_ME[2] = fs->make<TH1F>("hResidualLocalYCSC_ME-3/1", "hResidualLocalYCSC_ME-3/1", 200, -10, 10);
668  hResidualLocalXCSC_ME[3] = fs->make<TH1F>("hResidualLocalXCSC_ME-3/2", "hResidualLocalXCSC_ME-3/2", 200, -10, 10);
670  fs->make<TH1F>("hResidualLocalPhiCSC_ME-3/2", "hResidualLocalPhiCSC_ME-3/2", 200, -1, 1);
672  fs->make<TH1F>("hResidualLocalThetaCSC_ME-3/2", "hResidualLocalThetaCSC_ME-3/2", 200, -1, 1);
673  hResidualLocalYCSC_ME[3] = fs->make<TH1F>("hResidualLocalYCSC_ME-3/2", "hResidualLocalYCSC_ME-3/2", 200, -10, 10);
674  hResidualLocalXCSC_ME[4] = fs->make<TH1F>("hResidualLocalXCSC_ME-2/1", "hResidualLocalXCSC_ME-2/1", 200, -10, 10);
676  fs->make<TH1F>("hResidualLocalPhiCSC_ME-2/1", "hResidualLocalPhiCSC_ME-2/1", 200, -1, 1);
678  fs->make<TH1F>("hResidualLocalThetaCSC_ME-2/1", "hResidualLocalThetaCSC_ME-2/1", 200, -1, 1);
679  hResidualLocalYCSC_ME[4] = fs->make<TH1F>("hResidualLocalYCSC_ME-2/1", "hResidualLocalYCSC_ME-2/1", 200, -10, 10);
680  hResidualLocalXCSC_ME[5] = fs->make<TH1F>("hResidualLocalXCSC_ME-2/2", "hResidualLocalXCSC_ME-2/2", 200, -10, 10);
682  fs->make<TH1F>("hResidualLocalPhiCSC_ME-2/2", "hResidualLocalPhiCSC_ME-2/2", 200, -1, 1);
684  fs->make<TH1F>("hResidualLocalThetaCSC_ME-2/2", "hResidualLocalThetaCSC_ME-2/2", 200, -1, 1);
685  hResidualLocalYCSC_ME[5] = fs->make<TH1F>("hResidualLocalYCSC_ME-2/2", "hResidualLocalYCSC_ME-2/2", 200, -10, 10);
686  hResidualLocalXCSC_ME[6] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/1", "hResidualLocalXCSC_ME-1/1", 200, -10, 10);
688  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/1", "hResidualLocalPhiCSC_ME-1/1", 200, -1, 1);
690  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/1", "hResidualLocalThetaCSC_ME-1/1", 200, -1, 1);
691  hResidualLocalYCSC_ME[6] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/1", "hResidualLocalYCSC_ME-1/1", 200, -10, 10);
692  hResidualLocalXCSC_ME[7] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/2", "hResidualLocalXCSC_ME-1/2", 200, -10, 10);
694  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/2", "hResidualLocalPhiCSC_ME-1/2", 200, -1, 1);
696  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/2", "hResidualLocalThetaCSC_ME-1/2", 200, -1, 1);
697  hResidualLocalYCSC_ME[7] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/2", "hResidualLocalYCSC_ME-1/2", 200, -10, 10);
698  hResidualLocalXCSC_ME[8] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/3", "hResidualLocalXCSC_ME-1/3", 200, -10, 10);
700  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/3", "hResidualLocalPhiCSC_ME-1/3", 200, -1, 1);
702  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/3", "hResidualLocalThetaCSC_ME-1/3", 200, -1, 1);
703  hResidualLocalYCSC_ME[8] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/3", "hResidualLocalYCSC_ME-1/3", 200, -10, 10);
704  hResidualLocalXCSC_ME[9] = fs->make<TH1F>("hResidualLocalXCSC_ME1/1", "hResidualLocalXCSC_ME1/1", 200, -10, 10);
705  hResidualLocalPhiCSC_ME[9] = fs->make<TH1F>("hResidualLocalPhiCSC_ME1/1", "hResidualLocalPhiCSC_ME1/1", 100, -1, 1);
707  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/1", "hResidualLocalThetaCSC_ME1/1", 200, -1, 1);
708  hResidualLocalYCSC_ME[9] = fs->make<TH1F>("hResidualLocalYCSC_ME1/1", "hResidualLocalYCSC_ME1/1", 200, -10, 10);
709  hResidualLocalXCSC_ME[10] = fs->make<TH1F>("hResidualLocalXCSC_ME1/2", "hResidualLocalXCSC_ME1/2", 200, -10, 10);
711  fs->make<TH1F>("hResidualLocalPhiCSC_ME1/2", "hResidualLocalPhiCSC_ME1/2", 200, -1, 1);
713  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/2", "hResidualLocalThetaCSC_ME1/2", 200, -1, 1);
714  hResidualLocalYCSC_ME[10] = fs->make<TH1F>("hResidualLocalYCSC_ME1/2", "hResidualLocalYCSC_ME1/2", 200, -10, 10);
715  hResidualLocalXCSC_ME[11] = fs->make<TH1F>("hResidualLocalXCSC_ME1/3", "hResidualLocalXCSC_ME1/3", 200, -10, 10);
717  fs->make<TH1F>("hResidualLocalPhiCSC_ME1/3", "hResidualLocalPhiCSC_ME1/3", 200, -1, 1);
719  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/3", "hResidualLocalThetaCSC_ME1/3", 200, -1, 1);
720  hResidualLocalYCSC_ME[11] = fs->make<TH1F>("hResidualLocalYCSC_ME1/3", "hResidualLocalYCSC_ME1/3", 200, -10, 10);
721  hResidualLocalXCSC_ME[12] = fs->make<TH1F>("hResidualLocalXCSC_ME2/1", "hResidualLocalXCSC_ME2/1", 200, -10, 10);
723  fs->make<TH1F>("hResidualLocalPhiCSC_ME2/1", "hResidualLocalPhiCSC_ME2/1", 200, -1, 1);
725  fs->make<TH1F>("hResidualLocalThetaCSC_ME2/1", "hResidualLocalThetaCSC_ME2/1", 200, -1, 1);
726  hResidualLocalYCSC_ME[12] = fs->make<TH1F>("hResidualLocalYCSC_ME2/1", "hResidualLocalYCSC_ME2/1", 200, -10, 10);
727  hResidualLocalXCSC_ME[13] = fs->make<TH1F>("hResidualLocalXCSC_ME2/2", "hResidualLocalXCSC_ME2/2", 200, -10, 10);
729  fs->make<TH1F>("hResidualLocalPhiCSC_ME2/2", "hResidualLocalPhiCSC_ME2/2", 200, -1, 1);
731  fs->make<TH1F>("hResidualLocalThetaCSC_ME2/2", "hResidualLocalThetaCSC_ME2/2", 200, -1, 1);
732  hResidualLocalYCSC_ME[13] = fs->make<TH1F>("hResidualLocalYCSC_ME2/2", "hResidualLocalYCSC_ME2/2", 200, -10, 10);
733  hResidualLocalXCSC_ME[14] = fs->make<TH1F>("hResidualLocalXCSC_ME3/1", "hResidualLocalXCSC_ME3/1", 200, -10, 10);
735  fs->make<TH1F>("hResidualLocalPhiCSC_ME3/1", "hResidualLocalPhiCSC_ME3/1", 200, -1, 1);
737  fs->make<TH1F>("hResidualLocalThetaCSC_ME3/1", "hResidualLocalThetaCSC_ME3/1", 200, -1, 1);
738  hResidualLocalYCSC_ME[14] = fs->make<TH1F>("hResidualLocalYCSC_ME3/1", "hResidualLocalYCSC_ME3/1", 200, -10, 10);
739  hResidualLocalXCSC_ME[15] = fs->make<TH1F>("hResidualLocalXCSC_ME3/2", "hResidualLocalXCSC_ME3/2", 200, -10, 10);
741  fs->make<TH1F>("hResidualLocalPhiCSC_ME3/2", "hResidualLocalPhiCSC_ME3/2", 200, -1, 1);
743  fs->make<TH1F>("hResidualLocalThetaCSC_ME3/2", "hResidualLocalThetaCSC_ME3/2", 200, -1, 1);
744  hResidualLocalYCSC_ME[15] = fs->make<TH1F>("hResidualLocalYCSC_ME3/2", "hResidualLocalYCSC_ME3/2", 200, -10, 10);
745  hResidualLocalXCSC_ME[16] = fs->make<TH1F>("hResidualLocalXCSC_ME4/1", "hResidualLocalXCSC_ME4/1", 200, -10, 10);
747  fs->make<TH1F>("hResidualLocalPhiCSC_ME4/1", "hResidualLocalPhiCSC_ME4/1", 200, -1, 1);
749  fs->make<TH1F>("hResidualLocalThetaCSC_ME4/1", "hResidualLocalThetaCSC_ME4/1", 200, -1, 1);
750  hResidualLocalYCSC_ME[16] = fs->make<TH1F>("hResidualLocalYCSC_ME4/1", "hResidualLocalYCSC_ME4/1", 200, -10, 10);
751  hResidualLocalXCSC_ME[17] = fs->make<TH1F>("hResidualLocalXCSC_ME4/2", "hResidualLocalXCSC_ME4/2", 200, -10, 10);
753  fs->make<TH1F>("hResidualLocalPhiCSC_ME4/2", "hResidualLocalPhiCSC_ME4/2", 200, -1, 1);
755  fs->make<TH1F>("hResidualLocalThetaCSC_ME4/2", "hResidualLocalThetaCSC_ME4/2", 200, -1, 1);
756  hResidualLocalYCSC_ME[17] = fs->make<TH1F>("hResidualLocalYCSC_ME4/2", "hResidualLocalYCSC_ME4/2", 200, -10, 10);
758  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-4/1", "hResidualGlobalRPhiCSC_ME-4/1", 200, -10, 10);
760  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-4/1", "hResidualGlobalPhiCSC_ME-4/1", 200, -1, 1);
762  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-4/1", "hResidualGlobalThetaCSC_ME-4/1", 200, -1, 1);
764  fs->make<TH1F>("hResidualGlobalRCSC_ME-4/1", "hResidualGlobalRCSC_ME-4/1", 200, -10, 10);
766  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-4/2", "hResidualGlobalRPhiCSC_ME-4/2", 200, -10, 10);
768  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-4/2", "hResidualGlobalPhiCSC_ME-4/2", 200, -1, 1);
770  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-4/2", "hResidualGlobalThetaCSC_ME-4/2", 200, -1, 1);
772  fs->make<TH1F>("hResidualGlobalRCSC_ME-4/2", "hResidualGlobalRCSC_ME-4/2", 200, -10, 10);
774  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-3/1", "hResidualGlobalRPhiCSC_ME-3/1", 200, -10, 10);
776  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-3/1", "hResidualGlobalPhiCSC_ME-3/1", 200, -1, 1);
778  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-3/1", "hResidualGlobalThetaCSC_ME-3/1", 200, -1, 1);
780  fs->make<TH1F>("hResidualGlobalRCSC_ME-3/1", "hResidualGlobalRCSC_ME-3/1", 200, -10, 10);
782  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-3/2", "hResidualGlobalRPhiCSC_ME-3/2", 200, -10, 10);
784  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-3/2", "hResidualGlobalPhiCSC_ME-3/2", 200, -1, 1);
786  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-3/2", "hResidualGlobalThetaCSC_ME-3/2", 200, -1, 1);
788  fs->make<TH1F>("hResidualGlobalRCSC_ME-3/2", "hResidualGlobalRCSC_ME-3/2", 200, -10, 10);
790  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-2/1", "hResidualGlobalRPhiCSC_ME-2/1", 200, -10, 10);
792  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-2/1", "hResidualGlobalPhiCSC_ME-2/1", 200, -1, 1);
794  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-2/1", "hResidualGlobalThetaCSC_ME-2/1", 200, -1, 1);
796  fs->make<TH1F>("hResidualGlobalRCSC_ME-2/1", "hResidualGlobalRCSC_ME-2/1", 200, -10, 10);
798  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-2/2", "hResidualGlobalRPhiCSC_ME-2/2", 200, -10, 10);
800  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-2/2", "hResidualGlobalPhiCSC_ME-2/2", 200, -1, 1);
802  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-2/2", "hResidualGlobalThetaCSC_ME-2/2", 200, -1, 1);
804  fs->make<TH1F>("hResidualGlobalRCSC_ME-2/2", "hResidualGlobalRCSC_ME-2/2", 200, -10, 10);
806  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/1", "hResidualGlobalRPhiCSC_ME-1/1", 200, -10, 10);
808  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/1", "hResidualGlobalPhiCSC_ME-1/1", 200, -1, 1);
810  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/1", "hResidualGlobalThetaCSC_ME-1/1", 200, -1, 1);
812  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/1", "hResidualGlobalRCSC_ME-1/1", 200, -10, 10);
814  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/2", "hResidualGlobalRPhiCSC_ME-1/2", 200, -10, 10);
816  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/2", "hResidualGlobalPhiCSC_ME-1/2", 200, -1, 1);
818  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/2", "hResidualGlobalThetaCSC_ME-1/2", 200, -1, 1);
820  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/2", "hResidualGlobalRCSC_ME-1/2", 200, -10, 10);
822  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/3", "hResidualGlobalRPhiCSC_ME-1/3", 200, -10, 10);
824  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/3", "hResidualGlobalPhiCSC_ME-1/3", 200, -1, 1);
826  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/3", "hResidualGlobalThetaCSC_ME-1/3", 200, -1, 1);
828  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/3", "hResidualGlobalRCSC_ME-1/3", 200, -10, 10);
830  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/1", "hResidualGlobalRPhiCSC_ME1/1", 200, -10, 10);
832  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/1", "hResidualGlobalPhiCSC_ME1/1", 100, -1, 1);
834  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/1", "hResidualGlobalThetaCSC_ME1/1", 200, -1, 1);
835  hResidualGlobalRCSC_ME[9] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/1", "hResidualGlobalRCSC_ME1/1", 200, -10, 10);
837  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/2", "hResidualGlobalRPhiCSC_ME1/2", 200, -10, 10);
839  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/2", "hResidualGlobalPhiCSC_ME1/2", 200, -1, 1);
841  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/2", "hResidualGlobalThetaCSC_ME1/2", 200, -1, 1);
842  hResidualGlobalRCSC_ME[10] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/2", "hResidualGlobalRCSC_ME1/2", 200, -10, 10);
844  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/3", "hResidualGlobalRPhiCSC_ME1/3", 200, -10, 10);
846  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/3", "hResidualGlobalPhiCSC_ME1/3", 200, -1, 1);
848  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/3", "hResidualGlobalThetaCSC_ME1/3", 200, -1, 1);
849  hResidualGlobalRCSC_ME[11] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/3", "hResidualGlobalRCSC_ME1/3", 200, -10, 10);
851  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME2/1", "hResidualGlobalRPhiCSC_ME2/1", 200, -10, 10);
853  fs->make<TH1F>("hResidualGlobalPhiCSC_ME2/1", "hResidualGlobalPhiCSC_ME2/1", 200, -1, 1);
855  fs->make<TH1F>("hResidualGlobalThetaCSC_ME2/1", "hResidualGlobalThetaCSC_ME2/1", 200, -1, 1);
856  hResidualGlobalRCSC_ME[12] = fs->make<TH1F>("hResidualGlobalRCSC_ME2/1", "hResidualGlobalRCSC_ME2/1", 200, -10, 10);
858  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME2/2", "hResidualGlobalRPhiCSC_ME2/2", 200, -10, 10);
860  fs->make<TH1F>("hResidualGlobalPhiCSC_ME2/2", "hResidualGlobalPhiCSC_ME2/2", 200, -1, 1);
862  fs->make<TH1F>("hResidualGlobalThetaCSC_ME2/2", "hResidualGlobalThetaCSC_ME2/2", 200, -1, 1);
863  hResidualGlobalRCSC_ME[13] = fs->make<TH1F>("hResidualGlobalRCSC_ME2/2", "hResidualGlobalRCSC_ME2/2", 200, -10, 10);
865  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME3/1", "hResidualGlobalRPhiCSC_ME3/1", 200, -10, 10);
867  fs->make<TH1F>("hResidualGlobalPhiCSC_ME3/1", "hResidualGlobalPhiCSC_ME3/1", 200, -1, 1);
869  fs->make<TH1F>("hResidualGlobalThetaCSC_ME3/1", "hResidualGlobalThetaCSC_ME3/1", 200, -1, 1);
870  hResidualGlobalRCSC_ME[14] = fs->make<TH1F>("hResidualGlobalRCSC_ME3/1", "hResidualGlobalRCSC_ME3/1", 200, -10, 10);
872  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME3/2", "hResidualGlobalRPhiCSC_ME3/2", 200, -10, 10);
874  fs->make<TH1F>("hResidualGlobalPhiCSC_ME3/2", "hResidualGlobalPhiCSC_ME3/2", 200, -1, 1);
876  fs->make<TH1F>("hResidualGlobalThetaCSC_ME3/2", "hResidualGlobalThetaCSC_ME3/2", 200, -1, 1);
877  hResidualGlobalRCSC_ME[15] = fs->make<TH1F>("hResidualGlobalRCSC_ME3/2", "hResidualGlobalRCSC_ME3/2", 200, -10, 10);
879  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME4/1", "hResidualGlobalRPhiCSC_ME4/1", 200, -10, 10);
881  fs->make<TH1F>("hResidualGlobalPhiCSC_ME4/1", "hResidualGlobalPhiCSC_ME4/1", 200, -1, 1);
883  fs->make<TH1F>("hResidualGlobalThetaCSC_ME4/1", "hResidualGlobalThetaCSC_ME4/1", 200, -1, 1);
884  hResidualGlobalRCSC_ME[16] = fs->make<TH1F>("hResidualGlobalRCSC_ME4/1", "hResidualGlobalRCSC_ME4/1", 200, -10, 10);
886  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME4/2", "hResidualGlobalRPhiCSC_ME4/2", 200, -10, 10);
888  fs->make<TH1F>("hResidualGlobalPhiCSC_ME4/2", "hResidualGlobalPhiCSC_ME4/2", 200, -1, 1);
890  fs->make<TH1F>("hResidualGlobalThetaCSC_ME4/2", "hResidualGlobalThetaCSC_ME4/2", 200, -1, 1);
891  hResidualGlobalRCSC_ME[17] = fs->make<TH1F>("hResidualGlobalRCSC_ME4/2", "hResidualGlobalRCSC_ME4/2", 200, -10, 10);
892 
893  //DQM plots: mean residual with RMS as error
894  hprofLocalXDT = fs->make<TH1F>("hprofLocalXDT", "Local X DT;;X (cm)", 280, 0, 280);
895  hprofLocalPhiDT = fs->make<TH1F>("hprofLocalPhiDT", "Local Phi DT;;Phi (rad)", 280, 0, 280);
896  hprofLocalThetaDT = fs->make<TH1F>("hprofLocalThetaDT", "Local Theta DT;;Theta (rad)", 280, 0, 280);
897  hprofLocalYDT = fs->make<TH1F>("hprofLocalYDT", "Local Y DT;;Y (cm)", 280, 0, 280);
898  hprofLocalXCSC = fs->make<TH1F>("hprofLocalXCSC", "Local X CSC;;X (cm)", 540, 0, 540);
899  hprofLocalPhiCSC = fs->make<TH1F>("hprofLocalPhiCSC", "Local Phi CSC;;Phi (rad)", 540, 0, 540);
900  hprofLocalThetaCSC = fs->make<TH1F>("hprofLocalThetaCSC", "Local Theta CSC;;Theta (rad)", 540, 0, 540);
901  hprofLocalYCSC = fs->make<TH1F>("hprofLocalYCSC", "Local Y CSC;;Y (cm)", 540, 0, 540);
902  hprofGlobalRPhiDT = fs->make<TH1F>("hprofGlobalRPhiDT", "Global RPhi DT;;RPhi (cm)", 280, 0, 280);
903  hprofGlobalPhiDT = fs->make<TH1F>("hprofGlobalPhiDT", "Global Phi DT;;Phi (rad)", 280, 0, 280);
904  hprofGlobalThetaDT = fs->make<TH1F>("hprofGlobalThetaDT", "Global Theta DT;;Theta (rad)", 280, 0, 280);
905  hprofGlobalZDT = fs->make<TH1F>("hprofGlobalZDT", "Global Z DT;;Z (cm)", 280, 0, 280);
906  hprofGlobalRPhiCSC = fs->make<TH1F>("hprofGlobalRPhiCSC", "Global RPhi CSC;;RPhi (cm)", 540, 0, 540);
907  hprofGlobalPhiCSC = fs->make<TH1F>("hprofGlobalPhiCSC", "Global Phi CSC;;Phi (cm)", 540, 0, 540);
908  hprofGlobalThetaCSC = fs->make<TH1F>("hprofGlobalThetaCSC", "Global Theta CSC;;Theta (rad)", 540, 0, 540);
909  hprofGlobalRCSC = fs->make<TH1F>("hprofGlobalRCSC", "Global R CSC;;R (cm)", 540, 0, 540);
910 
911  // TH1F options
912  hprofLocalXDT->GetXaxis()->SetLabelSize(0.025);
913  hprofLocalPhiDT->GetXaxis()->SetLabelSize(0.025);
914  hprofLocalThetaDT->GetXaxis()->SetLabelSize(0.025);
915  hprofLocalYDT->GetXaxis()->SetLabelSize(0.025);
916  hprofLocalXCSC->GetXaxis()->SetLabelSize(0.025);
917  hprofLocalPhiCSC->GetXaxis()->SetLabelSize(0.025);
918  hprofLocalThetaCSC->GetXaxis()->SetLabelSize(0.025);
919  hprofLocalYCSC->GetXaxis()->SetLabelSize(0.025);
920  hprofGlobalRPhiDT->GetXaxis()->SetLabelSize(0.025);
921  hprofGlobalPhiDT->GetXaxis()->SetLabelSize(0.025);
922  hprofGlobalThetaDT->GetXaxis()->SetLabelSize(0.025);
923  hprofGlobalZDT->GetXaxis()->SetLabelSize(0.025);
924  hprofGlobalRPhiCSC->GetXaxis()->SetLabelSize(0.025);
925  hprofGlobalPhiCSC->GetXaxis()->SetLabelSize(0.025);
926  hprofGlobalThetaCSC->GetXaxis()->SetLabelSize(0.025);
927  hprofGlobalRCSC->GetXaxis()->SetLabelSize(0.025);
928 
929  // TH2F histos definition
930  hprofGlobalPositionDT = fs->make<TH2F>(
931  "hprofGlobalPositionDT", "Global DT position (cm) absolute MEAN residuals;Sector;;cm", 14, 0, 14, 40, 0, 40);
932  hprofGlobalAngleDT = fs->make<TH2F>(
933  "hprofGlobalAngleDT", "Global DT angle (rad) absolute MEAN residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
935  "hprofGlobalPositionRmsDT", "Global DT position (cm) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
936  hprofGlobalAngleRmsDT = fs->make<TH2F>(
937  "hprofGlobalAngleRmsDT", "Global DT angle (rad) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
938  hprofLocalPositionDT = fs->make<TH2F>(
939  "hprofLocalPositionDT", "Local DT position (cm) absolute MEAN residuals;Sector;;cm", 14, 0, 14, 40, 0, 40);
940  hprofLocalAngleDT = fs->make<TH2F>(
941  "hprofLocalAngleDT", "Local DT angle (rad) absolute MEAN residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
943  "hprofLocalPositionRmsDT", "Local DT position (cm) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
945  fs->make<TH2F>("hprofLocalAngleRmsDT", "Local DT angle (rad) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
946 
947  hprofGlobalPositionCSC = fs->make<TH2F>(
948  "hprofGlobalPositionCSC", "Global CSC position (cm) absolute MEAN residuals;Sector;;cm", 36, 0, 36, 36, 0, 36);
949  hprofGlobalAngleCSC = fs->make<TH2F>(
950  "hprofGlobalAngleCSC", "Global CSC angle (rad) absolute MEAN residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
952  "hprofGlobalPositionRmsCSC", "Global CSC position (cm) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
953  hprofGlobalAngleRmsCSC = fs->make<TH2F>(
954  "hprofGlobalAngleRmsCSC", "Global CSC angle (rad) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
955  hprofLocalPositionCSC = fs->make<TH2F>(
956  "hprofLocalPositionCSC", "Local CSC position (cm) absolute MEAN residuals;Sector;;cm", 36, 0, 36, 36, 0, 36);
957  hprofLocalAngleCSC = fs->make<TH2F>(
958  "hprofLocalAngleCSC", "Local CSC angle (rad) absolute MEAN residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
960  "hprofLocalPositionRmsCSC", "Local CSC position (cm) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
961  hprofLocalAngleRmsCSC = fs->make<TH2F>(
962  "hprofLocalAngleRmsCSC", "Local CSC angle (rad) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
963 
964  // histos options
965  Float_t labelSize = 0.025;
966  hprofGlobalPositionDT->GetYaxis()->SetLabelSize(labelSize);
967  hprofGlobalAngleDT->GetYaxis()->SetLabelSize(labelSize);
968  hprofGlobalPositionRmsDT->GetYaxis()->SetLabelSize(labelSize);
969  hprofGlobalAngleRmsDT->GetYaxis()->SetLabelSize(labelSize);
970  hprofLocalPositionDT->GetYaxis()->SetLabelSize(labelSize);
971  hprofLocalAngleDT->GetYaxis()->SetLabelSize(labelSize);
972  hprofLocalPositionRmsDT->GetYaxis()->SetLabelSize(labelSize);
973  hprofLocalAngleRmsDT->GetYaxis()->SetLabelSize(labelSize);
974 
975  hprofGlobalPositionCSC->GetYaxis()->SetLabelSize(labelSize);
976  hprofGlobalAngleCSC->GetYaxis()->SetLabelSize(labelSize);
977  hprofGlobalPositionRmsCSC->GetYaxis()->SetLabelSize(labelSize);
978  hprofGlobalAngleRmsCSC->GetYaxis()->SetLabelSize(labelSize);
979  hprofLocalPositionCSC->GetYaxis()->SetLabelSize(labelSize);
980  hprofLocalAngleCSC->GetYaxis()->SetLabelSize(labelSize);
981  hprofLocalPositionRmsCSC->GetYaxis()->SetLabelSize(labelSize);
982  hprofLocalAngleRmsCSC->GetYaxis()->SetLabelSize(labelSize);
983 
984  char binLabel[32];
985  for (int i = 1; i < 15; i++) {
986  snprintf(binLabel, sizeof(binLabel), "Sec-%d", i);
987  hprofGlobalPositionDT->GetXaxis()->SetBinLabel(i, binLabel);
988  hprofGlobalAngleDT->GetXaxis()->SetBinLabel(i, binLabel);
989  hprofGlobalPositionRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
990  hprofGlobalAngleRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
991  hprofLocalPositionDT->GetXaxis()->SetBinLabel(i, binLabel);
992  hprofLocalAngleDT->GetXaxis()->SetBinLabel(i, binLabel);
993  hprofLocalPositionRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
994  hprofLocalAngleRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
995  }
996 
997  for (int i = 1; i < 37; i++) {
998  snprintf(binLabel, sizeof(binLabel), "Ch-%d", i);
999  hprofGlobalPositionCSC->GetXaxis()->SetBinLabel(i, binLabel);
1000  hprofGlobalAngleCSC->GetXaxis()->SetBinLabel(i, binLabel);
1001  hprofGlobalPositionRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1002  hprofGlobalAngleRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1003  hprofLocalPositionCSC->GetXaxis()->SetBinLabel(i, binLabel);
1004  hprofLocalAngleCSC->GetXaxis()->SetBinLabel(i, binLabel);
1005  hprofLocalPositionRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1006  hprofLocalAngleRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1007  }
1008  }
1009 }

References doGBplots, doResplots, doSAplots, fs, hGBChi2, hGBChi2_Barrel, hGBChi2_Endcap, hGBInvM, hGBInvM_Barrel, hGBInvM_Endcap, hGBInvM_Overlap, hGBinvPTres, hGBinvPTvsEta, hGBinvPTvsNhits, hGBinvPTvsPhi, hGBNhits, hGBNhits_Barrel, hGBNhits_Endcap, hGBNmuons, hGBNmuons_Barrel, hGBNmuons_Endcap, hGBPhivsEta, hGBPTDiff, hGBPTDiffvsEta, hGBPTDiffvsPhi, hGBPTRec, hGBPTRec_Barrel, hGBPTRec_Endcap, hGBPTres, hGBPTres_Barrel, hGBPTres_Endcap, hGBPTvsEta, hGBPTvsPhi, hprofGlobalAngleCSC, hprofGlobalAngleDT, hprofGlobalAngleRmsCSC, hprofGlobalAngleRmsDT, hprofGlobalPhiCSC, hprofGlobalPhiDT, hprofGlobalPositionCSC, hprofGlobalPositionDT, hprofGlobalPositionRmsCSC, hprofGlobalPositionRmsDT, hprofGlobalRCSC, hprofGlobalRPhiCSC, hprofGlobalRPhiDT, hprofGlobalThetaCSC, hprofGlobalThetaDT, hprofGlobalZDT, hprofLocalAngleCSC, hprofLocalAngleDT, hprofLocalAngleRmsCSC, hprofLocalAngleRmsDT, hprofLocalPhiCSC, hprofLocalPhiDT, hprofLocalPositionCSC, hprofLocalPositionDT, hprofLocalPositionRmsCSC, hprofLocalPositionRmsDT, hprofLocalThetaCSC, hprofLocalThetaDT, hprofLocalXCSC, hprofLocalXDT, hprofLocalYCSC, hprofLocalYDT, hResidualGlobalPhiCSC, hResidualGlobalPhiCSC_ME, hResidualGlobalPhiDT, hResidualGlobalPhiDT_MB, hResidualGlobalPhiDT_W, hResidualGlobalRCSC, hResidualGlobalRCSC_ME, hResidualGlobalRPhiCSC, hResidualGlobalRPhiCSC_ME, hResidualGlobalRPhiDT, hResidualGlobalRPhiDT_MB, hResidualGlobalRPhiDT_W, hResidualGlobalThetaCSC, hResidualGlobalThetaCSC_ME, hResidualGlobalThetaDT, hResidualGlobalThetaDT_MB, hResidualGlobalThetaDT_W, hResidualGlobalZDT, hResidualGlobalZDT_MB, hResidualGlobalZDT_W, hResidualLocalPhiCSC, hResidualLocalPhiCSC_ME, hResidualLocalPhiDT, hResidualLocalPhiDT_MB, hResidualLocalPhiDT_W, hResidualLocalThetaCSC, hResidualLocalThetaCSC_ME, hResidualLocalThetaDT, hResidualLocalThetaDT_MB, hResidualLocalThetaDT_W, hResidualLocalXCSC, hResidualLocalXCSC_ME, hResidualLocalXDT, hResidualLocalXDT_MB, hResidualLocalXDT_W, hResidualLocalYCSC, hResidualLocalYCSC_ME, hResidualLocalYDT, hResidualLocalYDT_MB, hResidualLocalYDT_W, hSAChi2, hSAChi2_Barrel, hSAChi2_Endcap, hSAInvM, hSAInvM_Barrel, hSAInvM_Endcap, hSAInvM_Overlap, hSAinvPTres, hSAinvPTvsEta, hSAinvPTvsNhits, hSAinvPTvsPhi, hSANhits, hSANhits_Barrel, hSANhits_Endcap, hSANmuons, hSANmuons_Barrel, hSANmuons_Endcap, hSAPhivsEta, hSAPTDiff, hSAPTDiffvsEta, hSAPTDiffvsPhi, hSAPTRec, hSAPTRec_Barrel, hSAPTRec_Endcap, hSAPTres, hSAPTres_Barrel, hSAPTres_Endcap, hSAPTvsEta, hSAPTvsPhi, hSimInvM, hSimInvM_Barrel, hSimInvM_Endcap, hSimInvM_Overlap, hSimNmuons, hSimNmuons_Barrel, hSimNmuons_Endcap, hSimPhivsEta, hSimPT, hSimPT_Barrel, hSimPT_Endcap, hSimPTvsEta, hSimPTvsPhi, mps_fire::i, createfilelist::int, invMassRangeMax, invMassRangeMin, TFileService::make(), ptRangeMax, ptRangeMin, and theDataType.

◆ doMatching()

RecHitVector MuonAlignmentAnalyzer::doMatching ( const reco::Track staTrack,
edm::Handle< DTRecSegment4DCollection > &  all4DSegmentsDT,
edm::Handle< CSCSegmentCollection > &  all4DSegmentsCSC,
intDVector indexCollectionDT,
intDVector indexCollectionCSC,
edm::ESHandle< GlobalTrackingGeometry > &  theTrackingGeometry 
)
private

Definition at line 2470 of file MuonAlignmentAnalyzer.cc.

2475  {
2478 
2479  std::vector<int> positionDT;
2480  std::vector<int> positionCSC;
2481  RecHitVector my4DTrack;
2482 
2483  //Loop over the hits of the track
2484  for (int counter = 0; counter != staTrack.numberOfValidHits() - 1; counter++) {
2485  TrackingRecHitRef myRef = staTrack.recHit(counter);
2486  const TrackingRecHit *rechit = myRef.get();
2487  const GeomDet *geomDet = theTrackingGeometry->idToDet(rechit->geographicalId());
2488 
2489  //It's a DT Hit
2490  if (geomDet->subDetector() == GeomDetEnumerators::DT) {
2491  //Take the layer associated to this hit
2492  DTLayerId myLayer(rechit->geographicalId().rawId());
2493 
2494  int NumberOfDTSegment = 0;
2495  //Loop over segments
2496  for (segmentDT = all4DSegmentsDT->begin(); segmentDT != all4DSegmentsDT->end(); ++segmentDT) {
2497  //By default the chamber associated to this Segment is new
2498  bool isNewChamber = true;
2499 
2500  //Loop over segments already included in the vector of segments in the actual track
2501  for (std::vector<int>::iterator positionIt = positionDT.begin(); positionIt != positionDT.end(); positionIt++) {
2502  //If this segment has been used before isNewChamber = false
2503  if (NumberOfDTSegment == *positionIt)
2504  isNewChamber = false;
2505  }
2506 
2507  //Loop over vectors of segments associated to previous tracks
2508  for (std::vector<std::vector<int> >::iterator collect = indexCollectionDT->begin();
2509  collect != indexCollectionDT->end();
2510  ++collect) {
2511  //Loop over segments associated to a track
2512  for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
2513  positionIt++) {
2514  //If this segment was used in a previos track then isNewChamber = false
2515  if (NumberOfDTSegment == *positionIt)
2516  isNewChamber = false;
2517  }
2518  }
2519 
2520  //If the chamber is new
2521  if (isNewChamber) {
2522  DTChamberId myChamber((*segmentDT).geographicalId().rawId());
2523  //If the layer of the hit belongs to the chamber of the 4D Segment
2524  if (myLayer.wheel() == myChamber.wheel() && myLayer.station() == myChamber.station() &&
2525  myLayer.sector() == myChamber.sector()) {
2526  //push position of the segment and tracking rechit
2527  positionDT.push_back(NumberOfDTSegment);
2528  my4DTrack.push_back((TrackingRecHit *)&(*segmentDT));
2529  }
2530  }
2531  NumberOfDTSegment++;
2532  }
2533  //In case is a CSC
2534  } else if (geomDet->subDetector() == GeomDetEnumerators::CSC) {
2535  //Take the layer associated to this hit
2536  CSCDetId myLayer(rechit->geographicalId().rawId());
2537 
2538  int NumberOfCSCSegment = 0;
2539  //Loop over 4Dsegments
2540  for (segmentCSC = all4DSegmentsCSC->begin(); segmentCSC != all4DSegmentsCSC->end(); segmentCSC++) {
2541  //By default the chamber associated to the segment is new
2542  bool isNewChamber = true;
2543 
2544  //Loop over segments in the current track
2545  for (std::vector<int>::iterator positionIt = positionCSC.begin(); positionIt != positionCSC.end();
2546  positionIt++) {
2547  //If this segment has been used then newchamber = false
2548  if (NumberOfCSCSegment == *positionIt)
2549  isNewChamber = false;
2550  }
2551  //Loop over vectors of segments in previous tracks
2552  for (std::vector<std::vector<int> >::iterator collect = indexCollectionCSC->begin();
2553  collect != indexCollectionCSC->end();
2554  ++collect) {
2555  //Loop over segments in a track
2556  for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
2557  positionIt++) {
2558  //If the segment was used in a previous track isNewChamber = false
2559  if (NumberOfCSCSegment == *positionIt)
2560  isNewChamber = false;
2561  }
2562  }
2563  //If the chamber is new
2564  if (isNewChamber) {
2565  CSCDetId myChamber((*segmentCSC).geographicalId().rawId());
2566  //If the chambers are the same
2567  if (myLayer.chamberId() == myChamber.chamberId()) {
2568  //push
2569  positionCSC.push_back(NumberOfCSCSegment);
2570  my4DTrack.push_back((TrackingRecHit *)&(*segmentCSC));
2571  }
2572  }
2573  NumberOfCSCSegment++;
2574  }
2575  }
2576  }
2577 
2578  indexCollectionDT->push_back(positionDT);
2579  indexCollectionCSC->push_back(positionCSC);
2580 
2581  return my4DTrack;
2582 }

References GeomDetEnumerators::CSC, GeomDetEnumerators::DT, TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::get(), GlobalTrackingGeometry::idToDet(), reco::TrackBase::numberOfValidHits(), DetId::rawId(), reco::Track::recHit(), and GeomDet::subDetector().

Referenced by analyze().

◆ endJob()

void MuonAlignmentAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 1011 of file MuonAlignmentAnalyzer.cc.

1011  {
1012  edm::LogInfo("MuonAlignmentAnalyzer") << "----------------- " << std::endl << std::endl;
1013 
1014  if (theDataType == "SimData")
1015  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of Sim tracks: " << numberOfSimTracks << std::endl << std::endl;
1016 
1017  if (doSAplots)
1018  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of SA Reco tracks: " << numberOfSARecTracks << std::endl
1019  << std::endl;
1020 
1021  if (doGBplots)
1022  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of GB Reco tracks: " << numberOfGBRecTracks << std::endl
1023  << std::endl;
1024 
1025  if (doResplots) {
1026  // delete thePropagator;
1027 
1028  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of Hits considered for residuals: " << numberOfHits << std::endl
1029  << std::endl;
1030 
1031  char binLabel[40];
1032 
1033  for (unsigned int i = 0; i < unitsLocalX.size(); i++) {
1034  TString nameHistoLocalX = unitsLocalX[i]->GetName();
1035 
1036  TString nameHistoLocalPhi = unitsLocalPhi[i]->GetName();
1037 
1038  TString nameHistoLocalTheta = unitsLocalTheta[i]->GetName();
1039 
1040  TString nameHistoLocalY = unitsLocalY[i]->GetName();
1041 
1042  TString nameHistoGlobalRPhi = unitsGlobalRPhi[i]->GetName();
1043 
1044  TString nameHistoGlobalPhi = unitsGlobalPhi[i]->GetName();
1045 
1046  TString nameHistoGlobalTheta = unitsGlobalTheta[i]->GetName();
1047 
1048  TString nameHistoGlobalRZ = unitsGlobalRZ[i]->GetName();
1049 
1050  if (nameHistoLocalX.Contains("MB")) // HistoLocalX DT
1051  {
1052  int wheel, station, sector;
1053 
1054  sscanf(nameHistoLocalX, "ResidualLocalX_W%dMB%1dS%d", &wheel, &station, &sector);
1055 
1056  Int_t nstation = station - 1;
1057  Int_t nwheel = wheel + 2;
1058 
1059  Double_t MeanRPhi = unitsLocalX[i]->GetMean();
1060  Double_t ErrorRPhi = unitsLocalX[i]->GetMeanError();
1061 
1062  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1063 
1064  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1065 
1066  hprofLocalXDT->SetMarkerStyle(21);
1067  hprofLocalXDT->SetMarkerColor(kRed);
1068  hprofLocalXDT->SetBinContent(xbin, MeanRPhi);
1069  hprofLocalXDT->SetBinError(xbin, ErrorRPhi);
1070  hprofLocalXDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1071 
1072  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1073  hprofLocalPositionDT->SetBinContent(sector, ybin, fabs(MeanRPhi));
1074  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalX", wheel, station);
1075  hprofLocalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1076  hprofLocalPositionRmsDT->SetBinContent(sector, ybin, ErrorRPhi);
1077  hprofLocalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1078  }
1079 
1080  if (nameHistoLocalX.Contains("ME")) // HistoLocalX CSC
1081  {
1082  int station, ring, chamber;
1083 
1084  sscanf(nameHistoLocalX, "ResidualLocalX_ME%dR%1dC%d", &station, &ring, &chamber);
1085 
1086  Double_t MeanRPhi = unitsLocalX[i]->GetMean();
1087  Double_t ErrorRPhi = unitsLocalX[i]->GetMeanError();
1088 
1089  Int_t xbin = abs(station) * 2 + ring;
1090  if (abs(station) == 1)
1091  xbin = ring;
1092  if (station > 0)
1093  xbin = xbin + 9;
1094  else
1095  xbin = 10 - xbin;
1096 
1097  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1098  if (xbin < 5)
1099  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1100  else if (xbin < 6)
1101  xbin = 108 + chamber;
1102  else if (xbin < 14)
1103  xbin = 126 + (xbin - 6) * 36 + chamber;
1104  else if (xbin < 18)
1105  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1106  else
1107  xbin = 522 + chamber;
1108 
1109  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1110 
1111  hprofLocalXCSC->SetMarkerStyle(21);
1112  hprofLocalXCSC->SetMarkerColor(kRed);
1113  hprofLocalXCSC->SetBinContent(xbin, MeanRPhi);
1114  hprofLocalXCSC->SetBinError(xbin, ErrorRPhi);
1115  hprofLocalXCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1116 
1117  Int_t ybin = abs(station) * 2 + ring;
1118  if (abs(station) == 1)
1119  ybin = ring;
1120  if (station > 0)
1121  ybin = ybin + 9;
1122  else
1123  ybin = 10 - ybin;
1124  ybin = 2 * ybin - 1;
1125  hprofLocalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanRPhi));
1126  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalX", station, ring);
1127  hprofLocalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1128  hprofLocalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorRPhi);
1129  hprofLocalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1130  }
1131 
1132  if (nameHistoLocalTheta.Contains("MB")) // HistoLocalTheta DT
1133  {
1134  int wheel, station, sector;
1135 
1136  sscanf(nameHistoLocalTheta, "ResidualLocalTheta_W%dMB%1dS%d", &wheel, &station, &sector);
1137 
1138  if (station != 4) {
1139  Int_t nstation = station - 1;
1140  Int_t nwheel = wheel + 2;
1141 
1142  Double_t MeanTheta = unitsLocalTheta[i]->GetMean();
1143  Double_t ErrorTheta = unitsLocalTheta[i]->GetMeanError();
1144 
1145  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1146 
1147  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1148 
1149  hprofLocalThetaDT->SetBinContent(xbin, MeanTheta);
1150  hprofLocalThetaDT->SetBinError(xbin, ErrorTheta);
1151  hprofLocalThetaDT->SetMarkerStyle(21);
1152  hprofLocalThetaDT->SetMarkerColor(kRed);
1153  hprofLocalThetaDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1154 
1155  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1156  hprofLocalAngleDT->SetBinContent(sector, ybin, fabs(MeanTheta));
1157  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalTheta", wheel, station);
1158  hprofLocalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1159  hprofLocalAngleRmsDT->SetBinContent(sector, ybin, ErrorTheta);
1160  hprofLocalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1161  }
1162  }
1163 
1164  if (nameHistoLocalPhi.Contains("MB")) // HistoLocalPhi DT
1165  {
1166  int wheel, station, sector;
1167 
1168  sscanf(nameHistoLocalPhi, "ResidualLocalPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1169 
1170  Int_t nstation = station - 1;
1171  Int_t nwheel = wheel + 2;
1172 
1173  Double_t MeanPhi = unitsLocalPhi[i]->GetMean();
1174  Double_t ErrorPhi = unitsLocalPhi[i]->GetMeanError();
1175 
1176  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1177 
1178  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1179 
1180  hprofLocalPhiDT->SetBinContent(xbin, MeanPhi);
1181  hprofLocalPhiDT->SetBinError(xbin, ErrorPhi);
1182  hprofLocalPhiDT->SetMarkerStyle(21);
1183  hprofLocalPhiDT->SetMarkerColor(kRed);
1184  hprofLocalPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1185 
1186  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1187  hprofLocalAngleDT->SetBinContent(sector, ybin, fabs(MeanPhi));
1188  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalPhi", wheel, station);
1189  hprofLocalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1190  hprofLocalAngleRmsDT->SetBinContent(sector, ybin, ErrorPhi);
1191  hprofLocalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1192  }
1193 
1194  if (nameHistoLocalPhi.Contains("ME")) // HistoLocalPhi CSC
1195  {
1196  int station, ring, chamber;
1197 
1198  sscanf(nameHistoLocalPhi, "ResidualLocalPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1199 
1200  Double_t MeanPhi = unitsLocalPhi[i]->GetMean();
1201  Double_t ErrorPhi = unitsLocalPhi[i]->GetMeanError();
1202 
1203  Int_t xbin = abs(station) * 2 + ring;
1204  if (abs(station) == 1)
1205  xbin = ring;
1206  if (station > 0)
1207  xbin = xbin + 9;
1208  else
1209  xbin = 10 - xbin;
1210 
1211  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1212  if (xbin < 5)
1213  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1214  else if (xbin < 6)
1215  xbin = 108 + chamber;
1216  else if (xbin < 14)
1217  xbin = 126 + (xbin - 6) * 36 + chamber;
1218  else if (xbin < 18)
1219  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1220  else
1221  xbin = 522 + chamber;
1222 
1223  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1224 
1225  hprofLocalPhiCSC->SetMarkerStyle(21);
1226  hprofLocalPhiCSC->SetMarkerColor(kRed);
1227  hprofLocalPhiCSC->SetBinContent(xbin, MeanPhi);
1228  hprofLocalPhiCSC->SetBinError(xbin, ErrorPhi);
1229  hprofLocalPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1230 
1231  Int_t ybin = abs(station) * 2 + ring;
1232  if (abs(station) == 1)
1233  ybin = ring;
1234  if (station > 0)
1235  ybin = ybin + 9;
1236  else
1237  ybin = 10 - ybin;
1238  ybin = 2 * ybin - 1;
1239  hprofLocalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanPhi));
1240  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalPhi", station, ring);
1241  hprofLocalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1242  hprofLocalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorPhi);
1243  hprofLocalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1244  }
1245 
1246  if (nameHistoLocalTheta.Contains("ME")) // HistoLocalTheta CSC
1247  {
1248  int station, ring, chamber;
1249 
1250  sscanf(nameHistoLocalTheta, "ResidualLocalTheta_ME%dR%1dC%d", &station, &ring, &chamber);
1251 
1252  Double_t MeanTheta = unitsLocalTheta[i]->GetMean();
1253  Double_t ErrorTheta = unitsLocalTheta[i]->GetMeanError();
1254 
1255  Int_t xbin = abs(station) * 2 + ring;
1256  if (abs(station) == 1)
1257  xbin = ring;
1258  if (station > 0)
1259  xbin = xbin + 9;
1260  else
1261  xbin = 10 - xbin;
1262 
1263  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1264  if (xbin < 5)
1265  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1266  else if (xbin < 6)
1267  xbin = 108 + chamber;
1268  else if (xbin < 14)
1269  xbin = 126 + (xbin - 6) * 36 + chamber;
1270  else if (xbin < 18)
1271  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1272  else
1273  xbin = 522 + chamber;
1274 
1275  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1276 
1277  hprofLocalThetaCSC->SetMarkerStyle(21);
1278  hprofLocalThetaCSC->SetMarkerColor(kRed);
1279  hprofLocalThetaCSC->SetBinContent(xbin, MeanTheta);
1280  hprofLocalThetaCSC->SetBinError(xbin, ErrorTheta);
1281  hprofLocalThetaCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1282 
1283  Int_t ybin = abs(station) * 2 + ring;
1284  if (abs(station) == 1)
1285  ybin = ring;
1286  if (station > 0)
1287  ybin = ybin + 9;
1288  else
1289  ybin = 10 - ybin;
1290  ybin = 2 * ybin;
1291  hprofLocalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanTheta));
1292  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalTheta", station, ring);
1293  hprofLocalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1294  hprofLocalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorTheta);
1295  hprofLocalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1296  }
1297 
1298  if (nameHistoLocalY.Contains("MB")) // HistoLocalY DT
1299  {
1300  int wheel, station, sector;
1301 
1302  sscanf(nameHistoLocalY, "ResidualLocalY_W%dMB%1dS%d", &wheel, &station, &sector);
1303 
1304  if (station != 4) {
1305  Int_t nstation = station - 1;
1306  Int_t nwheel = wheel + 2;
1307 
1308  Double_t MeanZ = unitsLocalY[i]->GetMean();
1309  Double_t ErrorZ = unitsLocalY[i]->GetMeanError();
1310 
1311  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1312 
1313  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1314 
1315  hprofLocalYDT->SetMarkerStyle(21);
1316  hprofLocalYDT->SetMarkerColor(kRed);
1317  hprofLocalYDT->SetBinContent(xbin, MeanZ);
1318  hprofLocalYDT->SetBinError(xbin, ErrorZ);
1319  hprofLocalYDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1320 
1321  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1322  hprofLocalPositionDT->SetBinContent(sector, ybin, fabs(MeanZ));
1323  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalY", wheel, station);
1324  hprofLocalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1325  hprofLocalPositionRmsDT->SetBinContent(sector, ybin, ErrorZ);
1326  hprofLocalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1327  }
1328  }
1329 
1330  if (nameHistoLocalY.Contains("ME")) // HistoLocalY CSC
1331  {
1332  int station, ring, chamber;
1333 
1334  sscanf(nameHistoLocalY, "ResidualLocalY_ME%dR%1dC%d", &station, &ring, &chamber);
1335 
1336  Double_t MeanR = unitsLocalY[i]->GetMean();
1337  Double_t ErrorR = unitsLocalY[i]->GetMeanError();
1338 
1339  Int_t xbin = abs(station) * 2 + ring;
1340  if (abs(station) == 1)
1341  xbin = ring;
1342  if (station > 0)
1343  xbin = xbin + 9;
1344  else
1345  xbin = 10 - xbin;
1346 
1347  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1348  if (xbin < 5)
1349  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1350  else if (xbin < 6)
1351  xbin = 108 + chamber;
1352  else if (xbin < 14)
1353  xbin = 126 + (xbin - 6) * 36 + chamber;
1354  else if (xbin < 18)
1355  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1356  else
1357  xbin = 522 + chamber;
1358 
1359  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1360 
1361  hprofLocalYCSC->SetMarkerStyle(21);
1362  hprofLocalYCSC->SetMarkerColor(kRed);
1363  hprofLocalYCSC->SetBinContent(xbin, MeanR);
1364  hprofLocalYCSC->SetBinError(xbin, ErrorR);
1365  hprofLocalYCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1366 
1367  Int_t ybin = abs(station) * 2 + ring;
1368  if (abs(station) == 1)
1369  ybin = ring;
1370  if (station > 0)
1371  ybin = ybin + 9;
1372  else
1373  ybin = 10 - ybin;
1374  ybin = 2 * ybin;
1375  hprofLocalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanR));
1376  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalY", station, ring);
1377  hprofLocalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1378  hprofLocalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorR);
1379  hprofLocalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1380  }
1381 
1382  if (nameHistoGlobalRPhi.Contains("MB")) // HistoGlobalRPhi DT
1383  {
1384  int wheel, station, sector;
1385 
1386  sscanf(nameHistoGlobalRPhi, "ResidualGlobalRPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1387 
1388  Int_t nstation = station - 1;
1389  Int_t nwheel = wheel + 2;
1390 
1391  Double_t MeanRPhi = unitsGlobalRPhi[i]->GetMean();
1392  Double_t ErrorRPhi = unitsGlobalRPhi[i]->GetMeanError();
1393 
1394  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1395 
1396  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1397 
1398  hprofGlobalRPhiDT->SetMarkerStyle(21);
1399  hprofGlobalRPhiDT->SetMarkerColor(kRed);
1400  hprofGlobalRPhiDT->SetBinContent(xbin, MeanRPhi);
1401  hprofGlobalRPhiDT->SetBinError(xbin, ErrorRPhi);
1402  hprofGlobalRPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1403 
1404  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1405  hprofGlobalPositionDT->SetBinContent(sector, ybin, fabs(MeanRPhi));
1406  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalRPhi", wheel, station);
1407  hprofGlobalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1408  hprofGlobalPositionRmsDT->SetBinContent(sector, ybin, ErrorRPhi);
1409  hprofGlobalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1410  }
1411 
1412  if (nameHistoGlobalRPhi.Contains("ME")) // HistoGlobalRPhi CSC
1413  {
1414  int station, ring, chamber;
1415 
1416  sscanf(nameHistoGlobalRPhi, "ResidualGlobalRPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1417 
1418  Double_t MeanRPhi = unitsGlobalRPhi[i]->GetMean();
1419  Double_t ErrorRPhi = unitsGlobalRPhi[i]->GetMeanError();
1420 
1421  Int_t xbin = abs(station) * 2 + ring;
1422  if (abs(station) == 1)
1423  xbin = ring;
1424  if (station > 0)
1425  xbin = xbin + 9;
1426  else
1427  xbin = 10 - xbin;
1428 
1429  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1430  if (xbin < 5)
1431  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1432  else if (xbin < 6)
1433  xbin = 108 + chamber;
1434  else if (xbin < 14)
1435  xbin = 126 + (xbin - 6) * 36 + chamber;
1436  else if (xbin < 18)
1437  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1438  else
1439  xbin = 522 + chamber;
1440 
1441  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1442 
1443  hprofGlobalRPhiCSC->SetMarkerStyle(21);
1444  hprofGlobalRPhiCSC->SetMarkerColor(kRed);
1445  hprofGlobalRPhiCSC->SetBinContent(xbin, MeanRPhi);
1446  hprofGlobalRPhiCSC->SetBinError(xbin, ErrorRPhi);
1447  hprofGlobalRPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1448 
1449  Int_t ybin = abs(station) * 2 + ring;
1450  if (abs(station) == 1)
1451  ybin = ring;
1452  if (station > 0)
1453  ybin = ybin + 9;
1454  else
1455  ybin = 10 - ybin;
1456  ybin = 2 * ybin - 1;
1457  hprofGlobalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanRPhi));
1458  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalRPhi", station, ring);
1459  hprofGlobalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1460  hprofGlobalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorRPhi);
1461  hprofGlobalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1462  }
1463 
1464  if (nameHistoGlobalTheta.Contains("MB")) // HistoGlobalRTheta DT
1465  {
1466  int wheel, station, sector;
1467 
1468  sscanf(nameHistoGlobalTheta, "ResidualGlobalTheta_W%dMB%1dS%d", &wheel, &station, &sector);
1469 
1470  if (station != 4) {
1471  Int_t nstation = station - 1;
1472  Int_t nwheel = wheel + 2;
1473 
1474  Double_t MeanTheta = unitsGlobalTheta[i]->GetMean();
1475  Double_t ErrorTheta = unitsGlobalTheta[i]->GetMeanError();
1476 
1477  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1478 
1479  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1480 
1481  hprofGlobalThetaDT->SetBinContent(xbin, MeanTheta);
1482  hprofGlobalThetaDT->SetBinError(xbin, ErrorTheta);
1483  hprofGlobalThetaDT->SetMarkerStyle(21);
1484  hprofGlobalThetaDT->SetMarkerColor(kRed);
1485  hprofGlobalThetaDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1486 
1487  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1488  hprofGlobalAngleDT->SetBinContent(sector, ybin, fabs(MeanTheta));
1489  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalTheta", wheel, station);
1490  hprofGlobalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1491  hprofGlobalAngleRmsDT->SetBinContent(sector, ybin, ErrorTheta);
1492  hprofGlobalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1493  }
1494  }
1495 
1496  if (nameHistoGlobalPhi.Contains("MB")) // HistoGlobalPhi DT
1497  {
1498  int wheel, station, sector;
1499 
1500  sscanf(nameHistoGlobalPhi, "ResidualGlobalPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1501 
1502  Int_t nstation = station - 1;
1503  Int_t nwheel = wheel + 2;
1504 
1505  Double_t MeanPhi = unitsGlobalPhi[i]->GetMean();
1506  Double_t ErrorPhi = unitsGlobalPhi[i]->GetMeanError();
1507 
1508  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1509 
1510  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1511 
1512  hprofGlobalPhiDT->SetBinContent(xbin, MeanPhi);
1513  hprofGlobalPhiDT->SetBinError(xbin, ErrorPhi);
1514  hprofGlobalPhiDT->SetMarkerStyle(21);
1515  hprofGlobalPhiDT->SetMarkerColor(kRed);
1516  hprofGlobalPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1517 
1518  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1519  hprofGlobalAngleDT->SetBinContent(sector, ybin, fabs(MeanPhi));
1520  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalPhi", wheel, station);
1521  hprofGlobalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1522  hprofGlobalAngleRmsDT->SetBinContent(sector, ybin, ErrorPhi);
1523  hprofGlobalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1524  }
1525 
1526  if (nameHistoGlobalPhi.Contains("ME")) // HistoGlobalPhi CSC
1527  {
1528  int station, ring, chamber;
1529 
1530  sscanf(nameHistoGlobalPhi, "ResidualGlobalPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1531 
1532  Double_t MeanPhi = unitsGlobalPhi[i]->GetMean();
1533  Double_t ErrorPhi = unitsGlobalPhi[i]->GetMeanError();
1534 
1535  Int_t xbin = abs(station) * 2 + ring;
1536  if (abs(station) == 1)
1537  xbin = ring;
1538  if (station > 0)
1539  xbin = xbin + 9;
1540  else
1541  xbin = 10 - xbin;
1542 
1543  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1544  if (xbin < 5)
1545  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1546  else if (xbin < 6)
1547  xbin = 108 + chamber;
1548  else if (xbin < 14)
1549  xbin = 126 + (xbin - 6) * 36 + chamber;
1550  else if (xbin < 18)
1551  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1552  else
1553  xbin = 522 + chamber;
1554 
1555  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1556 
1557  hprofGlobalPhiCSC->SetMarkerStyle(21);
1558  hprofGlobalPhiCSC->SetMarkerColor(kRed);
1559  hprofGlobalPhiCSC->SetBinContent(xbin, MeanPhi);
1560  hprofGlobalPhiCSC->SetBinError(xbin, ErrorPhi);
1561  hprofGlobalPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1562 
1563  Int_t ybin = abs(station) * 2 + ring;
1564  if (abs(station) == 1)
1565  ybin = ring;
1566  if (station > 0)
1567  ybin = ybin + 9;
1568  else
1569  ybin = 10 - ybin;
1570  ybin = 2 * ybin - 1;
1571  hprofGlobalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanPhi));
1572  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalPhi", station, ring);
1573  hprofGlobalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1574  hprofGlobalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorPhi);
1575  hprofGlobalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1576  }
1577 
1578  if (nameHistoGlobalTheta.Contains("ME")) // HistoGlobalTheta CSC
1579  {
1580  int station, ring, chamber;
1581 
1582  sscanf(nameHistoGlobalTheta, "ResidualGlobalTheta_ME%dR%1dC%d", &station, &ring, &chamber);
1583 
1584  Double_t MeanTheta = unitsGlobalTheta[i]->GetMean();
1585  Double_t ErrorTheta = unitsGlobalTheta[i]->GetMeanError();
1586 
1587  Int_t xbin = abs(station) * 2 + ring;
1588  if (abs(station) == 1)
1589  xbin = ring;
1590  if (station > 0)
1591  xbin = xbin + 9;
1592  else
1593  xbin = 10 - xbin;
1594 
1595  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1596  if (xbin < 5)
1597  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1598  else if (xbin < 6)
1599  xbin = 108 + chamber;
1600  else if (xbin < 14)
1601  xbin = 126 + (xbin - 6) * 36 + chamber;
1602  else if (xbin < 18)
1603  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1604  else
1605  xbin = 522 + chamber;
1606 
1607  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1608 
1609  hprofGlobalThetaCSC->SetMarkerStyle(21);
1610  hprofGlobalThetaCSC->SetMarkerColor(kRed);
1611  hprofGlobalThetaCSC->SetBinContent(xbin, MeanTheta);
1612  hprofGlobalThetaCSC->SetBinError(xbin, ErrorTheta);
1613  hprofGlobalThetaCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1614 
1615  Int_t ybin = abs(station) * 2 + ring;
1616  if (abs(station) == 1)
1617  ybin = ring;
1618  if (station > 0)
1619  ybin = ybin + 9;
1620  else
1621  ybin = 10 - ybin;
1622  ybin = 2 * ybin;
1623  hprofGlobalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanTheta));
1624  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalTheta", station, ring);
1625  hprofGlobalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1626  hprofGlobalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorTheta);
1627  hprofGlobalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1628  }
1629 
1630  if (nameHistoGlobalRZ.Contains("MB")) // HistoGlobalZ DT
1631  {
1632  int wheel, station, sector;
1633 
1634  sscanf(nameHistoGlobalRZ, "ResidualGlobalZ_W%dMB%1dS%d", &wheel, &station, &sector);
1635 
1636  if (station != 4) {
1637  Int_t nstation = station - 1;
1638  Int_t nwheel = wheel + 2;
1639 
1640  Double_t MeanZ = unitsGlobalRZ[i]->GetMean();
1641  Double_t ErrorZ = unitsGlobalRZ[i]->GetMeanError();
1642 
1643  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1644 
1645  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1646 
1647  hprofGlobalZDT->SetMarkerStyle(21);
1648  hprofGlobalZDT->SetMarkerColor(kRed);
1649 
1650  hprofGlobalZDT->SetBinContent(xbin, MeanZ);
1651  hprofGlobalZDT->SetBinError(xbin, ErrorZ);
1652  hprofGlobalZDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1653 
1654  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1655  hprofGlobalPositionDT->SetBinContent(sector, ybin, fabs(MeanZ));
1656  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalZ", wheel, station);
1657  hprofGlobalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1658  hprofGlobalPositionRmsDT->SetBinContent(sector, ybin, ErrorZ);
1659  hprofGlobalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1660  }
1661  }
1662 
1663  if (nameHistoGlobalRZ.Contains("ME")) // HistoGlobalR CSC
1664  {
1665  int station, ring, chamber;
1666 
1667  sscanf(nameHistoGlobalRZ, "ResidualGlobalR_ME%dR%1dC%d", &station, &ring, &chamber);
1668 
1669  Double_t MeanR = unitsGlobalRZ[i]->GetMean();
1670  Double_t ErrorR = unitsGlobalRZ[i]->GetMeanError();
1671 
1672  Int_t xbin = abs(station) * 2 + ring;
1673  if (abs(station) == 1)
1674  xbin = ring;
1675  if (station > 0)
1676  xbin = xbin + 9;
1677  else
1678  xbin = 10 - xbin;
1679 
1680  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1681  if (xbin < 5)
1682  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1683  else if (xbin < 6)
1684  xbin = 108 + chamber;
1685  else if (xbin < 14)
1686  xbin = 126 + (xbin - 6) * 36 + chamber;
1687  else if (xbin < 18)
1688  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1689  else
1690  xbin = 522 + chamber;
1691 
1692  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1693 
1694  hprofGlobalRCSC->SetMarkerStyle(21);
1695  hprofGlobalRCSC->SetMarkerColor(kRed);
1696  hprofGlobalRCSC->SetBinContent(xbin, MeanR);
1697  hprofGlobalRCSC->SetBinError(xbin, ErrorR);
1698  hprofGlobalRCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1699 
1700  Int_t ybin = abs(station) * 2 + ring;
1701  if (abs(station) == 1)
1702  ybin = ring;
1703  if (station > 0)
1704  ybin = ybin + 9;
1705  else
1706  ybin = 10 - ybin;
1707  ybin = 2 * ybin;
1708  hprofGlobalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanR));
1709  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalR", station, ring);
1710  hprofGlobalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1711  hprofGlobalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorR);
1712  hprofGlobalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1713  }
1714 
1715  } // for in histos
1716 
1717  } // doResPlots
1718 }

References funct::abs(), relativeConstraints::chamber, doGBplots, doResplots, doSAplots, hprofGlobalAngleCSC, hprofGlobalAngleDT, hprofGlobalAngleRmsCSC, hprofGlobalAngleRmsDT, hprofGlobalPhiCSC, hprofGlobalPhiDT, hprofGlobalPositionCSC, hprofGlobalPositionDT, hprofGlobalPositionRmsCSC, hprofGlobalPositionRmsDT, hprofGlobalRCSC, hprofGlobalRPhiCSC, hprofGlobalRPhiDT, hprofGlobalThetaCSC, hprofGlobalThetaDT, hprofGlobalZDT, hprofLocalAngleCSC, hprofLocalAngleDT, hprofLocalAngleRmsCSC, hprofLocalAngleRmsDT, hprofLocalPhiCSC, hprofLocalPhiDT, hprofLocalPositionCSC, hprofLocalPositionDT, hprofLocalPositionRmsCSC, hprofLocalPositionRmsDT, hprofLocalThetaCSC, hprofLocalThetaDT, hprofLocalXCSC, hprofLocalXDT, hprofLocalYCSC, hprofLocalYDT, mps_fire::i, VtxSmearedParameters_cfi::MeanZ, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, relativeConstraints::ring, relativeConstraints::station, theDataType, unitsGlobalPhi, unitsGlobalRPhi, unitsGlobalRZ, unitsGlobalTheta, unitsLocalPhi, unitsLocalTheta, unitsLocalX, unitsLocalY, and makeMuonMisalignmentScenario::wheel.

Referenced by o2olib.O2ORunMgr::executeJob().

Member Data Documentation

◆ detectorCollection

std::vector<long> MuonAlignmentAnalyzer::detectorCollection
private

Definition at line 258 of file MuonAlignmentAnalyzer.h.

Referenced by analyze().

◆ doGBplots

bool MuonAlignmentAnalyzer::doGBplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

◆ doResplots

bool MuonAlignmentAnalyzer::doResplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

◆ doSAplots

bool MuonAlignmentAnalyzer::doSAplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

◆ fs

edm::Service<TFileService> MuonAlignmentAnalyzer::fs
private

Definition at line 64 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBChi2

TH1F* MuonAlignmentAnalyzer::hGBChi2
private

Definition at line 101 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBChi2_Barrel

TH1F* MuonAlignmentAnalyzer::hGBChi2_Barrel
private

Definition at line 103 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBChi2_Endcap

TH1F* MuonAlignmentAnalyzer::hGBChi2_Endcap
private

Definition at line 105 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBInvM

TH1F* MuonAlignmentAnalyzer::hGBInvM
private

Definition at line 109 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBInvM_Barrel

TH1F* MuonAlignmentAnalyzer::hGBInvM_Barrel
private

Definition at line 113 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBInvM_Endcap

TH1F* MuonAlignmentAnalyzer::hGBInvM_Endcap
private

Definition at line 117 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBInvM_Overlap

TH1F* MuonAlignmentAnalyzer::hGBInvM_Overlap
private

Definition at line 122 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBinvPTres

TH1F* MuonAlignmentAnalyzer::hGBinvPTres
private

Definition at line 152 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBinvPTvsEta

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsEta
private

Definition at line 164 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBinvPTvsNhits

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsNhits
private

Definition at line 169 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBinvPTvsPhi

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsPhi
private

Definition at line 165 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNhits

TH1F* MuonAlignmentAnalyzer::hGBNhits
private

Definition at line 93 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNhits_Barrel

TH1F* MuonAlignmentAnalyzer::hGBNhits_Barrel
private

Definition at line 94 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNhits_Endcap

TH1F* MuonAlignmentAnalyzer::hGBNhits_Endcap
private

Definition at line 95 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNmuons

TH1F* MuonAlignmentAnalyzer::hGBNmuons
private

Definition at line 82 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNmuons_Barrel

TH1F* MuonAlignmentAnalyzer::hGBNmuons_Barrel
private

Definition at line 85 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBNmuons_Endcap

TH1F* MuonAlignmentAnalyzer::hGBNmuons_Endcap
private

Definition at line 88 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPhivsEta

TH2F* MuonAlignmentAnalyzer::hGBPhivsEta
private

Definition at line 146 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTDiff

TH1F* MuonAlignmentAnalyzer::hGBPTDiff
private

Definition at line 159 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTDiffvsEta

TH2F* MuonAlignmentAnalyzer::hGBPTDiffvsEta
private

Definition at line 162 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTDiffvsPhi

TH2F* MuonAlignmentAnalyzer::hGBPTDiffvsPhi
private

Definition at line 163 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTRec

TH1F* MuonAlignmentAnalyzer::hGBPTRec
private

Definition at line 128 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTRec_Barrel

TH1F* MuonAlignmentAnalyzer::hGBPTRec_Barrel
private

Definition at line 131 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTRec_Endcap

TH1F* MuonAlignmentAnalyzer::hGBPTRec_Endcap
private

Definition at line 134 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTres

TH1F* MuonAlignmentAnalyzer::hGBPTres
private

Definition at line 151 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTres_Barrel

TH1F* MuonAlignmentAnalyzer::hGBPTres_Barrel
private

Definition at line 155 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTres_Endcap

TH1F* MuonAlignmentAnalyzer::hGBPTres_Endcap
private

Definition at line 156 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTvsEta

TH2F* MuonAlignmentAnalyzer::hGBPTvsEta
private

Definition at line 136 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hGBPTvsPhi

TH2F* MuonAlignmentAnalyzer::hGBPTvsPhi
private

Definition at line 137 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hprofGlobalAngleCSC

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleCSC
private

Definition at line 229 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalAngleDT

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleDT
private

Definition at line 237 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalAngleRmsCSC

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleRmsCSC
private

Definition at line 231 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalAngleRmsDT

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleRmsDT
private

Definition at line 239 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPhiCSC

TH1F* MuonAlignmentAnalyzer::hprofGlobalPhiCSC
private

Definition at line 254 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPhiDT

TH1F* MuonAlignmentAnalyzer::hprofGlobalPhiDT
private

Definition at line 250 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPositionCSC

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionCSC
private

Definition at line 228 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPositionDT

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionDT
private

Definition at line 236 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPositionRmsCSC

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionRmsCSC
private

Definition at line 230 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalPositionRmsDT

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionRmsDT
private

Definition at line 238 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalRCSC

TH1F* MuonAlignmentAnalyzer::hprofGlobalRCSC
private

Definition at line 256 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalRPhiCSC

TH1F* MuonAlignmentAnalyzer::hprofGlobalRPhiCSC
private

Definition at line 253 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalRPhiDT

TH1F* MuonAlignmentAnalyzer::hprofGlobalRPhiDT
private

Definition at line 249 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalThetaCSC

TH1F* MuonAlignmentAnalyzer::hprofGlobalThetaCSC
private

Definition at line 255 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalThetaDT

TH1F* MuonAlignmentAnalyzer::hprofGlobalThetaDT
private

Definition at line 251 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofGlobalZDT

TH1F* MuonAlignmentAnalyzer::hprofGlobalZDT
private

Definition at line 252 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalAngleCSC

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleCSC
private

Definition at line 225 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalAngleDT

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleDT
private

Definition at line 233 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalAngleRmsCSC

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleRmsCSC
private

Definition at line 227 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalAngleRmsDT

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleRmsDT
private

Definition at line 235 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPhiCSC

TH1F* MuonAlignmentAnalyzer::hprofLocalPhiCSC
private

Definition at line 246 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPhiDT

TH1F* MuonAlignmentAnalyzer::hprofLocalPhiDT
private

Definition at line 242 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPositionCSC

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionCSC
private

Definition at line 224 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPositionDT

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionDT
private

Definition at line 232 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPositionRmsCSC

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionRmsCSC
private

Definition at line 226 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalPositionRmsDT

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionRmsDT
private

Definition at line 234 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalThetaCSC

TH1F* MuonAlignmentAnalyzer::hprofLocalThetaCSC
private

Definition at line 247 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalThetaDT

TH1F* MuonAlignmentAnalyzer::hprofLocalThetaDT
private

Definition at line 243 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalXCSC

TH1F* MuonAlignmentAnalyzer::hprofLocalXCSC
private

Definition at line 245 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalXDT

TH1F* MuonAlignmentAnalyzer::hprofLocalXDT
private

Definition at line 241 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalYCSC

TH1F* MuonAlignmentAnalyzer::hprofLocalYCSC
private

Definition at line 248 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hprofLocalYDT

TH1F* MuonAlignmentAnalyzer::hprofLocalYDT
private

Definition at line 244 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

◆ hResidualGlobalPhiCSC

TH1F* MuonAlignmentAnalyzer::hResidualGlobalPhiCSC
private

Definition at line 207 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalPhiCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiCSC_ME
private

Definition at line 215 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalPhiDT

TH1F* MuonAlignmentAnalyzer::hResidualGlobalPhiDT
private

Definition at line 203 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalPhiDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiDT_MB
private

Definition at line 219 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalPhiDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiDT_W
private

Definition at line 211 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRCSC

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRCSC
private

Definition at line 209 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRCSC_ME
private

Definition at line 217 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRPhiCSC

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC
private

Definition at line 206 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRPhiCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC_ME
private

Definition at line 214 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRPhiDT

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRPhiDT
private

Definition at line 202 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRPhiDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_MB
private

Definition at line 218 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalRPhiDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_W
private

Definition at line 210 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalThetaCSC

TH1F* MuonAlignmentAnalyzer::hResidualGlobalThetaCSC
private

Definition at line 208 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalThetaCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaCSC_ME
private

Definition at line 216 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalThetaDT

TH1F* MuonAlignmentAnalyzer::hResidualGlobalThetaDT
private

Definition at line 204 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalThetaDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaDT_MB
private

Definition at line 220 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalThetaDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaDT_W
private

Definition at line 212 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalZDT

TH1F* MuonAlignmentAnalyzer::hResidualGlobalZDT
private

Definition at line 205 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalZDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalZDT_MB
private

Definition at line 221 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualGlobalZDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalZDT_W
private

Definition at line 213 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalPhiCSC

TH1F* MuonAlignmentAnalyzer::hResidualLocalPhiCSC
private

Definition at line 187 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalPhiCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiCSC_ME
private

Definition at line 195 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalPhiDT

TH1F* MuonAlignmentAnalyzer::hResidualLocalPhiDT
private

Definition at line 183 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalPhiDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiDT_MB
private

Definition at line 199 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalPhiDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiDT_W
private

Definition at line 191 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalThetaCSC

TH1F* MuonAlignmentAnalyzer::hResidualLocalThetaCSC
private

Definition at line 188 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalThetaCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaCSC_ME
private

Definition at line 196 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalThetaDT

TH1F* MuonAlignmentAnalyzer::hResidualLocalThetaDT
private

Definition at line 184 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalThetaDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaDT_MB
private

Definition at line 200 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalThetaDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaDT_W
private

Definition at line 192 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalXCSC

TH1F* MuonAlignmentAnalyzer::hResidualLocalXCSC
private

Definition at line 186 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalXCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXCSC_ME
private

Definition at line 194 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalXDT

TH1F* MuonAlignmentAnalyzer::hResidualLocalXDT
private

Definition at line 182 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalXDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXDT_MB
private

Definition at line 198 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalXDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXDT_W
private

Definition at line 190 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalYCSC

TH1F* MuonAlignmentAnalyzer::hResidualLocalYCSC
private

Definition at line 189 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalYCSC_ME

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYCSC_ME
private

Definition at line 197 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalYDT

TH1F* MuonAlignmentAnalyzer::hResidualLocalYDT
private

Definition at line 185 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalYDT_MB

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYDT_MB
private

Definition at line 201 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hResidualLocalYDT_W

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYDT_W
private

Definition at line 193 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAChi2

TH1F* MuonAlignmentAnalyzer::hSAChi2
private

Definition at line 102 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAChi2_Barrel

TH1F* MuonAlignmentAnalyzer::hSAChi2_Barrel
private

Definition at line 104 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAChi2_Endcap

TH1F* MuonAlignmentAnalyzer::hSAChi2_Endcap
private

Definition at line 106 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAInvM

TH1F* MuonAlignmentAnalyzer::hSAInvM
private

Definition at line 110 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAInvM_Barrel

TH1F* MuonAlignmentAnalyzer::hSAInvM_Barrel
private

Definition at line 114 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAInvM_Endcap

TH1F* MuonAlignmentAnalyzer::hSAInvM_Endcap
private

Definition at line 118 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAInvM_Overlap

TH1F* MuonAlignmentAnalyzer::hSAInvM_Overlap
private

Definition at line 123 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAinvPTres

TH1F* MuonAlignmentAnalyzer::hSAinvPTres
private

Definition at line 150 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAinvPTvsEta

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsEta
private

Definition at line 166 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAinvPTvsNhits

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsNhits
private

Definition at line 168 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAinvPTvsPhi

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsPhi
private

Definition at line 167 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANhits

TH1F* MuonAlignmentAnalyzer::hSANhits
private

Definition at line 96 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANhits_Barrel

TH1F* MuonAlignmentAnalyzer::hSANhits_Barrel
private

Definition at line 97 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANhits_Endcap

TH1F* MuonAlignmentAnalyzer::hSANhits_Endcap
private

Definition at line 98 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANmuons

TH1F* MuonAlignmentAnalyzer::hSANmuons
private

Definition at line 83 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANmuons_Barrel

TH1F* MuonAlignmentAnalyzer::hSANmuons_Barrel
private

Definition at line 86 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSANmuons_Endcap

TH1F* MuonAlignmentAnalyzer::hSANmuons_Endcap
private

Definition at line 89 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPhivsEta

TH2F* MuonAlignmentAnalyzer::hSAPhivsEta
private

Definition at line 145 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTDiff

TH1F* MuonAlignmentAnalyzer::hSAPTDiff
private

Definition at line 158 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTDiffvsEta

TH2F* MuonAlignmentAnalyzer::hSAPTDiffvsEta
private

Definition at line 160 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTDiffvsPhi

TH2F* MuonAlignmentAnalyzer::hSAPTDiffvsPhi
private

Definition at line 161 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTRec

TH1F* MuonAlignmentAnalyzer::hSAPTRec
private

Definition at line 127 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTRec_Barrel

TH1F* MuonAlignmentAnalyzer::hSAPTRec_Barrel
private

Definition at line 130 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTRec_Endcap

TH1F* MuonAlignmentAnalyzer::hSAPTRec_Endcap
private

Definition at line 133 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTres

TH1F* MuonAlignmentAnalyzer::hSAPTres
private

Definition at line 149 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTres_Barrel

TH1F* MuonAlignmentAnalyzer::hSAPTres_Barrel
private

Definition at line 153 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTres_Endcap

TH1F* MuonAlignmentAnalyzer::hSAPTres_Endcap
private

Definition at line 154 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTvsEta

TH2F* MuonAlignmentAnalyzer::hSAPTvsEta
private

Definition at line 138 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSAPTvsPhi

TH2F* MuonAlignmentAnalyzer::hSAPTvsPhi
private

Definition at line 139 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimInvM

TH1F* MuonAlignmentAnalyzer::hSimInvM
private

Definition at line 111 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimInvM_Barrel

TH1F* MuonAlignmentAnalyzer::hSimInvM_Barrel
private

Definition at line 115 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimInvM_Endcap

TH1F* MuonAlignmentAnalyzer::hSimInvM_Endcap
private

Definition at line 119 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimInvM_Overlap

TH1F* MuonAlignmentAnalyzer::hSimInvM_Overlap
private

Definition at line 124 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimNmuons

TH1F* MuonAlignmentAnalyzer::hSimNmuons
private

Definition at line 84 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimNmuons_Barrel

TH1F* MuonAlignmentAnalyzer::hSimNmuons_Barrel
private

Definition at line 87 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimNmuons_Endcap

TH1F* MuonAlignmentAnalyzer::hSimNmuons_Endcap
private

Definition at line 90 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPhivsEta

TH2F* MuonAlignmentAnalyzer::hSimPhivsEta
private

Definition at line 144 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPT

TH1F* MuonAlignmentAnalyzer::hSimPT
private

Definition at line 129 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPT_Barrel

TH1F* MuonAlignmentAnalyzer::hSimPT_Barrel
private

Definition at line 132 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPT_Endcap

TH1F* MuonAlignmentAnalyzer::hSimPT_Endcap
private

Definition at line 135 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPTvsEta

TH2F* MuonAlignmentAnalyzer::hSimPTvsEta
private

Definition at line 140 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ hSimPTvsPhi

TH2F* MuonAlignmentAnalyzer::hSimPTvsPhi
private

Definition at line 141 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

◆ invMassRangeMax

double MuonAlignmentAnalyzer::invMassRangeMax
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

◆ invMassRangeMin

double MuonAlignmentAnalyzer::invMassRangeMin
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

◆ min1DTrackRecHitSize

unsigned int MuonAlignmentAnalyzer::min1DTrackRecHitSize
private

Definition at line 276 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ min4DTrackSegmentSize

unsigned int MuonAlignmentAnalyzer::min4DTrackSegmentSize
private

Definition at line 276 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ nbins

unsigned int MuonAlignmentAnalyzer::nbins
private

◆ numberOfGBRecTracks

int MuonAlignmentAnalyzer::numberOfGBRecTracks
private

Definition at line 266 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

◆ numberOfHits

int MuonAlignmentAnalyzer::numberOfHits
private

Definition at line 268 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

◆ numberOfSARecTracks

int MuonAlignmentAnalyzer::numberOfSARecTracks
private

Definition at line 267 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

◆ numberOfSimTracks

int MuonAlignmentAnalyzer::numberOfSimTracks
private

Definition at line 265 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

◆ ptRangeMax

double MuonAlignmentAnalyzer::ptRangeMax
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

◆ ptRangeMin

double MuonAlignmentAnalyzer::ptRangeMin
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

◆ resLocalXRangeStation1

double MuonAlignmentAnalyzer::resLocalXRangeStation1
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalXRangeStation2

double MuonAlignmentAnalyzer::resLocalXRangeStation2
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalXRangeStation3

double MuonAlignmentAnalyzer::resLocalXRangeStation3
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalXRangeStation4

double MuonAlignmentAnalyzer::resLocalXRangeStation4
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalYRangeStation1

double MuonAlignmentAnalyzer::resLocalYRangeStation1
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalYRangeStation2

double MuonAlignmentAnalyzer::resLocalYRangeStation2
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalYRangeStation3

double MuonAlignmentAnalyzer::resLocalYRangeStation3
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resLocalYRangeStation4

double MuonAlignmentAnalyzer::resLocalYRangeStation4
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resPhiRange

double MuonAlignmentAnalyzer::resPhiRange
private

Definition at line 275 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ resThetaRange

double MuonAlignmentAnalyzer::resThetaRange
private

Definition at line 275 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ theDataType

std::string MuonAlignmentAnalyzer::theDataType
private

Definition at line 75 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

◆ theGLBMuonTag

edm::InputTag MuonAlignmentAnalyzer::theGLBMuonTag
private

Definition at line 67 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ thePropagator

Propagator* MuonAlignmentAnalyzer::thePropagator
private

Definition at line 262 of file MuonAlignmentAnalyzer.h.

Referenced by analyze().

◆ theRecHits4DTagCSC

edm::InputTag MuonAlignmentAnalyzer::theRecHits4DTagCSC
private

Definition at line 72 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ theRecHits4DTagDT

edm::InputTag MuonAlignmentAnalyzer::theRecHits4DTagDT
private

Definition at line 71 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ theSTAMuonTag

edm::InputTag MuonAlignmentAnalyzer::theSTAMuonTag
private

Definition at line 68 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

◆ unitsGlobalPhi

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalPhi
private

Definition at line 177 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsGlobalRPhi

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalRPhi
private

Definition at line 176 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsGlobalRZ

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalRZ
private

Definition at line 179 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsGlobalTheta

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalTheta
private

Definition at line 178 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsLocalPhi

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalPhi
private

Definition at line 173 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsLocalTheta

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalTheta
private

Definition at line 174 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsLocalX

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalX
private

Definition at line 172 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

◆ unitsLocalY

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalY
private

Definition at line 175 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

Vector3DBase
Definition: Vector3DBase.h:8
MuonAlignmentAnalyzer::hprofGlobalAngleRmsDT
TH2F * hprofGlobalAngleRmsDT
Definition: MuonAlignmentAnalyzer.h:239
TrajectoryStateOnSurface::globalDirection
GlobalVector globalDirection() const
Definition: TrajectoryStateOnSurface.h:67
MuonAlignmentAnalyzer::hprofLocalAngleDT
TH2F * hprofLocalAngleDT
Definition: MuonAlignmentAnalyzer.h:233
MuonAlignmentAnalyzer::hGBChi2_Barrel
TH1F * hGBChi2_Barrel
Definition: MuonAlignmentAnalyzer.h:103
MuonAlignmentAnalyzer::hResidualGlobalThetaDT_MB
std::vector< TH1F * > hResidualGlobalThetaDT_MB
Definition: MuonAlignmentAnalyzer.h:220
counter
Definition: counter.py:1
DDAxes::y
MuonAlignmentAnalyzer::doResplots
bool doResplots
Definition: MuonAlignmentAnalyzer.h:77
MuonAlignmentAnalyzer::hGBInvM_Endcap
TH1F * hGBInvM_Endcap
Definition: MuonAlignmentAnalyzer.h:117
mps_fire.i
i
Definition: mps_fire.py:355
MuonAlignmentAnalyzer::hResidualLocalXDT_W
std::vector< TH1F * > hResidualLocalXDT_W
Definition: MuonAlignmentAnalyzer.h:190
MuonAlignmentAnalyzer::hSAinvPTres
TH1F * hSAinvPTres
Definition: MuonAlignmentAnalyzer.h:150
MuonAlignmentAnalyzer::hResidualLocalPhiDT_W
std::vector< TH1F * > hResidualLocalPhiDT_W
Definition: MuonAlignmentAnalyzer.h:191
MuonAlignmentAnalyzer::hGBNhits_Endcap
TH1F * hGBNhits_Endcap
Definition: MuonAlignmentAnalyzer.h:95
MuonAlignmentAnalyzer::theSTAMuonTag
edm::InputTag theSTAMuonTag
Definition: MuonAlignmentAnalyzer.h:68
GeomDet
Definition: GeomDet.h:27
MuonAlignmentAnalyzer::hGBinvPTvsEta
TH2F * hGBinvPTvsEta
Definition: MuonAlignmentAnalyzer.h:164
MuonAlignmentAnalyzer::hSAChi2_Endcap
TH1F * hSAChi2_Endcap
Definition: MuonAlignmentAnalyzer.h:106
MuonAlignmentAnalyzer::hprofGlobalAngleRmsCSC
TH2F * hprofGlobalAngleRmsCSC
Definition: MuonAlignmentAnalyzer.h:231
MuonAlignmentAnalyzer::hResidualLocalPhiDT_MB
std::vector< TH1F * > hResidualLocalPhiDT_MB
Definition: MuonAlignmentAnalyzer.h:199
MuonAlignmentAnalyzer::hSimNmuons
TH1F * hSimNmuons
Definition: MuonAlignmentAnalyzer.h:84
MuonAlignmentAnalyzer::hprofGlobalPositionDT
TH2F * hprofGlobalPositionDT
Definition: MuonAlignmentAnalyzer.h:236
MuonAlignmentAnalyzer::hResidualLocalThetaCSC_ME
std::vector< TH1F * > hResidualLocalThetaCSC_ME
Definition: MuonAlignmentAnalyzer.h:196
MuonAlignmentAnalyzer::hSAPTvsEta
TH2F * hSAPTvsEta
Definition: MuonAlignmentAnalyzer.h:138
MuonAlignmentAnalyzer::hSAPhivsEta
TH2F * hSAPhivsEta
Definition: MuonAlignmentAnalyzer.h:145
MuonAlignmentAnalyzer::hResidualGlobalZDT_W
std::vector< TH1F * > hResidualGlobalZDT_W
Definition: MuonAlignmentAnalyzer.h:213
MuonAlignmentAnalyzer::hSAinvPTvsNhits
TH2F * hSAinvPTvsNhits
Definition: MuonAlignmentAnalyzer.h:168
VtxSmearedParameters_cfi.MeanZ
MeanZ
Definition: VtxSmearedParameters_cfi.py:20
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
MuonAlignmentAnalyzer::hprofLocalPositionDT
TH2F * hprofLocalPositionDT
Definition: MuonAlignmentAnalyzer.h:232
MuonAlignmentAnalyzer::hprofGlobalPhiCSC
TH1F * hprofGlobalPhiCSC
Definition: MuonAlignmentAnalyzer.h:254
relativeConstraints.station
station
Definition: relativeConstraints.py:67
MuonAlignmentAnalyzer::hGBinvPTvsPhi
TH2F * hGBinvPTvsPhi
Definition: MuonAlignmentAnalyzer.h:165
MuonAlignmentAnalyzer::hprofLocalAngleRmsCSC
TH2F * hprofLocalAngleRmsCSC
Definition: MuonAlignmentAnalyzer.h:227
MuonAlignmentAnalyzer::hGBPTres
TH1F * hGBPTres
Definition: MuonAlignmentAnalyzer.h:151
MuonAlignmentAnalyzer::resLocalXRangeStation4
double resLocalXRangeStation4
Definition: MuonAlignmentAnalyzer.h:273
MuonAlignmentAnalyzer::hprofLocalPositionRmsCSC
TH2F * hprofLocalPositionRmsCSC
Definition: MuonAlignmentAnalyzer.h:226
RecSegment
Definition: RecSegment.h:27
MuonAlignmentAnalyzer::hprofLocalAngleRmsDT
TH2F * hprofLocalAngleRmsDT
Definition: MuonAlignmentAnalyzer.h:235
edm::LogInfo
Definition: MessageLogger.h:254
MuonAlignmentAnalyzer::resThetaRange
double resThetaRange
Definition: MuonAlignmentAnalyzer.h:275
MuonAlignmentAnalyzer::hSAInvM_Overlap
TH1F * hSAInvM_Overlap
Definition: MuonAlignmentAnalyzer.h:123
MuonAlignmentAnalyzer::unitsGlobalRPhi
std::vector< TH1F * > unitsGlobalRPhi
Definition: MuonAlignmentAnalyzer.h:176
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
TrackCandidateProducer_cfi.simTracks
simTracks
Definition: TrackCandidateProducer_cfi.py:15
MuonAlignmentAnalyzer::hSimPT_Endcap
TH1F * hSimPT_Endcap
Definition: MuonAlignmentAnalyzer.h:135
GlobalTrackingGeometryRecord
Definition: GlobalTrackingGeometryRecord.h:17
MuonAlignmentAnalyzer::thePropagator
Propagator * thePropagator
Definition: MuonAlignmentAnalyzer.h:262
MuonAlignmentAnalyzer::invMassRangeMin
double invMassRangeMin
Definition: MuonAlignmentAnalyzer.h:271
MuonAlignmentAnalyzer::hSANhits_Barrel
TH1F * hSANhits_Barrel
Definition: MuonAlignmentAnalyzer.h:97
MuonAlignmentAnalyzer::hSimPhivsEta
TH2F * hSimPhivsEta
Definition: MuonAlignmentAnalyzer.h:144
SteppingHelixPropagator_cfi.SteppingHelixPropagator
SteppingHelixPropagator
Definition: SteppingHelixPropagator_cfi.py:3
MuonAlignmentAnalyzer::ptRangeMin
double ptRangeMin
Definition: MuonAlignmentAnalyzer.h:271
DDAxes::x
MuonAlignmentAnalyzer::resLocalYRangeStation4
double resLocalYRangeStation4
Definition: MuonAlignmentAnalyzer.h:274
MuonAlignmentAnalyzer::hResidualLocalPhiCSC_ME
std::vector< TH1F * > hResidualLocalPhiCSC_ME
Definition: MuonAlignmentAnalyzer.h:195
MuonAlignmentAnalyzer::hprofLocalPositionRmsDT
TH2F * hprofLocalPositionRmsDT
Definition: MuonAlignmentAnalyzer.h:234
FreeTrajectoryState::position
GlobalPoint position() const
Definition: FreeTrajectoryState.h:67
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
makeMuonMisalignmentScenario.endcap
endcap
Definition: makeMuonMisalignmentScenario.py:320
MuonAlignmentAnalyzer::hGBPTDiff
TH1F * hGBPTDiff
Definition: MuonAlignmentAnalyzer.h:159
perp
T perp() const
Magnitude of transverse component.
Definition: Basic3DVectorLD.h:133
MuonAlignmentAnalyzer::hGBChi2_Endcap
TH1F * hGBChi2_Endcap
Definition: MuonAlignmentAnalyzer.h:105
MuonAlignmentAnalyzer::hGBPTRec_Endcap
TH1F * hGBPTRec_Endcap
Definition: MuonAlignmentAnalyzer.h:134
MuonAlignmentAnalyzer::doMatching
RecHitVector doMatching(const reco::Track &, edm::Handle< DTRecSegment4DCollection > &, edm::Handle< CSCSegmentCollection > &, intDVector *, intDVector *, edm::ESHandle< GlobalTrackingGeometry > &)
Definition: MuonAlignmentAnalyzer.cc:2470
MuonAlignmentAnalyzer::resLocalYRangeStation1
double resLocalYRangeStation1
Definition: MuonAlignmentAnalyzer.h:274
MuonAlignmentAnalyzer::hResidualGlobalRCSC
TH1F * hResidualGlobalRCSC
Definition: MuonAlignmentAnalyzer.h:209
edm::Handle< edm::SimTrackContainer >
MuonAlignmentAnalyzer::hResidualGlobalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
Definition: MuonAlignmentAnalyzer.h:215
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:751
MuonAlignmentAnalyzer::numberOfSARecTracks
int numberOfSARecTracks
Definition: MuonAlignmentAnalyzer.h:267
MuonAlignmentAnalyzer::hSimNmuons_Barrel
TH1F * hSimNmuons_Barrel
Definition: MuonAlignmentAnalyzer.h:87
MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC_ME
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
Definition: MuonAlignmentAnalyzer.h:214
MuonAlignmentAnalyzer::hResidualGlobalThetaCSC
TH1F * hResidualGlobalThetaCSC
Definition: MuonAlignmentAnalyzer.h:208
MuonAlignmentAnalyzer::hSimInvM_Overlap
TH1F * hSimInvM_Overlap
Definition: MuonAlignmentAnalyzer.h:124
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
MuonAlignmentAnalyzer::hGBNmuons
TH1F * hGBNmuons
Definition: MuonAlignmentAnalyzer.h:82
MuonAlignmentAnalyzer::hprofGlobalRCSC
TH1F * hprofGlobalRCSC
Definition: MuonAlignmentAnalyzer.h:256
MuonAlignmentAnalyzer::hResidualLocalThetaCSC
TH1F * hResidualLocalThetaCSC
Definition: MuonAlignmentAnalyzer.h:188
MuonAlignmentAnalyzer::hResidualLocalPhiCSC
TH1F * hResidualLocalPhiCSC
Definition: MuonAlignmentAnalyzer.h:187
edm::Ref
Definition: AssociativeIterator.h:58
MuonAlignmentAnalyzer::resLocalYRangeStation3
double resLocalYRangeStation3
Definition: MuonAlignmentAnalyzer.h:274
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
MuonAlignmentAnalyzer::hSimPT_Barrel
TH1F * hSimPT_Barrel
Definition: MuonAlignmentAnalyzer.h:132
DetId
Definition: DetId.h:17
MuonAlignmentAnalyzer::hSAPTvsPhi
TH2F * hSAPTvsPhi
Definition: MuonAlignmentAnalyzer.h:139
MuonAlignmentAnalyzer::hSAPTres_Endcap
TH1F * hSAPTres_Endcap
Definition: MuonAlignmentAnalyzer.h:154
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
MuonAlignmentAnalyzer::doGBplots
bool doGBplots
Definition: MuonAlignmentAnalyzer.h:77
MuonAlignmentAnalyzer::hSimNmuons_Endcap
TH1F * hSimNmuons_Endcap
Definition: MuonAlignmentAnalyzer.h:90
MuonAlignmentAnalyzer::hGBNmuons_Barrel
TH1F * hGBNmuons_Barrel
Definition: MuonAlignmentAnalyzer.h:85
MuonAlignmentAnalyzer::hSimInvM
TH1F * hSimInvM
Definition: MuonAlignmentAnalyzer.h:111
MuonAlignmentAnalyzer::hResidualLocalYDT
TH1F * hResidualLocalYDT
Definition: MuonAlignmentAnalyzer.h:185
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
MuonAlignmentAnalyzer::hSimPTvsEta
TH2F * hSimPTvsEta
Definition: MuonAlignmentAnalyzer.h:140
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
MuonAlignmentAnalyzer::hSimInvM_Barrel
TH1F * hSimInvM_Barrel
Definition: MuonAlignmentAnalyzer.h:115
RecHitVector
std::vector< TrackingRecHit * > RecHitVector
Definition: MuonMillepedeTrackRefitter.h:35
TrajectoryStateOnSurface::localDirection
LocalVector localDirection() const
Definition: TrajectoryStateOnSurface.h:76
MuonAlignmentAnalyzer::hResidualGlobalZDT_MB
std::vector< TH1F * > hResidualGlobalZDT_MB
Definition: MuonAlignmentAnalyzer.h:221
MuonAlignmentAnalyzer::hResidualLocalThetaDT_W
std::vector< TH1F * > hResidualLocalThetaDT_W
Definition: MuonAlignmentAnalyzer.h:192
MuonAlignmentAnalyzer::hGBinvPTres
TH1F * hGBinvPTres
Definition: MuonAlignmentAnalyzer.h:152
TrajectoryStateOnSurface::hasError
bool hasError() const
Definition: TrajectoryStateOnSurface.h:56
MuonAlignmentAnalyzer::hResidualLocalYDT_W
std::vector< TH1F * > hResidualLocalYDT_W
Definition: MuonAlignmentAnalyzer.h:193
DDAxes::z
MuonAlignmentAnalyzer::hSANmuons_Barrel
TH1F * hSANmuons_Barrel
Definition: MuonAlignmentAnalyzer.h:86
edm::ESHandle< MagneticField >
p2
double p2[4]
Definition: TauolaWrapper.h:90
MuonAlignmentAnalyzer::theRecHits4DTagDT
edm::InputTag theRecHits4DTagDT
Definition: MuonAlignmentAnalyzer.h:71
MuonAlignmentAnalyzer::hResidualGlobalThetaDT
TH1F * hResidualGlobalThetaDT
Definition: MuonAlignmentAnalyzer.h:204
MuonAlignmentAnalyzer::unitsGlobalTheta
std::vector< TH1F * > unitsGlobalTheta
Definition: MuonAlignmentAnalyzer.h:178
MuonAlignmentAnalyzer::hprofGlobalRPhiCSC
TH1F * hprofGlobalRPhiCSC
Definition: MuonAlignmentAnalyzer.h:253
MuonAlignmentAnalyzer::hResidualGlobalThetaDT_W
std::vector< TH1F * > hResidualGlobalThetaDT_W
Definition: MuonAlignmentAnalyzer.h:212
MuonAlignmentAnalyzer::hSANhits_Endcap
TH1F * hSANhits_Endcap
Definition: MuonAlignmentAnalyzer.h:98
MuonAlignmentAnalyzer::resLocalXRangeStation3
double resLocalXRangeStation3
Definition: MuonAlignmentAnalyzer.h:273
MuonAlignmentAnalyzer::hGBInvM_Barrel
TH1F * hGBInvM_Barrel
Definition: MuonAlignmentAnalyzer.h:113
MuonAlignmentAnalyzer::hGBPhivsEta
TH2F * hGBPhivsEta
Definition: MuonAlignmentAnalyzer.h:146
MuonAlignmentAnalyzer::hResidualLocalYDT_MB
std::vector< TH1F * > hResidualLocalYDT_MB
Definition: MuonAlignmentAnalyzer.h:201
MuonAlignmentAnalyzer::hSAPTDiffvsEta
TH2F * hSAPTDiffvsEta
Definition: MuonAlignmentAnalyzer.h:160
barePhi
T barePhi() const
Definition: Basic3DVectorLD.h:142
DTLayerId
Definition: DTLayerId.h:12
GeomDetEnumerators::CSC
Definition: GeomDetEnumerators.h:17
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
PV3DBase::bareTheta
T bareTheta() const
Definition: PV3DBase.h:71
MuonAlignmentAnalyzer::hprofLocalPositionCSC
TH2F * hprofLocalPositionCSC
Definition: MuonAlignmentAnalyzer.h:224
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonAlignmentAnalyzer::hResidualLocalXDT
TH1F * hResidualLocalXDT
Definition: MuonAlignmentAnalyzer.h:182
MuonAlignmentAnalyzer::doSAplots
bool doSAplots
Definition: MuonAlignmentAnalyzer.h:77
MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_MB
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
Definition: MuonAlignmentAnalyzer.h:218
MuonAlignmentAnalyzer::hGBPTvsEta
TH2F * hGBPTvsEta
Definition: MuonAlignmentAnalyzer.h:136
MuonAlignmentAnalyzer::hprofLocalThetaDT
TH1F * hprofLocalThetaDT
Definition: MuonAlignmentAnalyzer.h:243
MuonAlignmentAnalyzer::invMassRangeMax
double invMassRangeMax
Definition: MuonAlignmentAnalyzer.h:271
GeomDetEnumerators::DT
Definition: GeomDetEnumerators.h:18
MuonAlignmentAnalyzer::hSAPTRec
TH1F * hSAPTRec
Definition: MuonAlignmentAnalyzer.h:127
MuonAlignmentAnalyzer::hprofGlobalAngleDT
TH2F * hprofGlobalAngleDT
Definition: MuonAlignmentAnalyzer.h:237
MuonAlignmentAnalyzer::resLocalXRangeStation2
double resLocalXRangeStation2
Definition: MuonAlignmentAnalyzer.h:273
MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_W
std::vector< TH1F * > hResidualGlobalRPhiDT_W
Definition: MuonAlignmentAnalyzer.h:210
TrajectoryStateOnSurface::localPosition
LocalPoint localPosition() const
Definition: TrajectoryStateOnSurface.h:74
MuonAlignmentAnalyzer::hGBPTres_Barrel
TH1F * hGBPTres_Barrel
Definition: MuonAlignmentAnalyzer.h:155
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
MuonAlignmentAnalyzer::numberOfHits
int numberOfHits
Definition: MuonAlignmentAnalyzer.h:268
edm::LogError
Definition: MessageLogger.h:183
MuonAlignmentAnalyzer::hGBPTres_Endcap
TH1F * hGBPTres_Endcap
Definition: MuonAlignmentAnalyzer.h:156
MuonAlignmentAnalyzer::hResidualGlobalPhiCSC
TH1F * hResidualGlobalPhiCSC
Definition: MuonAlignmentAnalyzer.h:207
MuonAlignmentAnalyzer::hResidualGlobalPhiDT
TH1F * hResidualGlobalPhiDT
Definition: MuonAlignmentAnalyzer.h:203
MuonAlignmentAnalyzer::hGBNhits
TH1F * hGBNhits
Definition: MuonAlignmentAnalyzer.h:93
MuonAlignmentAnalyzer::unitsLocalPhi
std::vector< TH1F * > unitsLocalPhi
Definition: MuonAlignmentAnalyzer.h:173
PV3DBase::barePhi
T barePhi() const
Definition: PV3DBase.h:65
MuonAlignmentAnalyzer::hGBNmuons_Endcap
TH1F * hGBNmuons_Endcap
Definition: MuonAlignmentAnalyzer.h:88
MuonAlignmentAnalyzer::hSAChi2
TH1F * hSAChi2
Definition: MuonAlignmentAnalyzer.h:102
MuonAlignmentAnalyzer::unitsGlobalRZ
std::vector< TH1F * > unitsGlobalRZ
Definition: MuonAlignmentAnalyzer.h:179
MuonAlignmentAnalyzer::hprofLocalYDT
TH1F * hprofLocalYDT
Definition: MuonAlignmentAnalyzer.h:244
MuonAlignmentAnalyzer::nbins
unsigned int nbins
Definition: MuonAlignmentAnalyzer.h:276
MuonAlignmentAnalyzer::hprofGlobalAngleCSC
TH2F * hprofGlobalAngleCSC
Definition: MuonAlignmentAnalyzer.h:229
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
MuonAlignmentAnalyzer::hprofGlobalPositionRmsDT
TH2F * hprofGlobalPositionRmsDT
Definition: MuonAlignmentAnalyzer.h:238
CSCDetId
Definition: CSCDetId.h:26
MuonAlignmentAnalyzer::hSAPTres_Barrel
TH1F * hSAPTres_Barrel
Definition: MuonAlignmentAnalyzer.h:153
muonSimHitMatcherPSet.simTrack
simTrack
Definition: muonSimHitMatcherPSet.py:4
MuonAlignmentAnalyzer::hprofGlobalZDT
TH1F * hprofGlobalZDT
Definition: MuonAlignmentAnalyzer.h:252
MuonAlignmentAnalyzer::hSAChi2_Barrel
TH1F * hSAChi2_Barrel
Definition: MuonAlignmentAnalyzer.h:104
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
MuonAlignmentAnalyzer::hprofLocalAngleCSC
TH2F * hprofLocalAngleCSC
Definition: MuonAlignmentAnalyzer.h:225
MuonAlignmentAnalyzer::hSAPTRec_Barrel
TH1F * hSAPTRec_Barrel
Definition: MuonAlignmentAnalyzer.h:130
MuonAlignmentAnalyzer::hprofGlobalRPhiDT
TH1F * hprofGlobalRPhiDT
Definition: MuonAlignmentAnalyzer.h:249
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
MuonAlignmentAnalyzer::detectorCollection
std::vector< long > detectorCollection
Definition: MuonAlignmentAnalyzer.h:258
MuonAlignmentAnalyzer::resLocalYRangeStation2
double resLocalYRangeStation2
Definition: MuonAlignmentAnalyzer.h:274
MuonAlignmentAnalyzer::hResidualGlobalRPhiDT
TH1F * hResidualGlobalRPhiDT
Definition: MuonAlignmentAnalyzer.h:202
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
createfilelist.int
int
Definition: createfilelist.py:10
MuonAlignmentAnalyzer::hSimInvM_Endcap
TH1F * hSimInvM_Endcap
Definition: MuonAlignmentAnalyzer.h:119
MuonAlignmentAnalyzer::hprofGlobalPositionRmsCSC
TH2F * hprofGlobalPositionRmsCSC
Definition: MuonAlignmentAnalyzer.h:230
MuonAlignmentAnalyzer::hResidualLocalThetaDT
TH1F * hResidualLocalThetaDT
Definition: MuonAlignmentAnalyzer.h:184
MuonAlignmentAnalyzer::hGBChi2
TH1F * hGBChi2
Definition: MuonAlignmentAnalyzer.h:101
MuonAlignmentAnalyzer::hprofLocalThetaCSC
TH1F * hprofLocalThetaCSC
Definition: MuonAlignmentAnalyzer.h:247
MuonAlignmentAnalyzer::unitsLocalY
std::vector< TH1F * > unitsLocalY
Definition: MuonAlignmentAnalyzer.h:175
p1
double p1[4]
Definition: TauolaWrapper.h:89
cuy.ib
ib
Definition: cuy.py:662
MuonAlignmentAnalyzer::hSimPTvsPhi
TH2F * hSimPTvsPhi
Definition: MuonAlignmentAnalyzer.h:141
MuonAlignmentAnalyzer::hSAInvM
TH1F * hSAInvM
Definition: MuonAlignmentAnalyzer.h:110
MuonAlignmentAnalyzer::unitsLocalTheta
std::vector< TH1F * > unitsLocalTheta
Definition: MuonAlignmentAnalyzer.h:174
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
muonTagProbeFilters_cff.staTracks
staTracks
Definition: muonTagProbeFilters_cff.py:29
get
#define get
MuonAlignmentAnalyzer::theGLBMuonTag
edm::InputTag theGLBMuonTag
Definition: MuonAlignmentAnalyzer.h:67
MuonAlignmentAnalyzer::hSimPT
TH1F * hSimPT
Definition: MuonAlignmentAnalyzer.h:129
reco::Track::recHit
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
Definition: Track.h:94
MuonAlignmentAnalyzer::hGBInvM
TH1F * hGBInvM
Definition: MuonAlignmentAnalyzer.h:109
MuonAlignmentAnalyzer::hResidualGlobalPhiDT_W
std::vector< TH1F * > hResidualGlobalPhiDT_W
Definition: MuonAlignmentAnalyzer.h:211
MuonAlignmentAnalyzer::hprofGlobalPhiDT
TH1F * hprofGlobalPhiDT
Definition: MuonAlignmentAnalyzer.h:250
MuonAlignmentAnalyzer::hGBNhits_Barrel
TH1F * hGBNhits_Barrel
Definition: MuonAlignmentAnalyzer.h:94
MuonAlignmentAnalyzer::fs
edm::Service< TFileService > fs
Definition: MuonAlignmentAnalyzer.h:64
TrackingRecHit
Definition: TrackingRecHit.h:21
MuonAlignmentAnalyzer::hResidualLocalYCSC
TH1F * hResidualLocalYCSC
Definition: MuonAlignmentAnalyzer.h:189
MuonAlignmentAnalyzer::hResidualLocalXCSC_ME
std::vector< TH1F * > hResidualLocalXCSC_ME
Definition: MuonAlignmentAnalyzer.h:194
MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC
TH1F * hResidualGlobalRPhiCSC
Definition: MuonAlignmentAnalyzer.h:206
MuonAlignmentAnalyzer::hGBPTDiffvsPhi
TH2F * hGBPTDiffvsPhi
Definition: MuonAlignmentAnalyzer.h:163
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
MuonAlignmentAnalyzer::min4DTrackSegmentSize
unsigned int min4DTrackSegmentSize
Definition: MuonAlignmentAnalyzer.h:276
MuonAlignmentAnalyzer::theRecHits4DTagCSC
edm::InputTag theRecHits4DTagCSC
Definition: MuonAlignmentAnalyzer.h:72
reco::TransientTrack
Definition: TransientTrack.h:19
intDVector
std::vector< std::vector< int > > intDVector
Definition: MuonMillepedeTrackRefitter.h:34
MuonAlignmentAnalyzer::hprofLocalXCSC
TH1F * hprofLocalXCSC
Definition: MuonAlignmentAnalyzer.h:245
MuonAlignmentAnalyzer::hprofGlobalThetaCSC
TH1F * hprofGlobalThetaCSC
Definition: MuonAlignmentAnalyzer.h:255
MuonAlignmentAnalyzer::resPhiRange
double resPhiRange
Definition: MuonAlignmentAnalyzer.h:275
MuonAlignmentAnalyzer::unitsGlobalPhi
std::vector< TH1F * > unitsGlobalPhi
Definition: MuonAlignmentAnalyzer.h:177
MuonAlignmentAnalyzer::hSAInvM_Barrel
TH1F * hSAInvM_Barrel
Definition: MuonAlignmentAnalyzer.h:114
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
MuonAlignmentAnalyzer::hSAPTres
TH1F * hSAPTres
Definition: MuonAlignmentAnalyzer.h:149
MuonAlignmentAnalyzer::unitsLocalX
std::vector< TH1F * > unitsLocalX
Definition: MuonAlignmentAnalyzer.h:172
MuonAlignmentAnalyzer::hSAPTDiff
TH1F * hSAPTDiff
Definition: MuonAlignmentAnalyzer.h:158
Plane
Definition: Plane.h:16
MuonAlignmentAnalyzer::hResidualGlobalRCSC_ME
std::vector< TH1F * > hResidualGlobalRCSC_ME
Definition: MuonAlignmentAnalyzer.h:217
MuonAlignmentAnalyzer::hResidualLocalXCSC
TH1F * hResidualLocalXCSC
Definition: MuonAlignmentAnalyzer.h:186
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
relativeConstraints.chamber
chamber
Definition: relativeConstraints.py:53
MuonAlignmentAnalyzer::hGBPTvsPhi
TH2F * hGBPTvsPhi
Definition: MuonAlignmentAnalyzer.h:137
MuonAlignmentAnalyzer::hResidualGlobalPhiDT_MB
std::vector< TH1F * > hResidualGlobalPhiDT_MB
Definition: MuonAlignmentAnalyzer.h:219
MuonAlignmentAnalyzer::hprofGlobalPositionCSC
TH2F * hprofGlobalPositionCSC
Definition: MuonAlignmentAnalyzer.h:228
MuonAlignmentAnalyzer::hprofLocalPhiCSC
TH1F * hprofLocalPhiCSC
Definition: MuonAlignmentAnalyzer.h:246
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
MuonAlignmentAnalyzer::hResidualLocalYCSC_ME
std::vector< TH1F * > hResidualLocalYCSC_ME
Definition: MuonAlignmentAnalyzer.h:197
MuonAlignmentAnalyzer::hSAPTDiffvsPhi
TH2F * hSAPTDiffvsPhi
Definition: MuonAlignmentAnalyzer.h:161
MuonAlignmentAnalyzer::resLocalXRangeStation1
double resLocalXRangeStation1
Definition: MuonAlignmentAnalyzer.h:273
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
Cylinder
Definition: Cylinder.h:19
MuonAlignmentAnalyzer::hprofGlobalThetaDT
TH1F * hprofGlobalThetaDT
Definition: MuonAlignmentAnalyzer.h:251
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
DTChamberId
Definition: DTChamberId.h:14
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
MuonAlignmentAnalyzer::hResidualGlobalThetaCSC_ME
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
Definition: MuonAlignmentAnalyzer.h:216
MuonAlignmentAnalyzer::hprofLocalYCSC
TH1F * hprofLocalYCSC
Definition: MuonAlignmentAnalyzer.h:248
MuonAlignmentAnalyzer::hGBPTRec
TH1F * hGBPTRec
Definition: MuonAlignmentAnalyzer.h:128
MuonAlignmentAnalyzer::theDataType
std::string theDataType
Definition: MuonAlignmentAnalyzer.h:75
MuonAlignmentAnalyzer::hGBPTRec_Barrel
TH1F * hGBPTRec_Barrel
Definition: MuonAlignmentAnalyzer.h:131
MuonAlignmentAnalyzer::hGBInvM_Overlap
TH1F * hGBInvM_Overlap
Definition: MuonAlignmentAnalyzer.h:122
MuonAlignmentAnalyzer::hResidualGlobalZDT
TH1F * hResidualGlobalZDT
Definition: MuonAlignmentAnalyzer.h:205
MuonAlignmentAnalyzer::hGBinvPTvsNhits
TH2F * hGBinvPTvsNhits
Definition: MuonAlignmentAnalyzer.h:169
MuonAlignmentAnalyzer::hSAinvPTvsPhi
TH2F * hSAinvPTvsPhi
Definition: MuonAlignmentAnalyzer.h:167
MuonAlignmentAnalyzer::hResidualLocalThetaDT_MB
std::vector< TH1F * > hResidualLocalThetaDT_MB
Definition: MuonAlignmentAnalyzer.h:200
MuonAlignmentAnalyzer::hprofLocalXDT
TH1F * hprofLocalXDT
Definition: MuonAlignmentAnalyzer.h:241
MuonAlignmentAnalyzer::hSAinvPTvsEta
TH2F * hSAinvPTvsEta
Definition: MuonAlignmentAnalyzer.h:166
MuonAlignmentAnalyzer::ptRangeMax
double ptRangeMax
Definition: MuonAlignmentAnalyzer.h:271
MuonAlignmentAnalyzer::min1DTrackRecHitSize
unsigned int min1DTrackRecHitSize
Definition: MuonAlignmentAnalyzer.h:276
MuonAlignmentAnalyzer::hSANmuons_Endcap
TH1F * hSANmuons_Endcap
Definition: MuonAlignmentAnalyzer.h:89
MuonAlignmentAnalyzer::hSANmuons
TH1F * hSANmuons
Definition: MuonAlignmentAnalyzer.h:83
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
MuonAlignmentAnalyzer::hResidualLocalXDT_MB
std::vector< TH1F * > hResidualLocalXDT_MB
Definition: MuonAlignmentAnalyzer.h:198
edm::InputTag
Definition: InputTag.h:15
MuonAlignmentAnalyzer::hResidualLocalPhiDT
TH1F * hResidualLocalPhiDT
Definition: MuonAlignmentAnalyzer.h:183
alongMomentum
Definition: PropagationDirection.h:4
MuonAlignmentAnalyzer::hSAInvM_Endcap
TH1F * hSAInvM_Endcap
Definition: MuonAlignmentAnalyzer.h:118
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
GeomDet::subDetector
virtual SubDetector subDetector() const
Which subdetector.
Definition: GeomDet.cc:38
MuonAlignmentAnalyzer::hSAPTRec_Endcap
TH1F * hSAPTRec_Endcap
Definition: MuonAlignmentAnalyzer.h:133
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
MuonAlignmentAnalyzer::hGBPTDiffvsEta
TH2F * hGBPTDiffvsEta
Definition: MuonAlignmentAnalyzer.h:162
MuonAlignmentAnalyzer::hprofLocalPhiDT
TH1F * hprofLocalPhiDT
Definition: MuonAlignmentAnalyzer.h:242
MuonAlignmentAnalyzer::hSANhits
TH1F * hSANhits
Definition: MuonAlignmentAnalyzer.h:96
MuonAlignmentAnalyzer::numberOfSimTracks
int numberOfSimTracks
Definition: MuonAlignmentAnalyzer.h:265
MuonAlignmentAnalyzer::numberOfGBRecTracks
int numberOfGBRecTracks
Definition: MuonAlignmentAnalyzer.h:266