// File: hrichlocalmaxcal.h
//
//
//
#ifndef HRICHLOCALMAXCAL_H
#define HRICHLOCALMAXCAL_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 HRichLocal;


class HRichLocalMaxCal : public HReconstructor {
public:
    HRichLocalMaxCal(const Text_t *name,const  Text_t *title, Int_t pads,
		     Int_t hitMin, Int_t sector,
		     Float_t minTheta1, Float_t maxTheta1, Float_t minTheta2,
		     Float_t maxTheta2, const Char_t energyFileName[128],
		     Int_t secEdge1,Int_t secEdge2,Int_t minHitsecEdge1,
		     Int_t minHitsecEdge2);
    ~HRichLocalMaxCal();
    HRichLocalMaxCal(void){;};
    Bool_t init();
    Bool_t finalize();
    Bool_t resetmatrix();
    Bool_t hitcontrol();
    Int_t execute();
    Bool_t fillmatrix(HLocation &fLoc);
    Bool_t localmaxcal(HLocation &fLoc);
    Bool_t localanglecut(HLocation& fLoc);
    Int_t checkLocalMax(Int_t sec,Int_t i,Int_t j,Int_t a);

    Bool_t checkIsolation(Int_t nRow, Int_t nCol, Int_t nSector,Int_t padNum);
    Float_t sumcharge(Int_t nRow, Int_t nCol, Int_t nSector);
    virtual Bool_t energyfile();
    virtual Bool_t energyout();
    virtual Bool_t multihit(Int_t nRow, Int_t nCol, Int_t nSector, HLocation& fLoc);
    virtual Float_t energyset(Int_t nRow, Int_t nCol, Int_t nSector);
    
    HRichLocalMaxCal &operator=(HRichLocalMaxCal &c);
    
  HCategory* getLocalCat() {return fLocalCat;}
   
    HCategory* getCalCat() {return fCalCat;}
    HParSet* getGeometryPar() {return fGeometryPar;}
    
  
      void setLocalCat(HCategory* pLocalCat) {fLocalCat = pLocalCat;}
    void setCalCat(HCategory* pCalCat) {fCalCat = pCalCat;}
    void setGeometryPar(HParSet* pPar) {fGeometryPar = pPar;}
    void updateHeaders(Float_t t1, Float_t t2,Int_t i,Float_t *secM,Float_t *meanCS,Int_t evtNum);

    ClassDef(HRichLocalMaxCal,1) //ROOT extension

protected:
    Int_t shadowSector;
    Int_t edgesector1;
    Int_t edgesector2;
    Int_t minHitedgesector1;
    Int_t minHitedgesector2;
    Int_t padNumber;
    Int_t minHit;
    Int_t localEventNr;
    Int_t eventNr;
    Int_t i, j;
    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 minCharge;
    Float_t maxCharge;
    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];
    Float_t energy;
    Float_t fCharge[9];
    Char_t energyName[16];
    Char_t filename[128];
    Int_t count1, count2;
    Float_t fTheta1, fTheta2;

    TFile * pEnergyLockup;
    TH2F * pEnergySim[6];
    TNtuple *tCharge; //!

    HParSet* fGeometryPar; //! Pointer to geometry parameters
    HCategory *fCalCat; //! Pointer to the cal data category
    HCategory *fLocalCat;//!
     HCategory *fLocalCatHr; //!
    HIterator* fIter; //!
    HIterator* fIter1; //!
};

#endif // HRICHLOCALMAXCAL_H







Last change: Sat May 22 13:09:20 2010
Last generated: 2010-05-22 13:09

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.