Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MdcROOTGeo Class Reference

#include <MdcROOTGeo.h>

Inheritance diagram for MdcROOTGeo:

SubDetectorROOTGeo SubDetectorROOTGeo SubDetectorROOTGeo SubDetectorROOTGeo List of all members.

Public Member Functions

int CorrectReplica (int layer, int replica)
 Correct some axial layer id to copyNo;.
int CorrectReplica (int layer, int replica)
 Correct some axial layer id to copyNo;.
int CorrectReplica (int layer, int replica)
 Correct some axial layer id to copyNo;.
int CorrectReplica (int layer, int replica)
 Correct some axial layer id to copyNo;.
void Draw (Option_t *option)
 Draw function.
void Draw (Option_t *option)
 Draw function.
void DrawHits (Option_t *option)
 Draw 2D hits.
void DrawHits (Option_t *option)
 Draw 2D hits.
Mdc2DWireGet2DWire (Int_t layer, Int_t replica)
 Get Mdc2DWire;.
Mdc2DWireGet2DWire (Int_t layer, Int_t replica)
 Get Mdc2DWire;.
TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
TGeoVolumeAssembly * GetAssemblyVolume (const std::string &an)
 Get an assembly by name;.
virtual TGeoPhysicalNode * GetHit (int i)
 Get ith hit in HitsArray;.
virtual TGeoPhysicalNode * GetHit (int i)
 Get ith hit in HitsArray;.
virtual int GetHitsNum ()
 Get number of hits in HitsArray;.
virtual int GetHitsNum ()
 Get number of hits in HitsArray;.
TGeoNode * GetLayer (int layer)
 Get layer node;.
TGeoNode * GetLayer (int layer)
 Get layer node;.
TGeoNode * GetLayer (int layer)
 Get layer node;.
TGeoNode * GetLayer (int layer)
 Get layer node;.
int GetLayerNb ()
 Get number of layers;.
int GetLayerNb ()
 Get number of layers;.
int GetLayerNb ()
 Get number of layers;.
int GetLayerNb ()
 Get number of layers;.
TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
virtual TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
virtual TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
TGeoVolume * GetLogicalVolume (const std::string &vn)
 Get a logical volume by name;.
TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
virtual TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
virtual TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
TGeoNode * GetNode (const std::string &nn)
 Get a node(physical volume) by name;.
TGeoPhysicalNode * GetPhysicalReplica (int layer, int replica)
 Get replica physical node;.
TGeoPhysicalNode * GetPhysicalReplica (int layer, int replica)
 Get replica physical node;.
TGeoPhysicalNode * GetPhysicalReplica (int layer, int replica)
 Get replica physical node;.
TGeoPhysicalNode * GetPhysicalReplica (int layer, int replica)
 Get replica physical node;.
TGeoPhysicalNode * GetPhysicalSegment (int segment)
 Get segment physical node;.
TGeoPhysicalNode * GetPhysicalSegment (int segment)
 Get segment physical node;.
TGeoNode * GetReplica (int layer, int replica)
 Get replica node;.
TGeoNode * GetReplica (int layer, int replica)
 Get replica node;.
TGeoNode * GetReplica (int layer, int replica)
 Get replica node;.
TGeoNode * GetReplica (int layer, int replica)
 Get replica node;.
int GetReplicaNb (int layer)
 Get number of replicas on each layer;.
int GetReplicaNb (int layer)
 Get number of replicas on each layer;.
int GetReplicaNb (int layer)
 Get number of replicas on each layer;.
int GetReplicaNb (int layer)
 Get number of replicas on each layer;.
TGeoNode * GetSegment (int segment, int no)
 Get segment node;.
TGeoNode * GetSegment (int segment, int no)
 Get segment node;.
TGeoNode * GetSegment (int segment, int no)
 Get segment node;.
TGeoNode * GetSegment (int segment, int no)
 Get segment node;.
int GetSegmentNb ()
 Get number of segments;.
int GetSegmentNb ()
 Get number of segments;.
int GetSegmentNb ()
 Get number of segments;.
int GetSegmentNb ()
 Get number of segments;.
Int_t GetSimuLayer (Int_t trueLayer)
 Trans trueLayer to simuLayer (0~42)->(0~49).
Int_t GetSimuLayer (Int_t trueLayer)
 Trans trueLayer to simuLayer (0~42)->(0~49).
TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
virtual TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
virtual TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
TGeoVolume * GetTopVolume ()
 Get the top(world) volume;.
TGeoVolume * GetVolumeLayer (int layer)
 Get layer volume;.
TGeoVolume * GetVolumeLayer (int layer)
 Get layer volume;.
TGeoVolume * GetVolumeLayer (int layer)
 Get layer volume;.
TGeoVolume * GetVolumeLayer (int layer)
 Get layer volume;.
TGeoVolume * GetVolumeMdc ()
 Get Mdc volume;.
TGeoVolume * GetVolumeMdc ()
 Get Mdc volume;.
TGeoVolume * GetVolumeMdc ()
 Get Mdc volume;.
TGeoVolume * GetVolumeMdc ()
 Get Mdc volume;.
TGeoVolume * GetVolumeReplica (int layer)
 Get replica volume;.
TGeoVolume * GetVolumeReplica (int layer)
 Get replica volume;.
TGeoVolume * GetVolumeReplica (int layer)
 Get replica volume;.
TGeoVolume * GetVolumeReplica (int layer)
 Get replica volume;.
TGeoVolume * GetVolumeSegment (int segment)
 Get segment volume;.
TGeoVolume * GetVolumeSegment (int segment)
 Get segment volume;.
TGeoVolume * GetVolumeSegment (int segment)
 Get segment volume;.
TGeoVolume * GetVolumeSegment (int segment)
 Get segment volume;.
void Init2DGeometry ()
 Initialize 2D Geometry.
void Init2DGeometry ()
 Initialize 2D Geometry.
void InitFromGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void InitFromGDML (const char *gdmlFile, const char *setupName)
 Initialize ROOTGeo from GDML.
void InitFromGDML (const char *gdmlFile, const char *setupName)
 Initialize ROOTGeo from GDML.
void InitFromGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void InitFromROOT (TGeoVolume *vol)
 Initialize ROOTGeo from TGeoVolume logicalMdc.
void InitFromROOT (TGeoVolume *vol)
 Initialize ROOTGeo from TGeoVolume logicalMdc.
Bool_t IsHit (Int_t layer, Int_t wire)
 Judge whether the digiCol contains (layer, wire).
Bool_t IsHit (Int_t layer, Int_t wire)
 Judge whether the digiCol contains (layer, wire).
int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
virtual int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
virtual int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
int IsInitialized ()
 If the ROOT geometry of this subdetctor is initialized;.
 MdcROOTGeo ()
 Constructor.
 MdcROOTGeo ()
 Constructor.
 MdcROOTGeo ()
 Constructor.
 MdcROOTGeo ()
 Constructor.
void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
virtual void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
virtual void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void ReadGdml (const char *gdmlFile, const char *setupName)
 Initialize the instance of ROOTGeo.
void SetAllVisible ()
 Set all visible;.
void SetAllVisible ()
 Set all visible;.
void SetAllVisible ()
 Set all visible;.
void SetAllVisible ()
 Set all visible;.
void SetChildNo (int childNo)
virtual void SetChildNo (int childNo)
virtual void SetChildNo (int childNo)
void SetChildNo (int childNo)
void SetDefaultVis ()
 Set default visual attributes;.
void SetDefaultVis ()
 Set default visual attributes;.
void SetDetector ()
 Draw Detecor (what is detector depends on you).
void SetDetector ()
 Draw Detecor (what is detector depends on you).
virtual void SetDetectorOn ()
 Set all physicalNodes in m_DeteorsArray visible;.
virtual void SetDetectorOn ()
 Set all physicalNodes in m_DeteorsArray visible;.
void SetHalfVisible ()
 Set half visible;.
void SetHalfVisible ()
 Set half visible;.
void SetHits ()
 Set all physicalNodes corresponding to digiCol;.
void SetHits ()
 Set all physicalNodes corresponding to digiCol;.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetNode ()
 Set the pointers to theirs nodes;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetPhysicalNode ()
 Set the pointers to the physical nodes;.
void SetQMatch (Bool_t input)
void SetQMatch (Bool_t input)
void SetQuarterVisible ()
 Set quater visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetQuarterVisible ()
 Set quater visible;.
void SetTMatch (Bool_t input)
void SetTMatch (Bool_t input)
void SetVisMdcDetector ()
 Set Mdc default detector visibility;.
void SetVisMdcDetector ()
 Set Mdc default detector visibility;.
void SetVisMdcHits ()
 Set Mdc hits visibility;.
void SetVisMdcHits ()
 Set Mdc hits visibility;.
void SetVolumeDefaultVis ()
 Set default visual attributes;.
void SetVolumeDefaultVis ()
 Set default visual attributes;.
void SetVolumeMdc (TGeoVolume *vol)
 Set Mdc volume, while initializing from ROOT;.
void SetVolumeMdc (TGeoVolume *vol)
 Set Mdc volume, while initializing from ROOT;.
 ~MdcROOTGeo ()
 Destructor.
 ~MdcROOTGeo ()
 Destructor.
 ~MdcROOTGeo ()
 Destructor.
 ~MdcROOTGeo ()
 Destructor.

Protected Attributes

