Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

XANASuperCluster.h

Go to the documentation of this file.
00001 #ifndef XANASuperCluster_h
00002 #define XANASuperCluster_h
00003 
00012 class XANACluster;
00013 class XANAElectronCandidate;
00014 #include <XANADOO/XANAClusters/interface/XANAPreshowerInfo.h>
00015 #include <XANADOO/XANAClusters/interface/XANASymMatrix.h>
00016 #include <CLHEP/Geometry/Point3D.h>
00017 #include <CLHEP/Matrix/SymMatrix.h>
00018 #include <TRefArray.h>
00019 #include <TRef.h>
00020 #include <TObject.h>
00021 #include <Rtypes.h>
00022 
00023 using namespace CLHEP;
00024 using namespace HepGeom;
00025 
00026 class XANASuperCluster : public TObject {
00027 
00028 public:
00029 
00030   XANASuperCluster();
00032   XANASuperCluster(Float_t energy, HepPoint3D position, Float_t sum1, Float_t sum4,
00033    Float_t sum9, Float_t sum25, Float_t hadronicOverEm, Float_t caloIsolation,
00034    Float_t disc1, Float_t disc2, Float_t disc3, HepSymMatrix positionCovarianceMatrix,
00035    Float_t energyScaleFactor, std::string algoName);
00036   XANASuperCluster(const XANASuperCluster &right);
00037   virtual ~XANASuperCluster();
00038 
00039   // data access methods
00040   Float_t getEnergy() const {return energy_;}
00041   HepPoint3D getPosition() const {return position_;}
00042   Float_t getSum1() const {return sum1_;}
00043   Float_t getSum4() const {return sum4_;}
00044   Float_t getSum9() const {return sum9_;}
00045   Float_t getSum25() const {return sum25_;}
00046   Float_t getHadronicOverEm() const {return hadronicOverEm_;}
00047   Float_t getCaloIsolation() const {return caloIsolation_;}
00048   Float_t getDisc1() const {return disc1_;}
00049   Float_t getDisc2() const {return disc2_;}
00050   Float_t getDisc3() const {return disc3_;}
00051   HepSymMatrix getPositionCovarianceMatrix() const {return positionCovarianceMatrix_;}
00052   Float_t getEnergyScaleFactor() const {return energyScaleFactor_;}
00053   std::string getAlgoName() const {return std::string(algoName_);}
00054   char *getCharAlgoName() const {return algoName_;}
00055   
00056   // set methods
00057   void setEnergy(Float_t energy) {energy_=energy;}
00058   void setPosition(HepPoint3D position) {position_=position;}
00059   void setSum1(Float_t sum1) {sum1_=sum1;}
00060   void setSum4(Float_t sum4) {sum4_=sum4;}
00061   void setSum9(Float_t sum9) {sum9_=sum9;}
00062   void setSum25(Float_t sum25) {sum25_=sum25;}
00063   void setHadronicOverEm(Float_t hadronicOverEm) {hadronicOverEm_=hadronicOverEm;}
00064   void setCaloIsolation(Float_t caloIsolation) {caloIsolation_=caloIsolation;}
00065   void setDisc1(Float_t disc1) {disc1_=disc1;}
00066   void setDisc2(Float_t disc2) {disc2_=disc2;}
00067   void setDisc3(Float_t disc3) {disc3_=disc3;}
00068   void setPositionCovarianceMatrix(const HepSymMatrix &positionCovarianceMatrix) {
00069     positionCovarianceMatrix_=positionCovarianceMatrix;
00070   }
00071   void setEnergyScaleFactor(Float_t energyScaleFactor) {energyScaleFactor_=energyScaleFactor;}
00072   void setAlgoName(std::string algoName) {sprintf(algoName_,algoName.c_str());}
00073 
00074   void addCluster(XANACluster *clu, Int_t iflag);
00075   void setSeedCluster(XANACluster *seed);
00076   void setPreshowerInfo(XANAPreshowerInfo *preshowerInfo);
00077   void addBremCluster(XANACluster *brem);
00078   void clear();
00079   
00080   // operators
00081   const XANASuperCluster &operator=(const XANASuperCluster &right);
00082   
00083   // comparison methods
00084   bool operator==(const XANASuperCluster&) const;
00085   bool operator<(const XANASuperCluster&) const;
00086   
00087   // relationships
00088   // access to seed cluster
00089   XANACluster *getSeedCluster() const {return (XANACluster *)(seedCluster_.GetObject());}
00090   // access to brems clusters
00091   Short_t getNumberOfBrems() {return numberOfBrems_;} 
00092   TRefArray *getBremClusters() const {return brems_;}
00093   // access to preshower info
00094   XANAPreshowerInfo *getPreshowerInfo() const {return (XANAPreshowerInfo *)(preshowerInfo_.GetObject());}
00095   XANAElectronCandidate *getElectronCandidate() const {return (XANAElectronCandidate *)(electronCandidate_.GetObject());}  
00096   void setElectronCandidate(XANAElectronCandidate *electron);
00097   
00099   Bool_t IsUsed() const {return locked_;}
00100 
00101 protected:
00102 
00104   Float_t energy_;
00106   HepPoint3D position_;
00108   Float_t sum1_;
00109   Float_t sum4_;
00110   Float_t sum9_;
00111   Float_t sum25_;
00113   Float_t hadronicOverEm_;
00115   Float_t caloIsolation_;
00117   Float_t disc1_;
00118   Float_t disc2_;
00119   Float_t disc3_;
00121   //  HepSymMatrix positionCovarianceMatrix_; //[3]
00122   XANASymMatrix positionCovarianceMatrix_;
00124   Float_t energyScaleFactor_;
00126   TRef seedCluster_; 
00128   Short_t numberOfBrems_;
00130   TRefArray *brems_; 
00132   TRef preshowerInfo_; 
00134   TRef electronCandidate_; 
00136   Int_t algoLen_;
00137   char *algoName_; //[algoLen_]
00138 
00139 private:
00140 
00141   const static Int_t strLen_;
00142   Bool_t locked_;
00143   void lock() {locked_ = true;}
00144   void unlock() { locked_ = false;}
00145        
00146   ClassDef(XANASuperCluster,1)
00147 
00148 };
00149 
00150 #endif
00151 
00152 
00153 
00154 
00155 
00156 
00157 

Generated on Tue May 10 10:01:25 2005 for XANADOO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002