From 8ad5091bb2d61c48d5f7da56dc5d2a920a3dac7a Mon Sep 17 00:00:00 2001 From: zoujh <zoujh@ihep.ac.cn> Date: Mon, 12 Aug 2019 21:25:57 +0800 Subject: [PATCH] original plcio --- Event/plcio.yaml | 599 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 599 insertions(+) create mode 100644 Event/plcio.yaml diff --git a/Event/plcio.yaml b/Event/plcio.yaml new file mode 100644 index 00000000..340fcb1d --- /dev/null +++ b/Event/plcio.yaml @@ -0,0 +1,599 @@ +--- +# LCIO EDM Description +# based on LCIO v02-12 +# Dec 2018 + + +# specify some options for code generation +options: + getSyntax : True + exposePODMembers : False + +################################################################################################################# +# +# some helper components - simple data structs (PODs) +# +################################################################################################################# + +components: + # Vector3D with floats + plcio::FloatThree : + x : float + y : float + z : float + ExtraCode : + declaration: " + FloatThree() : x(0),y(0),z(0) {}\n + FloatThree(float xx, float yy, float zz) : x(xx),y(yy),z(zz) {}\n + FloatThree(const float* v) : x(v[0]),y(v[1]),z(v[2]) {}\n + float operator[](unsigned i) const { return *( &x + i ) ; }\n + " + + + # Vector3D with doubles + plcio::DoubleThree : + x : double + y : double + z : double + ExtraCode : + declaration: " + DoubleThree() : x(0),y(0),z(0) {}\n + DoubleThree(const double* v) : x(v[0]),y(v[1]),z(v[2]) {}\n + DoubleThree(const float* v) : x(v[0]),y(v[1]),z(v[2]) {}\n + double operator[](unsigned i) const { return *( &x + i ) ; }\n + " + + # Vector2D with ints + plcio::IntTwo : + a : int + b : int + ExtraCode : + declaration: " + IntTwo() : a(0),b(0) {}\n + IntTwo( const int* v) : a(v[0]), b(v[1]) {}\n + int operator[](unsigned i) const { return *( &a + i ) ; }\n + " + +# # helper struct for MCP contributions to the SimCalorimterHit +# plcio::CaloHitCont : +# PDG : int +# energy : float +# time : float +# stepPosition : plcio::FloatThree +# ExtraCode : +# declaration: " +# CaloHitCont() = default;\n +# CaloHitCont(int pdgID, float e, const plcio::FloatThree& pos, float t) : PDG(pdgID),energy(e),stepPosition(pos),time(t){}\n +# " + + #-------- LCIO TrackState + plcio::TrackState: + location : int + D0 : float + phi : float + omega : float + Z0 : float + tanLambda : float + referencePoint : plcio::FloatThree + covMatrix : std::array<float,15> + + #------ ObjectID helper struct for references/relations + plcio::ObjectID: + index : int + collectionID : int + ExtraCode : + includes: "#include <podio/ObjectID.h>\n" + declaration: " + ObjectID() = default;\n + ObjectID(const podio::ObjectID& id ): index(id.index), collectionID(id.collectionID) {}\n + " +################################################################################################################# +# +# the actual EDM data types +# +################################################################################################################# + + + +datatypes : + + #------------- LCIO LCRunHeader + plcio::LCRunHeader: + Description: "Interface for the run header." + Author : "F.Gaede, DESY" + Members: + - int runNumber //run number + - std::string detectorName //name of the detector setup used in the simulation. + - std::string description //description of the simulation, physics channels etc. + VectorMembers: + - std::string activeSubdetectors //active subdetectors used in the simulation. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------------- LCIO EventHeader + plcio::EventHeader: + Description: "Meta information on the eventEvent header information - including collection maes and types" + Author : "F.Gaede" + Members: + - int eventNumber //event number + - int runNumber //run number + - long timeStamp //time stamp + - std::string detectorName //detector model + VectorMembers: + - std::string collectionNames //collection names + - std::string collectionTypes //collection Types + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------------- LCIO MCParticle + plcio::MCParticle: + Description: "The Monte Carlo particle." + Author : "F.Gaede, DESY" + Members: + - int PDG //PDG code of the particle + - int generatorStatus //status of the particle as defined by the generator + - int simulatorStatus //status of the particle from the simulation program + - float charge //particle charge + - float time //creation time of the particle in [ns] wrt. the event, e.g. for preassigned decays or decays in flight from the simulator. + - double mass //mass of the particle in [GeV] + - plcio::DoubleThree vertex //production vertex of the particle in [mm]. + - plcio::DoubleThree endpoint //endpoint of the particle in [mm] + - plcio::FloatThree momentum //particle 3-momentum at the production vertex in [GeV] + - plcio::FloatThree momentumAtEndpoint //particle 3-momentum at the endpoint in [GeV] + - plcio::FloatThree spin //spin (helicity) vector of the particle. + - plcio::IntTwo colorFlow //color flow as defined by the generator + OneToManyRelations: + - plcio::MCParticle parents // The parents of this particle. + - plcio::MCParticle daughters // The daughters this particle. + ExtraCode : + includes: "#include <math.h>\n + #include <vector_view.h>\n + " + const_declaration: " + // define the bit positions for the simulation flag\n + static const int BITEndpoint = 31;\n + static const int BITCreatedInSimulation = 30;\n + static const int BITBackscatter = 29 ;\n + static const int BITVertexIsNotEndpointOfParent = 28 ; \n + static const int BITDecayedInTracker = 27 ; \n + static const int BITDecayedInCalorimeter = 26 ; \n + static const int BITLeftDetector = 25 ; \n + static const int BITStopped = 24 ; \n + static const int BITOverlay = 23 ; \n + /// return energy computed from momentum and mass \n + double getEnergy() { return sqrt( getMomentum()[0]*getMomentum()[0]+getMomentum()[1]*getMomentum()[1]+\n + getMomentum()[2]*getMomentum()[2] + getMass()*getMass() ) ;} \n + vector_view<ConstMCParticle> getParents() const { return vector_view<ConstMCParticle>( parents_begin(), parents_end()) ; } \n + vector_view<ConstMCParticle> getDaughters() const { return vector_view<ConstMCParticle>( daughters_begin(), daughters_end()) ; } \n + /// True if the particle has been created by the simulation program (rather than the generator). \n + bool isCreatedInSimulation() const { return ( getSimulatorStatus() & ( 0x1 << BITCreatedInSimulation )) ; } \n + /// True if the particle is the result of a backscatter from a calorimeter shower. \n + bool isBackscatter() const { return ( getSimulatorStatus() & ( 0x1 << BITBackscatter )) ; } \n + /// True if the particle's vertex is not the endpoint of the parent particle. \n + bool vertexIsNotEndpointOfParent() const { return ( getSimulatorStatus() & ( 0x1 << BITVertexIsNotEndpointOfParent )) ; } \n + /// True if the particle has interacted in a tracking region. \n + bool isDecayedInTracker() const { return ( getSimulatorStatus() & ( 0x1 << BITDecayedInTracker )) ; } \n + /// True if the particle has interacted in a calorimeter region. \n + bool isDecayedInCalorimeter() const { return ( getSimulatorStatus() & ( 0x1 << BITDecayedInCalorimeter )) ; } \n + /// True if the particle has left the world volume undecayed. \n + bool hasLeftDetector() const { return ( getSimulatorStatus() & ( 0x1 << BITLeftDetector )) ; }\n + /// True if the particle has been stopped by the simulation program. \n + bool isStopped() const { return ( getSimulatorStatus() & ( 0x1 << BITStopped )) ; } \n + /// True if the particle has been overlayed by the simulation (or digitization) program.\n + bool isOverlay() const { return ( getSimulatorStatus() & ( 0x1 << BITOverlay )) ; } \n + " + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + int set_bit(int val, int num, bool bitval){ return (val & ~(1<<num)) | (bitval << num); } \n + void setCreatedInSimulation(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITCreatedInSimulation , bitval ) ) ; } \n + void setBackscatter(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITBackscatter , bitval ) ) ; } \n + void setVertexIsNotEndpointOfParent(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITVertexIsNotEndpointOfParent , bitval ) ) ; } \n + void setDecayedInTracker(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITDecayedInTracker , bitval ) ) ; } \n + void setDecayedInCalorimeter(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITLeftDetector , bitval ) ) ; } \n + void setHasLeftDetector(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITLeftDetector , bitval ) ) ; } \n + void setStopped(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITStopped , bitval ) ) ; } \n + void setOverlay(bool bitval) { setSimulatorStatus( set_bit( getSimulatorStatus() , BITOverlay , bitval ) ) ; } \n + " + implementation : "" + + #----------- LCIO SimTrackerHit + plcio::SimTrackerHit: + Description: "LCIO simulated tracker hit" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //ID of the sensor that created this hit + - int cellID1 //second ID of the sensor that created this hit + - float EDep //energy deposited in the hit [GeV]. + - float time //proper time of the hit in the lab frame in [ns]. + - float pathLength //path length of the particle in the sensitive material that resulted in this hit. + - int quality //quality bit flag. + - plcio::DoubleThree position //the hit position in [mm]. + - plcio::FloatThree momentum //the 3-momentum of the particle at the hits position in [GeV] + OneToOneRelations: + - plcio::MCParticle MCParticle //MCParticle that caused the hit. + ExtraCode : + const_declaration: " + static const int BITOverlay = 31;\n + static const int BITProducedBySecondary = 30;\n + bool isOverlay() const { return getQuality() & (1 << BITOverlay) ; }\n + bool isProducedBySecondary() const { return getQuality() & (1 << BITProducedBySecondary) ; }\n + " + declaration: " + /// operator to allow pointer like calling of members a la LCIO\n + {name}* operator->() { return ({name}*) this ; } \n + int set_bit(int val, int num, bool bitval){ return (val & ~(1<<num)) | (bitval << num); }\n + void setOverlay(bool val) { setQuality( set_bit( getQuality() , BITOverlay , val ) ) ; }\n + void setProducedBySecondary(bool val) { setQuality( set_bit( getQuality() , BITProducedBySecondary , val ) ) ; }\n + " + + #------------- LCIO CaloHitContribution + plcio::CaloHitContribution: + Description: "Monte Carlo contribution to SimCalorimeterHit" + Author : "F.Gaede, DESY" + Members: + - int PDG //PDG code of the shower particle that caused this contribution. + - float energy //energy in [GeV] of the this contribution + - float time //time in [ns] of this contribution + - plcio::FloatThree stepPosition //position of this energy deposition (step) + OneToOneRelations: + - plcio::MCParticle particle //primary MCParticle that caused the shower responsible for this contribution to the hit. + + #------------- LCIO SimCalorimeterHit + plcio::SimCalorimeterHit: + Description: "LCIO simulated calorimeter hit" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //detector specific (geometrical) cell id. + - int cellID1 //second detector specific (geometrical) cell id. + - float energy //energy of the hit in [GeV]. + - plcio::FloatThree position //position of the hit in world coordinates. + OneToManyRelations: + - plcio::CaloHitContribution contributions //Monte Carlo step contribution - parallel to particle + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + + #------------- LCIO LCFloatVec + plcio::LCFloatVec: + Description: "LCIO LCFloatVec" + Author : "F.Gaede, DESY" + VectorMembers: + - float values /// float values + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + void push_back(float val){ addValue(val) ;} + " + #------------- LCIO LCIntVec + plcio::LCIntVec: + Description: "LCIO LCIntVec" + Author : "F.Gaede, DESY" + VectorMembers: + - int values /// int values + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + void push_back(int val){ addValue(val) ;} + " + #------------- LCIO LCStrVec + plcio::LCStrVec: + Description: "LCIO LCStrVec" + Author : "F.Gaede, DESY" + VectorMembers: + - std::string values /// string values + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + void push_back(const std::string& val){ addValue(val) ;} + " + + #------------- LCIO RawCalorimeterHit + plcio::RawCalorimeterHit: + Description: "LCIO raw calorimeter hit" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //detector specific (geometrical) cell id. + - int cellID1 //second detector specific (geometrical) cell id. + - int amplitude //amplitude of the hit in ADC counts. + - int timeStamp //time stamp for the hit. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------------- LCIO CalorimeterHit + plcio::CalorimeterHit: + Description: "LCIO calorimeter hit" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //detector specific (geometrical) cell id. + - int cellID1 //second detector specific (geometrical) cell id. + - float energy //energy of the hit in [GeV]. + - float energyError //error of the hit energy in [GeV]. + - float time //time of the hit in [ns]. + - plcio::FloatThree position //position of the hit in world coordinates. + - int type //type of hit. Mapping of integer types to names via collection parameters "CalorimeterHitTypeNames" and "CalorimeterHitTypeValues". + - plcio::ObjectID rawHit //reference to RawCalorimeterHit. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------------- LCIO TrackerHit + # o FIXME: no specialisation for the different kind of geometries: TrackerHitPlane, TrackerHitZCylinder + # o FIXME: should we define a FloatSix for the covMatrix or use the std::array ??? + plcio::TrackerHit: + Description : "LCIO tracker hit" + Author : "F.Gaede, DESY" + Members : + - int cellID0 //ID of the sensor that created this hit + - int cellID1 //second ID of the sensor that created this hit + - int type //type of raw data hit, either one ofLCIO::TPCHIT, LCIO::SIMTRACKERHIT - see collection parameters "TrackerHitTypeNames" and "TrackerHitTypeValues". + - int quality //quality bit flag of the hit. + - float time //time of the hit. + - float eDep //energy deposited on the hit [GeV]. + - float eDepError //error measured on EDep [GeV]. + - float edx //dE/dx of the hit in [GeV]. + - plcio::DoubleThree position //hit position in [mm]. + - std::array<float,6> covMatrix //covariance of the position (x,y,z), stored as lower triangle matrix. i.e. cov(x,x) , cov(y,x) , cov(y,y) , cov(z,x) , cov(z,y) , cov(z,z) + VectorMembers: + - plcio::ObjectID rawHits //raw data hits. Check getType to get actual data type. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------------- LCIO LCGenericObject + # o FIXME: this implementation is rather inefficicent .... + plcio::LCGenericObject: + Description: "LCIO LCGenericObject" + Author : "F.Gaede, DESY" + Members: + - int isFixedSize //true if all objects have a fixed size, i.e getNInt, getNFloat and getNDouble will return values that are constant during the lifetime of the object + - std::string typeName // The type name of the user class (typically the class name) + - std::string dataDescription // The description string. A comma separated list of pairs of type identifier, one of 'i','f','d' followed by ':' and an attribute name, e.g. "i cellId,f offset,f gain". + VectorMembers: + - int intVals // Returns the integer value for the given index. + - float floatVals // Returns the float value for the given index. + - double doubleVals // Returns the double value for the given index. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO\n + {name}* operator->() { return ({name}*) this ; }\n + int getNInt() const { return intVals_size() ; }\n + int getNFloat() const { return floatVals_size() ; }\n + int getNDouble() const { return doubleVals_size() ; }\n + " + + + #---------- LCIO TPCHit + plcio::TPCHit: + Description: "LCIO TPCHit" + Author : "F.Gaede, DESY" + Members: + - int cellID //detector specific cell id. + - int quality //quality flag for the hit. + - float time //time of the hit. + - float charge //integrated charge of the hit. + VectorMembers: + - int rawDataWords //raw data (32-bit) word at i. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #-------- LCIO Track + plcio::Track: + Description: "LCIO reconstructed track" + Author : "F.Gaede, DESY" + Members: + - int type //flagword that defines the type of track.Bits 16-31 are used internally + - float chi2 //Chi^2 of the track fit + - int ndf //number of degrees of freedom of the track fit + - float dEdx //dEdx of the track. + - float dEdxError //error of dEdx. + - float radiusOfInnermostHit //radius of the innermost hit that has been used in the track fit + VectorMembers: + - int subDetectorHitNumbers //number of hits in particular subdetectors.Check/set collection variable TrackSubdetectorNames for decoding the indices + - plcio::TrackState trackStates //track states + OneToManyRelations: + - plcio::TrackerHit trackerHits //Optionaly ( check/set flag(LCIO::TRBIT_HITS)==1) return the hits that have been used to create this track + - plcio::Track tracks //tracks (segemenbts) that have been combined to this track + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #----------- LCIO relations + plcio::LCRelation: + Description: "LCIO LCRelation" + Author : "F.Gaede, DESY" + Members: + - plcio::ObjectID from //from-object of the given relation. + - plcio::ObjectID to //to-object of the given relation. + - float weight //weight of the given relation + + + #----------- LCIO reference (pointer) + plcio::LCReference: + Description: "LCIO reference (pointer) to be used for subset collections" + Author : "F.Gaede, DESY" + Members: + - plcio::ObjectID object //object pointed to + + + #---- LCIO ParticleID + plcio::ParticleID: + Description: "LCIO ParticleID - in pLCIO these are stored in separate collections" + Author : "F.Gaede, DESY" + Members: + - int type //userdefined type + - int pDG //PDG code of this id - ( 999999 ) if unknown. + - int algorythmType //type of the algorithm/module that created this hypothesis + - float likelihood //likelihood of this hypothesis - in a user defined normalization. + VectorMembers: + - float parameters //parameters associated with this hypothesis. Check/set collection parameters ParameterNames_PIDAlgorithmTypeName for decoding the indices. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + + #------ LCIO cluster + # Changes w.r.t. to original + # o ParticleIDs are now in external collection + plcio::Cluster: + Description: "LCIO cluster" + Author : "F.Gaede, DESY" + Members: + - int type //flagword that defines the type of cluster. Bits 16-31 are used internally. + - float energy //energy of the cluster [GeV] + - float energyError //error on the energy + - plcio::FloatThree position //position of the cluster. + - std::array<float,6> positionError //covariance matrix of the position (6 Parameters) + - float iTheta //intrinsic direction of cluster at position Theta. Not to be confused with direction cluster is seen from IP. + - float phi //intrinsic direction of cluster at position - Phi. Not to be confused with direction cluster is seen from IP. + - plcio::FloatThree directionError //covariance matrix of the direction (3 Parameters) + VectorMembers: + - float shape //shape parameters - check/set collection parameter ClusterShapeParameters for size and names of parameters. + - float weight //weight of a particular cluster + - float hitContributions //energy contribution of the hits Runs parallel to the CalorimeterHitVec from getCalorimeterHits(). + - float subdetectorEnergies //energy observed in a particular subdetector. Check/set collection parameter ClusterSubdetectorNames for decoding the indices of the array. + OneToManyRelations: + - plcio::Cluster clusters //clusters that have been combined to this cluster. + - plcio::CalorimeterHit hits //hits that have been combined to this cluster. + - plcio::ParticleID particleIDs //particle IDs (sorted by their likelihood) + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + + #------- LCIO ReconstructedParticle + # Changes w.r.t. to original + # o ParticleIDs are now in external collection + plcio::ReconstructedParticle: + Description: "LCIO Reconstructed Particle" + Author : "F.Gaede, DESY" + Members: + - int type //type of reconstructed particle. Check/set collection parameters ReconstructedParticleTypeNames and ReconstructedParticleTypeValues. + - float energy //energy of the reconstructed particle. + - plcio::FloatThree momentum //particle momentum + - plcio::FloatThree referencePoint //reference, i.e. where the particle has been measured + - float charge //charge of the reconstructed particle. + - float mass //mass of the reconstructed particle, set independently from four vector + - float goodnessOfPID //overall goodness of the PID on a scale of [0;1] + - std::array<float,10> covMatrix //cvariance matrix of the reconstructed particle 4vector (10 parameters). Stored as lower triangle matrix of the four momentum (px,py,pz,E), i.e. cov(px,px), cov(py,## + OneToOneRelations: + - plcio::Vertex startVertex //start vertex associated to this particle + - plcio::ParticleID particleIDUsed //particle Id used for the kinematics of this particle + OneToManyRelations: + - plcio::Cluster clusters //clusters that have been used for this particle. + - plcio::Track tracks //tracks that have been used for this particle. + - plcio::ReconstructedParticle particles //reconstructed particles that have been combined to this particle. + - plcio::ParticleID particleIDs //particle Ids (not sorted by their likelihood) + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO\n + {name}* operator->() { return ({name}*) this ; }\n + bool isCompound() { return particles_size() > 0 ;}\n + //vertex where the particle decays This method actually returns the start vertex from the first daughter particle found. + plcio::Vertex getEndVertex() { return plcio::Vertex( (getParticles(0).isAvailable() ? getParticles(0).getStartVertex() : plcio::Vertex(0,0) ) ) ; }\n + " + + #---------- LCIO Vertex + #FIXME: lcio interface has algorithmType as string but stores int ... + plcio::Vertex: + Description: "LCIO vertex" + Author : "F.Gaede, DESY" + Members: + - int primary //boolean flag, if vertex is the primary vertex of the event + - float chi2 //chi-squared of the vertex fit + - float probability //probability of the vertex fit + - plcio::FloatThree position //position of the vertex. + - std::array<float,6> covMatrix //covariance matrix of the position (stored as lower triangle matrix, i.e. cov(xx),cov(y,x),cov(z,x),cov(y,y),... ) + - int algorithmType //type code for the algorithm that has been used to create the vertex - check/set the collection parameters AlgorithmName and AlgorithmType. + VectorMembers: + - float parameters //additional parameters related to this vertex - check/set the collection parameter "VertexParameterNames" for the parameters meaning. + OneToOneRelations: + - plcio::ReconstructedParticle associatedParticle //reconstructed particle associated to this vertex. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------- LCIO TrackerData + plcio::TrackerData: + Description: "LCIO tracker data" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //first detector specific (geometrical) cell id + - int cellID1 //second detector specific (geometrical) cell id + - float time //Returns a time measurement associated with the adc values, e.g. the t0 of the spectrum for the TPC. Subdetector dependent. + VectorMembers: + - float chargeValues //corrected (calibrated) FADC spectrum. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + #------ LCIO TrackerRawData + plcio::TrackerRawData: + Description: "LCIO tracker raw data" + Author : "F.Gaede, DESY" + Members: + - int cellID0 //detector specific (geometrical) cell id. + - int cellID1 //second detector specific (geometrical) cell id.Optional, check/set flag(LCIO::TRAWBIT_ID1)==1. + - int time //time measurement associated with the adc values, e.g. the t0 of the spectrum for the TPC. Subdetector dependent. + VectorMembers: + - short ADCValues //FADC spectrum. + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + + + #------ LCIO TrackerPulse + plcio::TrackerPulse: + Description : "LCIO tracker pulse" + Author : "F. Gaede, DESY" + Members: + - int cellID0 //detector specific (geometrical) cell id. + - int cellID1 //second detector specific (geometrical) cell id. Optional, check/set flag(LCIO::TRAWBIT_ID1)==1. + - int quality //quality bit flag of the pulse - check/set collection parameters TrackerPulseQualityNames and TrackerPulseQualityNamesValues. + - float time //time of the pulse - arbitrary units. + - float charge //integrated charge of the pulse - arbitrary units. + - plcio::FloatThree covMatrix //covariance matrix of the charge (c) and time (t) measurements. Stored as lower triangle matrix, i.e. cov(c,c) , cov(t,c) , cov(t,t) + OneToOneRelations: + - plcio::TrackerData trackerData //TrackerData that has been used to create the pulse can be stored with the pulse + ExtraCode : + declaration: " + /// operator to allow pointer like calling of members a la LCIO \n + {name}* operator->() { return ({name}*) this ; } \n + " + + -- GitLab