// File: hrichlocalmaxcal.h
#ifndef HCLUSTERSELECTOR_H
#define HCLUSTERSELECTOR_H

#include "hreconstructor.h"
#include "hlocation.h"
#include "hparset.h"
#include "TFile.h"
#include "TH2.h"
#include "TNtuple.h"

class HCategory;
class HIterator;
class HRichCal;
class HPhotonCluster;
class HRichGeometryPar;

class HClusterSelector : public HReconstructor {
public:
    HClusterSelector(const Text_t *name,const Text_t *title,  Int_t hitMin,
		     Int_t secShadow,
		     Float_t minTheta1, Float_t maxTheta1, Float_t minTheta2,
		     Float_t maxTheta2, 
		     Int_t secEdge1,Int_t secEdge2,Int_t minHitsecEdge1,
		     Int_t minHitsecEdge2);
    ~HClusterSelector();
    HClusterSelector(void){}
    Bool_t init();
    Bool_t reinit();
    Bool_t finalize();
    Bool_t resetmatrix();
    Bool_t hitcontrol();
    Bool_t isMaximumInCentre(HPhotonCluster *pPhotC);
    Int_t execute();
    Bool_t fillmatrix(HLocation &fLoc);
    void formCluster(Int_t secNum);
    void chainPads(Int_t iSec,Int_t iRow,Int_t iCol,HPhotonCluster* pClus);
    void calcClusProp(HPhotonCluster *pPhotClus);
    virtual Bool_t multihit(Int_t nRow, Int_t nCol, Int_t nSector, HLocation& fLoc);
    Bool_t thereIsOnlyOneMax(HPhotonCluster *pPhotC);
    
    
    HCategory* getPhotClusCat() {return fPhotClusCat;}
   
    HCategory* getCalCat() {return fCalCat;}
    HRichGeometryPar* getGeometryPar() {return pGeomPar;}
    
  
    
    void setCalCat(HCategory* pCalCat) {fCalCat = pCalCat;}
    void setGeometryPar(HRichGeometryPar* pPar) {pGeomPar = pPar;}
    void updateHeaders(Float_t t1, Float_t t2,Int_t i,Float_t *secM,Float_t *meanCS,Int_t evtNum);

   

protected:
    Int_t shadowSector,eventNr;
    Int_t edgesector1;
    Int_t edgesector2;
    Int_t minHitedgesector1;
    Int_t minHitedgesector2;
    Int_t minHit;
    Int_t padCounter;
    Int_t n;
    Bool_t hitControl;
    Float_t sumHit[6];
    Float_t meanCharge[6];
    Int_t doubleHit[6];

    Int_t jCol;
    Int_t jRow;
    Int_t iSector;
    Int_t iCol;
    Int_t iRow;
    Float_t thetaMin1;//MgF2
    Float_t thetaMax1;//MgF2
    Float_t thetaMin2;//SiO2
    Float_t thetaMax2;//SiO2
    Float_t sumCharge;
    Float_t sumTheta;
    Float_t sumPhi;
    Int_t nPad;

    Int_t mHit2[6][90][92];//!
    Int_t mHit[6][90][92];//!
    Float_t mCharge[6][90][92];//!
    Float_t mTheta[6][90][92];//!
    Float_t mPhi[6][90][92];//!
    Int_t mPadLock[6][90][92];//!
    Float_t fCharge[9];

    Int_t maxCols, maxRows;
    Short_t * pLeftBorder; //! left border of active pad area
    Short_t * pRightBorder; //! dito right side (largest active col in row)
    Int_t count1, count2;
    Float_t fTheta1, fTheta2;

    Int_t padTotNr;
    Float_t chargeTot ;
    TNtuple *tCharge; 
    TNtuple *tCharge1;

    HRichGeometryPar *pGeomPar; //! Pointer to geometry parameters
    HCategory *fCalCat; //! Pointer to the cal data category
    HCategory * fPhotClusCat;//!
    HCategory *fLocalCatHr; //!
    HIterator* fIter; //!
    HIterator* fIter1; //!
    ClassDef(HClusterSelector,1) //ROOT extension
	};
#endif /* !HCLUSTERSELECTOR_H */









Last change: Sat May 22 12:53:52 2010
Last generated: 2010-05-22 12:53

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.