int m_2DGeoInit
TObjArray * m_2DHitsArray
TObjArray * m_2DHitsArray
int m_childNo
TObjArray * m_DetectorsArray
TObjArray * m_DetectorsArray
TObjArray * m_HitsArray
TObjArray * m_HitsArray
int m_ROOTGeoInit
TGeoVolume * m_TopVolume
TGeoVolume * m_TopVolume
TGeoVolume * m_TopVolume
TGeoVolume * m_TopVolume

Private Types

typedef std::map< int, int > intMap
typedef std::map< int, int > intMap
typedef std::map< int, int > intMap
typedef std::map< int, int > intMap

Private Attributes

Bool_t k_QMatch
Bool_t k_TMatch
std::map< int,int > m_CorrectMap
std::map< int,int > m_CorrectMap
std::map< int,int > m_CorrectMap
std::map< int,int > m_CorrectMap
int m_hypeColor
TGeoVolume * m_Mdc
TGeoVolume * m_Mdc
TGeoVolume * m_Mdc
TGeoVolume * m_Mdc
Mdc2DWirem_Mdc2DWire [m_kTrueLayer][m_kReplicaMax]
Mdc2DWirem_Mdc2DWire [m_kTrueLayer][m_kReplicaMax]
int m_MdcColor
const TObjArray * m_MdcDigiCol
const TObjArray * m_MdcDigiCol
BesCircle2Dm_MdcXY
BesCircle2Dm_MdcXY
BesCircle2Dm_MdcXYSuper [4]
BesCircle2Dm_MdcXYSuper [4]
BesPolygon2Dm_MdcZR [2]
BesPolygon2Dm_MdcZR [2]
TGeoNode * m_NodeLayer [m_kLayer]
TGeoNode * m_NodeLayer [m_kLayer]
TGeoNode * m_NodeReplica [m_kLayer][m_kReplicaMax]
TGeoNode * m_NodeReplica [m_kLayer][m_kReplicaMax]
TGeoNode * m_NodeReplica [m_kLayer][m_kReplicaMax]
TGeoNode * m_NodeReplica [m_kLayer][m_kReplicaMax]
TGeoPhysicalNode * m_PhysicalReplica [m_kLayer][m_kReplicaMax]
TGeoPhysicalNode * m_PhysicalReplica [m_kLayer][m_kReplicaMax]
TGeoPhysicalNode * m_PhysicalReplica [m_kLayer][m_kReplicaMax]
TGeoPhysicalNode * m_PhysicalReplica [m_kLayer][m_kReplicaMax]
TGeoPhysicalNode * m_PhysicalSegment [m_kSegment *2]
TGeoPhysicalNode * m_PhysicalSegment [m_kSegment *2]
int m_replicaColor
int m_segmentColor
int m_tubeColor
int m_twistedTubsColor

Static Private Attributes

const int m_kAxialLayerIn = 12
const int m_kAxialLayerOut = 7
const int m_kCorrectLayer = 10
const int m_kiCorrectLayer [m_kCorrectLayer] = {9, 11, 13, 15, 17, 19, 36, 38, 40, 42}
const int m_kiCorrectReplica [m_kCorrectLayer] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
const int m_kLayer = 50
const int m_kReplica [m_kLayer]
const int m_kReplicaMax = 288
const int m_kSegment = 66
const int m_kStereoDir [m_kTrueLayer]
const int m_kStereoLayerIn = 8
const int m_kStereoLayerOut = 16
const int m_kTrueLayer = 43
const int MDC_CHARGE_FACTOR = 1000000
const int MDC_TIME_FACTOR = 100000

Detailed Description

Class MdcGeo contains all of the objects necessary to describe the mdc geometry.

Author:
Zhengyun You {mailto:youzy@hep.pku.cn}


Member Typedef Documentation

typedef std::map<int, int> MdcROOTGeo::intMap [private]
 

typedef std::map<int, int> MdcROOTGeo::intMap [private]
 

typedef std::map<int, int> MdcROOTGeo::intMap [private]
 

typedef std::map<int, int> MdcROOTGeo::intMap [private]
 


Constructor & Destructor Documentation

MdcROOTGeo::MdcROOTGeo  ) 
 

Constructor.

00037 { 
00038   // Default constructor.
00039   for (int layer = 0; layer < m_kLayer; layer++) {
00040     for (int replica = 0; replica < m_kReplicaMax; replica++) {
00041       m_NodeReplica[layer][replica] = 0;
00042       m_PhysicalReplica[layer][replica] = 0;
00043     }
00044   }
00045 
00046   for (int i = 0; i < m_kCorrectLayer; i++) {
00047     m_CorrectMap[m_kiCorrectLayer[i]] = m_kiCorrectReplica[i];
00048   }
00049 }

MdcROOTGeo::~MdcROOTGeo  ) 
 

Destructor.

00052 { }

MdcROOTGeo::MdcROOTGeo  ) 
 

Constructor.

MdcROOTGeo::~MdcROOTGeo  ) 
 

Destructor.

MdcROOTGeo::MdcROOTGeo  ) 
 

Constructor.

MdcROOTGeo::~MdcROOTGeo  ) 
 

Destructor.

MdcROOTGeo::MdcROOTGeo  ) 
 

Constructor.

MdcROOTGeo::~MdcROOTGeo  ) 
 

Destructor.


Member Function Documentation

int MdcROOTGeo::CorrectReplica int  layer,
int  replica
 

Correct some axial layer id to copyNo;.

int MdcROOTGeo::CorrectReplica int  layer,
int  replica
 

Correct some axial layer id to copyNo;.

int MdcROOTGeo::CorrectReplica int  layer,
int  replica
 

Correct some axial layer id to copyNo;.

int MdcROOTGeo::CorrectReplica int  layer,
int  replica
 

Correct some axial layer id to copyNo;.

00104 {
00105   int rep = replica;
00106   for (intMap::iterator iter = m_CorrectMap.begin(); iter != m_CorrectMap.end(); iter++) {
00107     if (layer == (*iter).first ||
00108         (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut &&
00109          layer - m_kAxialLayerOut == (*iter).first)) {
00110       rep -= (*iter).second;
00111       if (rep < 0) rep += m_kReplica[layer];
00112     }
00113   }
00114 
00115   //std::cout << "layer" << layer << " " << replica << "->" << rep << std::endl; 
00116   return rep;
00117 }

void MdcROOTGeo::Draw Option_t *  option  ) 
 

Draw function.

void MdcROOTGeo::Draw Option_t *  option  ) 
 

Draw function.

00929 {
00930     TString opt = option;
00931     opt.ToUpper();
00932 
00933     if (!m_2DGeoInit) cout << "MdcROOTGeo::Draw2D(), 2D Geometry not initialized!" << endl;
00934     BesView *view = (BesView*)gPad->GetView();
00935     if (!view) cout << "MdcROOTGeo::Draw(), BesView not found" << endl;
00936 
00937     if (view->GetVisMdcGlobal()) { // MdcVisGlobal
00938         if (opt.Contains("XY")) {
00939             m_MdcXY->Draw("");
00940             for (Int_t i = 0; i < 4; i++) {
00941                 //m_MdcXYSuper[i]->Draw("");
00942             }
00943         }
00944 
00945         if (opt.Contains("ZR")) {
00946             for (Int_t i = 0; i < 2; i++) {
00947                 m_MdcZR[i]->SetRotatable(true);
00948                 m_MdcZR[i]->Draw("");
00949             }
00950         }
00951 
00952         TString wireOpt;
00953         if (view->GetVisMdcTubes()) wireOpt += "TUBE";
00954         if (view->GetVisMdcWires()) wireOpt += ",WIRE";
00955 
00956         Int_t replicaDraw = 0; // change draw sequence in a circle, (-1: 0->Max; 1: Max->0)
00957         for (Int_t layer = 0; layer < m_kTrueLayer; layer++) {
00958             Int_t simuLayer = GetSimuLayer(layer);
00959             for (int replica = 0; replica < m_kReplica[simuLayer]; replica++) {
00960                 if (m_kStereoDir[layer] == -1) replicaDraw = replica;
00961                 else if (m_kStereoDir[layer] == 1) replicaDraw = m_kReplica[simuLayer]-1 - replica;
00962                 else replicaDraw = replica;
00963 
00964                 if (m_Mdc2DWire[layer][replicaDraw]) {
00965                     //cout << layer << " " << replicaDraw << endl;
00966                     //m_Mdc2DWire[layer][replicaDraw]->SetHighlighted(false);
00967                     m_Mdc2DWire[layer][replicaDraw]->SetFired(false);
00968                     m_Mdc2DWire[layer][replicaDraw]->Draw(wireOpt);
00969                 }
00970             }
00971         }
00972     }
00973 }

void MdcROOTGeo::DrawHits Option_t *  option  ) 
 

Draw 2D hits.

void MdcROOTGeo::DrawHits Option_t *  option  ) 
 

Draw 2D hits.

