CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
CrossingFrame< T > Class Template Reference

#include <CrossingFrame.h>

Public Member Functions

void addPileups (std::vector< T > const &vec)
 
void addPileups (T const &product)
 
void addSignals (const std::vector< T > *vec, edm::EventID id)
 
void addSignals (const T *vec, edm::EventID id)
 
 CrossingFrame ()
 
 CrossingFrame (int minb, int maxb, int bunchsp, std::string subdet, unsigned int maxNbSources)
 
int getBunchCrossing (unsigned int ip) const
 
std::pair< int, int > getBunchRange () const
 
int getBunchSpace () const
 
edm::EventID getEventID () const
 
edm::EventID getIdFirstPileup () const
 
unsigned int getMaxNbSources () const
 
unsigned int getNrPileups () const
 
unsigned int getNrPileups (int bcr) const
 
unsigned int getNrSignals () const
 
const TgetObject (unsigned int ip) const
 
unsigned int getPileupFileNr () const
 
const std::vector< unsigned int > & getPileupOffsetsBcr () const
 
const std::vector< std::vector< unsigned int > > & getPileupOffsetsSource () const
 
const std::vector< const T * > & getPileups () const
 
void getPileups (typename std::vector< const T * >::const_iterator &first, typename std::vector< const T * >::const_iterator &last) const
 
const std::vector< const T * > & getSignal () const
 
void getSignal (typename std::vector< const T * >::const_iterator &first, typename std::vector< const T * >::const_iterator &last) const
 
int getSourceType (unsigned int ip) const
 
std::string getSubDet () const
 
CrossingFrameoperator= (CrossingFrame const &rhs)
 
void print (int level=0) const
 
void setBcrOffset ()
 
void setBunchRange (std::pair< int, int > bunchRange)
 
void setBunchSpace (int bSpace)
 
void setEventID (edm::EventID evId)
 
void setIdFirstPileup (edm::EventID idFP)
 
void setMaxNbSources (unsigned int mNbS)
 
void setPileupFileNr (unsigned int pFileNr)
 
void setPileupOffsetsBcr (const std::vector< unsigned int > &pOffsetsBcr)
 
void setPileupOffsetsSource (const std::vector< std::vector< unsigned int > > &pOffsetsS)
 
void setPileupPtr (std::shared_ptr< edm::Wrapper< std::vector< T > > const > shPtr)
 
void setPileupPtr (std::shared_ptr< edm::Wrapper< T > const > shPtr)
 
void setPileupPtr (std::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const > shPtr)
 
void setPileups (const std::vector< const T * > &p)
 
void setSourceOffset (const unsigned int s)
 
void setSubDet (std::string det)
 
void setTof ()
 
void swap (CrossingFrame &other)
 
 ~CrossingFrame ()
 

Private Attributes

int bunchSpace_
 
int firstCrossing_
 
edm::EventID id_
 
edm::EventID idFirstPileup_
 
int lastCrossing_
 
unsigned int maxNbSources_
 
unsigned int pileupFileNr_
 
std::vector< unsigned int > pileupOffsetsBcr_
 
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
 
std::vector< const T * > pileups_
 
std::vector< std::shared_ptr< edm::Wrapper< T > const > > shPtrPileups2_
 
std::vector< std::shared_ptr< edm::Wrapper< std::vector< T > > const > > shPtrPileups_
 
std::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const > shPtrPileupsPCF_
 
std::vector< const T * > signals_
 
std::string subdet_
 

Detailed Description

template<class T>
class CrossingFrame< T >

CrossingFrame is the result of the Sim Mixing Module

Author
Ursula Berthon, Claude Charlot, LLR Palaiseau
Version
1st Version July 2005
2nd Version Sep 2005
3rd Version Nov 2007

Definition at line 39 of file CrossingFrame.h.

Constructor & Destructor Documentation

template<class T>
CrossingFrame< T >::CrossingFrame ( )
inline

Definition at line 45 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::CrossingFrame().

46 }
unsigned int maxNbSources_
std::string subdet_
template<class T >
CrossingFrame< T >::CrossingFrame ( int  minb,
int  maxb,
int  bunchsp,
std::string  subdet,
unsigned int  maxNbSources 
)

Definition at line 181 of file CrossingFrame.h.

References CrossingFrame< T >::firstCrossing_, mps_fire::i, CrossingFrame< T >::lastCrossing_, CrossingFrame< T >::maxNbSources_, CrossingFrame< T >::pileupOffsetsBcr_, and CrossingFrame< T >::pileupOffsetsSource_.

