CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/RecoParticleFlow/PFRootEvent/interface/EventColin.h

Go to the documentation of this file.
00001 #ifndef Demo_PFRootEvent_EventColin_h
00002 #define Demo_PFRootEvent_EventColin_h
00003 
00004 #include <vector>
00005 
00006 
00007 class EventColin {
00008   
00009  public:
00010   EventColin() : number_(-1), nTracks_(0) {}
00011   virtual ~EventColin() {}
00012   void reset() {
00013     number_ = -1;
00014     particles_.clear();
00015     candidates_.clear();
00016     clusters_.clear();
00017     clustersIsland_.clear();
00018     jetsMC_.clear();
00019     jetsEHT_.clear();
00020     jetsPF_.clear();
00021     nTracks_=0;
00022   }
00023 
00024   class Particle {
00025   public:
00026     Particle() : eta(0),phi(0),e(0),pdgCode(0) {}
00027     virtual ~Particle() {}
00028     double eta; 
00029     double phi;
00030     double e;
00031     int    pdgCode;
00032   };   
00033 
00034   class Cluster {
00035   public:
00036     Cluster() : eta(0),phi(0),e(0),layer(0),type(0) {}
00037     virtual ~Cluster() {}
00038     double eta; 
00039     double phi;
00040     double e;
00041     int layer;
00042     int type;
00043     Particle particle;
00044   };   
00045 
00046   class Jet {
00047   public:
00048     Jet() : eta(0),phi(0),et(0),e(0),ee(0),eh(0),ete(0),eth(0)  {}
00049     virtual ~Jet() {}
00050     double eta;
00051     double phi;
00052     double et;
00053     double e;
00054     double ee;
00055     double eh;
00056     double ete;
00057     double eth;
00058   };
00059 
00060   class CaloTower {
00061   public:
00062     CaloTower() : e(0), ee(0), eh(0) {} 
00063     double e;
00064     double ee;
00065     double eh;
00066   };
00067 
00068   class Block {
00069   public:
00070     Block() : p(0), e(0), h(0) {}
00071     double         p;    // tot momentum
00072     double         e;    // tot ecal
00073     double         h;    // tot hcal
00074     int            ntracks; // number of tracks
00075     std::vector<double> ptrack; 
00076     std::vector<double> etrack;
00077   };
00078 
00079 
00080 
00081   void setNumber(int number) {number_ = number;}
00082   void setNTracks(int nTracks) {nTracks_ = nTracks;}
00083 
00084   void addParticle( const Particle& ptc ) {
00085     particles_.push_back(ptc);
00086   }
00087 
00088   void addCandidate( const Particle& ptc ) {
00089     candidates_.push_back(ptc);
00090   }
00091 
00092   void addCluster( const Cluster& ptc ) {
00093     clusters_.push_back(ptc);
00094   }
00095 
00096   void addClusterIsland( const Cluster& ptc ) {
00097     clustersIsland_.push_back(ptc);
00098   }
00099 
00100   void addJetMC( const Jet & jets ) {
00101     jetsMC_.push_back(jets);
00102   }
00103 
00104   void addJetEHT( const Jet & jets ) {
00105     jetsEHT_.push_back(jets);
00106   }
00107 
00108   void addJetPF( const Jet & jets ) {
00109     jetsPF_.push_back(jets);
00110   }
00111 
00112   void addCaloTower( const CaloTower& ct ) {
00113     caloTowers_.push_back( ct );
00114   } 
00115 
00116   void addBlock( const Block& b ) {
00117     blocks_.push_back( b );
00118   }
00119 
00120 
00121   const std::vector<EventColin::Particle>& particles() 
00122     {return particles_;}
00123   const std::vector<EventColin::Cluster>&  clusters() 
00124     {return clusters_;}
00125   const std::vector<EventColin::Cluster>&  clustersIsland() 
00126     {return clustersIsland_;}
00127   const std::vector<EventColin::Jet>&      jetsMC()
00128     {return jetsMC_;}
00129   const std::vector<EventColin::Jet>&      jetsEHT()
00130     {return jetsEHT_;}
00131   const std::vector<EventColin::Jet>&      jetsPF()
00132     {return jetsPF_;}
00133 
00134  private:
00135 
00136   int                               number_;
00137   int                               nTracks_;
00138   std::vector<EventColin::Particle> particles_;
00139   std::vector<EventColin::Particle> candidates_;
00140   std::vector<EventColin::Cluster>  clusters_;
00141   std::vector<EventColin::Cluster>  clustersIsland_;
00142   std::vector<EventColin::Jet>      jetsMC_;
00143   std::vector<EventColin::Jet>      jetsEHT_;
00144   std::vector<EventColin::Jet>      jetsPF_;
00145   std::vector<EventColin::CaloTower>  caloTowers_;
00146   std::vector<EventColin::Block>    blocks_;
00147   
00148 };
00149 
00150 #endif