10#include "FairLogger.h"
43 cout <<
"-W- CbmStsSector: Do not use this constructor! " << endl;
49 :
TNamed(tempName.Data(),
"")
84 pair<Int_t, Int_t> a(iFStrip, iBStrip);
103 cout <<
" Sector Nr. ";
117 cout <<
"-W- CbmStsSector::GetSensorByNr: sensor " << sensorNr <<
" not found (sector " <<
GetSectorNr() <<
")."
145 cout <<
"-W- " <<
fName <<
"::AddSensor: Sensor number " << iSensor <<
" already existing for sector "
158 rotRel, lx, ly, d, dx, dy, stereoF, stereoB);
180 LOG(fatal) <<
"Sensor types do not match: " <<
fType <<
" vs " << iType;
182 LOG(fatal) <<
"Sensor rotation do not match";
184 LOG(fatal) <<
"Sensor dx do not match";
186 LOG(fatal) <<
"Sensor dy do not match";
188 LOG(fatal) <<
"Sensor stereoF do not match";
190 LOG(fatal) <<
"Sensor stereoB do not match";
192 LOG(fatal) <<
"Sensor sigmaX do not match";
195 LOG(fatal) <<
"Sensor sigmaY do not match";
197 LOG(fatal) <<
"Sensor sigmaXY do not match";
199 LOG(fatal) <<
"Sensor nofChanF do not match";
201 LOG(fatal) <<
"Sensor nofChanB do not match";
240 LOG(fatal) <<
"Sensor types do not match: " <<
fType <<
" vs " << iType;
242 LOG(fatal) <<
"Sensor rotation do not match";
244 LOG(fatal) <<
"Sensor dx do not match";
246 LOG(fatal) <<
"Sensor dy do not match";
248 LOG(fatal) <<
"Sensor stereoF do not match";
250 LOG(fatal) <<
"Sensor stereoB do not match";
252 LOG(fatal) <<
"Sensor sigmaX do not match";
255 LOG(fatal) <<
"Sensor sigmaY do not match";
257 LOG(fatal) <<
"Sensor sigmaXY do not match";
260 LOG(fatal) <<
"Sensor nofChanF do not match";
262 LOG(fatal) <<
"Sensor nofChanB do not match";
275 Double_t xPoint = xCross, yPoint = yCross;
281 Double_t xTemp = xPoint, yTemp = yPoint, zTemp = 0.;
283 Int_t tempDetId = -1;
284 Int_t returnDetId = -1;
290 tempDetId = sensor->
Intersect(iFStrip, iBStrip, xTemp, yTemp, zTemp);
299 if (zCross > 0.001) {
300 LOG(fatal) <<
"Software do not cope with two strips intersecting in different regions";
306 returnDetId = tempDetId;
327 Int_t tempDetId = -1;
328 Int_t returnDetId = -1;
340 LOG(fatal) <<
"Software do not cope with two strips intersecting in different regions";
345 returnDetId = tempDetId;
char * Form(const char *fmt,...)
std::map< std::pair< Int_t, Int_t >, Int_t > fTrueHits
Map from sensor number to index.
void AddSensor(CbmStsSensorDigiPar *sensorPar)
Int_t fNChannelsFront
Number of channels in front and back plane.
void Reset()
Clear the maps of fired strips.
Int_t GetSectorNr() const
std::map< Int_t, Int_t > fSensorMap
Int_t PointIndex(Int_t iFStrip, Int_t iBStrip)
The index of the MCPoint that has caused a combination of front and back strip to be fired.
Int_t fDetectorId
----------— Data members -----------------------—
CbmStsSensor * GetSensorByNr(Int_t sensorNr)
virtual ~CbmStsSector()
Destructor.
Int_t IntersectClusters(Double_t fChan, Double_t bChan, Double_t &xCross, Double_t &yCross, Double_t &zCross)
Int_t GetNChannels() const
CbmStsSector()
Default constructor.
Double_t fSigmaX
Errors of hit coordinates.
void Print()
Screen output.
std::set< Int_t > fBackActive
std::set< Int_t > fFrontActive
STL sets containing the active channels.
Int_t Intersect(Int_t iFStrip, Int_t iBStrip, Double_t &xCross, Double_t &yCross, Double_t &zCross)
CbmStsSensor * GetSensor(Int_t iSensor)
Int_t GetNSensors() const
Int_t GetSensorNr() const
Accessors.
Double_t GetRotation() const
Double_t GetStereoB() const
Double_t GetStereoF() const
Double_t GetStereoF() const
Double_t GetSigmaXY() const
Double_t GetSigmaY() const
Double_t GetRotation() const
Int_t GetNChannelsFront() const
Int_t IntersectClusters(Double_t fChan, Double_t bChan, Double_t &xCross, Double_t &yCross, Double_t &zCross)
Int_t GetNChannelsBack() const
Int_t Intersect(Int_t iFStrip, Int_t iBStrip, std::vector< Double_t > &xCross, std::vector< Double_t > &yCross)
Calculates the coordinates of the intersections of front strip i with back strip j in the global coor...
Double_t GetSigmaX() const
Double_t GetStereoB() const
Int_t GetSensorNr() const
constexpr Double_t RadToDeg()