]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONTriggerChamberEff.h
Removing class AliMUONTrackK
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerChamberEff.h
CommitLineData
f165a2d2 1#ifndef ALIMUONTRIGGERCHAMBEREFF_H
2#define ALIMUONTRIGGERCHAMBEREFF_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/// \ingroup base
7/// \class AliMUONTriggerChamberEff
8/// \brief trigger chamber efficiency from data
78649106 9///
10// Author Diego Stocco
f165a2d2 11
12#include <TObject.h>
8c0b5e70 13#include <TList.h>
f165a2d2 14
8c0b5e70 15class AliMUONGeometryTransformer;
16class AliMUONDigitMaker;
17class AliMUONTriggerTrack;
18class AliMUONVDigitStore;
19class AliMUONVTriggerStore;
20class AliMUONVTriggerTrackStore;
21class AliMUONVTrackStore;
22class TClonesArray;
f165a2d2 23
24class AliMUONTriggerChamberEff : public TObject
25{
26public:
8c0b5e70 27 AliMUONTriggerChamberEff();
28 AliMUONTriggerChamberEff(const AliMUONGeometryTransformer* transformer,
29 const AliMUONDigitMaker* digitMaker,
30 Bool_t writeOnESD=kFALSE);
31
f165a2d2 32 virtual ~AliMUONTriggerChamberEff();
33
9f6be20d 34 AliMUONTriggerChamberEff(const AliMUONTriggerChamberEff& other);
35 AliMUONTriggerChamberEff& operator=(const AliMUONTriggerChamberEff& other);
8c0b5e70 36
71a2d3aa 37 /// Set Reproduce trigger response
f165a2d2 38 void SetReproduceTrigResponse(Bool_t reproduceTrigRes=kFALSE)
39 {fReproduceTrigResponse=reproduceTrigRes;}
71a2d3aa 40 /// Set Print informations on event
f165a2d2 41 void SetPrintInfo(Bool_t printInfo=kFALSE)
42 {fPrintInfo=printInfo;}
71a2d3aa 43 /// Set Debug level
f165a2d2 44 void SetDebugLevel(Int_t debugLevel)
45 {fDebugLevel=debugLevel;}
46
8c0b5e70 47 void EventChamberEff(const AliMUONVTriggerStore& triggerStore,
48 const AliMUONVTriggerTrackStore& trigTrackStore,
49 const AliMUONVTrackStore& trackStore);
50 void WriteEfficiencyMap(const char* outputDir);
51 void WriteEfficiencyMapTxt(const char* outputDir);
a690d2f8 52
f165a2d2 53
54private:
8c0b5e70 55 /*
56 /// Not implemented
2227e936 57 AliMUONTriggerChamberEff(const AliMUONTriggerChamberEff& other);
71a2d3aa 58 /// Not implemented
2227e936 59 AliMUONTriggerChamberEff& operator=(const AliMUONTriggerChamberEff& other);
8c0b5e70 60 */
2227e936 61
8c0b5e70 62 static const Int_t fgkNchambers=4; ///< Number of trigger chambers
63 static const Int_t fgkNcathodes=2; ///< Number of cathodes per chamber
64 static const Int_t fgkNslats=18; ///< Number of slats per chamber
65 static const Int_t fgkNboards=234; ///< Number of trigger boards per chamber
66
9f6be20d 67 Int_t fTrigger34[fgkNchambers][fgkNcathodes]; ///< Array counting # of times chamber was inefficient
68 Int_t fTrigger44[fgkNcathodes]; ///< Array counting # of times all chambers were efficient
69 Int_t fInefficientSlat[fgkNchambers][fgkNcathodes][fgkNslats]; ///< Array counting # of times slats were inefficient
70 Int_t fHitPerSlat[fgkNchambers][fgkNcathodes][fgkNslats]; ///< Array counting # of times slats were efficient
71 Int_t fInefficientBoard[fgkNchambers][fgkNcathodes][fgkNboards]; ///< Array counting # of times boards were inefficient
72 Int_t fHitPerBoard[fgkNchambers][fgkNcathodes][fgkNboards]; ///< Array counting # of times boards were efficient
f165a2d2 73
8c0b5e70 74 const AliMUONGeometryTransformer* fTransformer; //!< geometry transformer
75 const AliMUONDigitMaker* fDigitMaker; //!< pointer to digit maker
76 Bool_t fReproduceTrigResponse; //!< Reproduce trigger response
77 Bool_t fPrintInfo; //!< Print informations on event
78 Int_t fWriteOnESD; //!< flag to write on ESD
f165a2d2 79 Int_t fDebugLevel; //!< Debug level
8c0b5e70 80 const Float_t fkMaxDistance; //!< Maximum distance for reference
f165a2d2 81
a690d2f8 82
83protected:
8c0b5e70 84 Int_t MatchingPad(AliMUONVDigitStore& digitStore, Int_t &detElemId, Float_t coor[2],
85 Bool_t isMatch[fgkNcathodes], Int_t nboard[fgkNcathodes][4],
86 Float_t zRealMatch[fgkNchambers], Float_t y11);
a690d2f8 87 Float_t PadMatchTrack(Float_t xPad, Float_t yPad, Float_t dpx, Float_t dpy,
8c0b5e70 88 Float_t xTrackAtPad, Float_t yTrackAtPad, Int_t chamber);
89 void InfoDigit(AliMUONVDigitStore& digitStore);
90 void CalculateEfficiency(Int_t trigger44, Int_t trigger34, Float_t &efficiency,
91 Float_t &error, Bool_t failuresAsInput);
a690d2f8 92 Int_t DetElemIdFromPos(Float_t x, Float_t y, Int_t chamber, Int_t cathode);
8c0b5e70 93 void LocalBoardFromPos(Float_t x, Float_t y, Int_t detElemId,
94 Int_t cathode, Int_t localBoard[4]);
a690d2f8 95 void ResetArrays();
8c0b5e70 96 Bool_t TriggerDigits(const AliMUONVTriggerStore& triggerStore,
97 AliMUONVDigitStore& digitStore) const;
98 Bool_t IsCleanTrack(AliMUONTriggerTrack *triggerTrack,
99 const AliMUONVTrackStore& trackStore);
100 void SaveInESDFile();
a690d2f8 101
8c0b5e70 102 ClassDef(AliMUONTriggerChamberEff,1) // Trigger chamber efficiency
f165a2d2 103};
104#endif