emcClusterContent.h

Go to the documentation of this file.
00001 #ifndef __emcClusterContent_h__
00002 #define __emcClusterContent_h__
00003 
00004 #include "phool.h"
00005 #include "PHObject.h"
00006 
00015 #include <cmath>
00016 #ifndef NAN
00017 static const float NAN = sqrt(-1);
00018 #endif
00019 
00020 class emcClusterContent : public PHObject
00021 {
00022 public:
00023 
00024   // CREATORS
00025 
00026   virtual ~emcClusterContent(){}
00027 
00029   emcClusterContent* clone(void) const { warning("clone()"); return 0; }
00030 
00032   emcClusterContent* create(void) const { warning("create()"); return 0; }
00033 
00034   // ACCESSORS.
00035 
00039   virtual int arm() const { warning("int arm()"); return -1; }
00040 
00042   virtual bool canBeMerged() const { return false; }
00043 
00049   virtual float chi2() const { warning("float chi2()"); return NAN; }
00050 
00057   virtual float corrdispy() const { warning("float corrdispy()"); return NAN; }
00058   virtual float corrdispz() const { warning("float corrdispz()"); return NAN; }
00060 
00062   virtual unsigned int cutword() const { warning("unsigned int cutword()"); return 0; }
00063 
00106   virtual unsigned int deadmap() const { warning("unsigned int deadmap()"); return 0; }
00107 
00112   virtual float dispy() const { warning("float dispy()"); return NAN; }
00113   virtual float dispz() const { warning("float dispz()"); return NAN; }
00115 
00118   virtual float dx() const { warning("float dx()"); return NAN; }
00119   virtual float dy() const { warning("float dy()"); return NAN; }
00120   virtual float dz() const { warning("float dz()"); return NAN; }
00122 
00123   // Measured energy in GeV.
00124   virtual float e() const { warning("float e()"); return NAN; }
00125 
00126   // Measured energy (GeV) in a 3x3 array around central tower.
00127   virtual float e9() const { warning("float e9()"); return NAN; }
00128 
00129   // used to be called ecorecorr for PbSc and ecorr for PbGl. GeV.
00130   virtual float ecore() const { warning("float ecore()"); return NAN; }
00131 
00132   // energy of the central tower. GeV.
00133   virtual float ecent() const { warning("float ecent()"); return NAN; }
00134 
00136 
00137   virtual float etofmin() const { warning("float etofmin()"); return NAN; }
00138   virtual float etofmax() const { warning("float etofmax()"); return NAN; }
00140 
00143   virtual bool has_rawtdc() const { return false; }
00144 
00148   virtual bool has_yz_cg() const { return false; }
00149 
00150   /* List of nDST variables taken out in pDST
00151      (see offline/analysis/Run4HardpDST/containers/PhPhotonSngl.h) */
00152   virtual bool has_id() const { return true; }
00153   virtual bool has_pid() const { return true; }
00154   virtual bool has_type() const { return true; }
00155   virtual bool has_Dxyz() const { return true; }
00156   virtual bool has_E9() const { return true; }
00157   virtual bool has_Etofmin() const { return true; }
00158   virtual bool has_Etofmax() const { return true; }
00159   virtual bool has_Quality() const { return true; }
00160   virtual bool has_Phi() const { return true; }
00161   virtual bool has_Theta() const { return true; }
00162   virtual bool has_Tofdisp() const { return true; }
00163   virtual bool has_Tofmin() const { return true; }
00164   virtual bool has_Tofmax() const { return true; }
00165   virtual bool has_Tofcorrmin() const { return true; }
00166   virtual bool has_Tofcorrmax() const { return true; }
00167    
00168 
00170   virtual int id() const { warning("int id()"); return -1; }
00171 
00172   virtual void identify(std::ostream& os=std::cout) const;
00173 
00174   virtual int isValid() const;
00175   // generic check for implemented methods
00176   int isValid(const float f) const;
00177   int isValid(const int i) const;
00178   int isValid(const unsigned int i) const;
00179 
00183   virtual bool isMerged() const { return (simfrac()>0 && simfrac()<1.0); }
00184 
00187   virtual bool isSimulated() const { return (simfrac()==1.0); }
00188 
00194   virtual int iypos() const { warning("int iypos()"); return -1; }
00195   virtual int izpos() const { warning("int izpos()"); return -1; }
00197 
00199   virtual float quality() const { warning("float quality()"); return NAN; }
00200 
00202   virtual int multiplicity() const { warning("multiplicity()"); return -1; }
00203 
00205   //{@
00206   virtual float padispy() const { warning("float padispy()"); return NAN; }
00207   virtual float padispz() const { warning("padispz()"); return NAN; }
00209 
00215   virtual float partesum(int index) const { warning("float partesum(int index)"); return NAN; }
00216 
00218   virtual float prob_photon() const { warning("float prob_photon()"); return NAN; }
00219 
00221   virtual float phi() const { warning("float phi()"); return NAN; }
00222 
00224   virtual int pid() const { warning("int pid()"); return -1; }
00225 
00226   virtual void print(std::ostream& out=std::cout) const;
00227 
00228   virtual float rawtdc() const { warning("float rawtdc()"); return NAN; }
00229 
00246   virtual int sector() const { warning("int sector()"); return -1; }
00247 
00250   virtual float simfrac() const { warning("float simfrac()"); return NAN; }
00251 
00255   virtual float tof() const { warning("float tof()"); return NAN; }
00256 
00258   virtual float tofcorr() const { warning("float tofcorr()"); return NAN; }
00259 
00262   virtual float tofhad() const { warning("float tofhad()"); return NAN; }
00263 
00265   virtual float tofdisp() const { warning(""); return NAN; }
00266 
00270   virtual float tofmin() const { warning("float tofmin()"); return NAN; }
00271   virtual float tofmax() const { warning("float tofmax()"); return NAN; }
00272   virtual float tofcorrmin() const { warning("float tofcorrmin()"); return NAN; }
00273   virtual float tofcorrmax() const { warning("float tofcorrmax()"); return NAN; }
00275 
00277   virtual float theta() const { warning("float theta()"); return NAN; }
00278 
00285   virtual int towerid(int index) const { warning("int towerid(int index)"); return -1; }
00286 
00290   int twrhit() const { return multiplicity(); }
00291 
00293   virtual int type() const { warning("int type()"); return -1; }
00294 
00296   virtual unsigned int warnmap() const { warning("unsigned int warnmap()"); return 0; }
00297 
00301   virtual float x() const { warning("float x()"); return NAN; }
00302   virtual float y() const { warning("float y()"); return NAN; }
00303   virtual float z() const { warning("float z()"); return NAN; }
00305 
00311   virtual float ycg() const { warning("float ycg()"); return NAN; }
00312   virtual float zcg() const { warning("float zcg()"); return NAN; }
00314 
00315   //  Extra variables for vetoes of charged particles...
00316   virtual short emcpc3       () const {warning("short emcpc3()"); return 0;}
00317   virtual short emcpc3neartrk() const {warning("short emcpc3neartrk()"); return 0;}
00318   virtual float emcpc3dz     () const {warning("float emcpc3dz()"); return NAN;}
00319   virtual float emcpc3dphi   () const {warning("float emcpc3dphi()"); return NAN;}
00320   virtual short emctrk       () const {warning("short emctrk()"); return 0;}
00321   virtual float emctrkdz     () const {warning("float emctrkdz()"); return NAN;}
00322   virtual float emctrkdphi   () const {warning("float emctrkdphi()"); return NAN;}
00323   virtual float pemctrk      () const {warning("float pemctrk()"); return NAN;}
00324   virtual short emctrkquality() const {warning("short emctrkquality()"); return 0;}
00325 
00326 
00327 
00329 
00333   virtual void set_arm(int) { warning("set_arm(int)"); }
00334   virtual void set_chi2(float) { warning("set_chi2(float)"); }
00335   virtual void set_corrdisp(float corrdispy, float corrdispz) { warning("set_corrdisp(float corrdispy, float corrdispz)"); }
00336   virtual void set_cutword(unsigned int) { warning("set_cutword(unsigned int)"); }
00337   virtual void set_disp(float dispy, float _dispz) { warning(" void set_disp(float dispy, float _dispz)"); }
00338   virtual void set_dxyz(float dx, float dy, float dz) 
00339   { warning("void set_dxyz(float dx, float dy, float dz) "); }
00340   virtual void set_e(float) { warning("void set_e(float)"); }
00341   virtual void set_e9(float) { warning("void set_e9(float)"); }
00342   virtual void set_ecore(float) { warning("set_ecore(float)"); }
00343   virtual void set_ecent(float) { warning("set_ecent(float)"); }
00344   virtual void set_etofmin(float) { warning("set_etofmin(float)"); }
00345   virtual void set_etofmax(float) { warning("set_etofmax(float)"); }
00346   virtual void set_id(int id) { warning("set_id(int id)"); }
00347   virtual void set_ipos(int iy, int iz)  { warning("set_ipos(int iy, int iz)"); }
00348   virtual void set_quality(float) { warning("set_quality(float)"); }
00349   virtual void set_maps(unsigned int deadmap, unsigned int warnmap)
00350   { warning("set_maps(unsigned int deadmap, unsigned int warnmap)"); }
00351   virtual void set_multiplicity(int) { warning("set_multiplicity(int)"); }
00352   virtual void set_padisp(float padispy, float padispz) 
00353   { warning("set_padisp(float padispy, float padispz)"); }
00354   virtual void set_partesum(int index, float value) { warning("set_partesum(int index, float value)"); }
00355   virtual void set_prob_photon(float) { warning("set_prob_photon(float)"); }
00356   virtual void set_phi(float) { warning("set_phi(float)"); }
00357   virtual void set_pid(int) { warning("set_pid(int)"); }
00358   virtual void set_rawtdc(float) { warning("set_rawtdc(float)"); }
00359   virtual void set_sector(int) { warning("set_sector(int)"); }
00360   virtual void set_simfrac(float) { warning("set_simfrac(float)"); }
00361   virtual void set_tof(float) { warning("set_tof(float)"); }
00362   virtual void set_tofhad(float) { warning("set_tofhad(float) "); }
00363   virtual void set_tofdisp(float) { warning("set_tofdisp(float)"); }
00364   virtual void set_tofmin(float) { warning("set_tofmin(float)"); }
00365   virtual void set_tofmax(float) { warning("set_tofmax(float)"); }
00366   virtual void set_tofcorr(float) { warning("set_tofcorr(float)"); }
00367   virtual void set_tofcorrmin(float) { warning("set_tofcorrmin(float)"); }
00368   virtual void set_tofcorrmax(float) { warning("set_tofcorrmax(float)"); }
00369   virtual void set_theta(float) { warning("set_theta(float)"); }
00370   virtual void set_towerid(int index, int value) { warning("set_towerid(int index, int value)"); }
00371   virtual void set_type(int) { warning("set_type(int)"); }
00372   virtual void set_xyz(float x, float y, float z) { warning("set_xyz(float x, float y, float z)"); }
00373   virtual void set_yz_cg(float ycg, float zcg)   { warning("set_yz_cg(float ycg, float zcg)"); }
00374 
00375   //  Extra variables for vetoes of charged particles...
00376   virtual void set_emcpc3       (short) {warning("set_emcpc3(short)");}
00377   virtual void set_emcpc3neartrk(short) {warning("set_emcpc3neartrk(short)");}
00378   virtual void set_emcpc3dz     (float) {warning("set_emcpc3dz(float)");}
00379   virtual void set_emcpc3dphi   (float) {warning("set_emcpc3dphi(float)");}
00380   virtual void set_emctrk       (short) {warning("set_emctrk(short)");}
00381   virtual void set_emctrkdz     (float) {warning("set_emctrkdz(float)");}
00382   virtual void set_emctrkdphi   (float) {warning("set_emctrkdphi(float)");}
00383   virtual void set_pemctrk      (float) {warning("set_pemctrk(float)");}
00384   virtual void set_emctrkquality(short) {warning("set_emctrkquality(short)");}
00386   void ShutUp(const int i = 1);
00387   // this should be a generic copy content of any emcClusterContent to any emcClusterContent
00388   virtual void Copy(const emcClusterContent &src);
00389 
00390 
00391 protected:
00394   emcClusterContent& operator=(const emcClusterContent& rhs);
00395 
00396 private: 
00397   void warning(const char* field) const;
00398 
00399   ClassDef(emcClusterContent,0) // EMCAL Cluster data (ABC)
00400     
00401 };
00402 
00403 inline 
00404 std::ostream& operator<<(std::ostream& out, const emcClusterContent& cc)
00405 {
00406   cc.print(out); 
00407   return out;
00408 }
00409 
00410 #endif