CMS 3D CMS Logo

AlignmentMonitorSurvey.cc
Go to the documentation of this file.
4 
6 
8  : AlignmentMonitorBase(cfg, "AlignmentMonitorSurvey"),
9  levelNames_(cfg.getUntrackedParameter<std::vector<std::string> >("surveyResiduals")) {}
10 
12  align::ID id;
14 
15  // fill 'theLevels' only once (and only if necessary)
16  if (theLevels.empty() && !levelNames_.empty()) {
17  auto alignableObjectId = AlignableObjectId::commonObjectIdProvider(pTracker(), pMuon());
18  for (const auto& levelName : levelNames_) {
19  theLevels.push_back(alignableObjectId.stringToId(levelName));
20  }
21  }
22 
23  double par[6]; // survey residual
24 
25  TTree* tree = directory("/iterN/")->make<TTree>("survey", "");
26 
27  tree->Branch("id", &id, "id/i");
28  tree->Branch("level", &level, "level/I");
29  tree->Branch("par", &par, "par[6]/D");
30 
31  const align::Alignables& all = pStore()->alignables();
32 
33  const unsigned int nAlignable = all.size();
34 
35  for (unsigned int i = 0; i < nAlignable; ++i) {
36  const Alignable* ali = all[i];
37 
38  id = ali->id();
39 
40  for (unsigned int l = 0; l < theLevels.size(); ++l) {
41  level = theLevels[l];
42 
43  SurveyResidual resid(*ali, level, true);
44  AlgebraicVector resParams = resid.sensorResidual();
45 
46  par[0] = resParams[0];
47  par[1] = resParams[1];
48  par[2] = resParams[2];
49  par[3] = resParams[3];
50  par[4] = resParams[4];
51  par[5] = resParams[5];
52 
53  tree->Fill();
54  }
55  }
56 }
57 
personalPlayback.level
level
Definition: personalPlayback.py:22
mps_fire.i
i
Definition: mps_fire.py:428
AlignmentParameterStore::alignables
const align::Alignables & alignables(void) const
get all alignables
Definition: AlignmentParameterStore.h:47
AlignmentMonitorBase::pTracker
AlignableTracker * pTracker()
Definition: AlignmentMonitorBase.h:111
TFileDirectory::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileDirectory.h:53
AlignmentMonitorBase::directory
TFileDirectory * directory(std::string dir)
Definition: AlignmentMonitorBase.cc:71
tree
Definition: tree.py:1
Alignable
Definition: Alignable.h:27
AlignableObjectId::commonObjectIdProvider
static AlignableObjectId commonObjectIdProvider(const AlignableObjectId &, const AlignableObjectId &)
Definition: AlignableObjectId.cc:335
AlignmentMonitorBase::pStore
AlignmentParameterStore * pStore()
Definition: AlignmentMonitorBase.h:113
SurveyResidual::sensorResidual
AlgebraicVector sensorResidual() const
Definition: SurveyResidual.cc:44
AlignmentMonitorSurvey
Definition: AlignmentMonitorSurvey.h:21
AlignmentMonitorPluginFactory
python.cmstools.all
def all(container)
workaround iterator generators for ROOT classes
Definition: cmstools.py:26
AlignmentMonitorSurvey::levelNames_
std::vector< std::string > levelNames_
Definition: AlignmentMonitorSurvey.h:30
AlignmentMonitorSurvey::book
void book() override
Book or retrieve histograms; MUST be reimplemented.
Definition: AlignmentMonitorSurvey.cc:11
AlgebraicVector
CLHEP::HepVector AlgebraicVector
Definition: AlgebraicObjects.h:13
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
AlignmentMonitorPluginFactory.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
align::StructureType
StructureType
Definition: StructureType.h:16
AlignmentMonitorSurvey::theLevels
std::vector< align::StructureType > theLevels
Definition: AlignmentMonitorSurvey.h:32
SurveyResidual.h
edm::ParameterSet
Definition: ParameterSet.h:47
align::ID
uint32_t ID
Definition: Definitions.h:24
AlignmentMonitorSurvey::AlignmentMonitorSurvey
AlignmentMonitorSurvey(const edm::ParameterSet &)
Definition: AlignmentMonitorSurvey.cc:7
Alignable::id
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
Definition: Alignable.h:180
AlignmentMonitorSurvey.h
AlignmentMonitorBase
Definition: AlignmentMonitorBase.h:42
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
fwlog::levelName
const char * levelName(LogLevel)
Definition: fwLog.cc:32
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:204
looper.cfg
cfg
Definition: looper.py:297
AlignableObjectId.h
align::Alignables
std::vector< Alignable * > Alignables
Definition: Utilities.h:31
std
Definition: JetResolutionObject.h:76
SurveyResidual
Definition: SurveyResidual.h:22
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
ParameterSet.h
AlignmentMonitorBase::pMuon
AlignableMuon * pMuon()
Definition: AlignmentMonitorBase.h:112