#ifndef AliEveITSDigitsInfo_H
#define AliEveITSDigitsInfo_H
#include <TEveUtil.h>
#include <TObject.h>
#include <map>
#include <vector>
class TClonesArray;
class TTree;
class AliITSsegmentationSPD;
class AliITSsegmentationSDD;
class AliITSsegmentationSSD;
class AliITSDDLModuleMapSDD;
class AliRawReader;
class AliEveITSModuleSelection
{
public:
AliEveITSModuleSelection();
virtual ~AliEveITSModuleSelection() {}
Int_t GetType() const { return fType; }
void SetType(Int_t x) { fType = x; }
Int_t GetLayer() const { return fLayer; }
void SetLayer(Int_t x) { fLayer = x; }
Float_t GetMinPhi() const { return fMinPhi; }
void SetMinPhi(Float_t x) { fMinPhi = x; }
Float_t GetMaxPhi() const { return fMaxPhi; }
void SetMaxPhi(Float_t x) { fMaxPhi = x; }
Float_t GetMinTheta() const { return fMinTheta; }
void SetMinTheta(Float_t x) { fMinTheta = x; }
Float_t GetMaxTheta() const { return fMaxTheta; }
void SetMaxTheta(Float_t x) { fMaxTheta = x; }
void SetPhiRange (Float_t x, Float_t y) { fMinPhi = x; fMaxPhi = y; }
void SetThetaRange(Float_t x, Float_t y) { fMinTheta = x; fMaxTheta = y; }
protected:
Int_t fType;
Int_t fLayer;
Float_t fMinPhi;
Float_t fMaxPhi;
Float_t fMinTheta;
Float_t fMaxTheta;
ClassDef(AliEveITSModuleSelection, 0);
};
class AliEveITSDigitsInfo : public TObject, public TEveRefCnt
{
public:
TTree* fTree;
AliITSsegmentationSPD* fSegSPD;
AliITSsegmentationSDD* fSegSDD;
AliITSsegmentationSSD* fSegSSD;
Int_t fSPDMinVal;
Int_t fSSDMinVal;
Int_t fSDDMinVal;
Int_t fSPDMaxVal;
Int_t fSSDMaxVal;
Int_t fSDDMaxVal;
Int_t fSPDHighLim;
Int_t fSDDHighLim;
Int_t fSSDHighLim;
Int_t fSPDScaleX[5];
Int_t fSPDScaleZ[5];
Int_t fSDDScaleX[5];
Int_t fSDDScaleZ[5];
Int_t fSSDScale [5];
static AliITSDDLModuleMapSDD *fgDDLMapSDD;
static TObjArray *fgDeadModSPD;
static TObjArray *fgDeadModSDD;
static TObjArray *fgDeadModSSD;
AliEveITSDigitsInfo();
virtual ~AliEveITSDigitsInfo();
void SetTree(TTree* tree);
void ReadRaw(AliRawReader* raw, Int_t mode);
TClonesArray* GetDigits(Int_t moduleID, Int_t detector) const;
void GetSPDLocalZ(Int_t j, Float_t& z) const;
void GetModuleIDs(AliEveITSModuleSelection* sel, std::vector<UInt_t>& ids) const;
Bool_t HasData(Int_t module, Int_t det_id) const;
Bool_t IsDead (Int_t module, Int_t det_id) const;
virtual void Print(Option_t* opt="") const;
protected:
mutable std::map<Int_t, TClonesArray*> fSPDmap;
mutable std::map<Int_t, TClonesArray*> fSDDmap;
mutable std::map<Int_t, TClonesArray*> fSSDmap;
void SetITSSegmentation();
private:
Float_t fSPDZCoord[192];
void InitInternals();
AliEveITSDigitsInfo(const AliEveITSDigitsInfo&);
AliEveITSDigitsInfo& operator=(const AliEveITSDigitsInfo&);
ClassDef(AliEveITSDigitsInfo, 0);
};
inline void AliEveITSDigitsInfo::GetSPDLocalZ(Int_t j, Float_t& z) const
{
z = fSPDZCoord[j];
}
#endif
AliEveITSDigitsInfo.h:100 AliEveITSDigitsInfo.h:101 AliEveITSDigitsInfo.h:102 AliEveITSDigitsInfo.h:103 AliEveITSDigitsInfo.h:104 AliEveITSDigitsInfo.h:105 AliEveITSDigitsInfo.h:106 AliEveITSDigitsInfo.h:107 AliEveITSDigitsInfo.h:108 AliEveITSDigitsInfo.h:109 AliEveITSDigitsInfo.h:110 AliEveITSDigitsInfo.h:111 AliEveITSDigitsInfo.h:112 AliEveITSDigitsInfo.h:113 AliEveITSDigitsInfo.h:114 AliEveITSDigitsInfo.h:115 AliEveITSDigitsInfo.h:116 AliEveITSDigitsInfo.h:117 AliEveITSDigitsInfo.h:118 AliEveITSDigitsInfo.h:119 AliEveITSDigitsInfo.h:120 AliEveITSDigitsInfo.h:121 AliEveITSDigitsInfo.h:122 AliEveITSDigitsInfo.h:123 AliEveITSDigitsInfo.h:124 AliEveITSDigitsInfo.h:125 AliEveITSDigitsInfo.h:126 AliEveITSDigitsInfo.h:127 AliEveITSDigitsInfo.h:128 AliEveITSDigitsInfo.h:129 AliEveITSDigitsInfo.h:130 AliEveITSDigitsInfo.h:131 AliEveITSDigitsInfo.h:132 AliEveITSDigitsInfo.h:133 AliEveITSDigitsInfo.h:134 AliEveITSDigitsInfo.h:135 AliEveITSDigitsInfo.h:136 AliEveITSDigitsInfo.h:137 AliEveITSDigitsInfo.h:138 AliEveITSDigitsInfo.h:139 AliEveITSDigitsInfo.h:140 AliEveITSDigitsInfo.h:141 AliEveITSDigitsInfo.h:142 AliEveITSDigitsInfo.h:143 AliEveITSDigitsInfo.h:144