00977 {
00978     // cout << "Draw Hits" << endl;
00979     BesView *view = (BesView*)gPad->GetView();
00980     if (!view) cout << "MdcROOTGeo::DrawHits(), BesView not found" << endl;
00981 
00982     //cout << "VisMdcHitsGlobal " << view->GetVisMdcHitsGlobal() << endl;
00983     //cout << "VisMdcHits       " << view->GetVisMdcHits() << endl;
00984 
00985 
00986     if (view->GetVisMdcHitsGlobal()) {
00987         TString wireOpt("");
00988         if (view->GetVisMdcTubes()) wireOpt += ",TUBE";
00989         if (view->GetVisMdcHits())  wireOpt += ",WIRE";
00990 
00991         if (m_MdcDigiCol) {
00992             for (int i = 0; i < m_MdcDigiCol->GetEntries(); i++) {
00993                 TMdcDigi *aMdcDigi = (TMdcDigi*)m_MdcDigiCol->At(i);
00994 
00995                 Identifier aMdcID( aMdcDigi->getIntId() );
00996                 int layer  = MdcID::layer( aMdcID );
00997                 int wire   = MdcID::wire( aMdcID );
00998                 unsigned int overflow = aMdcDigi->getOverflow();
00999 
01000                 Mdc2DWire *aWire = 0;
01001                 aWire = m_Mdc2DWire[layer][wire];
01002                 if (aWire &&
01003                         ((overflow == 0)||(overflow == 12))){
01004                     if ((k_TMatch) &&
01005                             (aMdcDigi->getTimeChannel() == 0x7FFFFFFF)){
01006                         continue;
01007                     }
01008                     if ((k_QMatch) &&
01009                             (aMdcDigi->getChargeChannel() == 0x7FFFFFFF)){
01010                         continue;
01011                     }
01012                     aWire->SetFired(true);
01013                     aWire->Draw(wireOpt);
01014                 }
01015             }
01016         }
01017     }
01018 }

Mdc2DWire* MdcROOTGeo::Get2DWire Int_t  layer,
Int_t  replica
 

Get Mdc2DWire;.

Mdc2DWire * MdcROOTGeo::Get2DWire Int_t  layer,
Int_t  replica
 

Get Mdc2DWire;.

00899 {
00900     if (m_Mdc2DWire[layer][wire]) return m_Mdc2DWire[layer][wire];
00901     else return 0;
00902 }

TGeoVolumeAssembly* SubDetectorROOTGeo::GetAssemblyVolume const std::string &  an  )  [inherited]
 

Get an assembly by name;.

virtual TGeoVolumeAssembly* SubDetectorROOTGeo::GetAssemblyVolume const std::string &  an  )  [virtual, inherited]
 

Get an assembly by name;.

virtual TGeoVolumeAssembly* SubDetectorROOTGeo::GetAssemblyVolume const std::string &  an  )  [virtual, inherited]
 

Get an assembly by name;.

TGeoVolumeAssembly * SubDetectorROOTGeo::GetAssemblyVolume const std::string &  an  )  [inherited]
 

Get an assembly by name;.

00053 {
00054   TGeoVolumeAssembly *av = (TGeoVolumeAssembly*)TGDMLProcessor::GetInstance()->GetAssemblyVolume(an);
00055   if (!av) std::cout << "Assembly Volume " << an << " not found " << std::endl;
00056   return av;
00057 }

virtual TGeoPhysicalNode* SubDetectorROOTGeo::GetHit int  i  )  [virtual, inherited]
 

Get ith hit in HitsArray;.

TGeoPhysicalNode * SubDetectorROOTGeo::GetHit int  i  )  [virtual, inherited]
 

Get ith hit in HitsArray;.

00066 {
00067     if (i < m_HitsArray->GetEntries())
00068         return (TGeoPhysicalNode*)m_HitsArray->At(i);
00069     else
00070         return 0;
00071 }

virtual int SubDetectorROOTGeo::GetHitsNum  )  [inline, virtual, inherited]
 

Get number of hits in HitsArray;.

00061 { return m_HitsArray->GetEntries(); }

virtual int SubDetectorROOTGeo::GetHitsNum  )  [inline, virtual, inherited]
 

Get number of hits in HitsArray;.

00061 { return m_HitsArray->GetEntries(); }

TGeoNode* MdcROOTGeo::GetLayer int  layer  ) 
 

Get layer node;.

TGeoNode* MdcROOTGeo::GetLayer int  layer  ) 
 

Get layer node;.

TGeoNode* MdcROOTGeo::GetLayer int  layer  ) 
 

Get layer node;.

TGeoNode * MdcROOTGeo::GetLayer int  layer  ) 
 

Get layer node;.

00335 {
00336   std::stringstream osname;
00337   if (layer >= 0 && layer < m_kStereoLayerIn) {
00338     osname << "pv_" << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "_" << layer; 
00339   }
00340   else if (layer >= m_kStereoLayerIn && layer < m_kStereoLayerIn + m_kAxialLayerIn) {
00341     osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer << "_" << layer; 
00342   }
00343   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00344            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) {
00345     osname << "pv_" << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "_" << layer;
00346   }
00347   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut &&
00348            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut) {
00349     osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer << "_0" << "_" 
00350            << 2*layer - m_kStereoLayerIn - m_kAxialLayerIn - m_kStereoLayerOut; 
00351   }
00352   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut &&
00353            layer <  m_kLayer) {
00354     osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer - m_kAxialLayerOut << "_1" << "_" 
00355            << 2*(layer - m_kAxialLayerOut) - m_kStereoLayerIn - m_kAxialLayerIn - m_kStereoLayerOut + 1;
00356   }
00357   
00358   //std::cout << osname.str() << std::endl;
00359   return GetNode( osname.str() );
00360 }

int MdcROOTGeo::GetLayerNb  ) 
 

Get number of layers;.

int MdcROOTGeo::GetLayerNb  )  [inline]
 

Get number of layers;.

00092 { return m_kLayer; }

int MdcROOTGeo::GetLayerNb  )  [inline]
 

Get number of layers;.

00092 { return m_kLayer; }

int MdcROOTGeo::GetLayerNb  ) 
 

Get number of layers;.

TGeoVolume* SubDetectorROOTGeo::GetLogicalVolume const std::string &  vn  )  [inherited]
 

Get a logical volume by name;.

virtual TGeoVolume* SubDetectorROOTGeo::GetLogicalVolume const std::string &  vn  )  [virtual, inherited]
 

Get a logical volume by name;.

virtual TGeoVolume* SubDetectorROOTGeo::GetLogicalVolume const std::string &  vn  )  [virtual, inherited]
 

Get a logical volume by name;.

TGeoVolume * SubDetectorROOTGeo::GetLogicalVolume const std::string &  vn  )  [inherited]
 

Get a logical volume by name;.

00046 {
00047   TGeoVolume *lv = (TGeoVolume*)TGDMLProcessor::GetInstance()->GetLogicalVolume(vn);
00048   if (!lv) std::cout << "Logical Volume " << vn << " not found " << std::endl;
00049   return lv;
00050 }

TGeoNode* SubDetectorROOTGeo::GetNode const std::string &  nn  )  [inherited]
 

Get a node(physical volume) by name;.

virtual TGeoNode* SubDetectorROOTGeo::GetNode const std::string &  nn  )  [virtual, inherited]
 

Get a node(physical volume) by name;.

virtual TGeoNode* SubDetectorROOTGeo::GetNode const std::string &  nn  )  [virtual, inherited]
 

Get a node(physical volume) by name;.

TGeoNode * SubDetectorROOTGeo::GetNode const std::string &  nn  )  [inherited]
 

Get a node(physical volume) by name;.

00060 {
00061   TGeoNode *node = (TGeoNode*)TGDMLProcessor::GetInstance()->GetPhysicalVolume(nn);
00062   if (!node) std::cout << "Physical Volume " << nn << " not found " << std::endl;
00063   return node;
00064 }

TGeoPhysicalNode* MdcROOTGeo::GetPhysicalReplica int  layer,
int  replica
 

Get replica physical node;.

TGeoPhysicalNode* MdcROOTGeo::GetPhysicalReplica int  layer,
int  replica
 

Get replica physical node;.

TGeoPhysicalNode* MdcROOTGeo::GetPhysicalReplica int  layer,
int  replica
 

Get replica physical node;.

TGeoPhysicalNode * MdcROOTGeo::GetPhysicalReplica int  layer,
int  replica
 

Get replica physical node;.

00377 {
00378   if (m_PhysicalReplica[layer][replica] != 0) {
00379     return m_PhysicalReplica[layer][replica];
00380   }
00381   else {
00382     std::cout << "PhysicalNode: " << "Layer" << layer << "Replica" << replica << " not found" << std::endl;
00383     return 0;
00384   } 
00385 }

TGeoPhysicalNode* MdcROOTGeo::GetPhysicalSegment int  segment  ) 
 

Get segment physical node;.

TGeoPhysicalNode * MdcROOTGeo::GetPhysicalSegment int  segment  ) 
 

Get segment physical node;.

00875 {
00876     if (m_PhysicalSegment[segment] != 0) {
00877         return m_PhysicalSegment[segment];
00878     }
00879     else {
00880         //std::cout << "PhysicalNode: " << "Segment" << segment << " not found" << std::endl;
00881         return 0;
00882     }
00883 }

TGeoNode* MdcROOTGeo::GetReplica int  layer,
int  replica
 

Get replica node;.

TGeoNode* MdcROOTGeo::GetReplica int  layer,
int  replica
 

Get replica node;.

TGeoNode* MdcROOTGeo::GetReplica int  layer,
int  replica
 

Get replica node;.

TGeoNode * MdcROOTGeo::GetReplica int  layer,
int  replica
 

Get replica node;.

00364 {
00365   if (m_NodeReplica[layer][replica] != 0) {
00366     //std::cout << " replica " << layer <<  "  " << replica << " found " << std::endl;
00367     return m_NodeReplica[layer][replica];
00368   }
00369   else {
00370     std::cout << "Node: " << "Layer" << layer << "Replica" << replica << " not found" << std::endl;
00371     return 0;
00372   } 
00373 }

int MdcROOTGeo::GetReplicaNb int  layer  )  [inline]
 

