CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes
CTPPSIncludeAlignmentsFromXML Class Reference
Inheritance diagram for CTPPSIncludeAlignmentsFromXML:
edm::ESProducer edm::EventSetupRecordIntervalFinder edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

Public Member Functions

 CTPPSIncludeAlignmentsFromXML (const edm::ParameterSet &p)
 
std::unique_ptr< RPAlignmentCorrectionsDataproduceMeasured (const RPMeasuredAlignmentRecord &)
 
std::unique_ptr< RPAlignmentCorrectionsDataproduceMisaligned (const RPMisalignedAlignmentRecord &)
 
std::unique_ptr< RPAlignmentCorrectionsDataproduceReal (const RPRealAlignmentRecord &)
 
 ~CTPPSIncludeAlignmentsFromXML () override
 
- Public Member Functions inherited from edm::ESProducer
 ESProducer ()
 
 ~ESProducer ()(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
void newInterval (const eventsetup::EventSetupRecordKey &iRecordType, const ValidityInterval &iInterval) override
 overrides DataProxyProvider method More...
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
 DataProxyProvider ()
 
const ComponentDescriptiondescription () const
 
bool isUsingRecord (const EventSetupRecordKey &) const
 
const KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey) const
 
void resetProxies (const EventSetupRecordKey &iRecordType)
 
void resetProxiesIfTransient (const EventSetupRecordKey &iRecordType)
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 
- Public Member Functions inherited from edm::EventSetupRecordIntervalFinder
const eventsetup::ComponentDescriptiondescriptionForFinder () const
 
 EventSetupRecordIntervalFinder ()
 
std::set< eventsetup::EventSetupRecordKeyfindingForRecords () const
 
const ValidityIntervalfindIntervalFor (const eventsetup::EventSetupRecordKey &, const IOVSyncValue &)
 
void setDescriptionForFinder (const eventsetup::ComponentDescription &iDescription)
 
virtual ~EventSetupRecordIntervalFinder () noexcept(false)
 

Protected Member Functions

RPAlignmentCorrectionsDataSequence Merge (const std::vector< RPAlignmentCorrectionsDataSequence > &) const
 merges an array of sequences to one More...
 
void PrepareSequence (const std::string &label, RPAlignmentCorrectionsDataSequence &seq, const std::vector< std::string > &files) const
 builds a sequence of corrections from provided sources and runs a few checks More...
 
void setIntervalFor (const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) override
 
- Protected Member Functions inherited from edm::ESProducer
template<typename T >
void setWhatProduced (T *iThis, const es::Label &iLabel=es::Label())
 
template<typename T >
void setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
void setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
void setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
void setWhatProduced (T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
void registerProxies (const eventsetup::EventSetupRecordKey &iRecord, KeyedProxies &aProxyList) override
 override DataProxyProvider method More...
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
void eraseAll (const EventSetupRecordKey &iRecordKey)
 deletes all the Proxies in aStream More...
 
void invalidateProxies (const EventSetupRecordKey &iRecordKey)
 
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &)
 
- Protected Member Functions inherited from edm::EventSetupRecordIntervalFinder
template<class T >
void findingRecord ()
 
void findingRecordWithKey (const eventsetup::EventSetupRecordKey &)
 

Static Protected Member Functions

static edm::EventID nextLS (const edm::EventID &src)
 
static edm::EventID previousLS (const edm::EventID &src)
 

Protected Attributes

RPAlignmentCorrectionsData acMeasured
 
RPAlignmentCorrectionsData acMisaligned
 
RPAlignmentCorrectionsData acReal
 
RPAlignmentCorrectionsDataSequence acsMeasured
 
RPAlignmentCorrectionsDataSequence acsMisaligned
 
RPAlignmentCorrectionsDataSequence acsReal
 
unsigned int verbosity
 

Additional Inherited Members

- Public Types inherited from edm::eventsetup::DataProxyProvider
typedef std::vector< std::pair< DataKey, edm::propagate_const< std::shared_ptr< DataProxy > > > > KeyedProxies
 
typedef std::vector< EventSetupRecordKeyKeys
 
typedef std::map< EventSetupRecordKey, KeyedProxiesRecordProxies
 
- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Loads alignment corrections to EventSetup.

Definition at line 35 of file CTPPSIncludeAlignmentsFromXML.cc.

Constructor & Destructor Documentation

CTPPSIncludeAlignmentsFromXML::CTPPSIncludeAlignmentsFromXML ( const edm::ParameterSet p)

Definition at line 91 of file CTPPSIncludeAlignmentsFromXML.cc.

