CMS 3D CMS Logo

Public Member Functions | Private Attributes

CrossingFrame< T > Class Template Reference

#include <CrossingFrame.h>

List of all members.

Public Member Functions

void addPileups (const int bcr, std::vector< T > *vec, unsigned int evtId, int vertexoffset=0)
void addPileups (const int bcr, T *product, unsigned int evtId, int vertexoffset=0)
template<>
void addPileups (const int bcr, std::vector< SimTrack > *, unsigned int evtId, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< SimVertex > *, unsigned int evtId, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< PSimHit > *, unsigned int evtId, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< PCaloHit > *, unsigned int evtId, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< SimTrack > *simtracks, unsigned int evtNr, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< SimVertex > *simvertices, unsigned int evtNr, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< PSimHit > *simhits, unsigned int evtNr, int vertexoffset)
template<>
void addPileups (const int bcr, std::vector< PCaloHit > *calohits, unsigned int evtNr, int vertexoffset)
void addSignals (const T *vec, edm::EventID id)
void addSignals (const std::vector< T > *vec, edm::EventID id)
 CrossingFrame (int minb, int maxb, int bunchsp, std::string subdet, unsigned int maxNbSources)
 CrossingFrame ()
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 (int bcr) const
unsigned int getNrPileups () const
unsigned int getNrSignals () const
const T & getObject (unsigned int ip) const
unsigned int getPileupFileNr () const
std::vector< unsigned int > getPileupOffsetsBcr () const
std::vector< std::vector
< unsigned int > > 
getPileupOffsetsSource () 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
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 (std::vector< unsigned int > pOffsetsBcr)
void setPileupOffsetsSource (std::vector< std::vector< unsigned int > > pOffsetsS)
void setPileupPtr (boost::shared_ptr< edm::Wrapper< std::vector< T > > const > shPtr)
void setPileupPtr (boost::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const > shPtr)
void setPileupPtr (boost::shared_ptr< edm::Wrapper< T > const > shPtr)
void setPileups (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_
boost::shared_ptr
< edm::Wrapper< T > const > 
shPtrPileups2_
boost::shared_ptr
< edm::Wrapper< std::vector< T >
> const > 
shPtrPileups_
boost::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.

template<class T >
CrossingFrame< T >::CrossingFrame ( int  minb,
int  maxb,
int  bunchsp,
std::string  subdet,
unsigned int  maxNbSources 
)
template<class T>
CrossingFrame< T >::~CrossingFrame ( ) [inline]

Definition at line 49 of file CrossingFrame.h.

{;}

Member Function Documentation

template<class T >
void CrossingFrame< T >::addPileups ( const int  bcr,
std::vector< T > *  vec,
unsigned int  evtId,
int  vertexoffset = 0 
)

Definition at line 285 of file CrossingFrame.h.

                                                                                                           {
  // default, in fact never called since special implementations exist for all possible types
  // of this signature, i.e. PSimHit, PCaloHit, SimTrack, SimVertex
  // But needs to be present for HepMCProduct
}
template<>
void CrossingFrame< SimTrack >::addPileups ( const int  bcr,
std::vector< SimTrack > *  ,
unsigned int  evtId,
int  vertexoffset 
)
template<>
void CrossingFrame< SimVertex >::addPileups ( const int  bcr,
std::vector< SimVertex > *  ,
unsigned int  evtId,
int  vertexoffset 
)
template<>
void CrossingFrame< PSimHit >::addPileups ( const int  bcr,
std::vector< PSimHit > *  ,
unsigned int  evtId,
int  vertexoffset 
)
template<>
void CrossingFrame< PCaloHit >::addPileups ( const int  bcr,
std::vector< PCaloHit > *  ,
unsigned int  evtId,
int  vertexoffset 
)
template<>
void CrossingFrame< SimTrack >::addPileups ( const int  bcr,
std::vector< SimTrack > *  simtracks,
unsigned int  evtNr,
int  vertexoffset 
)

Definition at line 8 of file CrossingFrame.cc.

References i, and ExpressReco_HICollisions_FallBack::id.

                                                                                                                            { 

  EncodedEventId id(bcr,evtNr);
  for (unsigned int i=0;i<simtracks->size();++i){
    (*simtracks)[i].setEventId(id);
    if (!(*simtracks)[i].noVertex()) 
      (*simtracks)[i].setVertexIndex((*simtracks)[i].vertIndex()+vertexoffset);
    pileups_.push_back(&((*simtracks)[i]));
  }
}
template<class T >
void CrossingFrame< T >::addPileups ( const int  bcr,
T *  product,
unsigned int  evtId,
int  vertexoffset = 0 
)

Definition at line 279 of file CrossingFrame.h.

                                                                                                 {
  // default, valid for HepMCProduct
  pileups_.push_back(product);
}
template<>
void CrossingFrame< SimVertex >::addPileups ( const int  bcr,
std::vector< SimVertex > *  simvertices,
unsigned int  evtNr,
int  vertexoffset 
)

Definition at line 20 of file CrossingFrame.cc.

References i, ExpressReco_HICollisions_FallBack::id, position, and matplotRender::t.

                                                                                                                                { 

  EncodedEventId id(bcr,evtNr);
  for (unsigned int i=0;i<simvertices->size();++i) {
    (*simvertices)[i].setEventId(id);
    (*simvertices)[i].setTof((*simvertices)[i].position().t()+bcr*bunchSpace_);
    pileups_.push_back(&((*simvertices)[i]));
  }
}
template<>
void CrossingFrame< PSimHit >::addPileups ( const int  bcr,
std::vector< PSimHit > *  simhits,
unsigned int  evtNr,
int  vertexoffset 
)

Definition at line 31 of file CrossingFrame.cc.

References i, ExpressReco_HICollisions_FallBack::id, and spr::timeOfFlight().

                                                                                                                        { 

  EncodedEventId id(bcr,evtNr);

  for (unsigned int i=0;i<simhits->size();++i) {
    (*simhits)[i].setEventId(id);
    (*simhits)[i].setTof((*simhits)[i].timeOfFlight() + bcr*bunchSpace_);
    pileups_.push_back(&((*simhits)[i]));
  }
}
template<>
void CrossingFrame< PCaloHit >::addPileups ( const int  bcr,
std::vector< PCaloHit > *  calohits,
unsigned int  evtNr,
int  vertexoffset 
)

Definition at line 43 of file CrossingFrame.cc.

References i, ExpressReco_HICollisions_FallBack::id, and cond::rpcobgas::time.

                                                                                                                           { 

  EncodedEventId id(bcr,evtNr);
  for (unsigned int i=0;i<calohits->size();++i) {
    PCaloHit hit((*calohits)[i].id(),(*calohits)[i].energyEM(),(*calohits)[i].energyHad(),(*calohits)[i].time()+bcr*bunchSpace_,(*calohits)[i].geantTrackId());
    (*calohits)[i].setEventId(id);
    (*calohits)[i].setTime((*calohits)[i].time()+bcr*bunchSpace_);
    pileups_.push_back(&((*calohits)[i]));
  }
}
template<class T >
void CrossingFrame< T >::addSignals ( const T *  vec,
edm::EventID  id 
)

Definition at line 313 of file CrossingFrame.h.

References ExpressReco_HICollisions_FallBack::id.

                                                                {
  // valid (called) for all except HepMCProduct
  id_=id;
  signals_.push_back(product);
}
template<class T >
void CrossingFrame< T >::addSignals ( const std::vector< T > *  vec,
edm::EventID  id 
)

Definition at line 304 of file CrossingFrame.h.

References i, and ExpressReco_HICollisions_FallBack::id.

                                                                       {
  // valid (called) for all except HepMCProduct
  id_=id;
  for (unsigned int i=0;i<vec->size();++i) {
    signals_.push_back(&((*vec)[i]));
  }
}
template<class T >
int CrossingFrame< T >::getBunchCrossing ( unsigned int  ip) const

Definition at line 242 of file CrossingFrame.h.

                                                            {
  // return the bcr for a certain position in the pileup vector
    for (unsigned int ii=1;ii<pileupOffsetsBcr_.size();ii++){
      if (ip>=pileupOffsetsBcr_[ii-1] && ip<pileupOffsetsBcr_[ii]) return ii+firstCrossing_-1;
    }
    if (ip<pileups_.size()) return lastCrossing_;
    else return 999;
}
template<class T>
std::pair<int,int> CrossingFrame< T >::getBunchRange ( ) const [inline]
template<class T>
int CrossingFrame< T >::getBunchSpace ( ) const [inline]

Definition at line 87 of file CrossingFrame.h.

References CrossingFrame< T >::bunchSpace_.

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

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

Definition at line 85 of file CrossingFrame.h.

References CrossingFrame< T >::id_.

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

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

Definition at line 91 of file CrossingFrame.h.

References CrossingFrame< T >::idFirstPileup_.

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

{return idFirstPileup_;}
template<class T>
unsigned int CrossingFrame< T >::getMaxNbSources ( ) const [inline]

Definition at line 88 of file CrossingFrame.h.

References CrossingFrame< T >::maxNbSources_.

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

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

Definition at line 104 of file CrossingFrame.h.

References CrossingFrame< T >::pileups_.

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

{return pileups_.size();} 
template<class T>
unsigned int CrossingFrame< T >::getNrPileups ( int  bcr) const [inline]
template<class T>
unsigned int CrossingFrame< T >::getNrSignals ( ) const [inline]

Definition at line 103 of file CrossingFrame.h.

References CrossingFrame< T >::signals_.

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

{return signals_.size();} 
template<class T>
const T& CrossingFrame< T >::getObject ( unsigned int  ip) const [inline]

Definition at line 115 of file CrossingFrame.h.

References Exception, CrossingFrame< T >::getNrPileups(), CrossingFrame< T >::getNrSignals(), CrossingFrame< T >::pileups_, and CrossingFrame< T >::signals_.

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

Definition at line 90 of file CrossingFrame.h.

References CrossingFrame< T >::pileupFileNr_.

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

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

Definition at line 93 of file CrossingFrame.h.

References CrossingFrame< T >::pileupOffsetsSource_.

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

{return pileupOffsetsSource_;} //one per source
template<class T>
std::vector<const T *> CrossingFrame< T >::getPileups ( ) const [inline]

Definition at line 94 of file CrossingFrame.h.

References CrossingFrame< T >::pileups_.

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

{return pileups_;}
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 220 of file CrossingFrame.h.

                                                                                                                                             {
  first=pileups_.begin();
  last=pileups_.end();
}
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 98 of file CrossingFrame.h.

References CrossingFrame< T >::signals_.

                                                                                                                            {
    first=signals_.begin();
    last=signals_.end();
  }
template<class T>
std::vector<const T *> CrossingFrame< T >::getSignal ( ) const [inline]

Definition at line 95 of file CrossingFrame.h.

References CrossingFrame< T >::signals_.

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

{return signals_;}
template<class T >
int CrossingFrame< T >::getSourceType ( unsigned int  ip) const

Definition at line 230 of file CrossingFrame.h.

References i.

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

Definition at line 89 of file CrossingFrame.h.

References CrossingFrame< T >::subdet_.

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

{ return subdet_;}
template<typename T >
CrossingFrame< T > & CrossingFrame< T >::operator= ( CrossingFrame< T > const &  rhs) [inline]

Definition at line 212 of file CrossingFrame.h.

References swap(), and cond::rpcobtemp::temp.

                                                       {
  CrossingFrame<T> temp(rhs);
  this->swap(temp);
  return *this;
}
template<class T >
void CrossingFrame< T >::print ( int  level = 0) const

Definition at line 226 of file CrossingFrame.h.

                                            {
}
template<class T>
void CrossingFrame< T >::setBcrOffset ( ) [inline]

Definition at line 76 of file CrossingFrame.h.

References CrossingFrame< T >::pileupOffsetsBcr_, and CrossingFrame< T >::pileups_.

                      {
    pileupOffsetsBcr_.push_back(pileups_.size());
  }
template<class T>
void CrossingFrame< T >::setBunchRange ( std::pair< int, int >  bunchRange) [inline]

Definition at line 137 of file CrossingFrame.h.

References CrossingFrame< T >::firstCrossing_, and CrossingFrame< T >::lastCrossing_.

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

Definition at line 130 of file CrossingFrame.h.

References CrossingFrame< T >::bunchSpace_.

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

Definition at line 128 of file CrossingFrame.h.

References CrossingFrame< T >::id_.

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

Definition at line 134 of file CrossingFrame.h.

References CrossingFrame< T >::idFirstPileup_.

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

Definition at line 131 of file CrossingFrame.h.

References CrossingFrame< T >::maxNbSources_.

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

Definition at line 133 of file CrossingFrame.h.

References CrossingFrame< T >::pileupFileNr_.

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

Definition at line 135 of file CrossingFrame.h.

References CrossingFrame< T >::pileupOffsetsBcr_.

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

Definition at line 136 of file CrossingFrame.h.

References CrossingFrame< T >::pileupOffsetsSource_.

{ pileupOffsetsSource_ = pOffsetsS;}  //one per source
template<class T >
void CrossingFrame< T >::setPileupPtr ( boost::shared_ptr< edm::Wrapper< PCrossingFrame< T > > const >  shPtr)

Definition at line 274 of file CrossingFrame.h.

template<class T>
void CrossingFrame< T >::setPileupPtr ( boost::shared_ptr< edm::Wrapper< T > const >  shPtr) [inline]

Definition at line 70 of file CrossingFrame.h.

References CrossingFrame< T >::shPtrPileups2_.

{shPtrPileups2_=shPtr;}
template<class T>
void CrossingFrame< T >::setPileupPtr ( boost::shared_ptr< edm::Wrapper< std::vector< T > > const >  shPtr) [inline]

Definition at line 69 of file CrossingFrame.h.

References CrossingFrame< T >::shPtrPileups_.

{shPtrPileups_=shPtr;}
template<class T>
void CrossingFrame< T >::setPileups ( std::vector< const T * >  p) [inline]

Definition at line 129 of file CrossingFrame.h.

References L1TEmulatorMonitor_cff::p, and CrossingFrame< T >::pileups_.

{ pileups_ = p; } 
template<class T>
void CrossingFrame< T >::setSourceOffset ( const unsigned int  s) [inline]
template<class T>
void CrossingFrame< T >::setSubDet ( std::string  det) [inline]

Definition at line 132 of file CrossingFrame.h.

References CrossingFrame< T >::subdet_.

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

Definition at line 320 of file CrossingFrame.h.

{;}
template<typename T >
void CrossingFrame< T >::swap ( CrossingFrame< T > &  other) [inline]

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>
boost::shared_ptr<edm::Wrapper<T> const> CrossingFrame< T >::shPtrPileups2_ [private]

Definition at line 161 of file CrossingFrame.h.

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

template<class T>
boost::shared_ptr<edm::Wrapper<std::vector<T> > const> CrossingFrame< T >::shPtrPileups_ [private]

Definition at line 160 of file CrossingFrame.h.

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

template<class T>
boost::shared_ptr<edm::Wrapper<PCrossingFrame<T> > const> CrossingFrame< T >::shPtrPileupsPCF_ [private]

Definition at line 162 of file CrossingFrame.h.

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