Get number of replicas on each layer;.

00067 { return m_kReplica[layer]; }

int MdcROOTGeo::GetReplicaNb int  layer  )  [inline]
 

Get number of replicas on each layer;.

00095 { return m_kReplica[layer]; }

int MdcROOTGeo::GetReplicaNb int  layer  )  [inline]
 

Get number of replicas on each layer;.

00095 { return m_kReplica[layer]; }

int MdcROOTGeo::GetReplicaNb int  layer  )  [inline]
 

Get number of replicas on each layer;.

00067 { return m_kReplica[layer]; }

TGeoNode* MdcROOTGeo::GetSegment int  segment,
int  no
 

Get segment node;.

TGeoNode* MdcROOTGeo::GetSegment int  segment,
int  no
 

Get segment node;.

TGeoNode* MdcROOTGeo::GetSegment int  segment,
int  no
 

Get segment node;.

TGeoNode * MdcROOTGeo::GetSegment int  segment,
int  no
 

Get segment node;.

00321 {
00322   std::stringstream osname;
00323   if (segment == 1 || segment == 2) {
00324     osname << "pv_" << "logical" << "Mdc" << "Segment" << segment << "_" << m_kLayer + segment - 1; 
00325   }
00326   else {
00327     osname << "pv_" << "logical" << "Mdc" << "Segment" << segment << "_" << m_kLayer + 2 + (segment - 3)*2 + no; 
00328   }    
00329 
00330   return GetNode( osname.str() );
00331 }

int MdcROOTGeo::GetSegmentNb  ) 
 

Get number of segments;.

int MdcROOTGeo::GetSegmentNb  )  [inline]
 

Get number of segments;.

00089 { return m_kSegment; }

int MdcROOTGeo::GetSegmentNb  )  [inline]
 

Get number of segments;.

00089 { return m_kSegment; }

int MdcROOTGeo::GetSegmentNb  ) 
 

Get number of segments;.

Int_t MdcROOTGeo::GetSimuLayer Int_t  trueLayer  ) 
 

Trans trueLayer to simuLayer (0~42)->(0~49).

Int_t MdcROOTGeo::GetSimuLayer Int_t  trueLayer  ) 
 

Trans trueLayer to simuLayer (0~42)->(0~49).

00906 {
00907     if (trueLayer < 36 || trueLayer >= m_kTrueLayer) return trueLayer;
00908     if (trueLayer >= 36) return (36 + 2*(trueLayer-36));
00909     return trueLayer;
00910 }

TGeoVolume* SubDetectorROOTGeo::GetTopVolume  )  [inline, inherited]
 

Get the top(world) volume;.

00051 { return m_TopVolume; }

virtual TGeoVolume* SubDetectorROOTGeo::GetTopVolume  )  [inline, virtual, inherited]
 

Get the top(world) volume;.

00052 { return m_TopVolume; }

virtual TGeoVolume* SubDetectorROOTGeo::GetTopVolume  )  [inline, virtual, inherited]
 

Get the top(world) volume;.

00052 { return m_TopVolume; }

TGeoVolume* SubDetectorROOTGeo::GetTopVolume  )  [inline, inherited]
 

Get the top(world) volume;.

00051 { return m_TopVolume; }

TGeoVolume* MdcROOTGeo::GetVolumeLayer int  layer  ) 
 

Get layer volume;.

TGeoVolume* MdcROOTGeo::GetVolumeLayer int  layer  ) 
 

Get layer volume;.

TGeoVolume* MdcROOTGeo::GetVolumeLayer int  layer  ) 
 

Get layer volume;.

TGeoVolume * MdcROOTGeo::GetVolumeLayer int  layer  ) 
 

Get layer volume;.

00269 {
00270   std::stringstream osname;
00271   if (layer >= 0 && layer < m_kStereoLayerIn) {
00272     osname << "logical" << "Mdc" << "Stereo" << "Layer" << layer; 
00273   }
00274   else if (layer >= m_kStereoLayerIn && layer < m_kStereoLayerIn + m_kAxialLayerIn) {
00275     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer; 
00276   }
00277   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00278            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) {
00279     osname << "logical" << "Mdc" << "Stereo" << "Layer" << layer;
00280   }
00281   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut &&
00282            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut) {
00283     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer << "_0";
00284   }
00285   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut &&
00286            layer <  m_kLayer) {
00287     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer - m_kAxialLayerOut << "_1";
00288   }
00289   
00290   return GetLogicalVolume( osname.str() );
00291 }

TGeoVolume* MdcROOTGeo::GetVolumeMdc  )  [inline]
 

Get Mdc volume;.

00070 { return m_Mdc; }

TGeoVolume* MdcROOTGeo::GetVolumeMdc  )  [inline]
 

Get Mdc volume;.

00101 { return m_Mdc; }

TGeoVolume* MdcROOTGeo::GetVolumeMdc  )  [inline]
 

Get Mdc volume;.

00101 { return m_Mdc; }

TGeoVolume* MdcROOTGeo::GetVolumeMdc  )  [inline]
 

Get Mdc volume;.

00070 { return m_Mdc; }

TGeoVolume* MdcROOTGeo::GetVolumeReplica int  layer  ) 
 

Get replica volume;.

TGeoVolume* MdcROOTGeo::GetVolumeReplica int  layer  ) 
 

Get replica volume;.

TGeoVolume* MdcROOTGeo::GetVolumeReplica int  layer  ) 
 

Get replica volume;.

TGeoVolume * MdcROOTGeo::GetVolumeReplica int  layer  ) 
 

Get replica volume;.

00295 {
00296   std::stringstream osname;
00297   if (layer >= 0 && layer < m_kStereoLayerIn) {
00298     osname << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "TwistedTubs"; 
00299   }
00300   else if (layer >= m_kStereoLayerIn && layer < m_kStereoLayerIn + m_kAxialLayerIn) {
00301     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer << "Replica"; 
00302   }
00303   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00304            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) {
00305     osname << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "TwistedTubs";
00306   }
00307   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut &&
00308            layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut) {
00309     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer << "_0" << "Replica";
00310   }
00311   else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut &&
00312            layer <  m_kLayer) {
00313     osname << "logical" << "Mdc" << "Axial" << "Layer" << layer - m_kAxialLayerOut << "_1" << "Replica";
00314   }
00315   
00316   return GetLogicalVolume( osname.str() );
00317 }

TGeoVolume* MdcROOTGeo::GetVolumeSegment int  segment  ) 
 

Get segment volume;.

TGeoVolume* MdcROOTGeo::GetVolumeSegment int  segment  ) 
 

Get segment volume;.

TGeoVolume* MdcROOTGeo::GetVolumeSegment int  segment  ) 
 

Get segment volume;.

TGeoVolume * MdcROOTGeo::GetVolumeSegment int  segment  ) 
 

Get segment volume;.

00261 {
00262   std::stringstream osname;
00263   osname << "logical" << "Mdc" << "Segment" << segment;
00264   return GetLogicalVolume( osname.str() );
00265 }

void MdcROOTGeo::Init2DGeometry  ) 
 

Initialize 2D Geometry.

void MdcROOTGeo::Init2DGeometry  ) 
 

Initialize 2D Geometry.