References acsMeasured, acsMisaligned, acsReal, f, edm::ParameterSet::getParameter(), PrepareSequence(), produceMeasured(), produceMisaligned(), produceReal(), and edm::ESProducer::setWhatProduced().

91  :
92  verbosity(pSet.getUntrackedParameter<unsigned int>("verbosity", 0))
93 {
94  std::vector<std::string> measuredFiles;
95  for (const auto &f: pSet.getParameter< vector<string> >("MeasuredFiles"))
96  measuredFiles.push_back(edm::FileInPath(f).fullPath());
97  PrepareSequence("Measured", acsMeasured, measuredFiles);
98 
99  std::vector<std::string> realFiles;
100  for (const auto &f: pSet.getParameter< vector<string> >("RealFiles"))
101  realFiles.push_back(edm::FileInPath(f).fullPath());
102  PrepareSequence("Real", acsReal, realFiles);
103 
104  std::vector<std::string> misalignedFiles;
105  for (const auto &f: pSet.getParameter< vector<string> >("MisalignedFiles"))
106  misalignedFiles.push_back(edm::FileInPath(f).fullPath());
107  PrepareSequence("Misaligned", acsMisaligned, misalignedFiles);
108 
112 
113  findingRecord<RPMeasuredAlignmentRecord>();
114  findingRecord<RPRealAlignmentRecord>();
115  findingRecord<RPMisalignedAlignmentRecord>();
116 }
std::unique_ptr< RPAlignmentCorrectionsData > produceMeasured(const RPMeasuredAlignmentRecord &)
RPAlignmentCorrectionsDataSequence acsMisaligned
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
Definition: ESProducer.h:115
void PrepareSequence(const std::string &label, RPAlignmentCorrectionsDataSequence &seq, const std::vector< std::string > &files) const
builds a sequence of corrections from provided sources and runs a few checks
std::unique_ptr< RPAlignmentCorrectionsData > produceMisaligned(const RPMisalignedAlignmentRecord &)
double f[11][100]
RPAlignmentCorrectionsDataSequence acsReal
std::unique_ptr< RPAlignmentCorrectionsData > produceReal(const RPRealAlignmentRecord &)
RPAlignmentCorrectionsDataSequence acsMeasured
CTPPSIncludeAlignmentsFromXML::~CTPPSIncludeAlignmentsFromXML ( )
override

Definition at line 120 of file CTPPSIncludeAlignmentsFromXML.cc.

121 {
122 }

Member Function Documentation

RPAlignmentCorrectionsDataSequence CTPPSIncludeAlignmentsFromXML::Merge ( const std::vector< RPAlignmentCorrectionsDataSequence > &  seqs) const
protected

merges an array of sequences to one

Definition at line 126 of file CTPPSIncludeAlignmentsFromXML.cc.

References PVValHelper::add(), RPAlignmentCorrectionsData::addCorrections(), corr, edm::IOVSyncValue::eventID(), edm::ValidityInterval::first(), RPAlignmentCorrectionsDataSequence::insert(), RPAlignmentCorrectionsMethods::iovValueToString(), edm::ValidityInterval::last(), genParticles_cff::map, nextLS(), AlCaHLTBitMon_ParallelJobs::p, previousLS(), mps_fire::result, and verbosity.

Referenced by nextLS(), and PrepareSequence().

