CbmRoot
CbmLitMCTrackCreator.cxx
Go to the documentation of this file.
1 
6 #include "CbmLitMCTrackCreator.h"
7 #include "CbmDigiManager.h"
8 #include "CbmHit.h"
9 #include "CbmMCDataArray.h"
10 #include "CbmMCDataManager.h"
11 #include "CbmMCTrack.h"
12 #include "CbmMatchRecoToMC.h"
13 #include "CbmMuchGeoScheme.h"
14 #include "CbmMuchPoint.h"
15 #include "CbmMvdPoint.h"
16 #include "CbmRichGeoManager.h"
17 #include "CbmRichHit.h"
18 #include "CbmRichHitProducer.h"
19 #include "CbmRichPoint.h"
21 #include "CbmStsPoint.h"
22 #include "CbmStsSetup.h"
23 #include "CbmTrdAddress.h"
24 #include "CbmTrdPoint.h"
25 #include "FairGeoNode.h"
26 #include "FairMCPoint.h"
27 #include "FairRootManager.h"
28 
29 #include "TClonesArray.h"
30 #include "TDatabasePDG.h"
31 #include "TGeoManager.h"
32 
33 #include <map> // for map
34 #include <utility> // for make_pair, pair
35 
36 using std::make_pair;
37 using std::map;
38 using std::pair;
39 
41  : fMCTracks(NULL)
42  , fMvdPoints(NULL)
43  , fStsPoints(NULL)
44  , fTrdPoints(NULL)
45  , fMuchPoints(NULL)
46  , fTofPoints(NULL)
47  , fRichPoints(NULL)
48  , fRichHits(NULL)
49  , fDigiMan(nullptr)
50  , fLitMCTracks()
51  , fMvdStationsMap()
52  , fStsStationsMap()
53  , fTrdStationsMap()
54  , fMuchStationsMap()
55  , fTauFit(NULL) {
57 
59 }
60 
62 
64  static CbmLitMCTrackCreator instance;
65  return &instance;
66 }
67 
68 void CbmLitMCTrackCreator::Create(Int_t eventNum) {
69  FillStationMaps(eventNum);
70 
71 
72  fLitMCTracks.clear();
73 
75 
77 
79 
81 
83 
85 
86  AddRichHits(eventNum);
87 
88  AddRingParameters(eventNum);
89 
90  std::map<std::pair<Int_t, Int_t>, CbmLitMCTrack>::iterator it;
91  int counter = 0;
92  for (it = fLitMCTracks.begin(); it != fLitMCTracks.end(); it++) {
93  it->second.CalculateNofConsecutivePoints();
94  }
95 
96  // std::cout << "CbmLitMCTrackCreator: nof MC tracks=" << fLitMCTracks.size() << std::endl;
97  // for (it = fLitMCTracks.begin(); it != fLitMCTracks.end(); it++){
98  // std::cout << (*it).first.first << "-" << (*it).first.second<< " => " << (*it).second.ToString();
99  // }
100 }
101 
102 
104  FairRootManager* ioman = FairRootManager::Instance();
105 
106  CbmMCDataManager* mcManager =
107  (CbmMCDataManager*) ioman->GetObject("MCDataManager");
108 
109  if (0 == mcManager)
110  LOG(fatal)
111  << "CbmMatchRecoToMC::ReadAndCreateDataBranches() NULL MCDataManager.";
112 
113  fMCTracks = mcManager->InitBranch("MCTrack");
114  fMvdPoints = mcManager->InitBranch("MvdPoint");
115  fStsPoints = mcManager->InitBranch("StsPoint");
116  fTrdPoints = mcManager->InitBranch("TrdPoint");
117  fMuchPoints = mcManager->InitBranch("MuchPoint");
118  fTofPoints = mcManager->InitBranch("TofPoint");
119  fRichPoints = mcManager->InitBranch("RichPoint");
120  fRichHits = (TClonesArray*) ioman->GetObject("RichHit");
122  fDigiMan->Init();
123 }
124 
126  CbmMCDataArray* array,
127  Int_t iEvent) {
128  if (array == NULL) return;
129 
130  Int_t nofPoints = array->Size(0, iEvent);
131 
132  for (Int_t iPoint = 0; iPoint < nofPoints; ++iPoint) {
133  FairMCPoint* fairPoint =
134  static_cast<FairMCPoint*>(array->Get(0, iEvent, iPoint));
135  if (NULL == fairPoint) continue;
136  CbmLitMCPoint litPoint;
137  Int_t stationId = -1;
138  if (detId == ECbmModuleId::kMvd) {
139  stationId = fMvdStationsMap[make_pair(iEvent, iPoint)];
141  static_cast<CbmMvdPoint*>(fairPoint), &litPoint);
142  } else if (detId == ECbmModuleId::kSts) {
143  stationId = fStsStationsMap[make_pair(iEvent, iPoint)];
145  static_cast<CbmStsPoint*>(fairPoint), &litPoint);
146  } else if (detId == ECbmModuleId::kTrd) {
147  stationId = fTrdStationsMap[make_pair(iEvent, iPoint)];
149  static_cast<CbmTrdPoint*>(fairPoint), &litPoint);
150  } else if (detId == ECbmModuleId::kMuch) {
151  stationId = fMuchStationsMap[make_pair(iEvent, iPoint)];
153  static_cast<CbmMuchPoint*>(fairPoint), &litPoint);
154  } else if (detId == ECbmModuleId::kTof) {
155  stationId = 0;
156  FairMCPointCoordinatesAndMomentumToLitMCPoint(fairPoint, &litPoint);
157  } else if (detId == ECbmModuleId::kRich) {
158  stationId = 0;
159  FairMCPointCoordinatesAndMomentumToLitMCPoint(fairPoint, &litPoint);
160  }
161  if (stationId < 0) continue;
162  FairMCPointToLitMCPoint(fairPoint, &litPoint, iEvent, iPoint, stationId);
163  if (detId != ECbmModuleId::kRich) {
164  fLitMCTracks[make_pair(iEvent, fairPoint->GetTrackID())].AddPoint(
165  detId, litPoint);
166  } else {
167  const CbmMCTrack* mcTrack = static_cast<const CbmMCTrack*>(
168  fMCTracks->Get(0, iEvent, fairPoint->GetTrackID()));
169  fLitMCTracks[make_pair(iEvent, mcTrack->GetMotherId())].AddPoint(
170  detId, litPoint);
171  }
172  }
173 }
174 
176  if (NULL == fRichHits) return;
177  map<pair<Int_t, Int_t>, Int_t> nofHitsInRing;
178  Int_t nofRichHits = fRichHits->GetEntriesFast();
179  for (Int_t iHit = 0; iHit < nofRichHits; iHit++) {
180  const CbmRichHit* hit = static_cast<const CbmRichHit*>(fRichHits->At(iHit));
181  if (NULL == hit) continue;
182  vector<pair<Int_t, Int_t>> motherIds =
184  fDigiMan, hit, fRichPoints, fMCTracks, iEvent);
185  for (Int_t i = 0; i < motherIds.size(); i++) {
186  nofHitsInRing[motherIds[i]]++;
187  }
188  }
189 
190  map<pair<Int_t, Int_t>, Int_t>::const_iterator it;
191  for (it = nofHitsInRing.begin(); it != nofHitsInRing.end(); it++) {
192  fLitMCTracks[it->first].SetNofRichHits(it->second);
193  }
194 }
195 
197  if (NULL == fRichPoints || NULL == fMCTracks) return;
198  map<pair<Int_t, Int_t>, CbmRichRingLight> mapRings;
199 
200  int nofRichPoints = fRichPoints->Size(0, iEvent);
201 
202  for (int iPoint = 0; iPoint < nofRichPoints; iPoint++) {
203  CbmRichPoint* richPoint =
204  (CbmRichPoint*) fRichPoints->Get(0, iEvent, iPoint);
205  if (NULL == richPoint) continue;
206  Int_t trackId = richPoint->GetTrackID();
207  if (trackId < 0) continue;
208  CbmMCTrack* mcTrackRich = (CbmMCTrack*) fMCTracks->Get(0, iEvent, trackId);
209  if (NULL == mcTrackRich) continue;
210  int motherIdRich = mcTrackRich->GetMotherId();
211  if (motherIdRich == -1) continue;
212  TVector3 posPoint;
213  richPoint->Position(posPoint);
214  TVector3 detPoint;
215 
216  CbmRichGeoManager::GetInstance().RotatePoint(&posPoint, &detPoint);
217  CbmRichHitLight hit(detPoint.X(), detPoint.Y());
218  mapRings[make_pair(iEvent, motherIdRich)].AddHit(hit);
219  }
220 
221 
222  map<pair<Int_t, Int_t>, CbmRichRingLight>::const_iterator it;
223  int i = 0;
224  for (it = mapRings.begin(); it != mapRings.end(); it++) {
225  CbmRichRingLight ring(it->second);
226  fTauFit->DoFit(
227  &ring); //fLitMCTracks[it->first].SetNofRichHits(it->second);
228  fLitMCTracks[it->first].SetRingAaxis(ring.GetAaxis());
229  fLitMCTracks[it->first].SetRingBaxis(ring.GetBaxis());
230  fLitMCTracks[it->first].SetRingCenterX(ring.GetCenterX());
231  fLitMCTracks[it->first].SetRingCenterY(ring.GetCenterY());
232  //std::cout << ++i << " " << ring.GetAaxis() << " " << ring.GetBaxis() << std::endl;
233  }
234 }
235 
236 void CbmLitMCTrackCreator::FairMCPointToLitMCPoint(const FairMCPoint* fairPoint,
237  CbmLitMCPoint* litPoint,
238  Int_t eventId,
239  Int_t refId,
240  Int_t stationId) {
241  if (fairPoint == NULL || litPoint == NULL) return;
242  litPoint->SetRefId(refId);
243  litPoint->SetStationId(stationId);
244  const CbmMCTrack* mcTrack = static_cast<const CbmMCTrack*>(
245  fMCTracks->Get(0, eventId, fairPoint->GetTrackID()));
246  if (mcTrack == NULL) return;
247  TParticlePDG* pdgParticle =
248  TDatabasePDG::Instance()->GetParticle(mcTrack->GetPdgCode());
249  double charge = (pdgParticle != NULL) ? pdgParticle->Charge() : 0.;
250  Double_t q = (charge > 0) ? 1. : -1.;
251  litPoint->SetQ(q);
252 }
253 
255  const FairMCPoint* fairPoint,
256  CbmLitMCPoint* litPoint) {
257  if (fairPoint == NULL || litPoint == NULL) return;
258  litPoint->SetXIn(fairPoint->GetX());
259  litPoint->SetYIn(fairPoint->GetY());
260  litPoint->SetZIn(fairPoint->GetZ());
261  litPoint->SetPxIn(fairPoint->GetPx());
262  litPoint->SetPyIn(fairPoint->GetPy());
263  litPoint->SetPzIn(fairPoint->GetPz());
264  litPoint->SetXOut(fairPoint->GetX());
265  litPoint->SetYOut(fairPoint->GetY());
266  litPoint->SetZOut(fairPoint->GetZ());
267  litPoint->SetPxOut(fairPoint->GetPx());
268  litPoint->SetPyOut(fairPoint->GetPy());
269  litPoint->SetPzOut(fairPoint->GetPz());
270 }
271 
273  const CbmMvdPoint* mvdPoint,
274  CbmLitMCPoint* litPoint) {
275  if (mvdPoint == NULL || litPoint == NULL) return;
276  litPoint->SetXIn(mvdPoint->GetX());
277  litPoint->SetYIn(mvdPoint->GetY());
278  litPoint->SetZIn(mvdPoint->GetZ());
279  litPoint->SetPxIn(mvdPoint->GetPx());
280  litPoint->SetPyIn(mvdPoint->GetPy());
281  litPoint->SetPzIn(mvdPoint->GetPz());
282  litPoint->SetXOut(mvdPoint->GetXOut());
283  litPoint->SetYOut(mvdPoint->GetYOut());
284  litPoint->SetZOut(mvdPoint->GetZOut());
285  litPoint->SetPxOut(mvdPoint->GetPxOut());
286  litPoint->SetPyOut(mvdPoint->GetPyOut());
287  litPoint->SetPzOut(mvdPoint->GetPzOut());
288 }
289 
291  const CbmStsPoint* stsPoint,
292  CbmLitMCPoint* litPoint) {
293  if (stsPoint == NULL || litPoint == NULL) return;
294  litPoint->SetXIn(stsPoint->GetXIn());
295  litPoint->SetYIn(stsPoint->GetYIn());
296  litPoint->SetZIn(stsPoint->GetZIn());
297  litPoint->SetPxIn(stsPoint->GetPx());
298  litPoint->SetPyIn(stsPoint->GetPy());
299  litPoint->SetPzIn(stsPoint->GetPz());
300  litPoint->SetXOut(stsPoint->GetXOut());
301  litPoint->SetYOut(stsPoint->GetYOut());
302  litPoint->SetZOut(stsPoint->GetZOut());
303  litPoint->SetPxOut(stsPoint->GetPxOut());
304  litPoint->SetPyOut(stsPoint->GetPyOut());
305  litPoint->SetPzOut(stsPoint->GetPzOut());
306 }
307 
309  const CbmTrdPoint* trdPoint,
310  CbmLitMCPoint* litPoint) {
311  if (trdPoint == NULL || litPoint == NULL) return;
312  litPoint->SetXIn(trdPoint->GetXIn());
313  litPoint->SetYIn(trdPoint->GetYIn());
314  litPoint->SetZIn(trdPoint->GetZIn());
315  litPoint->SetPxIn(trdPoint->GetPxIn());
316  litPoint->SetPyIn(trdPoint->GetPyIn());
317  litPoint->SetPzIn(trdPoint->GetPzIn());
318  litPoint->SetXOut(trdPoint->GetXOut());
319  litPoint->SetYOut(trdPoint->GetYOut());
320  litPoint->SetZOut(trdPoint->GetZOut());
321  litPoint->SetPxOut(trdPoint->GetPxOut());
322  litPoint->SetPyOut(trdPoint->GetPyOut());
323  litPoint->SetPzOut(trdPoint->GetPzOut());
324 }
325 
327  const CbmMuchPoint* muchPoint,
328  CbmLitMCPoint* litPoint) {
329  if (muchPoint == NULL || litPoint == NULL) return;
330  litPoint->SetXIn(muchPoint->GetXIn());
331  litPoint->SetYIn(muchPoint->GetYIn());
332  litPoint->SetZIn(muchPoint->GetZIn());
333  litPoint->SetPxIn(muchPoint->GetPx());
334  litPoint->SetPyIn(muchPoint->GetPy());
335  litPoint->SetPzIn(muchPoint->GetPz());
336  litPoint->SetXOut(muchPoint->GetXOut());
337  litPoint->SetYOut(muchPoint->GetYOut());
338  litPoint->SetZOut(muchPoint->GetZOut());
339  litPoint->SetPxOut(muchPoint->GetPxOut());
340  litPoint->SetPyOut(muchPoint->GetPyOut());
341  litPoint->SetPzOut(muchPoint->GetPzOut());
342 }
343 
345  fMvdStationsMap.clear();
346  fStsStationsMap.clear();
347  fTrdStationsMap.clear();
348  fMuchStationsMap.clear();
349 
350 
351  // MVD
352  if (NULL != fMvdPoints) {
353  Int_t nofMvdPoints = fMvdPoints->Size(0, iEvent);
354  for (Int_t iPoint = 0; iPoint < nofMvdPoints; iPoint++) {
355  CbmMvdPoint* point =
356  static_cast<CbmMvdPoint*>(fMvdPoints->Get(0, iEvent, iPoint));
357  if (NULL == point) continue;
358  fMvdStationsMap[make_pair(iEvent, iPoint)] = point->GetStationNr() - 1;
359  }
360  }
361  // end MVD
362 
363  // STS
364  if (NULL != fStsPoints) {
365  Int_t nofStsPoints = fStsPoints->Size(0, iEvent);
366  for (Int_t iPoint = 0; iPoint < nofStsPoints; iPoint++) {
367  const CbmStsPoint* point =
368  static_cast<const CbmStsPoint*>(fStsPoints->Get(0, iEvent, iPoint));
369  if (NULL == point) continue;
370  UInt_t address = point->GetDetectorID();
371  Int_t stationId = CbmStsSetup::Instance()->GetStationNumber(address);
372  fStsStationsMap[make_pair(iEvent, iPoint)] = stationId;
373  }
374  }
375  // end STS
376 
377  // MUCH
378  if (NULL != fMuchPoints) {
379  Int_t nofMuchPoints = fMuchPoints->Size(0, iEvent);
380  for (Int_t iPoint = 0; iPoint < nofMuchPoints; iPoint++) {
381  const FairMCPoint* point =
382  static_cast<const FairMCPoint*>(fMuchPoints->Get(0, iEvent, iPoint));
383  if (NULL == point) continue;
384  Int_t stationId =
385  100 * CbmMuchGeoScheme::GetStationIndex(point->GetDetectorID())
386  + 10 * CbmMuchGeoScheme::GetLayerIndex(point->GetDetectorID())
387  + CbmMuchGeoScheme::GetLayerSideIndex(point->GetDetectorID());
388  // Int_t stationId = CbmMuchGeoScheme::Instance()->GetLayerSideNr(point->GetDetectorID());
389  fMuchStationsMap[make_pair(iEvent, iPoint)] = stationId;
390  }
391  }
392  // end MUCH
393 
394  // TRD
395  if (NULL != fTrdPoints) {
396  Int_t nofTrdPoints = fTrdPoints->Size(0, iEvent);
397  for (Int_t iPoint = 0; iPoint < nofTrdPoints; iPoint++) {
398  const FairMCPoint* point =
399  static_cast<const FairMCPoint*>(fTrdPoints->Get(0, iEvent, iPoint));
400  if (NULL == point) continue;
401  //Int_t stationId = 10 * CbmTrdAddress::GetStationNr(point->GetDetectorID()) + CbmTrdAddress::GetLayerNr(point->GetDetectorID());
402  Int_t stationId = CbmTrdAddress::GetLayerId(point->GetDetectorID());
403  fTrdStationsMap[make_pair(iEvent, iPoint)] = stationId;
404  }
405  }
406  // end TRD
407 }
CbmRichPoint.h
CbmLitMCPoint::SetYOut
void SetYOut(Double_t y)
Definition: CbmLitMCPoint.h:109
CbmMuchPoint::GetXOut
Double_t GetXOut() const
Definition: CbmMuchPoint.h:73
CbmMCTrack::GetMotherId
Int_t GetMotherId() const
Definition: CbmMCTrack.h:71
CbmMCDataManager::GetObject
CbmMCDataObject * GetObject(const char *name)
Definition: CbmMCDataManager.cxx:137
CbmTrdPoint::GetPxIn
Double_t GetPxIn() const
Definition: CbmTrdPoint.h:72
CbmMCDataManager.h
CbmTrdPoint::GetYOut
Double_t GetYOut() const
Definition: CbmTrdPoint.h:67
CbmLitMCTrackCreator::fTrdPoints
CbmMCDataArray * fTrdPoints
Definition: CbmLitMCTrackCreator.h:147
CbmMuchPoint
Definition: CbmMuchPoint.h:21
CbmTrdPoint::GetZIn
Double_t GetZIn() const
Definition: CbmTrdPoint.h:65
CbmLitMCTrackCreator::~CbmLitMCTrackCreator
virtual ~CbmLitMCTrackCreator()
Destructor.
Definition: CbmLitMCTrackCreator.cxx:61
CbmLitMCPoint::SetXIn
void SetXIn(Double_t x)
Definition: CbmLitMCPoint.h:102
CbmLitMCTrackCreator::fDigiMan
CbmDigiManager * fDigiMan
Definition: CbmLitMCTrackCreator.h:152
CbmTrdAddress.h
Helper class to convert unique channel ID back and forth.
CbmStsPoint::GetXOut
Double_t GetXOut() const
Definition: CbmStsPoint.h:84
CbmRichGeoManager::GetInstance
static CbmRichGeoManager & GetInstance()
Definition: CbmRichGeoManager.h:29
CbmMvdPoint::GetStationNr
Int_t GetStationNr() const
Definition: CbmMvdPoint.h:78
CbmRichRingFitterEllipseTau
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Definition: CbmRichRingFitterEllipseTau.h:35
CbmStsSetup.h
CbmRichRingFitterEllipseTau.h
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
CbmLitMCTrackCreator::AddRichHits
void AddRichHits(Int_t iEvent)
Calculate and set number of RICH hits for MC track.
Definition: CbmLitMCTrackCreator.cxx:175
CbmLitMCTrackCreator::fRichPoints
CbmMCDataArray * fRichPoints
Definition: CbmLitMCTrackCreator.h:150
CbmMCDataArray::Size
Int_t Size(Int_t fileNumber, Int_t eventNumber)
Definition: CbmMCDataArray.cxx:133
CbmLitMCTrackCreator::TrdPointCoordinatesAndMomentumToLitMCPoint
void TrdPointCoordinatesAndMomentumToLitMCPoint(const CbmTrdPoint *trdPoint, CbmLitMCPoint *litPoint)
Definition: CbmLitMCTrackCreator.cxx:308
CbmDigiManager::Init
InitStatus Init()
Initialisation.
Definition: CbmDigiManager.cxx:71
CbmLitMCPoint::SetZIn
void SetZIn(Double_t z)
Definition: CbmLitMCPoint.h:104
CbmLitMCTrackCreator
Creates CbmLitMCTrack objects.
Definition: CbmLitMCTrackCreator.h:35
CbmMuchPoint::GetPyOut
Double_t GetPyOut() const
Definition: CbmMuchPoint.h:77
CbmLitMCPoint::SetYIn
void SetYIn(Double_t y)
Definition: CbmLitMCPoint.h:103
CbmMCTrack::GetPdgCode
Int_t GetPdgCode() const
Definition: CbmMCTrack.h:70
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
CbmLitMCTrackCreator::Instance
static CbmLitMCTrackCreator * Instance()
Singleton instance.
Definition: CbmLitMCTrackCreator.cxx:63
CbmMCDataManager::InitBranch
CbmMCDataArray * InitBranch(const char *name)
Definition: CbmMCDataManager.cxx:106
CbmLitMCPoint::SetXOut
void SetXOut(Double_t x)
Definition: CbmLitMCPoint.h:108
CbmLitMCPoint::SetPzOut
void SetPzOut(Double_t pz)
Definition: CbmLitMCPoint.h:113
CbmStsSetup::Instance
static CbmStsSetup * Instance()
Definition: CbmStsSetup.cxx:293
CbmStsPoint::GetPxOut
Double_t GetPxOut() const
Definition: CbmStsPoint.h:87
CbmMCDataArray.h
CbmTrdPoint::GetXOut
Double_t GetXOut() const
Definition: CbmTrdPoint.h:66
CbmLitMCPoint::SetQ
void SetQ(Double_t q)
Definition: CbmLitMCPoint.h:114
ECbmModuleId::kMvd
@ kMvd
Micro-Vertex Detector.
ECbmModuleId
ECbmModuleId
Definition: CbmDefs.h:33
CbmTrdAddress::GetLayerId
static UInt_t GetLayerId(UInt_t address)
Return layer ID from address.
Definition: CbmTrdAddress.h:69
CbmStsPoint::GetZOut
Double_t GetZOut() const
Definition: CbmStsPoint.h:86
CbmMCDataArray
Access to a MC data branch for time-based analysis.
Definition: CbmMCDataArray.h:35
CbmLitMCTrackCreator::fStsPoints
CbmMCDataArray * fStsPoints
Definition: CbmLitMCTrackCreator.h:146
CbmTrdPoint::GetPyIn
Double_t GetPyIn() const
Definition: CbmTrdPoint.h:73
ECbmModuleId::kTof
@ kTof
Time-of-flight Detector.
CbmStsPoint
Definition: CbmStsPoint.h:27
CbmLitMCTrackCreator::fTrdStationsMap
std::map< std::pair< int, int >, int > fTrdStationsMap
Definition: CbmLitMCTrackCreator.h:161
CbmMatchRecoToMC.h
FairTask for matching RECO data to MC.
CbmLitMCTrackCreator::StsPointCoordinatesAndMomentumToLitMCPoint
void StsPointCoordinatesAndMomentumToLitMCPoint(const CbmStsPoint *stsPoint, CbmLitMCPoint *litPoint)
Definition: CbmLitMCTrackCreator.cxx:290
CbmLitMCPoint::SetPxOut
void SetPxOut(Double_t px)
Definition: CbmLitMCPoint.h:111
CbmLitMCTrackCreator::fTauFit
CbmRichRingFitterEllipseTau * fTauFit
Definition: CbmLitMCTrackCreator.h:164
CbmDigiManager::Instance
static CbmDigiManager * Instance()
Static instance.
Definition: CbmDigiManager.h:93
CbmLitMCPoint::SetRefId
void SetRefId(Int_t refId)
Definition: CbmLitMCPoint.h:115
CbmRichGeoManager.h
CbmMuchPoint::GetYOut
Double_t GetYOut() const
Definition: CbmMuchPoint.h:74
CbmMuchGeoScheme::GetLayerSideIndex
static Int_t GetLayerSideIndex(Int_t address)
Definition: CbmMuchGeoScheme.h:74
CbmLitMCTrackCreator::fTofPoints
CbmMCDataArray * fTofPoints
Definition: CbmLitMCTrackCreator.h:149
CbmLitMCPoint::SetZOut
void SetZOut(Double_t z)
Definition: CbmLitMCPoint.h:110
CbmLitMCTrackCreator::MuchPointCoordinatesAndMomentumToLitMCPoint
void MuchPointCoordinatesAndMomentumToLitMCPoint(const CbmMuchPoint *muchPoint, CbmLitMCPoint *litPoint)
Definition: CbmLitMCTrackCreator.cxx:326
CbmMvdPoint.h
CbmHit.h
CbmMuchGeoScheme::GetLayerIndex
static Int_t GetLayerIndex(Int_t address)
Definition: CbmMuchGeoScheme.h:71
CbmLitMCTrackCreator::AddRingParameters
void AddRingParameters(Int_t iEvent)
Fit Rich MC points using ellipse fitter and fill ellipse parameters.
Definition: CbmLitMCTrackCreator.cxx:196
CbmRichRingLight::GetAaxis
float GetAaxis() const
Definition: CbmRichRingLight.h:163
CbmMuchGeoScheme::GetStationIndex
static Int_t GetStationIndex(Int_t address)
Definition: CbmMuchGeoScheme.h:68
CbmMvdPoint
Definition: CbmMvdPoint.h:28
CbmLitMCPoint
Monte-Carlo point.
Definition: CbmLitMCPoint.h:21
CbmMuchPoint.h
CbmStsPoint::GetPyOut
Double_t GetPyOut() const
Definition: CbmStsPoint.h:88
CbmMuchPoint::GetZOut
Double_t GetZOut() const
Definition: CbmMuchPoint.h:75
CbmStsSetup::GetStationNumber
Int_t GetStationNumber(Int_t address)
Definition: CbmStsSetup.cxx:187
CbmRichRingLight::GetCenterY
float GetCenterY() const
Definition: CbmRichRingLight.h:160
CbmMCDataArray::Get
TObject * Get(const CbmLink *lnk)
Definition: CbmMCDataArray.h:47
CbmStsPoint::GetYOut
Double_t GetYOut() const
Definition: CbmStsPoint.h:85
CbmMatchRecoToMC::GetMcTrackMotherIdsForRichHit
static std::vector< std::pair< Int_t, Int_t > > GetMcTrackMotherIdsForRichHit(CbmDigiManager *digiMan, const CbmRichHit *hit, CbmMCDataArray *richPoints, CbmMCDataArray *mcTracks, Int_t eventNumber)
Return McTrack Ids for RICH hit C++11 efficient way to return vector.
Definition: CbmMatchRecoToMC.cxx:821
CbmMvdPoint::GetPxOut
Double_t GetPxOut() const
Definition: CbmMvdPoint.h:73
CbmRichGeoManager::RotatePoint
void RotatePoint(TVector3 *inPos, TVector3 *outPos, Bool_t noTilting=false)
Definition: CbmRichGeoManager.cxx:407
CbmTrdPoint::GetPyOut
Double_t GetPyOut() const
Definition: CbmTrdPoint.h:70
ECbmModuleId::kRich
@ kRich
Ring-Imaging Cherenkov Detector.
CbmLitMCTrackCreator.h
Creates CbmLitMCTrack objects.
CbmMuchPoint::GetZIn
Double_t GetZIn() const
Definition: CbmMuchPoint.h:72
CbmStsPoint::GetXIn
Double_t GetXIn() const
Definition: CbmStsPoint.h:81
CbmRichRingLight::GetBaxis
float GetBaxis() const
Definition: CbmRichRingLight.h:164
CbmTrdPoint::GetZOut
Double_t GetZOut() const
Definition: CbmTrdPoint.h:68
CbmMuchPoint::GetPzOut
Double_t GetPzOut() const
Definition: CbmMuchPoint.h:78
fDigiMan
CbmDigiManager * fDigiMan
Definition: CbmTofAnaTestbeam.cxx:88
CbmRichHitLight
Definition: CbmRichRingLight.h:14
CbmMvdPoint::GetZOut
Double_t GetZOut() const
Definition: CbmMvdPoint.h:72
CbmStsPoint::GetYIn
Double_t GetYIn() const
Definition: CbmStsPoint.h:82
CbmLitMCPoint::SetPxIn
void SetPxIn(Double_t px)
Definition: CbmLitMCPoint.h:105
CbmLitMCTrackCreator::MvdPointCoordinatesAndMomentumToLitMCPoint
void MvdPointCoordinatesAndMomentumToLitMCPoint(const CbmMvdPoint *mvdPoint, CbmLitMCPoint *litPoint)
Definition: CbmLitMCTrackCreator.cxx:272
CbmTrdPoint::GetPxOut
Double_t GetPxOut() const
Definition: CbmTrdPoint.h:69
CbmTrdPoint
Definition: CbmTrdPoint.h:23
CbmLitMCPoint::SetPyIn
void SetPyIn(Double_t py)
Definition: CbmLitMCPoint.h:106
CbmMCDataManager
Task class creating and managing CbmMCDataArray objects.
Definition: CbmMCDataManager.h:27
ECbmModuleId::kTrd
@ kTrd
Transition Radiation Detector.
CbmTrdPoint::GetPzOut
Double_t GetPzOut() const
Definition: CbmTrdPoint.h:71
CbmLitMCTrackCreator::AddPoints
void AddPoints(ECbmModuleId detId, CbmMCDataArray *array, Int_t iEvent)
Add MC points from a certain detector.
Definition: CbmLitMCTrackCreator.cxx:125
CbmStsPoint::GetPzOut
Double_t GetPzOut() const
Definition: CbmStsPoint.h:89
counter
int counter
Definition: CbmMvdSensorDigiToHitTask.cxx:72
CbmLitMCTrack
Monte-Carlo track.
Definition: CbmLitMCTrack.h:30
CbmLitMCTrackCreator::fMuchStationsMap
std::map< std::pair< int, int >, int > fMuchStationsMap
Definition: CbmLitMCTrackCreator.h:162
CbmMvdPoint::GetPyOut
Double_t GetPyOut() const
Definition: CbmMvdPoint.h:74
CbmStsPoint.h
CbmMCTrack.h
CbmTrdPoint::GetXIn
Double_t GetXIn() const
Definition: CbmTrdPoint.h:63
CbmDigiManager.h
CbmMCTrack
Definition: CbmMCTrack.h:34
CbmMuchPoint::GetYIn
Double_t GetYIn() const
Definition: CbmMuchPoint.h:71
CbmMvdPoint::GetXOut
Double_t GetXOut() const
Definition: CbmMvdPoint.h:70
CbmRichHitProducer.h
Class for producing RICH hits directly from MCPoints.
CbmStsPoint::GetZIn
Double_t GetZIn() const
Definition: CbmStsPoint.h:83
CbmLitMCTrackCreator::fMvdStationsMap
std::map< std::pair< int, int >, int > fMvdStationsMap
Definition: CbmLitMCTrackCreator.h:159
CbmLitMCTrackCreator::FairMCPointToLitMCPoint
void FairMCPointToLitMCPoint(const FairMCPoint *fairPoint, CbmLitMCPoint *litPoint, int eventId, int refId, int stationId)
Convert FairMCPoint to CbmLitMCPoint.
Definition: CbmLitMCTrackCreator.cxx:236
CbmLitMCTrackCreator::ReadDataBranches
void ReadDataBranches()
Read data branches.
Definition: CbmLitMCTrackCreator.cxx:103
CbmMvdPoint::GetPzOut
Double_t GetPzOut() const
Definition: CbmMvdPoint.h:75
CbmTrdPoint.h
CbmMvdPoint::GetYOut
Double_t GetYOut() const
Definition: CbmMvdPoint.h:71
CbmMuchPoint::GetXIn
Double_t GetXIn() const
Definition: CbmMuchPoint.h:70
CbmLitMCTrackCreator::fMCTracks
CbmMCDataArray * fMCTracks
Definition: CbmLitMCTrackCreator.h:144
ECbmModuleId::kMuch
@ kMuch
Muon detection system.
CbmLitMCPoint::SetPzIn
void SetPzIn(Double_t pz)
Definition: CbmLitMCPoint.h:107
CbmLitMCTrackCreator::fLitMCTracks
std::map< std::pair< int, int >, CbmLitMCTrack > fLitMCTracks
Definition: CbmLitMCTrackCreator.h:156
CbmRichHit.h
CbmMuchGeoScheme.h
CbmRichRingLight::GetCenterX
float GetCenterX() const
Definition: CbmRichRingLight.h:159
CbmRichRingFitterEllipseTau::DoFit
virtual void DoFit(CbmRichRingLight *ring)
Inherited from CbmRichRingFitterBase.
Definition: CbmRichRingFitterEllipseTau.cxx:94
CbmMuchPoint::GetPxOut
Double_t GetPxOut() const
Definition: CbmMuchPoint.h:76
CbmRichPoint
Definition: CbmRichPoint.h:24
CbmLitMCTrackCreator::fMvdPoints
CbmMCDataArray * fMvdPoints
Definition: CbmLitMCTrackCreator.h:145
CbmLitMCTrackCreator::fRichHits
TClonesArray * fRichHits
Definition: CbmLitMCTrackCreator.h:151
CbmLitMCTrackCreator::fMuchPoints
CbmMCDataArray * fMuchPoints
Definition: CbmLitMCTrackCreator.h:148
ECbmModuleId::kSts
@ kSts
Silicon Tracking System.
CbmTrdPoint::GetYIn
Double_t GetYIn() const
Definition: CbmTrdPoint.h:64
CbmLitMCTrackCreator::Create
void Create(Int_t eventNum)
Creates array of CbmLitMCTracks for current event.
Definition: CbmLitMCTrackCreator.cxx:68
CbmRichRingLight
Definition: CbmRichRingLight.h:39
CbmLitMCTrackCreator::CbmLitMCTrackCreator
CbmLitMCTrackCreator()
Constructor.
Definition: CbmLitMCTrackCreator.cxx:40
CbmTrdPoint::GetPzIn
Double_t GetPzIn() const
Definition: CbmTrdPoint.h:74
CbmLitMCTrackCreator::FillStationMaps
void FillStationMaps(Int_t iEvent)
Fill maps for MC points to station id.
Definition: CbmLitMCTrackCreator.cxx:344
CbmRichHit
Definition: CbmRichHit.h:19
CbmLitMCTrackCreator::fStsStationsMap
std::map< std::pair< int, int >, int > fStsStationsMap
Definition: CbmLitMCTrackCreator.h:160
CbmLitMCTrackCreator::FairMCPointCoordinatesAndMomentumToLitMCPoint
void FairMCPointCoordinatesAndMomentumToLitMCPoint(const FairMCPoint *fairPoint, CbmLitMCPoint *litPoint)
Definition: CbmLitMCTrackCreator.cxx:254
CbmLitMCPoint::SetPyOut
void SetPyOut(Double_t py)
Definition: CbmLitMCPoint.h:112
CbmLitMCPoint::SetStationId
void SetStationId(Int_t stationId)
Definition: CbmLitMCPoint.h:116