CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
AlignmentMonitorBase Class Referenceabstract

#include <Alignment/CommonAlignmentMonitor/interface/AlignmentMonitorBase.h>

Inheritance diagram for AlignmentMonitorBase:
AlignmentMonitorGeneric AlignmentMonitorMuonResiduals AlignmentMonitorMuonSystemMap1D AlignmentMonitorMuonVsCurvature AlignmentMonitorSegmentDifferences AlignmentMonitorSurvey AlignmentMonitorTemplate AlignmentMonitorTracksFromTrajectories

Public Types

typedef std::pair< const
Trajectory *, const
reco::Track * > 
ConstTrajTrackPair
 
typedef std::vector
< ConstTrajTrackPair
ConstTrajTrackPairCollection
 

Public Member Functions

virtual void afterAlignment (const edm::EventSetup &iSetup)
 
 AlignmentMonitorBase (const edm::ParameterSet &cfg, std::string name)
 Constructor. More...
 
void beginOfJob (AlignableTracker *pTracker, AlignableMuon *pMuon, AlignmentParameterStore *pStore)
 Called at beginning of job: don't reimplement. More...
 
virtual void book ()=0
 Book or retrieve histograms; MUST be reimplemented. More...
 
void duringLoop (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
 Called for each event: don't reimplement. More...
 
void endOfJob ()
 Called at end of processing: don't implement. More...
 
void endOfLoop (const edm::EventSetup &iSetup)
 Called at end of loop: don't reimplement. More...
 
virtual void event (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
 Called for each event (by "run()"): may be reimplemented. More...
 
void startingNewLoop ()
 Called at beginning of loop: don't reimplement. More...
 
virtual ~AlignmentMonitorBase ()
 Destructor. More...
 

Protected Member Functions

TH1F * book1D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
 
TH2F * book2D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
 
TProfile * bookProfile (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY=1, double lowY=0., double highY=0., const char *option="s")
 
TFileDirectorydirectory (std::string dir)
 
int iteration ()
 
AlignableMuonpMuon ()
 
AlignableNavigatorpNavigator ()
 
AlignmentParameterStorepStore ()
 
AlignableTrackerpTracker ()
 

Private Member Functions

 AlignmentMonitorBase (const AlignmentMonitorBase &)
 
const AlignmentMonitorBaseoperator= (const AlignmentMonitorBase &)
 

Private Attributes

std::map< std::vector
< std::string >
, TFileDirectory * > 
m_baseDirMap
 
int m_iteration
 
std::map< std::vector
< std::string >
, TFileDirectory * > 
m_iterDirMap
 
AlignableMuonmp_muon
 
AlignableNavigatormp_navigator
 
AlignmentParameterStoremp_store
 
AlignableTrackermp_tracker
 

Detailed Description

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

Usage: <usage>

Definition at line 42 of file AlignmentMonitorBase.h.

Member Typedef Documentation

Definition at line 44 of file AlignmentMonitorBase.h.

Definition at line 45 of file AlignmentMonitorBase.h.

Constructor & Destructor Documentation

AlignmentMonitorBase::AlignmentMonitorBase ( const edm::ParameterSet cfg,
std::string  name 
)

Constructor.

Definition at line 40 of file AlignmentMonitorBase.cc.

References m_baseDirMap, and TFileDirectory::mkdir().

41  : m_iteration(0), mp_tracker(0), mp_muon(0), mp_store(0) {
42  edm::Service<TFileService> tFileService;
43  m_baseDirMap[std::vector<std::string>()] = new TFileDirectory(tFileService->mkdir(name));
44 }
std::map< std::vector< std::string >, TFileDirectory * > m_baseDirMap
AlignmentParameterStore * mp_store
AlignableTracker * mp_tracker
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
virtual AlignmentMonitorBase::~AlignmentMonitorBase ( )
inlinevirtual

Destructor.

Definition at line 51 of file AlignmentMonitorBase.h.

51 {}
AlignmentMonitorBase::AlignmentMonitorBase ( const AlignmentMonitorBase )
private

Member Function Documentation

virtual void AlignmentMonitorBase::afterAlignment ( const edm::EventSetup iSetup)
inlinevirtual
void AlignmentMonitorBase::beginOfJob ( AlignableTracker pTracker,
AlignableMuon pMuon,
AlignmentParameterStore pStore 
)

Called at beginning of job: don't reimplement.

Definition at line 62 of file AlignmentMonitorBase.cc.

References mp_muon, mp_navigator, mp_store, mp_tracker, pMuon(), pStore(), and pTracker().

62  {
64  mp_muon = pMuon;
65  mp_store = pStore;
66 
67  if (!pMuon) mp_navigator = new AlignableNavigator(pTracker);
68  else if (!pTracker) mp_navigator = new AlignableNavigator(pMuon);
69  else mp_navigator = new AlignableNavigator(pTracker, pMuon);
70 }
AlignableMuon * pMuon()
AlignmentParameterStore * pStore()
AlignmentParameterStore * mp_store
AlignableTracker * pTracker()
AlignableTracker * mp_tracker
AlignableNavigator * mp_navigator
virtual void AlignmentMonitorBase::book ( )
pure virtual
TH1F * AlignmentMonitorBase::book1D ( std::string  dir,
std::string  name,
std::string  title,
int  nchX,
double  lowX,
double  highX 
)
protected

Use this every time you book a histogram (so that AlignmentMonitorBase can find your histograms in a collector (parallel-processing) job)

Definition at line 132 of file AlignmentMonitorBase.cc.

References directory(), and TFileDirectory::make().

Referenced by AlignmentMonitorTemplate::book(), AlignmentMonitorMuonResiduals::book(), AlignmentMonitorGeneric::book(), AlignmentMonitorSegmentDifferences::book(), AlignmentMonitorTracksFromTrajectories::book(), AlignmentMonitorMuonVsCurvature::book(), and MuonSystemMapPlot1D::MuonSystemMapPlot1D().

132  {
133  return directory(dir)->make<TH1F>(name.c_str(), title.c_str(), nchX, lowX, highX);
134 }
TFileDirectory * directory(std::string dir)
T * make() const
make new ROOT object
dbl *** dir
Definition: mlp_gen.cc:35
TH2F * AlignmentMonitorBase::book2D ( std::string  dir,
std::string  name,
std::string  title,
int  nchX,
double  lowX,
double  highX,
int  nchY,
double  lowY,
double  highY 
)
protected

Definition at line 145 of file AlignmentMonitorBase.cc.

References directory(), and TFileDirectory::make().

Referenced by AlignmentMonitorMuonVsCurvature::book(), and MuonSystemMapPlot1D::MuonSystemMapPlot1D().

145  {
146  return directory(dir)->make<TH2F>(name.c_str(), title.c_str(), nchX, lowX, highX, nchY, lowY, highY);
147 }
TFileDirectory * directory(std::string dir)
T * make() const
make new ROOT object
dbl *** dir
Definition: mlp_gen.cc:35
TProfile * AlignmentMonitorBase::bookProfile ( std::string  dir,
std::string  name,
std::string  title,
int  nchX,
double  lowX,
double  highX,
int  nchY = 1,
double  lowY = 0.,
double  highY = 0.,
const char *  option = "s" 
)
protected

Definition at line 136 of file AlignmentMonitorBase.cc.

References directory(), and TFileDirectory::make().

Referenced by AlignmentMonitorSegmentDifferences::book(), AlignmentMonitorMuonVsCurvature::book(), and MuonSystemMapPlot1D::MuonSystemMapPlot1D().

136  {
137  if (lowY == highY) {
138  return directory(dir)->make<TProfile>(name.c_str(), title.c_str(), nchX, lowX, highX, option);
139  }
140  else {
141  return directory(dir)->make<TProfile>(name.c_str(), title.c_str(), nchX, lowX, highX, lowY, highY, option);
142  }
143 }
TFileDirectory * directory(std::string dir)
T * make() const
make new ROOT object
dbl *** dir
Definition: mlp_gen.cc:35
TFileDirectory * AlignmentMonitorBase::directory ( std::string  dir)
protected

Definition at line 98 of file AlignmentMonitorBase.cc.

References i, prof2calltree::last, m_baseDirMap, m_iterDirMap, TFileDirectory::mkdir(), and pos.

Referenced by AlignmentMonitorSurvey::book(), AlignmentMonitorMuonResiduals::book(), book1D(), book2D(), and bookProfile().

98  {
99  std::string::size_type lastPos = dir.find_first_not_of("/", 0);
100  std::string::size_type pos = dir.find_first_of("/", lastPos);
101  std::vector<std::string> dirs;
102 
103  bool isIter = false;
104  if (dir.substr(lastPos, pos - lastPos) == std::string("iterN")) {
105  isIter = true;
106  lastPos = dir.find_first_not_of("/", pos);
107  pos = dir.find_first_of("/", lastPos);
108  }
109 
110  while (std::string::npos != pos || std::string::npos != lastPos) {
111  dirs.push_back(dir.substr(lastPos, pos - lastPos));
112  lastPos = dir.find_first_not_of("/", pos);
113  pos = dir.find_first_of("/", lastPos);
114  }
115 
116  std::map<std::vector<std::string>, TFileDirectory*> *theMap;
117  if (isIter) theMap = &m_iterDirMap;
118  else theMap = &m_baseDirMap;
119 
120  std::vector<std::string> partial;
121  TFileDirectory *last = (*theMap)[partial];
122  for (unsigned int i = 0; i < dirs.size(); i++) {
123  partial.push_back(dirs[i]);
124  if (theMap->find(partial) == theMap->end()) {
125  (*theMap)[partial] = new TFileDirectory(last->mkdir(dirs[i]));
126  }
127  last = (*theMap)[partial];
128  }
129  return last;
130 }
int i
Definition: DBlmapReader.cc:9
std::map< std::vector< std::string >, TFileDirectory * > m_baseDirMap
std::map< std::vector< std::string >, TFileDirectory * > m_iterDirMap
uint16_t size_type
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
dbl *** dir
Definition: mlp_gen.cc:35
void AlignmentMonitorBase::duringLoop ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const ConstTrajTrackPairCollection iTrajTracks 
)

Called for each event: don't reimplement.

Definition at line 87 of file AlignmentMonitorBase.cc.

References event().

87  {
88  event(iEvent, iSetup, iTrajTracks);
89 }
virtual void event(const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
Called for each event (by &quot;run()&quot;): may be reimplemented.
void AlignmentMonitorBase::endOfJob ( )

Called at end of processing: don't implement.

Definition at line 95 of file AlignmentMonitorBase.cc.

95  {
96 }
void AlignmentMonitorBase::endOfLoop ( const edm::EventSetup iSetup)

Called at end of loop: don't reimplement.

Definition at line 91 of file AlignmentMonitorBase.cc.

References afterAlignment().

91  {
92  afterAlignment(iSetup);
93 }
virtual void afterAlignment(const edm::EventSetup &iSetup)
virtual void AlignmentMonitorBase::event ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const ConstTrajTrackPairCollection iTrajTracks 
)
inlinevirtual
int AlignmentMonitorBase::iteration ( )
inlineprotected
const AlignmentMonitorBase& AlignmentMonitorBase::operator= ( const AlignmentMonitorBase )
private
AlignableMuon* AlignmentMonitorBase::pMuon ( )
inlineprotected
AlignableNavigator* AlignmentMonitorBase::pNavigator ( )
inlineprotected
AlignmentParameterStore* AlignmentMonitorBase::pStore ( )
inlineprotected

Definition at line 92 of file AlignmentMonitorBase.h.

References mp_store.

Referenced by beginOfJob(), AlignmentMonitorSurvey::book(), AlignmentMonitorTemplate::book(), and AlignmentMonitorGeneric::book().

92 { return mp_store; };
AlignmentParameterStore * mp_store
AlignableTracker* AlignmentMonitorBase::pTracker ( )
inlineprotected

Definition at line 90 of file AlignmentMonitorBase.h.

References mp_tracker.

Referenced by beginOfJob().

90 { return mp_tracker; };
AlignableTracker * mp_tracker
void AlignmentMonitorBase::startingNewLoop ( )

Called at beginning of loop: don't reimplement.

Definition at line 72 of file AlignmentMonitorBase.cc.

References book(), TrackerOfflineValidation_Dqm_cff::dirName, i, iteration(), m_baseDirMap, m_iteration, m_iterDirMap, and python.multivaluedict::map().

72  {
73  m_iteration++;
74 
75  for (std::map<std::vector<std::string>, TFileDirectory*>::const_iterator i = m_iterDirMap.begin(); i != m_iterDirMap.end(); ++i) {
76  delete i->second;
77  }
78  m_iterDirMap.clear();
79 
80  std::ostringstream dirName;
81  dirName << "iter" << iteration();
82  m_iterDirMap[std::vector<std::string>()] = new TFileDirectory(m_baseDirMap[std::vector<std::string>()]->mkdir(dirName.str()));
83 
84  book();
85 }
int i
Definition: DBlmapReader.cc:9
std::map< std::vector< std::string >, TFileDirectory * > m_baseDirMap
std::map< std::vector< std::string >, TFileDirectory * > m_iterDirMap
virtual void book()=0
Book or retrieve histograms; MUST be reimplemented.

Member Data Documentation

std::map<std::vector<std::string>, TFileDirectory*> AlignmentMonitorBase::m_baseDirMap
private

Definition at line 107 of file AlignmentMonitorBase.h.

Referenced by AlignmentMonitorBase(), directory(), and startingNewLoop().

int AlignmentMonitorBase::m_iteration
private

Definition at line 101 of file AlignmentMonitorBase.h.

Referenced by iteration(), and startingNewLoop().

std::map<std::vector<std::string>, TFileDirectory*> AlignmentMonitorBase::m_iterDirMap
private

Definition at line 107 of file AlignmentMonitorBase.h.

Referenced by directory(), and startingNewLoop().

AlignableMuon* AlignmentMonitorBase::mp_muon
private

Definition at line 103 of file AlignmentMonitorBase.h.

Referenced by beginOfJob(), and pMuon().

AlignableNavigator* AlignmentMonitorBase::mp_navigator
private

Definition at line 105 of file AlignmentMonitorBase.h.

Referenced by beginOfJob(), and pNavigator().

AlignmentParameterStore* AlignmentMonitorBase::mp_store
private

Definition at line 104 of file AlignmentMonitorBase.h.

Referenced by beginOfJob(), and pStore().

AlignableTracker* AlignmentMonitorBase::mp_tracker
private

Definition at line 102 of file AlignmentMonitorBase.h.

Referenced by beginOfJob(), and pTracker().