127 {
128  // find interval boundaries
129  map< edm::EventID, vector< pair<bool, const RPAlignmentCorrectionsData*> > > bounds;
130 
131  for (const auto & seq : seqs)
132  {
133  for (const auto &p : seq)
134  {
135  const ValidityInterval &iov = p.first;
136  const RPAlignmentCorrectionsData *corr = & p.second;
137 
138  const EventID &event_first = iov.first().eventID();
139  bounds[event_first].emplace_back( pair<bool, const RPAlignmentCorrectionsData*>(true, corr) );
140 
141  const EventID &event_after = nextLS(iov.last().eventID());
142  bounds[event_after].emplace_back( pair<bool, const RPAlignmentCorrectionsData*>(false, corr) );
143  }
144  }
145 
146  // build correction sums per interval
147  set<const RPAlignmentCorrectionsData*> accumulator;
149  for (map< EventID, vector< pair<bool, const RPAlignmentCorrectionsData*> > >::const_iterator tit = bounds.begin(); tit != bounds.end(); ++tit)
150  {
151  for (const auto & cit : tit->second)
152  {
153  bool add = cit.first;
154  const RPAlignmentCorrectionsData *corr = cit.second;
155 
156  if (add)
157  accumulator.insert(corr);
158  else
159  accumulator.erase(corr);
160  }
161 
162  auto tit_next = tit;
163  tit_next++;
164  if (tit_next == bounds.end())
165  break;
166 
167  const EventID &event_first = tit->first;
168  const EventID &event_last = previousLS(tit_next->first);
169 
170  if (verbosity)
171  {
172  LogVerbatim("CTPPSIncludeAlignmentsFromXML")
175  << ": alignment blocks " << accumulator.size();
176  }
177 
179  for (auto sit : accumulator)
180  corr_sum.addCorrections(*sit);
181 
182  result.insert(edm::ValidityInterval(edm::IOVSyncValue(event_first), edm::IOVSyncValue(event_last)), corr_sum);
183  }
184 
185  return result;
186 }
Time sequence of alignment corrections. I/O methods have been factored out to: Geometry/VeryForwardGe...
const EventID & eventID() const
Definition: IOVSyncValue.h:42
void insert(const edm::ValidityInterval &iov, const RPAlignmentCorrectionsData &data)
const IOVSyncValue & last() const
static edm::EventID previousLS(const edm::EventID &src)
void addCorrections(const RPAlignmentCorrectionsData &, bool sumErrors=true, bool addSh=true, bool addRot=true)
adds (merges) corrections on top of the current values
JetCorrectorParameters corr
Definition: classes.h:5
void add(std::map< std::string, TH1 * > &h, TH1 *hist)
Container for CTPPS RP alignment corrections. The corrections are stored on two levels - RP and senso...
static edm::EventID nextLS(const edm::EventID &src)
const IOVSyncValue & first() const
static std::string iovValueToString(const edm::IOVSyncValue &)
static edm::EventID CTPPSIncludeAlignmentsFromXML::nextLS ( const edm::EventID src)
inlinestaticprotected

Definition at line 63 of file CTPPSIncludeAlignmentsFromXML.cc.

