11#ifndef CBMLITMCTRACK_H_
12#define CBMLITMCTRACK_H_
26using std::stringstream;
83 fPoints[detId].push_back(point);
106 return fPoints.find(detId)->second[index];
223 return fStationPoints.find(detId)->second.find(stationId)->second[index];
236 return fStationPoints.find(detId)->second.find(stationId)->second.size();
244 map<ECbmModuleId, vector<CbmLitMCPoint>>
fPoints;
266 if (numbers.size() == 0)
return 0;
267 if (numbers.size() == 1)
return 1;
269 vector<Int_t> a(numbers.begin(), numbers.end());
273 for (UInt_t i = 0; i < a.size() - 1; i++) {
274 if (a[i] == (a[i + 1] - 1)) {
278 maxCnt = std::max(cnt, maxCnt);
282 maxCnt = std::max(cnt, maxCnt);
@ kMvd
Micro-Vertex Detector.
@ kTrd
Transition Radiation Detector.
@ kTof
Time-of-flight Detector.
@ kSts
Silicon Tracking System.
@ kMuch
Muon detection system.
@ kRich
Ring-Imaging Cherenkov Detector.
Int_t GetStationId() const
map< ECbmModuleId, Int_t > fMaxConsecutivePoints
Double_t GetRingCenterY() const
Return Y coordinate of the ellipse center.
void CalculateNofConsecutivePoints()
Calculates number of consecutive MC points for specified detector id. Currently works only for STS.
Double_t GetRingAaxis() const
Return major semi-axis of the ellipse.
virtual string ToString() const
Returns string representation of the class.
map< ECbmModuleId, set< Int_t > > fStationIds
UInt_t GetNofPointsInDifferentStations(ECbmModuleId detId) const
Return number of MC points in different stations for specified detector id.
Double_t GetRingCenterX() const
Return X coordinate of the ellipse center.
void SetRingCenterY(Double_t yc)
Set Y coordinate of the ellipse center.
UInt_t GetNofPointsAtStation(ECbmModuleId detId, Int_t stationId) const
Return number of MC points for specified detector ID and station ID.
virtual ~CbmLitMCTrack()
Destructor.
void SetRingCenterX(Double_t xc)
Set X coordinate of the ellipse center.
Int_t GetNofConsecutivePoints(ECbmModuleId detId) const
Return number of consecutive MC points for specified detector id. Currently works only for STS.
const CbmLitMCPoint & GetPointAtStation(ECbmModuleId detId, Int_t stationId, Int_t index) const
Return MC point for specified detector id and point index.
UInt_t GetNofPoints(ECbmModuleId detId) const
Return number of MC points for specified detector id.
map< ECbmModuleId, map< Int_t, vector< CbmLitMCPoint > > > fStationPoints
const CbmLitMCPoint & GetPoint(ECbmModuleId detId, Int_t index) const
Return MC point for specified detector id and point index.
void SetRingBaxis(Double_t b)
Set minor semi-axis of the ellipse.
Int_t GetNofRichHits() const
Return number of RICH hits in ring.
friend std::ostream & operator<<(std::ostream &strm, const CbmLitMCTrack &track)
Operator << for convenient output to ostream.
CbmLitMCTrack()
Constructor.
Int_t MaxConsecutiveNumbers(const set< Int_t > &numbers) const
void SetRingAaxis(Double_t a)
Set major semi-axis of the ellipse.
void SetNofRichHits(Int_t nofRichHits)
SetNumber of RICH hits in ring.
const vector< CbmLitMCPoint > & GetPoints(ECbmModuleId detId) const
Return vector of MC point for specified detector id.
void AddPoint(ECbmModuleId detId, const CbmLitMCPoint &point)
Add point to track.
map< ECbmModuleId, vector< CbmLitMCPoint > > fPoints
Double_t GetRingBaxis() const
Return minor semi-axis of the ellipse.
string PointsToString(ECbmModuleId detId, const string &detName) const