00107 {
00108     if (m_ROOTGeoInit != 1 && m_ROOTGeoInit != 2) {
00109         cout << "MdcROOTGeo::Init2DGeometry, ROOT Geometry not Initialized yet!" << endl;
00110         return;
00111     }
00112     m_2DGeoInit = 1;
00113 
00114     Int_t mdcColor = 11; //1002;  // 41, 29
00115     Int_t mdcLineColor = 15;
00116     Int_t mdcXYStyle = 1001;//3001;
00117     Int_t mdcZRStyle = 1001;//3007;
00118 
00119     Int_t mdcStereoSuperColor = 38;
00120     Int_t mdcAxialSuperColor  = 4;
00121 
00122     Double_t local[3] = {0.0, 0.0, 0.0};
00123     Double_t master[3] = {0.0, 0.0, 0.0};
00124     //Int_t    nPoints = 4;
00125     Double_t  P[300] = {0.0};
00126     Double_t  center[3] = {0.0, 0.0, 0.0};
00127     TString  name;
00128 
00129     //----------XY-----------
00130     // Mdc
00131     TGeoTube *mdcShape = (TGeoTube*)GetVolumeMdc()->GetShape();
00132     m_MdcXY = new BesCircle2D("Mdc", "Mdc", mdcShape->GetRmin(), mdcShape->GetRmax(), &center[0]);
00133     m_MdcXY->SetNSegment(360);
00134     m_MdcXY->SetFillColor(mdcColor);
00135     m_MdcXY->SetFillStyle(mdcXYStyle);
00136     m_MdcXY->SetLineColor(mdcLineColor);
00137 
00138     // Mdc Supers
00139     Int_t layerIn[4]  = {0,
00140                          m_kStereoLayerIn,
00141                          m_kStereoLayerIn+m_kAxialLayerIn,
00142                          m_kStereoLayerIn+m_kAxialLayerIn+m_kStereoLayerOut
00143                         };
00144     Int_t layerOut[4] = {m_kStereoLayerIn-1,
00145                          m_kStereoLayerIn+m_kAxialLayerIn-1,
00146                          m_kStereoLayerIn+m_kAxialLayerIn+m_kStereoLayerOut-1,
00147                          m_kLayer-1
00148                         };
00149     for (Int_t i = 0; i < 4; i++) {
00150         TGeoTube *mdcSuperShapeIn  = (TGeoTube*)(GetLayer(layerIn[i])->GetVolume())->GetShape();
00151         TGeoTube *mdcSuperShapeOut = (TGeoTube*)(GetLayer(layerOut[i])->GetVolume())->GetShape();
00152         name = TString("MdcSuper" + i);
00153         m_MdcXYSuper[i] = new BesCircle2D(name, name, mdcSuperShapeIn->GetRmin(), mdcSuperShapeOut->GetRmax(), &center[0]);
00154         if (i%2 == 0) m_MdcXYSuper[i]->SetFillColor(mdcStereoSuperColor);
00155         else m_MdcXYSuper[i]->SetFillColor(mdcAxialSuperColor);
00156     }
00157 
00158     // Mdc Wires
00159     for (Int_t layer = 0; layer < m_kTrueLayer; layer++) {
00160         Int_t simuLayer = GetSimuLayer(layer);
00161         for (int replica = 0; replica < m_kReplica[simuLayer]; replica++) {
00162             //cout << "layer " << layer << " replica " << replica << endl;
00163             TGeoPhysicalNode *wirePhyNode = GetPhysicalReplica(simuLayer, replica);
00164             name = TString("Mdc Layer ");
00165             name += layer;
00166             name += " Wire ";
00167             name += replica;
00168 
00169             if (m_kStereoDir[layer] != 0) { // stereo Layer
00170                 TGeoArb8 *wireShape = (TGeoArb8*)wirePhyNode->GetShape();
00171                 Double_t *localArb8Point, masterArb8Point[24];
00172                 localArb8Point = wireShape->GetVertices();
00173                 for (Int_t i = 0; i < 8; i++) {
00174                     local[0] = localArb8Point[2*i];
00175                     local[1] = localArb8Point[2*i+1];
00176                     if (i < 4) local[2] = wireShape->GetDz() * (-1.0);
00177                     else local[2] = wireShape->GetDz();
00178 
00179                     wirePhyNode->GetMatrix(-1*wirePhyNode->GetLevel())
00180                     ->LocalToMaster(local, &master[0]); // transform to top
00181                     for (Int_t j = 0; j < 3; j++) {
00182                         masterArb8Point[3*i+j] = master[j];
00183                     }
00184                 }
00185 
00186                 m_Mdc2DWire[layer][replica] = new Mdc2DWire(name, name, 8, &masterArb8Point[0]);
00187             }
00188             else { // axial Layer
00189 
00190                 TGeoTubeSeg *wireShape = (TGeoTubeSeg*)wirePhyNode->GetShape();
00191 
00192                 Double_t centerR = 0.5*(wireShape->GetRmin() + wireShape->GetRmax());
00193                 if (layer >= m_kStereoLayerIn+m_kAxialLayerIn+m_kStereoLayerOut)
00194                     centerR = wireShape->GetRmax();
00195                 Double_t centerPhi =
00196                     0.5*(wireShape->GetPhi1() + wireShape->GetPhi2()) * TMath::DegToRad();
00197                 local[0] = centerR * cos(centerPhi);
00198                 local[1] = centerR * sin(centerPhi);
00199                 local[2] = 0.0;
00200                 wirePhyNode->GetMatrix(-1*wirePhyNode->GetLevel())
00201                 ->LocalToMaster(local, &master[0]); // transform to top
00202 
00203                 Double_t rmin = wireShape->GetRmin();
00204                 Double_t rmax = wireShape->GetRmax();
00205                 if (layer >= m_kStereoLayerIn+m_kAxialLayerIn+m_kStereoLayerOut)
00206                     rmax = rmin + 2*(rmax-rmin);
00207                 m_Mdc2DWire[layer][replica] =
00208                     new Mdc2DWire( name, name, rmin, rmax, wireShape->GetDz(),centerPhi, &master[0] );
00209             }
00210         }
00211     }
00212 
00213     //----------ZR-----------
00214     // Mdc
00215     Int_t iPoint = 0;
00216     TGeoTube *aMdcLayer = 0;
00217 
00218     for (Int_t layer = 0; layer < m_kLayer; layer++) {
00219         aMdcLayer = (TGeoTube*)GetLayer(layer)->GetVolume()->GetShape();
00220         P[3*iPoint] = 0.0;
00221         P[3*iPoint+1] = aMdcLayer->GetRmin();
00222         P[3*iPoint+2] = aMdcLayer->GetDz();
00223         iPoint++;
00224     }
00225 
00226     P[3*iPoint] = 0.0;
00227     P[3*iPoint+1] = aMdcLayer->GetRmax();
00228     P[3*iPoint+2] = aMdcLayer->GetDz();
00229     iPoint++;
00230     P[3*iPoint] = 0.0;
00231     P[3*iPoint+1] = aMdcLayer->GetRmax();
00232     P[3*iPoint+2] = aMdcLayer->GetDz() * (-1.0);
00233     iPoint++;
00234 
00235     for (Int_t layer = m_kLayer-1; layer >= 0; layer--) {
00236         aMdcLayer = (TGeoTube*)GetLayer(layer)->GetVolume()->GetShape();
00237         P[3*iPoint] = 0.0;
00238         P[3*iPoint+1] = aMdcLayer->GetRmin();
00239         P[3*iPoint+2] = aMdcLayer->GetDz() * (-1.0);
00240         iPoint++;
00241     }
00242 
00243 
00244     m_MdcZR[0] = new BesPolygon2D("MdcZRUp", "MdcZRUp", iPoint, &P[0]);
00245 
00246     for (Int_t i = 0; i < iPoint; i++)
00247         P[3*i+1] *= -1.0;
00248 
00249     m_MdcZR[1] = new BesPolygon2D("MdcZRDown", "MdcZRDown", iPoint, &P[0]);
00250 
00251     for (Int_t i = 0; i < 2; i++) {
00252         m_MdcZR[i]->SetFillColor(mdcColor);
00253         m_MdcZR[i]->SetFillStyle(mdcZRStyle);
00254         m_MdcZR[i]->SetLineColor(mdcLineColor);
00255     }
00256 }

void MdcROOTGeo::InitFromGdml const char *  gdmlFile,
const char *  setupName
 

Initialize the instance of ROOTGeo.

void MdcROOTGeo::InitFromGDML const char *  gdmlFile,
const char *  setupName
 

Initialize ROOTGeo from GDML.

void MdcROOTGeo::InitFromGDML const char *  gdmlFile,
const char *  setupName
 

Initialize ROOTGeo from GDML.

00090 {
00091     m_ROOTGeoInit = 2;
00092     ReadGdml(gdmlFile, setupName);
00093     SetNode();
00094 }

void MdcROOTGeo::InitFromGdml const char *  gdmlFile,
const char *  setupName
 

Initialize the instance of ROOTGeo.

00056 {
00057   ReadGdml(gdmlFile, setupName);
00058   SetNode();
00059   SetDefaultVis();
00060 
00061   m_ROOTGeoInit = 1;  
00062 }

void MdcROOTGeo::InitFromROOT TGeoVolume *  vol  ) 
 

Initialize ROOTGeo from TGeoVolume logicalMdc.

void MdcROOTGeo::InitFromROOT TGeoVolume *  vol  ) 
 

Initialize ROOTGeo from TGeoVolume logicalMdc.

00098 {
00099     m_ROOTGeoInit = 1;
00100 
00101     SetVolumeMdc(vol);
00102     SetNode();
00103 }

Bool_t MdcROOTGeo::IsHit Int_t  layer,
Int_t  wire
 

Judge whether the digiCol contains (layer, wire).

Bool_t MdcROOTGeo::IsHit Int_t  layer,
Int_t  wire
 

Judge whether the digiCol contains (layer, wire).

00914 {
00915     if (m_MdcDigiCol) {
00916         for (int i = 0; i < m_MdcDigiCol->GetEntries(); i++) {
00917             Identifier mdcID( ((TMdcDigi*)m_MdcDigiCol->At(i))->getIntId() );
00918             if (layer == MdcID::layer( mdcID ) && wire == MdcID::wire( mdcID )) {
00919                 return kTRUE;
00920             }
00921         }
00922     }
00923 
00924     return kFALSE;
00925 }

int SubDetectorROOTGeo::IsInitialized  )  [inline, inherited]
 

If the ROOT geometry of this subdetctor is initialized;.

00042 { return m_ROOTGeoInit; }

virtual int SubDetectorROOTGeo::IsInitialized  )  [inline, virtual, inherited]
 

If the ROOT geometry of this subdetctor is initialized;.

00043 { return m_ROOTGeoInit; }

virtual int SubDetectorROOTGeo::IsInitialized  )  [inline, virtual, inherited]
 

If the ROOT geometry of this subdetctor is initialized;.

00043 { return m_ROOTGeoInit; }

int SubDetectorROOTGeo::IsInitialized  )  [inline, inherited]
 

If the ROOT geometry of this subdetctor is initialized;.

00042 { return m_ROOTGeoInit; }

void SubDetectorROOTGeo::ReadGdml const char *  gdmlFile,
const char *  setupName
[inherited]
 

Initialize the instance of ROOTGeo.

virtual void SubDetectorROOTGeo::ReadGdml const char *  gdmlFile,
const char *  setupName
[virtual, inherited]
 

Initialize the instance of ROOTGeo.

virtual void SubDetectorROOTGeo::ReadGdml const char *  gdmlFile,
const char *  setupName
[virtual, inherited]
 

Initialize the instance of ROOTGeo.