References edm::EventID::event(), PatBasicFWLiteAnalyzer::files, diffTwoXMLs::label, edm::EventID::luminosityBlock(), edm::EventID::maxLuminosityBlockNumber(), edm::EventID::maxRunNumber(), Merge(), PrepareSequence(), edm::EventID::run(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by Merge().

64  {
66  {
67  if (src.run() == edm::EventID::maxRunNumber())
68  return src;
69 
70  return edm::EventID(src.run() + 1, 0, src.event());
71  }
72 
73  return edm::EventID(src.run(), src.luminosityBlock() + 1, src.event());
74  }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
static RunNumber_t maxRunNumber()
Definition: EventID.h:103
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
Definition: EventID.h:107
void CTPPSIncludeAlignmentsFromXML::PrepareSequence ( const std::string &  label,
RPAlignmentCorrectionsDataSequence seq,
const std::vector< std::string > &  files 
) const
protected

builds a sequence of corrections from provided sources and runs a few checks

Definition at line 190 of file CTPPSIncludeAlignmentsFromXML.cc.

References FrontierConditions_GlobalTag_cff::file, RPAlignmentCorrectionsMethods::loadFromXML(), Merge(), and verbosity.

Referenced by CTPPSIncludeAlignmentsFromXML(), and nextLS().

191 {
192  if (verbosity)
193  LogVerbatim(">> CTPPSIncludeAlignmentsFromXML") << "CTPPSIncludeAlignmentsFromXML::PrepareSequence(" << label << ")";
194 
195  vector<RPAlignmentCorrectionsDataSequence> sequences;
196  for (const auto & file : files)
197  sequences.emplace_back(RPAlignmentCorrectionsMethods::loadFromXML(file));
198 
199  seq = Merge(sequences);
200 }
static RPAlignmentCorrectionsDataSequence loadFromXML(const std::string &fileName)
loads sequence of alignment corrections from XML file
RPAlignmentCorrectionsDataSequence Merge(const std::vector< RPAlignmentCorrectionsDataSequence > &) const
merges an array of sequences to one
static edm::EventID CTPPSIncludeAlignmentsFromXML::previousLS ( const edm::EventID src)
inlinestaticprotected

Definition at line 52 of file CTPPSIncludeAlignmentsFromXML.cc.

References edm::EventID::event(), edm::EventID::luminosityBlock(), edm::EventID::maxLuminosityBlockNumber(), edm::EventID::maxRunNumber(), and edm::EventID::run().

Referenced by Merge(), and setIntervalFor().

53  {
55  return src;
56 
57  if (src.luminosityBlock() == 0)
59 
60  return edm::EventID(src.run(), src.luminosityBlock() - 1, src.event());
61  }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
static RunNumber_t maxRunNumber()
Definition: EventID.h:103
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
Definition: EventID.h:107
std::unique_ptr< RPAlignmentCorrectionsData > CTPPSIncludeAlignmentsFromXML::produceMeasured ( const RPMeasuredAlignmentRecord iRecord)

Definition at line 204 of file CTPPSIncludeAlignmentsFromXML.cc.

References acMeasured.

Referenced by CTPPSIncludeAlignmentsFromXML().

205 {
206  return std::make_unique<RPAlignmentCorrectionsData>(acMeasured);
207 }
std::unique_ptr< RPAlignmentCorrectionsData > CTPPSIncludeAlignmentsFromXML::produceMisaligned ( const RPMisalignedAlignmentRecord iRecord)

Definition at line 218 of file CTPPSIncludeAlignmentsFromXML.cc.

References acMisaligned.

Referenced by CTPPSIncludeAlignmentsFromXML().

219 {
220  return std::make_unique<RPAlignmentCorrectionsData>(acMisaligned);
221 }
std::unique_ptr< RPAlignmentCorrectionsData > CTPPSIncludeAlignmentsFromXML::produceReal ( const RPRealAlignmentRecord iRecord)

Definition at line 211 of file CTPPSIncludeAlignmentsFromXML.cc.

References acReal.

Referenced by CTPPSIncludeAlignmentsFromXML().

212 {
213  return std::make_unique<RPAlignmentCorrectionsData>(acReal);
214 }
void CTPPSIncludeAlignmentsFromXML::setIntervalFor ( const edm::eventsetup::EventSetupRecordKey key,
const edm::IOVSyncValue iosv,
edm::ValidityInterval valInt 
)
overrideprotectedvirtual

Implements edm::EventSetupRecordIntervalFinder.

Definition at line 225 of file CTPPSIncludeAlignmentsFromXML.cc.

References acMeasured, acMisaligned, acReal, acsMeasured, acsMisaligned, acsReal, DEFINE_FWK_EVENTSETUP_SOURCE, edm::IOVSyncValue::endOfTime(), edm::IOVSyncValue::eventID(), Exception, edm::ValidityInterval::first(), RPAlignmentCorrectionsMethods::iovValueToString(), edm::ValidityInterval::last(), edm::EventID::luminosityBlock(), edm::EventID::maxLuminosityBlockNumber(), edm::EventID::maxRunNumber(), edm::eventsetup::EventSetupRecordKey::name(), previousLS(), edm::EventID::run(), edm::IOVSyncValue::time(), edm::Timestamp::unixTime(), and verbosity.

227 {
228  if (verbosity)
229  {
230  time_t unixTime = iosv.time().unixTime();
231  char timeStr[50];
232  strftime(timeStr, 50, "%F %T", localtime(&unixTime));
233 
234  LogVerbatim("CTPPSIncludeAlignmentsFromXML")
235  << ">> CTPPSIncludeAlignmentsFromXML::setIntervalFor(" << key.name() << ")";
236 
237  LogVerbatim("CTPPSIncludeAlignmentsFromXML")
238  << " event=" << iosv.eventID() << ", UNIX timestamp=" << unixTime << " (" << timeStr << ")";
239  }
240 
241  // determine what sequence and corrections should be used
242  RPAlignmentCorrectionsDataSequence *p_seq = nullptr;
243  RPAlignmentCorrectionsData *p_corr = nullptr;
244 
245  if (strcmp(key.name(), "RPMeasuredAlignmentRecord") == 0)
246  {
247  p_seq = &acsMeasured;
248  p_corr = &acMeasured;
249  }
250 
251  if (strcmp(key.name(), "RPRealAlignmentRecord") == 0)
252  {
253  p_seq = &acsReal;
254  p_corr = &acReal;
255  }
256 
257  if (strcmp(key.name(), "RPMisalignedAlignmentRecord") == 0)
258  {
259  p_seq = &acsMisaligned;
260  p_corr = &acMisaligned;
261  }
262 
263  if (p_seq == nullptr)
264  throw cms::Exception("CTPPSIncludeAlignmentsFromXML::setIntervalFor") << "Unknown record " << key.name();
265 
266  // find the corresponding interval
267  bool next_exists = false;
268  const edm::EventID &event_curr = iosv.eventID();
270 
271  for (const auto &it: *p_seq)
272  {
273  const auto &it_event_first = it.first.first().eventID();
274  const auto &it_event_last = it.first.last().eventID();
275 
276  bool it_contained_lo = ( (it_event_first.run() < event_curr.run()) ||
277  ((it_event_first.run() == event_curr.run()) && (it_event_first.luminosityBlock() <= event_curr.luminosityBlock())) );
278 
279  bool it_contained_up = ( (it_event_last.run() > event_curr.run()) ||
280  ((it_event_last.run() == event_curr.run()) && (it_event_last.luminosityBlock() >= event_curr.luminosityBlock())) );
281 
282  if (it_contained_lo && it_contained_up)
283  {
284  valInt = it.first;
285  *p_corr = it.second;
286 
287  if (verbosity)
288  {
289  LogVerbatim("CTPPSIncludeAlignmentsFromXML")
290  << " setting validity interval ["
292  << ", " << RPAlignmentCorrectionsMethods::iovValueToString(valInt.last()) << "]";
293  }
294 
295  return;
296  }
297 
298  bool it_in_future = ( (it_event_first.run() > event_curr.run()) ||
299  ((it_event_first.run() == event_curr.run() && (it_event_first.luminosityBlock() > event_curr.luminosityBlock()))) );
300 
301  if (it_in_future)
302  {
303  next_exists = true;
304  if (event_next_start > it_event_first)
305  event_next_start = it_event_first;
306  }
307  }
308 
309  // no interval found, set empty corrections
310  *p_corr = RPAlignmentCorrectionsData();
311 
312  if (!next_exists)
313  {
314  valInt = ValidityInterval(iosv, iosv.endOfTime());
315  } else {
316  const EventID &event_last = previousLS(event_next_start);
317  valInt = ValidityInterval(iosv, IOVSyncValue(event_last));
318  }
319 
320  if (verbosity)
321  {
322  LogVerbatim("CTPPSIncludeAlignmentsFromXML")
323  << " setting validity interval ["
325  << ", " << RPAlignmentCorrectionsMethods::iovValueToString(valInt.last()) << "] (empty alignment corrections)";
326  }
327 }
RunNumber_t run() const
Definition: EventID.h:39
Time sequence of alignment corrections. I/O methods have been factored out to: Geometry/VeryForwardGe...
static RunNumber_t maxRunNumber()
Definition: EventID.h:103
const EventID & eventID() const
Definition: IOVSyncValue.h:42
static const IOVSyncValue & endOfTime()
Definition: IOVSyncValue.cc:97
std::pair< Time_t, Time_t > ValidityInterval
Definition: Time.h:19
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:40
RPAlignmentCorrectionsDataSequence acsMisaligned
const IOVSyncValue & last() const
static edm::EventID previousLS(const edm::EventID &src)
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
Definition: EventID.h:107
unsigned int unixTime() const
Time in seconds since January 1, 1970.
Definition: Timestamp.h:46
Container for CTPPS RP alignment corrections. The corrections are stored on two levels - RP and senso...
RPAlignmentCorrectionsDataSequence acsReal
RPAlignmentCorrectionsDataSequence acsMeasured
const Timestamp & time() const
Definition: IOVSyncValue.h:44
const IOVSyncValue & first() const
static std::string iovValueToString(const edm::IOVSyncValue &)

Member Data Documentation

RPAlignmentCorrectionsData CTPPSIncludeAlignmentsFromXML::acMeasured
protected

Definition at line 48 of file CTPPSIncludeAlignmentsFromXML.cc.

Referenced by produceMeasured(), and setIntervalFor().

RPAlignmentCorrectionsData CTPPSIncludeAlignmentsFromXML::acMisaligned
protected

Definition at line 48 of file CTPPSIncludeAlignmentsFromXML.cc.

Referenced by produceMisaligned(), and setIntervalFor().

RPAlignmentCorrectionsData CTPPSIncludeAlignmentsFromXML::acReal
protected

Definition at line 48 of file CTPPSIncludeAlignmentsFromXML.cc.

Referenced by produceReal(), and setIntervalFor().

RPAlignmentCorrectionsDataSequence CTPPSIncludeAlignmentsFromXML::acsMeasured
protected
RPAlignmentCorrectionsDataSequence CTPPSIncludeAlignmentsFromXML::acsMisaligned
protected
RPAlignmentCorrectionsDataSequence CTPPSIncludeAlignmentsFromXML::acsReal
protected
unsigned int CTPPSIncludeAlignmentsFromXML::verbosity
protected

Definition at line 46 of file CTPPSIncludeAlignmentsFromXML.cc.

Referenced by Merge(), PrepareSequence(), and setIntervalFor().