|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include <Inventor/nodes/SoSeparator.h>
17 #include <Inventor/nodes/SoTranslation.h>
18 #include <Inventor/nodes/SoMaterial.h>
40 SoSeparator * errDetailed =
new SoSeparator;
41 SoSeparator * errSimple =
new SoSeparator;
42 shape_simple = errSimple;
48 errSimple->addChild(
line);
49 errSimple->addChild(
common()->nodeManager()->getShapeNode_Cross(10));
50 const double maxCharge = 1e5;
62 if (charges.size() == 0 )
65 errDetailed->addChild(
common()->nodeManager()->getShapeNode_Strip(striplength,
69 SoSeparator * rdos =
new SoSeparator;
76 double chargeLength=striplength/
static_cast<double>(charges.size());
79 double ypos=(chargeLength-striplength)/2.0;
80 std::vector<float>::const_iterator st = charges.begin();
81 std::vector<float>::const_iterator
en = charges.end();
83 SoTranslation * localtrans =
new SoTranslation;
84 localtrans->translation.setValue(0.0,ypos,0.0);
85 rdos->addChild(localtrans);
87 for( std::vector<float>::const_iterator
it = st;
it!=
en; ++
it, ++
i){
90 const double stripHeightCharge = (1.0 + 4*sqrt(
charge/maxCharge))*
CLHEP::mm;
94 SoTranslation * localtrans2 =
new SoTranslation;
95 localtrans2->translation.setValue(0.0,chargeLength,0.0);
96 rdos->addChild(localtrans2);
99 errDetailed->addChild(rdos);
101 SoMaterial *
mat =
new SoMaterial;
102 mat->diffuseColor.setValue(1.0,0,0);
103 errDetailed->addChild(
mat);
106 shape_detailed = errDetailed;
122 return QStringList(
"Null PRD");
125 return QStringList(
"Null PRD");
128 std::ostringstream
os;
129 os <<
"CscStripPrepData with Identifier ["<<
id<<
"] = ["<<idhelper->
print_to_string(
id)
131 os <<
". Samples = [";
136 os <<
". RDO list= [";
142 return QString(
os.str().c_str()).split(
"\n");
unsigned short samplingTime() const
return the sampling time in ns: the time between samplings
const Muon::CscStripPrepData * m_csc
Eigen::Matrix< double, 2, 1 > Vector2D
PRDCollHandleBase * collHandle() const
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
PRDSysCommonData * common() const
double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double &epsilon) const
PRDHandle_CSC_Strip(PRDCollHandle_CSC_Strip *, const Muon::CscStripPrepData *)
HitsSoNodeManager * nodeManager() const
Class representing the raw data of one CSC strip (for clusters look at Muon::CscPrepData).
int getPhiIndex() const
a la AMDB
bool samplingPhase() const
return the sampling phase
const MuonStation * parentMuonStation() const
SoNode * getShapeNode_Strip(double length, double width=0, double depth=0)
Identifier identify() const
return the identifier
std::string print_to_string(Identifier id, const IdContext *context=0) const
or provide the printout in string form
const Amg::Vector2D & localPosition() const
return the local position reference
double charge(const T &p)
T_ResultType project(ParameterMapping::type< N > parameter_map, const T_Matrix &matrix)
const Amg::Vector3D & globalPosition() const
return global position reference
virtual QStringList clicked() const
void buildShapes(SoNode *&shape_simple, SoNode *&shape_detailed)
int getEtaIndex() const
a la AMDB
SoNode * getShapeNode_Cross(double extent)
static const CscIdHelper * cscIDHelper()
bool measuresPhi(const Identifier &id) const override
int chamberLayer(const Identifier &id) const
double timeOfFirstSample() const
return the time of the first sample
const std::vector< float > & sampleCharges() const
Return the time samples.
double cathodeReadoutPitch(int chLayer, int measuresPhi) const