182  :firstCrossing_(minb), lastCrossing_(maxb),
183 bunchSpace_(bunchsp),subdet_(subdet),maxNbSources_(maxNbSources) {
185  for (unsigned int i=0;i<maxNbSources_;++i)
187 
188 //FIXME: should we force around 0 or so??
190 }
unsigned int maxNbSources_
std::vector< unsigned int > pileupOffsetsBcr_
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
std::string subdet_
template<class T>
CrossingFrame< T >::~CrossingFrame ( )
inline

Definition at line 49 of file CrossingFrame.h.

49 {;}

Member Function Documentation

template<class T>
void CrossingFrame< T >::addPileups ( std::vector< T > const &  vec)

Definition at line 292 of file CrossingFrame.h.

References CrossingFrame< T >::pileups_.

Referenced by CrossingFrame< PCaloHit >::~CrossingFrame().

292  {
293  for (auto const& item : product) {
294  pileups_.push_back(&item);
295  }
296 }
std::vector< const T * > pileups_
template<class T>
void CrossingFrame< T >::addPileups ( T const &  product)

Definition at line 285 of file CrossingFrame.h.

References CrossingFrame< T >::pileups_.

285  {
286  // default, valid for HepMCProduct
287  pileups_.push_back(&product);
288 }
std::vector< const T * > pileups_
template<class T>
void CrossingFrame< T >::addSignals ( const std::vector< T > *  vec,
edm::EventID  id 
)

Definition at line 300 of file CrossingFrame.h.

References mps_fire::i, triggerObjects_cff::id, CrossingFrame< T >::id_, and CrossingFrame< T >::signals_.

Referenced by CrossingFrame< PCaloHit >::~CrossingFrame().

300  {
301  // valid (called) for all except HepMCProduct
302  id_=id;
303  for (unsigned int i=0;i<vec->size();++i) {
304  signals_.push_back(&((*vec)[i]));
305  }
306 }
std::vector< const T * > signals_
edm::EventID id_
template<class T>
void CrossingFrame< T >::addSignals ( const T vec,
edm::EventID  id 
)

Definition at line 309 of file CrossingFrame.h.

References triggerObjects_cff::id, CrossingFrame< T >::id_, and CrossingFrame< T >::signals_.

309  {
310  // valid (called) for all except HepMCProduct
311  id_=id;
312  signals_.push_back(product);
313 }
std::vector< const T * > signals_
edm::EventID id_
template<class T >
int CrossingFrame< T >::getBunchCrossing ( unsigned int  ip) const

Definition at line 249 of file CrossingFrame.h.

References CrossingFrame< T >::firstCrossing_, cuy::ii, CrossingFrame< T >::lastCrossing_, CrossingFrame< T >::pileupOffsetsBcr_, and CrossingFrame< T >::pileups_.

Referenced by CrossingFrame< PCaloHit >::getNrPileups(), and CrossingFrame< T >::getSourceType().

249  {
250  // return the bcr for a certain position in the pileup vector
251  for (unsigned int ii=1;ii<pileupOffsetsBcr_.size();ii++){
252  if (ip>=pileupOffsetsBcr_[ii-1] && ip<pileupOffsetsBcr_[ii]) return ii+firstCrossing_-1;
253  }
254  if (ip<pileups_.size()) return lastCrossing_;
255  else return 999;
256 }
std::vector< unsigned int > pileupOffsetsBcr_
ii
Definition: cuy.py:589
std::vector< const T * > pileups_
template<class T>
std::pair<int,int> CrossingFrame< T >::getBunchRange ( ) const
inline

Definition at line 88 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

88 {return std::pair<int,int>(firstCrossing_,lastCrossing_);}
template<class T>
int CrossingFrame< T >::getBunchSpace ( ) const
inline

Definition at line 89 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

89 {return bunchSpace_;}
template<class T>
edm::EventID CrossingFrame< T >::getEventID ( ) const
inline

Definition at line 87 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

87 {return id_;}
edm::EventID id_
template<class T>
edm::EventID CrossingFrame< T >::getIdFirstPileup ( ) const
inline

Definition at line 93 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

93 {return idFirstPileup_;}
edm::EventID idFirstPileup_
template<class T>
unsigned int CrossingFrame< T >::getMaxNbSources ( ) const
inline

Definition at line 90 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

