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 TgetObject (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_
std::vector< boost::shared_ptr
< edm::Wrapper< T > const > > 
shPtrPileups2_
std::vector< 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 292 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.

                                                                                                                            { 

  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 286 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, 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, 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, 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 320 of file CrossingFrame.h.

                                                                {
  // 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 311 of file CrossingFrame.h.

References i.

                                                                       {
  // 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 249 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 89 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 87 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 93 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 90 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 106 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 105 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 117 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 92 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 95 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 96 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 227 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 100 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 97 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 237 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 91 of file CrossingFrame.h.

References CrossingFrame< T >::subdet_.

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

{ return subdet_;}
template<class T>
CrossingFrame& CrossingFrame< T >::operator= ( CrossingFrame< T > const &  rhs)
template<class T >
void CrossingFrame< T >::print ( int  level = 0) const

Definition at line 233 of file CrossingFrame.h.

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

Definition at line 78 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 139 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 132 of file CrossingFrame.h.

References CrossingFrame< T >::bunchSpace_.

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

Definition at line 130 of file CrossingFrame.h.

References CrossingFrame< T >::id_.

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

Definition at line 136 of file CrossingFrame.h.

References CrossingFrame< T >::idFirstPileup_.

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

Definition at line 133 of file CrossingFrame.h.

References CrossingFrame< T >::maxNbSources_.

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

Definition at line 135 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 137 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 138 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 281 of file CrossingFrame.h.

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

Definition at line 72 of file CrossingFrame.h.

References CrossingFrame< T >::shPtrPileups2_.

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

Definition at line 71 of file CrossingFrame.h.

References CrossingFrame< T >::shPtrPileups_.

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

Definition at line 131 of file CrossingFrame.h.

References AlCaHLTBitMon_ParallelJobs::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 134 of file CrossingFrame.h.

References CrossingFrame< T >::subdet_.

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

Definition at line 327 of file CrossingFrame.h.

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

Referenced by swap().


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

Definition at line 163 of file CrossingFrame.h.

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

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

Definition at line 162 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 166 of file CrossingFrame.h.

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