#ifndef ROOT_THaBBShower
#define ROOT_THaBBShower
#include "THaPidDetector.h"
#include "THaBBShowerCluster.h"
#include "TRotation.h"
#include "TVector3.h"
class THaBBShower : public THaPidDetector {
public:
THaBBShower( const char* name, const char* description = "",
THaApparatus* a = NULL );
virtual ~THaBBShower();
virtual Int_t Decode( const THaEvData& );
virtual Int_t CoarseProcess(TClonesArray& tracks);
virtual Int_t FineProcess(TClonesArray& tracks);
Int_t GetNclust() const { return fNclust; }
Int_t GetNhits() const { return fNhits; }
Float_t GetE(int i) const { return fE[i]; }
Float_t GetX(int i) const { return fX[i]; }
Float_t GetY(int i) const { return fY[i]; }
Int_t GetNBlocks() { return (fNrows * fNcols);}
Float_t GetBlockX( Int_t i ) { if(i < fNrows*fNcols) return fBlocks[i]->GetX(); else return 0.0;}
Float_t GetBlockY( Int_t i ) { if(i < fNrows*fNcols) return fBlocks[i]->GetY(); else return 0.0;}
Float_t GetBlockdX() {return fdX;}
Float_t GetBlockdY() {return fdY;}
Float_t GetBlockdZ() {return fdZ;}
Float_t GetBlockA_c( Int_t i ) const { return fA_c[i]; }
Int_t GetNRows() {return fNrows;}
Int_t GetNCols() {return fNcols;}
Int_t BlockColRowToNumber( Int_t col, Int_t row );
THaBBShowerCluster* GetClust(Int_t i) { return fClusters[i]; }
void AddCluster(THaBBShowerCluster* clus);
void RemoveCluster(int i);
void AddCluster(THaBBShowerCluster& clus);
void LoadMCHitAt( Double_t x, Double_t y, Double_t E );
protected:
Bool_t fCoarseProcessed;
Bool_t fFineProcessed;
Int_t fMaxNClust;
UShort_t* fNChan;
UShort_t** fChanMap;
Int_t fNclublk;
Int_t fNrows;
Int_t fNcols;
Float_t* fBlockX;
Float_t* fBlockY;
Float_t* fPed;
Float_t* fGain;
Float_t gconst;
Float_t gslope;
Float_t acc_charge;
Float_t fEmin;
Int_t fNhits;
Float_t* fA;
Float_t* fA_p;
Float_t* fA_c;
Float_t fAsum_p;
Float_t fAsum_c;
Int_t fNclust;
Float_t* fE;
Float_t* fX;
Float_t* fY;
Int_t* fMult;
Int_t* fNblk;
Float_t* fEblk;
Float_t fTRX;
Float_t fTRY;
Float_t* fE_c;
Double_t fdX;
Double_t fdY;
Double_t fdZ;
THaBBShowerBlock** fBlocks;
THaBBShowerCluster** fClusters;
THaBBShowerBlock*** fBlkGrid;
Double_t tan_angle, sin_angle, cos_angle;
void ClearEvent();
void DeleteArrays();
virtual Int_t ReadDatabase( const TDatime& date );
virtual Int_t DefineVariables( EMode mode = kDefine );
ClassDef(THaBBShower,0)
};
#endif
Last update: Tue Jul 7 19:26:16 2009
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.