void SubDetectorROOTGeo::ReadGdml const char *  gdmlFile,
const char *  setupName
[inherited]
 

Initialize the instance of ROOTGeo.

00032 {
00033   m_config.SetURI( gdmlFile );
00034   m_config.SetSetupName( setupName );
00035   m_config.SetType ( "ROOT" );
00036   
00037   m_sxp.Configure( &m_config );
00038   m_sxp.Initialize();
00039   m_sxp.Run();
00040   
00041   m_TopVolume = (TGeoVolume*)TGDMLProcessor::GetInstance()->GetWorldVolume();
00042   if (!m_TopVolume) std::cout << "Top Volume not found " << std::endl;
00043 }

void MdcROOTGeo::SetAllVisible  ) 
 

Set all visible;.

void MdcROOTGeo::SetAllVisible  ) 
 

Set all visible;.

void MdcROOTGeo::SetAllVisible  ) 
 

Set all visible;.

void MdcROOTGeo::SetAllVisible  ) 
 

Set all visible;.

00171 {
00172   for (int segment = 1; segment <= m_kSegment; segment++) {
00173     GetVolumeSegment(segment)->SetVisibility(0);
00174   }
00175   
00176   for (int layer = 0; layer < m_kLayer; layer++) {
00177     GetVolumeLayer(layer)->SetVisibility(1);
00178     GetVolumeReplica(layer)->SetVisibility(0);
00179   }
00180 
00181   for (int segment = 1; segment <= m_kSegment; segment++) {
00182     for (int no = 0; no < 2; no++) {
00183       GetSegment(segment, no)->SetVisibility(1);
00184     }
00185   }
00186 
00187   for (int layer = 0; layer < m_kLayer; layer++) {
00188     GetLayer(layer)->SetVisibility(1);
00189     for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00190       GetReplica(layer, replica)->SetVisibility(0);
00191     }
00192   }
00193 }

void SubDetectorROOTGeo::SetChildNo int  childNo  )  [inline, inherited]
 

00045 { m_childNo = childNo; }

virtual void SubDetectorROOTGeo::SetChildNo int  childNo  )  [inline, virtual, inherited]
 

00046 { m_childNo = childNo; }

virtual void SubDetectorROOTGeo::SetChildNo int  childNo  )  [inline, virtual, inherited]
 

00046 { m_childNo = childNo; }

void SubDetectorROOTGeo::SetChildNo int  childNo  )  [inline, inherited]
 

00045 { m_childNo = childNo; }

void MdcROOTGeo::SetDefaultVis  ) 
 

Set default visual attributes;.

void MdcROOTGeo::SetDefaultVis  ) 
 

Set default visual attributes;.

00121 {
00122   //std::cout << "begin of set defaultvis" << std::endl;
00123   int mdcColor         = 3;
00124   int segmentColor     = 0;
00125   int hypeColor        = 3;
00126   int tubeColor        = 4;
00127   int twistedTubsColor = 3;
00128   int replicaColor     = 4;
00129 
00130   m_Mdc->SetLineColor(mdcColor);
00131   m_Mdc->SetVisibility(0);
00132   
00133   for (int segment = 1; segment <= m_kSegment; segment++) {
00134     GetVolumeSegment(segment)->SetLineColor(segmentColor);
00135     GetVolumeSegment(segment)->SetVisibility(0);
00136   }
00137 
00138   for (int layer =0; layer < m_kLayer; layer++) {
00139     if ( (layer >= 0 && layer < m_kStereoLayerIn) ||
00140          (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00141           layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) ) {
00142       GetVolumeLayer(layer)->SetLineColor(hypeColor);
00143       GetVolumeReplica(layer)->SetLineColor(twistedTubsColor);
00144     }
00145     else {
00146       GetVolumeLayer(layer)->SetLineColor(tubeColor);
00147       GetVolumeReplica(layer)->SetLineColor(replicaColor);
00148     }
00149     GetVolumeLayer(layer)->SetVisibility(0);
00150     GetVolumeReplica(layer)->SetVisibility(1);
00151   }
00152 
00153   for (int segment = 1; segment <= m_kSegment; segment++) {
00154     for (int no = 0; no < 2; no++) {
00155       GetSegment(segment, no)->SetVisibility(0);
00156     }
00157   }
00158 
00159   for (int layer = 0; layer < m_kLayer; layer++) {
00160     GetLayer(layer)->SetVisibility(0);
00161     for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00162       GetReplica(layer, replica)->SetVisibility(0);
00163     }
00164   }
00165 
00166   //std::cout << "end of set defaultvis" << std::endl;
00167 }

void MdcROOTGeo::SetDetector  ) 
 

Draw Detecor (what is detector depends on you).

void MdcROOTGeo::SetDetector  ) 
 

Draw Detecor (what is detector depends on you).

00567 {
00568     BesView *view = 0;
00569     if (gPad) view = (BesView*)gPad->GetView();
00570     //if (view) cout << "viewVisFull3DMdc " << view->GetVisFull3DMdc() << endl;
00571 
00572     m_DetectorsArray->Clear();
00573     for (int segment = 0; segment < 2*m_kSegment-2; segment++) {
00574         TGeoPhysicalNode *phyNode = 0;
00575         phyNode = m_PhysicalSegment[segment];
00576         //cout << m_PhysicalSegment[segment]->GetName() << endl;
00577         if (phyNode) {
00578             phyNode->SetVisibility(0); // set all invisible before set any visible
00579             if ( (segment >= 2 && segment <= 3) || segment > 59) {
00580                 m_DetectorsArray->Add( phyNode );
00581             }
00582             else if (view && view->GetVisFull3DMdc()) {
00583                 m_DetectorsArray->Add( phyNode );
00584             }
00585         }
00586     }
00587     /*
00588     for (int part = 0; part < m_kPart; part++) {
00589       int nPhi = (part == 1 ? m_kPhiBr : m_kPhiEc);
00590       for (int phi = 0; phi < nPhi; phi++) {
00591         int nTheta = (part == 1 ? m_kThetaBr : m_kThetaEc);
00592         for (int theta = 0; theta < nTheta; theta++) {
00593       // This is you detector, set it on
00594       if ( (part == 1 && theta != 0 && theta != 43 && ((phi != 0 && phi != 60) || theta%2 == 0)) ||
00595            (part != 1 && theta != 0) ) {
00596         m_PhysicalCrystal[part][phi][theta]->SetVisibility(0);
00597       }
00598       
00599       // This is you hit
00600       // when you are to set fired hits to another color, say red,
00601       // SetIsVolAtt(kFALSE) and to then SetLineColor(kRed);
00602       if (phi == 12 && theta == 5) {
00603         m_PhysicalCrystal[part][phi][theta]->SetVisibility(1);
00604         m_PhysicalCrystal[part][phi][theta]->SetLineColor(2);
00605       }
00606         }
00607       }
00608     }
00609     std::cout << "end of set detector on" << std::endl;
00610     */
00611 }

virtual void SubDetectorROOTGeo::SetDetectorOn  )  [virtual, inherited]
 

Set all physicalNodes in m_DeteorsArray visible;.

void SubDetectorROOTGeo::SetDetectorOn  )  [virtual, inherited]
 

Set all physicalNodes in m_DeteorsArray visible;.

00074 {
00075     for (Int_t i = 0; i < m_DetectorsArray->GetEntries(); i++) {
00076         TGeoPhysicalNode *pNode = (TGeoPhysicalNode*)m_DetectorsArray->At(i);
00077         if (pNode) pNode->SetVisibility(1);
00078     }
00079 }

void MdcROOTGeo::SetHalfVisible  ) 
 

Set half visible;.

void MdcROOTGeo::SetHalfVisible  ) 
 

Set half visible;.

00473 {
00474     for (int segment = 1; segment <= m_kSegment; segment++) {
00475         GetVolumeSegment(segment)->SetVisibility(0);
00476     }
00477 
00478     for (int layer = 0; layer < m_kLayer; layer++) {
00479         GetVolumeLayer(layer)->SetVisibility(0);
00480         GetVolumeReplica(layer)->SetVisibility(1);
00481     }
00482 
00483     for (int segment = 1; segment <= m_kSegment; segment++) {
00484         for (int no = 0; no < 2; no++) {
00485             GetSegment(segment, no)->SetVisibility(0);
00486         }
00487     }
00488 
00489     for (int layer = 0; layer < m_kLayer; layer++) {
00490         GetLayer(layer)->SetVisibility(0);
00491         for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00492             if (replica < m_kReplica[layer]/4 ||
00493                     replica > m_kReplica[layer]*3/4 ) GetReplica(layer, replica)->SetVisibility(1);
00494             else                                  GetReplica(layer, replica)->SetVisibility(0);
00495         }
00496     }
00497 }

void MdcROOTGeo::SetHits  ) 
 

Set all physicalNodes corresponding to digiCol;.

void MdcROOTGeo::SetHits  ) 
 

Set all physicalNodes corresponding to digiCol;.

