-
Notifications
You must be signed in to change notification settings - Fork 0
/
AliAlgDetTOF.cxx
77 lines (71 loc) · 2.8 KB
/
AliAlgDetTOF.cxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
* Contributors are mentioned in the code where appropriate. *
* *
* Permission to use, copy, modify and distribute this software and its *
* documentation strictly for non-commercial purposes is hereby granted *
* without fee, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission notice *
* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
#include "AliAlgDetTOF.h"
#include "AliAlgVol.h"
#include "AliAlgSensTOF.h"
#include "AliAlgSteer.h"
#include "AliGeomManager.h"
#include "AliTOFGeometry.h"
#include "AliESDtrack.h"
#include <TGeoManager.h>
ClassImp(AliAlgDetTOF);
//____________________________________________
AliAlgDetTOF::AliAlgDetTOF(const char* title)
{
// default c-tor
SetNameTitle(AliAlgSteer::GetDetNameByDetID(AliAlgSteer::kTOF),title);
SetDetID(AliAlgSteer::kTOF);
}
//____________________________________________
AliAlgDetTOF::~AliAlgDetTOF()
{
// d-tor
}
//____________________________________________
void AliAlgDetTOF::DefineVolumes()
{
// define TOF volumes
//
const int kNSect = 18, kNStrips = AliTOFGeometry::NStripA()+2*AliTOFGeometry::NStripB()+2*AliTOFGeometry::NStripC();
int labDet = GetDetLabel();
AliAlgSensTOF *strip=0;
//
// AddVolume( volTOF = new AliAlgVol("TOF") ); // no main volume, why?
AliAlgVol *sect[kNSect] = {0};
//
for (int isc=0;isc<kNSect;isc++) {
int iid = labDet + (1+isc)*100;
AddVolume(sect[isc] = new AliAlgVol(Form("TOF/sm%02d",isc),iid));
}
//
int cnt = 0;
for (int isc=0;isc<kNSect;isc++) {
for (int istr=1;istr<=kNStrips;istr++) { // strip
int iid = labDet + (1+isc)*100 + (1+istr);
int vid = AliGeomManager::LayerToVolUID(AliGeomManager::kTOF, cnt++);
const char *symname = Form("TOF/sm%02d/strip%02d",isc,istr);
if (!gGeoManager->GetAlignableEntry(symname)) continue;
AddVolume( strip=new AliAlgSensTOF(symname,vid,iid,isc) );
strip->SetParent(sect[isc]);
} // strip
} // layer
//
}
//____________________________________________
Bool_t AliAlgDetTOF::AcceptTrack(const AliESDtrack* trc,Int_t trtype) const
{
// test if detector had seed this track
return CheckFlags(trc,trtype);
}