#include <MdcROOTGeo.h>
Inheritance diagram for MdcROOTGeo:
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. | |
Mdc2DWire * | Get2DWire (Int_t layer, Int_t replica) |
Get Mdc2DWire;. | |
Mdc2DWire * | Get2DWire (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 |
Mdc2DWire * | m_Mdc2DWire [m_kTrueLayer][m_kReplicaMax] |
Mdc2DWire * | m_Mdc2DWire [m_kTrueLayer][m_kReplicaMax] |
int | m_MdcColor |
const TObjArray * | m_MdcDigiCol |
const TObjArray * | m_MdcDigiCol |
BesCircle2D * | m_MdcXY |
BesCircle2D * | m_MdcXY |
BesCircle2D * | m_MdcXYSuper [4] |
BesCircle2D * | m_MdcXYSuper [4] |
BesPolygon2D * | m_MdcZR [2] |
BesPolygon2D * | m_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 |
|
|
|
|
|
|
|
|
|
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 }
|
|
Destructor.
00052 { }
|
|
Constructor.
|
|
Destructor.
|
|
Constructor.
|
|
Destructor.
|
|
Constructor.
|
|
Destructor.
|
|
Correct some axial layer id to copyNo;.
|
|
Correct some axial layer id to copyNo;.
|
|
Correct some axial layer id to copyNo;.
|
|
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 }
|
|
Draw function.
|
|
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 }
|
|
Draw 2D hits.
|
|
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 }
|
|
Get Mdc2DWire;.
|
|
Get Mdc2DWire;.
00899 { 00900 if (m_Mdc2DWire[layer][wire]) return m_Mdc2DWire[layer][wire]; 00901 else return 0; 00902 }
|
|
Get an assembly by name;.
|
|
Get an assembly by name;.
|
|
Get an assembly by name;.
|
|
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 }
|
|
Get ith hit in HitsArray;.
|
|
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 }
|
|
Get number of hits in HitsArray;.
00061 { return m_HitsArray->GetEntries(); }
|
|
Get number of hits in HitsArray;.
00061 { return m_HitsArray->GetEntries(); }
|
|
Get layer node;.
|
|
Get layer node;.
|
|
Get layer node;.
|
|
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 }
|
|
Get number of layers;.
|
|
Get number of layers;.
00092 { return m_kLayer; }
|
|
Get number of layers;.
00092 { return m_kLayer; }
|
|
Get number of layers;.
|
|
Get a logical volume by name;.
|
|
Get a logical volume by name;.
|
|
Get a logical volume by name;.
|
|
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 }
|
|
Get a node(physical volume) by name;.
|
|
Get a node(physical volume) by name;.
|
|
Get a node(physical volume) by name;.
|
|
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 }
|
|
Get replica physical node;.
|
|
Get replica physical node;.
|
|
Get replica physical node;.
|
|
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 }
|
|
Get segment physical node;.
|
|
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 }
|
|
Get replica node;.
|
|
Get replica node;.
|
|
Get replica node;.
|
|
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 }
|
|
Get number of replicas on each layer;.
00067 { return m_kReplica[layer]; }
|
|
Get number of replicas on each layer;.
00095 { return m_kReplica[layer]; }
|
|
Get number of replicas on each layer;.
00095 { return m_kReplica[layer]; }
|
|
Get number of replicas on each layer;.
00067 { return m_kReplica[layer]; }
|
|
Get segment node;.
|
|
Get segment node;.
|
|
Get segment node;.
|
|
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 }
|
|
Get number of segments;.
|
|
Get number of segments;.
00089 { return m_kSegment; }
|
|
Get number of segments;.
00089 { return m_kSegment; }
|
|
Get number of segments;.
|
|
Trans trueLayer to simuLayer (0~42)->(0~49).
|
|
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 }
|
|
Get the top(world) volume;.
00051 { return m_TopVolume; }
|
|
Get the top(world) volume;.
00052 { return m_TopVolume; }
|
|
Get the top(world) volume;.
00052 { return m_TopVolume; }
|
|
Get the top(world) volume;.
00051 { return m_TopVolume; }
|
|
Get layer volume;.
|
|
Get layer volume;.
|
|
Get layer volume;.
|
|
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 }
|
|
Get Mdc volume;.
00070 { return m_Mdc; }
|
|
Get Mdc volume;.
00101 { return m_Mdc; }
|
|
Get Mdc volume;.
00101 { return m_Mdc; }
|
|
Get Mdc volume;.
00070 { return m_Mdc; }
|
|
Get replica volume;.
|
|
Get replica volume;.
|
|
Get replica volume;.
|
|
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 }
|
|
Get segment volume;.
|
|
Get segment volume;.
|
|
Get segment volume;.
|
|
Get segment volume;.
00261 { 00262 std::stringstream osname; 00263 osname << "logical" << "Mdc" << "Segment" << segment; 00264 return GetLogicalVolume( osname.str() ); 00265 }
|
|
Initialize 2D Geometry.
|
|
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(), ¢er[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(), ¢er[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 }
|
|
Initialize the instance of ROOTGeo.
|
|
Initialize ROOTGeo from GDML.
|
|
Initialize ROOTGeo from GDML.
00090 { 00091 m_ROOTGeoInit = 2; 00092 ReadGdml(gdmlFile, setupName); 00093 SetNode(); 00094 }
|
|
Initialize the instance of ROOTGeo.
00056 { 00057 ReadGdml(gdmlFile, setupName); 00058 SetNode(); 00059 SetDefaultVis(); 00060 00061 m_ROOTGeoInit = 1; 00062 }
|
|
Initialize ROOTGeo from TGeoVolume logicalMdc.
|
|
Initialize ROOTGeo from TGeoVolume logicalMdc.
00098 { 00099 m_ROOTGeoInit = 1; 00100 00101 SetVolumeMdc(vol); 00102 SetNode(); 00103 }
|
|
Judge whether the digiCol contains (layer, 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 }
|
|
If the ROOT geometry of this subdetctor is initialized;.
00042 { return m_ROOTGeoInit; }
|
|
If the ROOT geometry of this subdetctor is initialized;.
00043 { return m_ROOTGeoInit; }
|
|
If the ROOT geometry of this subdetctor is initialized;.
00043 { return m_ROOTGeoInit; }
|
|
If the ROOT geometry of this subdetctor is initialized;.
00042 { return m_ROOTGeoInit; }
|
|
Initialize the instance of ROOTGeo.
|
|
Initialize the instance of ROOTGeo.
|
|
Initialize the instance of ROOTGeo.
|
|
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 }
|
|
Set all visible;.
|
|
Set all visible;.
|
|
Set all visible;.
|
|
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 }
|
|
00045 { m_childNo = childNo; }
|
|
00046 { m_childNo = childNo; }
|
|
00046 { m_childNo = childNo; }
|
|
00045 { m_childNo = childNo; }
|
|
Set default visual attributes;.
|
|
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 }
|
|
Draw Detecor (what is detector depends on you).
|
|
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 }
|
|
Set all physicalNodes in m_DeteorsArray visible;.
|
|
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 }
|
|
Set half visible;.
|
|
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 }
|
|
Set all physicalNodes corresponding to digiCol;.
|
|
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 }
|
|
Set the pointers to theirs nodes;.
|
|
Set the pointers to theirs nodes;.
|
|
Set the pointers to theirs nodes;.
|
|
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 }
|
|
Set the pointers to the physical nodes;.
|
|
Set the pointers to the physical nodes;.
|
|
Set the pointers to the physical nodes;.
|
|
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 }
|
|
|
|
00721 { 00722 k_QMatch = input; 00723 //cout << "Mdc ROOT Geometry ADC Match: " << k_QMatch << endl; 00724 }
|
|
Set quater visible;.
|
|
Set quater visible;.
|
|
Set quater visible;.
|
|
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 }
|
|
|
|
00715 { 00716 k_TMatch = input; 00717 //cout << "Mdc ROOT Geometry TDC Match: " << k_TMatch << endl; 00718 }
|
|
Set Mdc default detector visibility;.
|
|
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 }
|
|
Set Mdc hits visibility;.
|
|
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 }
|
|
Set default visual attributes;.
|
|
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 }
|
|
Set Mdc volume, while initializing from ROOT;.
00098 { m_Mdc = vol; }
|
|
Set Mdc volume, while initializing from ROOT;.
00098 { m_Mdc = vol; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 } |
|
|
|
|
|
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 } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|