00615 {
00616     // set previous event hits to default vis
00617         cout << "m_HitsArray size(): "   << m_HitsArray->GetEntries()   << endl;
00618         cout << "m_2DHitsArray size(): " << m_2DHitsArray->GetEntries() << endl;
00619     for (int i = 0; i < m_HitsArray->GetEntries(); i++) {
00620         TGeoPhysicalNode *phyNode = (TGeoPhysicalNode*)m_HitsArray->At(i);
00621         phyNode->SetVisibility(0);
00622     }
00623     m_HitsArray->Clear("C");
00624 
00625     // set previous event 2D hits info to default
00626     for (int i = 0; i < m_2DHitsArray->GetEntries(); i++) {
00627         Mdc2DWire *aWire = (Mdc2DWire*)m_2DHitsArray->At(i);
00628         aWire->ClearInfo();
00629         aWire->AddInfo(aWire->GetTitle());
00630         aWire->CloseInfo();
00631     }
00632     m_2DHitsArray->Clear("C");
00633 
00634     // set new hits
00635     if (gEvent) m_MdcDigiCol = gEvent->GetMdcDigiCol();
00636 
00637     for (int i = 0; i < m_MdcDigiCol->GetEntries(); i++) {
00638         TMdcDigi *aMdcDigi = (TMdcDigi*)m_MdcDigiCol->At(i);
00639         Identifier aMdcID( aMdcDigi->getIntId() );
00640         int layer = MdcID::layer( aMdcID );
00641         int wire  = MdcID::wire(  aMdcID );
00642 
00643         //Double_t charge = Double_t(aMdcDigi->getChargeChannel()) / MDC_CHARGE_FACTOR;
00644         //Double_t time   = Double_t(aMdcDigi->getTimeChannel())   / MDC_TIME_FACTOR;
00645 
00646         Double_t charge = RawDataUtil::MdcCharge(aMdcDigi->getChargeChannel());
00647         Double_t time   = RawDataUtil::MdcTime(aMdcDigi->getTimeChannel());
00648 
00649         TGeoPhysicalNode *phyNode = 0;
00650         if (layer < 36) { // number of layers in the three inner
00651             phyNode = GetPhysicalReplica(layer, wire);
00652             if (phyNode) m_HitsArray->Add( phyNode );
00653         }
00654         else {
00655             phyNode = GetPhysicalReplica( GetSimuLayer(layer), wire );
00656             if (phyNode) m_HitsArray->Add( phyNode );
00657             phyNode = GetPhysicalReplica( GetSimuLayer(layer)+1, wire);
00658             if (phyNode) m_HitsArray->Add( phyNode );
00659         }
00660 
00661         Mdc2DWire *aWire = 0;
00662         aWire = m_Mdc2DWire[layer][wire];
00663         if (aWire) {
00664             aWire->ClearInfo();
00665             aWire->AddInfo(aWire->GetTitle());
00666 
00667             char data[100];
00668             sprintf(data, "time = %-.4f ns, charge = %-.4f MeV", time, charge);
00669             aWire->AddInfo( TString(data) );
00670             sprintf(data, "Fired");
00671             aWire->AddInfo( TString(data) );
00672 
00673             aWire->CloseInfo();
00674 
00675             m_2DHitsArray->Add(aWire);
00676         }
00677 
00678     }
00679 }

void MdcROOTGeo::SetNode  ) 
 

Set the pointers to theirs nodes;.

void MdcROOTGeo::SetNode  ) 
 

Set the pointers to theirs nodes;.

void MdcROOTGeo::SetNode  ) 
 

Set the pointers to theirs nodes;.

void MdcROOTGeo::SetNode  ) 
 

Set the pointers to theirs nodes;.

00066 {
00067   m_Mdc = GetTopVolume();
00068   if(!m_Mdc) std::cout << "m_Mdc = 0" << std::endl;
00069   
00070   for (int layer = 0; layer < m_kLayer; layer++) {
00071     //std::cout << "Layer " << layer << std::endl;
00072     for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00073       std::stringstream osname;
00074       int rep = replica;
00075       if (layer >= 0 && layer < m_kStereoLayerIn) {
00076         osname << "pv_" << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "TwistedTubs" << "_" << rep; 
00077       }
00078       else if (layer >= m_kStereoLayerIn && layer < m_kStereoLayerIn + m_kAxialLayerIn) {
00079         rep = CorrectReplica(layer, rep);
00080         osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer << "Replica" << "_" << rep; 
00081       }
00082       else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00083                layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) {
00084         osname << "pv_" << "logical" << "Mdc" << "Stereo" << "Layer" << layer << "TwistedTubs" << "_" << rep;
00085       }
00086       else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut &&
00087                layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut) {
00088         rep = CorrectReplica(layer, rep);
00089         osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer << "_0" << "Replica" << "_" << rep;
00090       }
00091       else if (layer >= m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut + m_kAxialLayerOut &&
00092                layer <  m_kLayer) {
00093         rep = CorrectReplica(layer, rep);
00094         osname << "pv_" << "logical" << "Mdc" << "Axial" << "Layer" << layer - m_kAxialLayerOut << "_1" << "Replica" << "_" << rep;
00095       }
00096       
00097       m_NodeReplica[layer][replica] = GetNode( osname.str() );
00098     }
00099   }
00100 }

void MdcROOTGeo::SetPhysicalNode  ) 
 

Set the pointers to the physical nodes;.

void MdcROOTGeo::SetPhysicalNode  ) 
 

Set the pointers to the physical nodes;.

void MdcROOTGeo::SetPhysicalNode  ) 
 

Set the pointers to the physical nodes;.

void MdcROOTGeo::SetPhysicalNode  ) 
 

Set the pointers to the physical nodes;.

00224 {
00225   int twistedTubsColor = 3;
00226   int replicaColor     = 4;
00227 
00228   if (gGeoManager == 0) std::cout << "Create gGeoManager first" << std::endl; 
00229   TGeoNode *bes = gGeoManager->GetTopNode();
00230   //std::cout << "m_childNo " << m_childNo << std::endl;
00231   TGeoNode *mdc = bes->GetDaughter(m_childNo);
00232 
00233   //if(!m_Mdc) std::cout << "m_Mdc = 0" << std::endl;
00234   
00235   for (int layer = 0; layer < m_kLayer; layer++) {
00236     TGeoNode *nodeLayer = GetLayer(layer);
00237     //std::cout << "Layer " << layer << std::endl;
00238     for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00239       TGeoNode *nodeReplica = GetReplica(layer, replica);
00240       m_PhysicalReplica[layer][replica] = gGeoManager->MakePhysicalNode( TString("/") + bes->GetName() + 
00241                                                                          TString("/") + mdc->GetName() +
00242                                                                          TString("/") + nodeLayer->GetName() +
00243                                                                          TString("/") + nodeReplica->GetName());
00244       m_PhysicalReplica[layer][replica]->SetVisibility(0); 
00245       m_PhysicalReplica[layer][replica]->SetIsVolAtt(kFALSE);
00246       if ( (layer >= 0 && layer < m_kStereoLayerIn) ||
00247            (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00248             layer < m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) ) {
00249         m_PhysicalReplica[layer][replica]->SetLineColor(twistedTubsColor);
00250       }
00251       else {
00252         m_PhysicalReplica[layer][replica]->SetLineColor(replicaColor);
00253       } 
00254       //if (m_PhysicalReplica[layer][replica]->IsVolAttributes()) std::cout << "yes " << std::endl; 
00255     }
00256   }
00257 }

void MdcROOTGeo::SetQMatch Bool_t  input  ) 
 

void MdcROOTGeo::SetQMatch Bool_t  input  ) 
 

00721                                  {
00722     k_QMatch = input;
00723     //cout << "Mdc ROOT Geometry ADC Match: " << k_QMatch << endl;
00724 }

void MdcROOTGeo::SetQuarterVisible  ) 
 

Set quater visible;.

void MdcROOTGeo::SetQuarterVisible  ) 
 

Set quater visible;.

void MdcROOTGeo::SetQuarterVisible  ) 
 

Set quater visible;.

void MdcROOTGeo::SetQuarterVisible  ) 
 

Set quater visible;.

00197 {
00198   for (int segment = 1; segment <= m_kSegment; segment++) {
00199     GetVolumeSegment(segment)->SetVisibility(0);
00200   }
00201   
00202   for (int layer = 0; layer < m_kLayer; layer++) {
00203     GetVolumeLayer(layer)->SetVisibility(0);
00204     GetVolumeReplica(layer)->SetVisibility(1);
00205   }
00206 
00207   for (int segment = 1; segment <= m_kSegment; segment++) {
00208     for (int no = 0; no < 2; no++) {
00209       GetSegment(segment, no)->SetVisibility(0);
00210     }
00211   }
00212 
00213   for (int layer = 0; layer < m_kLayer; layer++) {
00214     GetLayer(layer)->SetVisibility(0);
00215     for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00216       if (replica < m_kReplica[layer]/4) GetReplica(layer, replica)->SetVisibility(0);
00217       else                               GetReplica(layer, replica)->SetVisibility(1);
00218     }
00219   }
00220 }

void MdcROOTGeo::SetTMatch Bool_t  input  ) 
 

void MdcROOTGeo::SetTMatch Bool_t  input  ) 
 

00715                                  {
00716     k_TMatch = input;
00717     //cout << "Mdc ROOT Geometry TDC Match: " << k_TMatch << endl;
00718 }

void MdcROOTGeo::SetVisMdcDetector  ) 
 

Set Mdc default detector visibility;.

void MdcROOTGeo::SetVisMdcDetector  ) 
 

Set Mdc default detector visibility;.

00683 {
00684     BesView *view = 0;
00685     if (gPad) view = (BesView*)gPad->GetView();
00686 
00687     for (int i = 0; i < m_DetectorsArray->GetEntries(); i++) {
00688         TGeoPhysicalNode *phyNode = (TGeoPhysicalNode*)m_DetectorsArray->At(i);
00689         if (view && view->GetVisMdcGlobal()) {
00690             phyNode->SetVisibility(1);
00691             continue;
00692         }
00693         phyNode->SetVisibility(0);
00694     }
00695 }

