Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CandShowerHandle.h

Go to the documentation of this file.
00001 
00002 // $Id: CandShowerHandle.h,v 1.20 2008/11/05 17:33:15 rodriges Exp $
00003 //
00004 // CandShowerHandle.h
00005 //
00006 // CandShowerHandle is the specialized access handle to CandShower.
00007 //
00008 // Each concrete CandHandle must define a DupHandle function.
00009 //
00010 // Author:  R. Lee 2001.02.21
00011 //
00013 
00014 #ifndef CANDSHOWERHANDLE_H
00015 #define CANDSHOWERHANDLE_H
00016 
00017 #include "Navigation/XxxItr.h"
00018 #include "RecoBase/CandRecoHandle.h"
00019 
00020 class CandShower;
00021 
00022 class CandSliceHandle;
00023 class CandClusterHandle;
00024 class CandTrackHandle;
00025 class AlgConfig;
00026 class VldContext;
00027 class CandShowerHandle : public CandRecoHandle
00028 {
00029 
00030 public:
00031   CandShowerHandle();
00032   CandShowerHandle(const CandShowerHandle &cdh);
00033   CandShowerHandle(CandShower *cd);
00034   virtual ~CandShowerHandle();
00035   virtual CandShowerHandle *DupHandle() const;
00036 
00037   virtual void Trace(const char *c = "") const;
00038  
00039   typedef enum EShowerType{
00040     kCC=0,
00041     kWtCC=1,
00042     kNC=2,
00043     kWtNC=3,
00044     kEM=4
00045   }ShowerType_t;
00046   void SetU(Int_t,Float_t);
00047   Float_t GetU(Int_t) const; // U position at specified plane
00048 
00049   void SetV(Int_t,Float_t);
00050   Float_t GetV(Int_t) const; // V position at specified plane
00051 
00052   Float_t GetZ(Int_t) const; // Z position at specified plane
00053 
00054   virtual void ClearUVT(); // clears all STL maps
00055   Bool_t IsTPosValid(Int_t) const; // returns true if U and V positions have been set for this plane  
00056   Float_t GetMinU(Int_t plane, Double_t minPE=0) const;
00057   Float_t GetMaxU(Int_t plane, Double_t minPE=0) const;
00058   Float_t GetMinV(Int_t plane, Double_t minPE=0) const;
00059   Float_t GetMaxV(Int_t plane, Double_t minPE=0) const;
00060   Int_t GetNStrips(Int_t);
00061 
00062   void SetMinStripPE(Double_t);
00063   Double_t GetMinStripPE() const; 
00064 
00065   void SetT(Int_t,StripEnd::StripEnd_t,Double_t);
00066   Double_t GetT(Int_t) const; // time at specified plane
00067   Double_t GetT(Int_t,StripEnd::StripEnd_t) const; // time at specified plane
00068   Double_t GetT(StripEnd::StripEnd_t,Int_t) const; // time at specified plane
00069 
00070   virtual Bool_t BelongsWithTrack(CandTrackHandle * trk, 
00071                                   AlgConfig & ac, 
00072                                   const VldContext * vldcptr, 
00073                                   Double_t tolTPos2, Double_t tolZPos, Double_t tolTime);
00074   virtual Bool_t BelongsWithShower(CandShowerHandle * shw, 
00075                                    AlgConfig & ac, 
00076                                    const VldContext * vldcptr, 
00077                                    Double_t tolTPos2, Double_t tolZPos, Double_t tolTime);
00078   void AddCluster(CandClusterHandle *);
00079   void RemoveCluster(CandClusterHandle *);
00080   const CandClusterHandle *GetCluster(Int_t) const;
00081   Int_t GetLastCluster() const;
00082   bool IsContained();
00083   virtual Bool_t IsUnphysical(Float_t xtalkFrac=0.660,
00084                               Float_t xtalkCut=2.0);
00085 
00086   void SetEnergy(Double_t, CandShowerHandle::EShowerType=kCC);
00087   Double_t GetEnergy(CandShowerHandle::EShowerType=kCC) const;
00088   void CalibrateEnergy(CandTrackHandle *associatedtrk,   AlgConfig & ac);
00089   static NavKey KeyFromSlice(const CandShowerHandle *);
00090 
00091   Double_t DeDx(Double_t);
00092 
00093 ClassDef(CandShowerHandle,8)           // User access handle to CandShower
00094 
00095 };
00096 
00097 XXXITRDEF(CandShowerHandle)
00098 
00099 #endif                                              // CANDSHOWERHANDLE_H

Generated on Mon Feb 15 11:06:29 2010 for loon by  doxygen 1.3.9.1