//*-- Author : Vladimir Pechenov 24.11.2011 #ifndef __HALIGNMENTMETA_H__ #define __HALIGNMENTMETA_H__ #include "TObject.h" #include "TMath.h" #include "hgeomtransform.h" class TFile; class TNtuple; class HAlignmentMeta:public TObject { private: struct TrackMdcMeta { HGeomVector mdcPnt1Sec; HGeomVector mdcPnt2Sec; Double_t xMeta; // In the coor.sys. of meta-module Double_t yMeta; // In the coor.sys. of meta-module Double_t zMeta; // In the coor.sys. of meta-module Double_t xMinDistInit; Double_t yMinDistInit; Double_t xMinDist; Double_t yMinDist; Double_t minDist2; // chi2 or minDist^2 Double_t sigmaX; Double_t sigmaY; Double_t sigmaZ; Double_t wt; Int_t startTrInd; Short_t metaMod; Short_t binScWt; Short_t column; // RPC,Shower-column, TOF- =0 Short_t cell; // RPC,TOF - cell, Shower - row Short_t cellInd; // For RPC = column*32+cell; for TOF = module*8+cell Bool_t useIt; Bool_t oneLay(TrackMdcMeta &t) const {return TMath::Abs(t.zMeta-zMeta) < 2.; } Double_t dXNorm(void) const {return xMinDist/sigmaX;} Double_t dYNorm(void) const {return yMinDist/sigmaY;} }; TrackMdcMeta tracks[10000000]; Int_t metaDetector; // 0-TOF, 1-Shower, 2-RPC, 3-Emc Double_t yMinMetaLocal; Double_t yMaxMetaLocal; Int_t alignSec; Int_t nTracks; Double_t trackSelecCutX; Double_t trackSelecCutY; Bool_t filterFlag; Bool_t cXOffsetOnly; // kTRUE no alignment will be done, correction of xOffset will be calculated only Int_t cellsCut; // Tof: cells TofModule*8+cell < cellsCut will be not used in alignment but xCorr will be done // Rpc: cells