void MdcROOTGeo::SetVisMdcHits  ) 
 

Set Mdc hits visibility;.

void MdcROOTGeo::SetVisMdcHits  ) 
 

Set Mdc hits visibility;.

00699 {
00700     BesView *view = 0;
00701     if (gPad) view = (BesView*)gPad->GetView();
00702 
00703     for (int i = 0; i < m_HitsArray->GetEntries(); i++) {
00704         TGeoPhysicalNode *phyNode = (TGeoPhysicalNode*)m_HitsArray->At(i);
00705         if (view && view->GetVisMdcHitsGlobal()) {
00706             phyNode->SetVisibility(1);
00707         }
00708         else {
00709             phyNode->SetVisibility(0);
00710         }
00711     }
00712 }

void MdcROOTGeo::SetVolumeDefaultVis  ) 
 

Set default visual attributes;.

void MdcROOTGeo::SetVolumeDefaultVis  ) 
 

Set default visual attributes;.

00357 {
00358     //std::cout << "begin of set defaultvis" << std::endl;
00359     m_Mdc->SetLineColor(m_MdcColor);
00360     m_Mdc->SetVisibility(0);
00361 
00362     for (int segment = 1; segment <= m_kSegment; segment++) {
00363         GetVolumeSegment(segment)->SetLineColor(m_segmentColor);
00364         //if (segment > 3) GetVolumeSegment(segment)->SetVisibility(0);
00365         GetVolumeSegment(segment)->SetVisibility(1);
00366     }
00367 
00368     for (int layer =0; layer < m_kLayer; layer++) {
00369         if ( (layer >= 0 && layer < m_kStereoLayerIn) ||
00370                 (layer >= m_kStereoLayerIn + m_kAxialLayerIn &&
00371                  layer <  m_kStereoLayerIn + m_kAxialLayerIn + m_kStereoLayerOut) ) {
00372             GetVolumeLayer(layer)->SetLineColor(m_hypeColor);
00373             GetVolumeReplica(layer)->SetLineColor(m_twistedTubsColor);
00374         }
00375         else {
00376             GetVolumeLayer(layer)->SetLineColor(m_tubeColor);
00377             GetVolumeReplica(layer)->SetLineColor(m_replicaColor);
00378         }
00379         GetVolumeLayer(layer)->SetVisibility(0);
00380         GetVolumeReplica(layer)->SetVisibility(1);
00381     }
00382 
00383     for (int segment = 1; segment <= m_kSegment; segment++) {
00384         for (int no = 0; no < 2; no++) {
00385             GetSegment(segment, no)->SetVisibility(0);
00386         }
00387     }
00388 
00389     for (int layer = 0; layer < m_kLayer; layer++) {
00390         GetLayer(layer)->SetVisibility(0);
00391         for (int replica = 0; replica < m_kReplica[layer]; replica++) {
00392             GetReplica(layer, replica)->SetVisibility(0);
00393         }
00394     }
00395 
00396     //std::cout << "end of set defaultvis" << std::endl;
00397 }

void MdcROOTGeo::SetVolumeMdc TGeoVolume *  vol  )  [inline]
 

Set Mdc volume, while initializing from ROOT;.

00098 { m_Mdc = vol; }

void MdcROOTGeo::SetVolumeMdc TGeoVolume *  vol  )  [inline]
 

Set Mdc volume, while initializing from ROOT;.

00098 { m_Mdc = vol; }


Member Data Documentation

Bool_t MdcROOTGeo::k_QMatch [private]
 

Bool_t MdcROOTGeo::k_TMatch [private]
 

int SubDetectorROOTGeo::m_2DGeoInit [protected, inherited]
 

TObjArray* SubDetectorROOTGeo::m_2DHitsArray [protected, inherited]
 

TObjArray* SubDetectorROOTGeo::m_2DHitsArray [protected, inherited]
 

int SubDetectorROOTGeo::m_childNo [protected, inherited]
 

std::map<int ,int> MdcROOTGeo::m_CorrectMap [private]
 

std::map<int ,int> MdcROOTGeo::m_CorrectMap [private]
 

std::map<int ,int> MdcROOTGeo::m_CorrectMap [private]
 

std::map<int ,int> MdcROOTGeo::m_CorrectMap [private]
 

TObjArray* SubDetectorROOTGeo::m_DetectorsArray [protected, inherited]
 

TObjArray* SubDetectorROOTGeo::m_DetectorsArray [protected, inherited]
 

TObjArray* SubDetectorROOTGeo::m_HitsArray [protected, inherited]
 

TObjArray* SubDetectorROOTGeo::m_HitsArray [protected, inherited]
 

int MdcROOTGeo::m_hypeColor [private]
 

const int MdcROOTGeo::m_kAxialLayerIn = 12 [static, private]
 

const int MdcROOTGeo::m_kAxialLayerOut = 7 [static, private]
 

const int MdcROOTGeo::m_kCorrectLayer = 10 [static, private]
 

const int MdcROOTGeo::m_kiCorrectLayer = {9, 11, 13, 15, 17, 19, 36, 38, 40, 42} [static, private]
 

const int MdcROOTGeo::m_kiCorrectReplica = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} [static, private]
 

const int MdcROOTGeo::m_kLayer = 50 [static, private]
 

const int MdcROOTGeo::m_kReplica [static, private]
 

Initial value:

 { 40,  44,  48,  56,  64,  72,  80,  80,
                                     76,  76,  88,  88,  100, 100, 112, 112, 128, 128, 140, 140,
                                     160, 160, 160, 160, 192, 192, 192, 192, 208, 208, 208, 208, 240, 240, 240, 240,
                                     256, 256, 256, 256, 288, 288, 288,
                                     256, 256, 256, 256, 288, 288, 288 }

const int MdcROOTGeo::m_kReplicaMax = 288 [static, private]
 

const int MdcROOTGeo::m_kSegment = 66 [static, private]
 

const int MdcROOTGeo::m_kStereoDir [static, private]
 

Initial value:

 { 1, 1, 1, 1, -1, -1, -1, -1,
        0, 0, 0, 0,  0,  0,  0,  0,  0,  0,  0,  0,
        1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1,
        0, 0, 0, 0,  0,  0,  0
                                         }

const int MdcROOTGeo::m_kStereoLayerIn = 8 [static, private]
 

const int MdcROOTGeo::m_kStereoLayerOut = 16 [static, private]
 

const int MdcROOTGeo::m_kTrueLayer = 43 [static, private]
 

TGeoVolume* MdcROOTGeo::m_Mdc [private]
 

TGeoVolume* MdcROOTGeo::m_Mdc [private]
 

TGeoVolume* MdcROOTGeo::m_Mdc [private]
 

TGeoVolume* MdcROOTGeo::m_Mdc [private]
 

Mdc2DWire* MdcROOTGeo::m_Mdc2DWire[m_kTrueLayer][m_kReplicaMax] [private]
 

Mdc2DWire* MdcROOTGeo::m_Mdc2DWire[m_kTrueLayer][m_kReplicaMax] [private]
 

int MdcROOTGeo::m_MdcColor [private]
 

const TObjArray* MdcROOTGeo::m_MdcDigiCol [private]
 

const TObjArray* MdcROOTGeo::m_MdcDigiCol [private]
 

BesCircle2D* MdcROOTGeo::m_MdcXY [private]
 

BesCircle2D* MdcROOTGeo::m_MdcXY [private]
 

BesCircle2D* MdcROOTGeo::m_MdcXYSuper[4] [private]
 

BesCircle2D* MdcROOTGeo::m_MdcXYSuper[4] [private]
 

BesPolygon2D* MdcROOTGeo::m_MdcZR[2] [private]
 

BesPolygon2D* MdcROOTGeo::m_MdcZR[2] [private]
 

TGeoNode* MdcROOTGeo::m_NodeLayer[m_kLayer] [private]
 

TGeoNode* MdcROOTGeo::m_NodeLayer[m_kLayer] [private]
 

TGeoNode* MdcROOTGeo::m_NodeReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoNode* MdcROOTGeo::m_NodeReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoNode* MdcROOTGeo::m_NodeReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoNode* MdcROOTGeo::m_NodeReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalReplica[m_kLayer][m_kReplicaMax] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalSegment[m_kSegment *2] [private]
 

TGeoPhysicalNode* MdcROOTGeo::m_PhysicalSegment[m_kSegment *2] [private]
 

int MdcROOTGeo::m_replicaColor [private]
 

int SubDetectorROOTGeo::m_ROOTGeoInit [protected, inherited]
 

int MdcROOTGeo::m_segmentColor [private]
 

TGeoVolume* SubDetectorROOTGeo::m_TopVolume [protected, inherited]
 

TGeoVolume* SubDetectorROOTGeo::m_TopVolume [protected, inherited]
 

TGeoVolume* SubDetectorROOTGeo::m_TopVolume [protected, inherited]
 

TGeoVolume* SubDetectorROOTGeo::m_TopVolume [protected, inherited]
 

int MdcROOTGeo::m_tubeColor [private]
 

int MdcROOTGeo::m_twistedTubsColor [private]
 

const int MdcROOTGeo::MDC_CHARGE_FACTOR = 1000000 [static, private]
 

const int MdcROOTGeo::MDC_TIME_FACTOR = 100000 [static, private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:28:08 2011 for BOSS6.5.5 by  doxygen 1.3.9.1