18#include <TGeoPhysicalNode.h>
19#include <TGeoVolume.h>
41 void InitFromGDML(
const char* gdmlFile,
const char* setupName );
122 TGeoNode*
GetTheta(
int part,
int phi,
int theta );
125 TGeoNode*
GetTheta2(
int part,
int phi,
int theta );
131 TGeoNode*
GetCrystal2(
int part,
int phi,
int theta );
143 void ComputeThetaPhi(
int id,
int sector,
int nb,
int& CryNumberTheta,
int& CryNumberPhi );
152 Int_t
GetPart( TGeoPhysicalNode* phyNode );
155 void Draw( Option_t* option );
161 void Align( TGeoPhysicalNode* phyNode, TGeoMatrix* newmat = 0, TGeoShape* newshape = 0,
162 Bool_t check = kFALSE );
168 static const int m_kPart = 3;
169 static const int m_kPhiBr = 120;
170 static const int m_kThetaBr = 44;
182 int m_brCrystalColor;
183 int m_ecCrystalColor;
185 static const int EMC_TIME_FACTOR = 1;
186 static const int EMC_CHARGE_FACTOR = 1000;
189 TGeoNode* m_NodePart[m_kPart];
190 TGeoNode* m_NodePhi[m_kPart][m_kPhiBr];
191 TGeoNode* m_NodeTheta[m_kPart][m_kPhiBr][m_kThetaBr];
193 TGeoNode* m_NodeTheta2[m_kPart][m_kPhiBr][m_kThetaBr];
194 TGeoPhysicalNode* m_PhysicalCrystal[m_kPart][m_kPhiBr][m_kThetaBr];
195 TGeoPhysicalNode* m_PhysicalCrystal2[m_kPart][m_kPhiBr][m_kThetaBr];
197 TObjArray* m_PhyNodeOrgArray;
204 const TObjArray* m_EmcDigiCol;
207 Emc2DCrystal* m_Emc2DCrystal[m_kPart][m_kPhiBr][m_kThetaBr];
TGeoVolume * GetVolumeCrystal(int part, int phi, int theta)
Get crystal volume;.
int ComputeEndCopyNb(int num)
Compute copyNb, copyNb 5,6,14,15,16 corresponding to two volume.
void SetVisEmcDetector()
Set Emc detector visibility;.
TGeoNode * GetCrystal(int part, int phi, int theta)
Get crystal one;.
TGeoVolume * GetVolumeTheta(int part, int phi, int theta)
Get theta volume;.
TGeoNode * GetTheta(int part, int phi, int theta)
Get theta node;.
int GetPartNb()
Get number of part;.
void SetVisEmcHits()
Set Emc hits visibility;.
void SetPhysicalDefaultVis()
Set default physical node attributes;.
TGeoVolume * GetVolumePart(int part)
Get part volume;.
TGeoNode * GetCrystal2(int part, int phi, int theta)
Get crystal2 one;.
void Align(TGeoPhysicalNode *phyNode, TGeoMatrix *newmat=0, TGeoShape *newshape=0, Bool_t check=kFALSE)
Align a physical node, change its position and shape.
void ComputeThetaPhi(int id, int sector, int nb, int &CryNumberTheta, int &CryNumberPhi)
Compute theta, phi from sector, nb.
TGeoNode * GetPart(int part)
Get part node;.
Emc2DCrystal * Get2DCrystal(Int_t part, Int_t phi, Int_t theta)
Get Emc2DCrystal;.
TGeoPhysicalNode * GetPhysicalCrystal2(int part, int phi, int theta)
Get crystal physical node2; EC nb 5,6,14,15,16 in any sector has two physicalNode.
TGeoVolume * GetVolumeEmc()
Get Emc volume;.
void SetHalfVisible()
Set half visible;.
int GetPhiNb(int part)
Get number of phi on part;.
void InitFromROOT(TGeoVolume *vol)
Initialize ROOTGeo from TGeoVolume logicalEmc.
void SetAllVisible()
Set all visible;.
TGeoVolume * GetVolumePhi(int part, int phi)
Get phi volume;.
void InitFromGDML(const char *gdmlFile, const char *setupName)
Initialize ROOTGeo from GDML.
void SetNoEndVisible()
Set noend visible;.
void SetPhysicalNode()
Set the pointers to the physical nodes;.
void SetVolumeAppendInVis()
Set default visual attributes;.
void SetNode()
Set the pointers to theirs nodes;.
int GetThetaNb(int part)
Get number of theta on part;.
bool HasTwoNodes(int part, int phi, int theta)
Whether this id is combined of two nodes.
TGeoNode * GetPhi(int part, int phi)
Get phi node;.
void RestorePhyNode(TGeoPhysicalNode *phyNode, TGeoNode *node)
Restore the physical node to original shape.
void DrawHits(Option_t *option)
Draw 2D hits.
TGeoPhysicalNode * GetPhysicalCrystal(int part, int phi, int theta)
Get crystal physical node; all part,phi,theta has a physicalNode.
TGeoNode * GetTheta2(int part, int phi, int theta)
Get theta2 node;.
void SetDetector()
Set Detecor (what is detector depends on you).
void Init2DGeometry()
Initialize 2D Geometry.
void SetVolumeEmc(TGeoVolume *vol)
Set Emc volume, while initializing from ROOT;.
void SetVolumeDefaultVis()
Set default visual attributes;.
void SetQuarterVisible()
Set quater visible;.
void SetHits()
Set all physicalNodes corresponding to digiCol;.