#if !defined (__CINT__) || defined (__MAKECINT__) #include #include #include "TFile.h" #include "TH1.h" #include "TH2.h" #include "TProfile.h" #include #include #include #include #include #endif class TXftAnaModule: public TStnModule { public: struct Hist_t { }; protected: // pointers to the data blocks used const Text_t* jobName; TStnHeaderBlock* fHeaderBlock; TStnTriggerBlock* fTriggerBlock; TXftBlock* fXftBlock; TStnTrackBlock* fTrackBlock; // histograms filled Hist_t fHist; // stub finder public: TXftAnaModule(const char* name="XftAna", const char* title="XftAna"); ~TXftAnaModule(); // ****** accessors Hist_t* GetHist () { return &fHist; } // // Define the histos TFile* outfile; TH1F* xftNHits; TH1F* xftNPixels; TH1F* xftNTracks; TH1F* offNTracks; TH1F* SL1PixelCell; TH1F* SL2PixelCell; TH1F* SL3PixelCell; TH1F* SL4PixelCell; TH1F* SL1PixelChip; TH1F* SL2PixelChip; TH1F* SL3PixelChip; TH1F* SL4PixelChip; TH1F* xftPtBin; TH1F* xftPtBinShort; TH1F* xftShort; TH1F* xftIso; TH1F* xftPtVal; TH1F* xftBoard; TH1F* xftChip; TH1F* xftCrate; TH1F* xftAbsPhi; TH1F* xftPhiBin; TH1F* xftAbsPhi4; TH1F* xftAbsPhi8; TH1F* xftpt_cem_match; TH1F* xftphi_cem_match; TH1F* xftpt_cem_nomatch4; TH1F* xftphi_cem_nomatch4; TH1F* xftpt_cmu_match; TH1F* xftphi_cmu_match; TH1F* xftpt_cmu_nomatch8; TH1F* xftphi_cmu_nomatch8; TH1F* xftpt_jet; TH1F* xftphi_jet; TH1F* xftFakePtBin; TH1F* xftFakeShort; TH1F* xftFakeIso; TH1F* xftFakePtVal; TH1F* xftFakeBoard; TH1F* xftFakeChip; TH1F* xftFakeCrate; TH1F* xftFakeAbsPhi; TH1F* xftFakePhiBin; TH1F* offPtTriggerAll1p5; TH1F* offPtTriggerAll4; TH1F* offPtTriggerAll8; TH1F* offPtTrigger1p5; TH1F* offPtTrigger4; TH1F* offPtTrigger8; TH1F* offInvPtTriggerAll; TH1F* offInvPtTrigger1p5; TH1F* offInvPtTrigger4; TH1F* offInvPtTrigger8; TH1F* poffPtTriggerAll1p5; TH1F* poffPtTriggerAll4; TH1F* poffPtTriggerAll8; TH1F* poffPtTriggerAll; TH1F* poffPtTrigger1p5; TH1F* poffPtTrigger4; TH1F* poffPtTrigger8; TH1F* moffPtTriggerAll1p5; TH1F* moffPtTriggerAll4; TH1F* moffPtTriggerAll8; TH1F* moffPtTrigger1p5; TH1F* moffPtTrigger4; TH1F* moffPtTrigger8; TH1F* turnon1p5; TH1F* turnon4; TH1F* turnon8; TH1F* iturnon1p5; TH1F* iturnon4; TH1F* iturnon8; TH1F* mturnon1p5; TH1F* mturnon4; TH1F* mturnon8; TH1F* pturnon1p5; TH1F* pturnon4; TH1F* pturnon8; TH1F* PairPhi; TH1F* PairPhiOppo; TH1F* PairPhiSame; TH1F* duplPairPhi; TH1F* duplPairPhiOppo; TH1F* duplPairPhiSame; // TH2F* offphid0; TH1F* offPhi; TH1F* offd0; TH1F* offz0; TH1F* offPt; TH1F* offCotan; TH1F* offEta; TH1F* offZSl3; TH1F* offZSl2; TH1F* offZSl1; TH1F* offZSl0; TH1F* offPhiFound; TH1F* offd0Found; TH1F* offz0Found; TH1F* offPtFound; TH1F* offCotanFound; TH1F* offEtaFound; TH1F* offZSl3Found; TH1F* offZSl2Found; TH1F* offZSl1Found; TH1F* offZSl0Found; TH1F* offPhiMissed; TH1F* offd0Missed; TH1F* offz0Missed; TH1F* offPtMissed; TH1F* offCotanMissed; TH1F* offEtaMissed; TH1F* offZSl3Missed; TH1F* offZSl2Missed; TH1F* offZSl1Missed; TH1F* offZSl0Missed; TH1F* offPhiEff; TH1F* offd0Eff; TH1F* offz0Eff; TH1F* offPtEff; TH1F* offCotanEff; TH1F* offEtaEff; TH1F* offZSl3Eff; TH1F* offZSl2Eff; TH1F* offZSl1Eff; TH1F* offZSl0Eff; TH1F* allPhi; TH1F* alld0; TH1F* allz0; TH1F* allPt; TH1F* allCotan; TH1F* allEta; TH1F* allZSl3; TH1F* allZSl2; TH1F* allZSl1; TH1F* allZSl0; TH1F* qallPhi; TH1F* qalld0; TH1F* qallz0; TH1F* qallPt; TH1F* qallCotan; TH1F* qallEta; TH1F* qallZSl3; TH1F* qallZSl2; TH1F* qallZSl1; TH1F* qallZSl0; TH1F* dPhiHist; TH1F* dPtHist; TH1F* PdPhiHist; TH1F* PdPtHist; TH1F* MdPhiHist; TH1F* MdPtHist; TH1F* dPtNewHist; TH2F* dPhiPhiHist; TH2F* dPtPhiHist; TH2F* PtBinPtBinHist; TH2F* dPtBinChipHist; TH2F* dPtBinPhiHist; TH2F* dPtBinPhiNeg; TH2F* dPtBinPhiPos; TH2F* dPtBinPhiNegCorr; TH2F* dPtBinPhiPosCorr; TH1F* CotHitsTotEff; TH1F* CotHitsAxEff; TH1F* CotHitsStEff; TH1F* CotHitsTot; TH1F* CotHitsAx; TH1F* CotHitsSt; TH1F* CotHitsTotMissed; TH1F* CotHitsAxMissed; TH1F* CotHitsStMissed; TH1F* CotHitsTotFound; TH1F* CotHitsAxFound; TH1F* CotHitsStFound; TH2F* CotHitsTotZSl3; TH2F* CotHitsAxZSl3; TH2F* CotHitsStZSl3; TH2F* CotHitsTotZSl3Found; TH2F* CotHitsAxZSl3Found; TH2F* CotHitsStZSl3Found; TH2F* CotHitsTotZSl3Missed; TH2F* CotHitsAxZSl3Missed; TH2F* CotHitsStZSl3Missed; TH2F* foundHits0; TH2F* foundHits1; TH2F* foundHits2; TH2F* foundHits3; TH2F* foundHitsIso0; TH2F* foundHitsIso1; TH2F* foundHitsIso2; TH2F* foundHitsIso3; TH2F* foundHitsIsoUM0; TH2F* foundHitsIsoUM1; TH2F* foundHitsIsoUM2; TH2F* foundHitsIsoUM3; TH2F* foundHitsZSl0; TH2F* foundHitsZSl1; TH2F* foundHitsZSl2; TH2F* foundHitsZSl3; TH2F* foundHitsIsoZSl0; TH2F* foundHitsIsoZSl1; TH2F* foundHitsIsoZSl2; TH2F* foundHitsIsoZSl3; TH2F* foundHitsIsoUMZSl0; TH2F* foundHitsIsoUMZSl1; TH2F* foundHitsIsoUMZSl2; TH2F* foundHitsIsoUMZSl3; TH1F* cellsFound0; TH1F* cellsFound1; TH1F* cellsFound2; TH1F* cellsFound3; TH1F* cellsMissed0; TH1F* cellsMissed1; TH1F* cellsMissed2; TH1F* cellsMissed3; TH1F* wiresMissedTDC0; TH1F* wiresMissedTDC1; TH1F* wiresMissedTDC2; TH1F* wiresMissedTDC3; TH1F* wiresFoundTDC0; TH1F* wiresFoundTDC1; TH1F* wiresFoundTDC2; TH1F* wiresFoundTDC3; TH1F* wiresMissed0; TH1F* wiresMissed1; TH1F* wiresMissed2; TH1F* wiresMissed3; TH1F* cellsPrompt0; TH1F* cellsPrompt1; TH1F* cellsPrompt2; TH1F* cellsPrompt3; TH1F* cellsDelayed0; TH1F* cellsDelayed1; TH1F* cellsDelayed2; TH1F* cellsDelayed3; TH1F* cellsPD0; TH1F* cellsPD1; TH1F* cellsPD2; TH1F* cellsPD3; TH1F* wiresPrompt0; TH1F* wiresPrompt1; TH1F* wiresPrompt2; TH1F* wiresPrompt3; TH1F* wiresDelayed0; TH1F* wiresDelayed1; TH1F* wiresDelayed2; TH1F* wiresDelayed3; TH1F* wiresPD0; TH1F* wiresPD1; TH1F* wiresPD2; TH1F* wiresPD3; TH1F* HitDcell0; TH1F* HitDcell1; TH1F* HitDcell2; TH1F* HitDcell3; TXftBlock* GetXftBlock() { return fXftBlock; } // ****** setters // ****** overloaded methods of // TStnModule int BeginJob(); int BeginRun(); int Event (int ientry); int EndJob (); // ****** other methods void BookHistograms(); void SetJobName(const char* jobname); void roadFile(char* pathName); void road3File(char* pathName); float getPtValue(int ptBin, int tfnd4, int tfnd3, float phi); float getPhiZero(float ptXFT, float phiXFT); int matchTracks(int prt, float pt1, float phi1, float cotan1, float d1, float z1, float pt2, float phi2, float cotan2, float d2, float z2); float returnHits (int layer, float cot_curv, float cot_phi0, float cot_cotan, float cot_d0, float cot_z0); bool fiducial (float pt, float cot_phi0, float cot_cotan, float cot_d0, float cot_z0); void track_Prop(float radius, float curvature, float PhiZeroIn, float cotan, float D_0, float Z_0, float* xyz); void track_Prop(float epsilon, float radius, float curvature, float PhiZeroIn, float cotan, float D_O, float Z_0, float* xyz); float cdfphi(float phi); int nearestPtBin(float ptVal); void effCalc (TH1F* numHist, TH1F* denomHist, TH1F* effHist); bool xtrp_duplicate_removal(int chip1,int miniPhi1,int board1,int crate1, int chip2,int miniPhi2,int board2,int crate2); int nearTracks( float curv1, float phi1, float cotan1, float d1, float z1, float curv2, float phi2, float cotan2, float d2, float z2); int returnCell (int layer, int wire, float cot_curv, float cot_phi0, float cot_cotan, float cot_d0, float cot_z0); void cotGeom(char* pathName); int numRoad; float ptbins[96]; int numRoad3; float ptbins3[32]; int nlink; int nlink3; int numPix[4][3]; double getPhiAtRadius(float ptXFT, float phiXFT, float Radius); ClassDef(TXftAnaModule,0) };