90 {return maxNbSources_; }
unsigned int maxNbSources_
template<class T>
unsigned int CrossingFrame< T >::getNrPileups ( ) const
inline

Definition at line 106 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::getObject().

106 {return pileups_.size();}
std::vector< const T * > pileups_
template<class T>
unsigned int CrossingFrame< T >::getNrPileups ( int  bcr) const
inline

Definition at line 107 of file CrossingFrame.h.

107  {
std::vector< unsigned int > pileupOffsetsBcr_
std::vector< const T * > pileups_
template<class T>
unsigned int CrossingFrame< T >::getNrSignals ( ) const
inline

Definition at line 105 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::getObject().

105 {return signals_.size();}
std::vector< const T * > signals_
template<class T>
const T& CrossingFrame< T >::getObject ( unsigned int  ip) const
inline

Definition at line 117 of file CrossingFrame.h.

117  {
118  //ip is position in the MixCollection (i.e. signal + pileup)
119  if (ip>getNrSignals()+getNrPileups()) throw cms::Exception("BadIndex")<<"CrossingFrame::getObject called with an invalid index- index was "<<ip<<"!"; // ip >=0, since ip is unsigned
120  if (ip<getNrSignals()) {
121  return *(signals_[ip]);
122  }
123  else {
124  return *(pileups_[ip-getNrSignals()]);
125  }
126  }
std::vector< const T * > signals_
std::vector< const T * > pileups_
unsigned int getNrSignals() const
unsigned int getNrPileups() const
template<class T>
unsigned int CrossingFrame< T >::getPileupFileNr ( ) const
inline

Definition at line 92 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

92 {return pileupFileNr_;}
unsigned int pileupFileNr_
template<class T>
const std::vector<unsigned int>& CrossingFrame< T >::getPileupOffsetsBcr ( ) const
inline

Definition at line 94 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

94 {return pileupOffsetsBcr_;}
std::vector< unsigned int > pileupOffsetsBcr_
template<class T>
const std::vector< std::vector<unsigned int> >& CrossingFrame< T >::getPileupOffsetsSource ( ) const
inline

Definition at line 95 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

95 {return pileupOffsetsSource_;} //one per source
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
template<class T>
const std::vector<const T *>& CrossingFrame< T >::getPileups ( ) const
inline
template<class T>
void CrossingFrame< T >::getPileups ( typename std::vector< const T * >::const_iterator &  first,
typename std::vector< const T * >::const_iterator &  last 
) const

Definition at line 227 of file CrossingFrame.h.

References CrossingFrame< T >::pileups_.

227  {
228  first=pileups_.begin();
229  last=pileups_.end();
230 }
std::vector< const T * > pileups_
template<class T>
const std::vector<const T *>& CrossingFrame< T >::getSignal ( ) const
inline

Definition at line 97 of file CrossingFrame.h.

Referenced by MixCollection< T >::MixItr::MixItr(), and PCrossingFrame< T >::PCrossingFrame().

97 {return signals_;}
std::vector< const T * > signals_
template<class T>
void CrossingFrame< T >::getSignal ( typename std::vector< const T * >::const_iterator &  first,
typename std::vector< const T * >::const_iterator &  last 
) const
inline

Definition at line 100 of file CrossingFrame.h.

100  {
101  first=signals_.begin();
102  last=signals_.end();
103  }
std::vector< const T * > signals_
template<class T >
int CrossingFrame< T >::getSourceType ( unsigned int  ip) const

Definition at line 237 of file CrossingFrame.h.

References CrossingFrame< T >::firstCrossing_, CrossingFrame< T >::getBunchCrossing(), mps_fire::i, and CrossingFrame< T >::pileupOffsetsSource_.

Referenced by CrossingFrame< PCaloHit >::getNrPileups().

237  {
238  // ip is position in the pileup vector
239  // decide to which source belongs object with index ip in the pileup vector
240  // pileup=0, cosmics=1, beam halo+ =2, beam halo- =3 forward =4
241  unsigned int bcr= getBunchCrossing(ip)-firstCrossing_; //starts at 0
242  for (unsigned int i=0;i<pileupOffsetsSource_.size()-1;++i) {
243  if (ip>=(pileupOffsetsSource_[i])[bcr] && ip <(pileupOffsetsSource_[i+1])[bcr]) return i;
244  }
245  return pileupOffsetsSource_.size()-1;
246 }
int getBunchCrossing(unsigned int ip) const
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
template<class T>
std::string CrossingFrame< T >::getSubDet ( ) const
inline

Definition at line 91 of file CrossingFrame.h.

Referenced by PCrossingFrame< T >::PCrossingFrame().

91 { return subdet_;}
std::string subdet_
template<class T>
CrossingFrame< T > & CrossingFrame< T >::operator= ( CrossingFrame< T > const &  rhs)
inline

Definition at line 219 of file CrossingFrame.h.

References CrossingFrame< T >::swap(), and groupFilesInBlocks::temp.

Referenced by CrossingFrame< PCaloHit >::~CrossingFrame().

219  {
220  CrossingFrame<T> temp(rhs);
221  this->swap(temp);
222  return *this;
223 }
void swap(CrossingFrame &other)
template<class T >
void CrossingFrame< T >::print ( int  level = 0) const

Definition at line 233 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::setPileupPtr().

233  {
234 }
template<class T>
void CrossingFrame< T >::setBcrOffset ( )
inline

Definition at line 78 of file CrossingFrame.h.

78  {
79  pileupOffsetsBcr_.push_back(pileups_.size());
80  }
std::vector< unsigned int > pileupOffsetsBcr_
std::vector< const T * > pileups_
template<class T>
void CrossingFrame< T >::setBunchRange ( std::pair< int, int >  bunchRange)
inline

Definition at line 139 of file CrossingFrame.h.

139  { firstCrossing_ = bunchRange.first;
140  lastCrossing_ = bunchRange.second;}
template<class T>
void CrossingFrame< T >::setBunchSpace ( int  bSpace)
inline

Definition at line 132 of file CrossingFrame.h.

132 { bunchSpace_ = bSpace; }
template<class T>
void CrossingFrame< T >::setEventID ( edm::EventID  evId)
inline

Definition at line 130 of file CrossingFrame.h.

130 { id_ = evId; }
edm::EventID id_
template<class T>
void CrossingFrame< T >::setIdFirstPileup ( edm::EventID  idFP)
inline

Definition at line 136 of file CrossingFrame.h.

136 {idFirstPileup_ = idFP;}
edm::EventID idFirstPileup_
template<class T>
void CrossingFrame< T >::setMaxNbSources ( unsigned int  mNbS)
inline

Definition at line 133 of file CrossingFrame.h.

133 { maxNbSources_ = mNbS; }
unsigned int maxNbSources_
template<class T>
void CrossingFrame< T >::setPileupFileNr ( unsigned int  pFileNr)
inline

Definition at line 135 of file CrossingFrame.h.

135 { pileupFileNr_ = pFileNr;}
unsigned int pileupFileNr_
template<class T>
void CrossingFrame< T >::setPileupOffsetsBcr ( const std::vector< unsigned int > &  pOffsetsBcr)
inline

Definition at line 137 of file CrossingFrame.h.

137 { pileupOffsetsBcr_ = pOffsetsBcr;}
std::vector< unsigned int > pileupOffsetsBcr_
template<class T>
void CrossingFrame< T >::setPileupOffsetsSource ( const std::vector< std::vector< unsigned int > > &  pOffsetsS)
inline

Definition at line 138 of file CrossingFrame.h.

138 { pileupOffsetsSource_ = pOffsetsS;} //one per source
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
template<class T>
void CrossingFrame< T >::setPileupPtr ( std::shared_ptr< edm::Wrapper< std::vector< T > > const >  shPtr)
inline

Definition at line 71 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::setPileupPtr().

71 {shPtrPileups_.push_back( shPtr );}
std::vector< std::shared_ptr< edm::Wrapper< std::vector< T > > const > > shPtrPileups_
template<class T>
void CrossingFrame< T >::setPileupPtr ( std::shared_ptr< edm::Wrapper< T > const >  shPtr)
inline

Definition at line 72 of file CrossingFrame.h.

72 {shPtrPileups2_.push_back( shPtr );}
std::vector< std::shared_ptr< edm::Wrapper< T > const > > shPtrPileups2_
template<class T>
void CrossingFrame< T >::setPileupPtr ( std::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const >  shPtr)

Definition at line 281 of file CrossingFrame.h.

References CrossingFrame< T >::shPtrPileupsPCF_.

281 {shPtrPileupsPCF_=shPtr;}
std::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const > shPtrPileupsPCF_
template<class T>
void CrossingFrame< T >::setPileups ( const std::vector< const T * > &  p)
inline

Definition at line 131 of file CrossingFrame.h.

131 { pileups_ = p; }
std::vector< const T * > pileups_
template<class T>
void CrossingFrame< T >::setSourceOffset ( const unsigned int  s)
inline

Definition at line 82 of file CrossingFrame.h.

82  {
83  pileupOffsetsSource_[s].push_back(pileups_.size());
84  }
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
std::vector< const T * > pileups_
template<class T>
void CrossingFrame< T >::setSubDet ( std::string  det)
inline

Definition at line 134 of file CrossingFrame.h.

134 { subdet_ = det; }
std::string subdet_
template<class T >
void CrossingFrame< T >::setTof ( )

Definition at line 316 of file CrossingFrame.h.

Referenced by CrossingFrame< PCaloHit >::~CrossingFrame().

316 {;}
template<class T>
void CrossingFrame< T >::swap ( CrossingFrame< T > &  other)
inline

Definition at line 195 of file CrossingFrame.h.

References CrossingFrame< T >::bunchSpace_, CrossingFrame< T >::firstCrossing_, mps_fire::i, CrossingFrame< T >::id_, CrossingFrame< T >::idFirstPileup_, CrossingFrame< T >::lastCrossing_, CrossingFrame< T >::maxNbSources_, CrossingFrame< T >::pileupFileNr_, CrossingFrame< T >::pileupOffsetsBcr_, CrossingFrame< T >::pileupOffsetsSource_, CrossingFrame< T >::pileups_, CrossingFrame< T >::shPtrPileups2_, CrossingFrame< T >::shPtrPileups_, CrossingFrame< T >::shPtrPileupsPCF_, CrossingFrame< T >::signals_, CrossingFrame< T >::subdet_, and std::swap().

Referenced by CrossingFrame< T >::operator=(), swap(), and CrossingFrame< PCaloHit >::~CrossingFrame().

195  {
199  subdet_.swap(other.subdet_);
200  std::swap(id_, other.id_);
204  signals_.swap(other.signals_);
205  pileups_.swap(other.pileups_);
206  shPtrPileups_.swap(other.shPtrPileups_);
207  shPtrPileups2_.swap(other.shPtrPileups2_);
211  for (unsigned int i=0;i<pileupOffsetsSource_.size();++i) {
213  }
214 }
std::vector< std::shared_ptr< edm::Wrapper< T > const > > shPtrPileups2_
std::vector< const T * > signals_
edm::EventID id_
unsigned int maxNbSources_
edm::EventID idFirstPileup_
std::vector< unsigned int > pileupOffsetsBcr_
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const > shPtrPileupsPCF_
std::vector< std::shared_ptr< edm::Wrapper< std::vector< T > > const > > shPtrPileups_
std::vector< std::vector< unsigned int > > pileupOffsetsSource_
std::string subdet_
std::vector< const T * > pileups_
unsigned int pileupFileNr_

Member Data Documentation

template<class T>
int CrossingFrame< T >::bunchSpace_
private
template<class T>
int CrossingFrame< T >::firstCrossing_
private
template<class T>
edm::EventID CrossingFrame< T >::id_
private
template<class T>
edm::EventID CrossingFrame< T >::idFirstPileup_
private
template<class T>
int CrossingFrame< T >::lastCrossing_
private
template<class T>
unsigned int CrossingFrame< T >::maxNbSources_
private
template<class T>
unsigned int CrossingFrame< T >::pileupFileNr_
private
template<class T>
std::vector<unsigned int> CrossingFrame< T >::pileupOffsetsBcr_
private
template<class T>
std::vector< std::vector<unsigned int> > CrossingFrame< T >::pileupOffsetsSource_
private
template<class T>
std::vector<const T *> CrossingFrame< T >::pileups_
private
template<class T>
std::vector< std::shared_ptr<edm::Wrapper<T> const> > CrossingFrame< T >::shPtrPileups2_
private
template<class T>
std::vector< std::shared_ptr<edm::Wrapper<std::vector<T> > const> > CrossingFrame< T >::shPtrPileups_
private
template<class T>
std::shared_ptr<edm::Wrapper<PCrossingFrame<T> > const> CrossingFrame< T >::shPtrPileupsPCF_
private

Definition at line 166 of file CrossingFrame.h.

Referenced by CrossingFrame< T >::setPileupPtr(), and CrossingFrame< T >::swap().

template<class T>
std::vector<const T * > CrossingFrame< T >::signals_
private
template<class T>
std::string CrossingFrame< T >::subdet_
private