1 #ifndef StiTpcDetectorBuilder_H
2 #define StiTpcDetectorBuilder_H
6 #include "Sti/StiDetectorBuilder.h"
7 #include "StDetectorDbMaker/StiHitErrorCalculator.h"
19 void useVMCGeometry();
21 static std::pair<int, int> toStiLayer(
const int tpc_sector,
const int tpc_padrow);
35 friend std::ostream& operator<< (std::ostream& os,
const StiLayer& stiLayer);
38 static void buildStiLayerMap();
40 static std::set<StiLayer> sStiLayers;
50 enum TpcHalf { West = 0, East = 1 };
52 StiLayer(
int tpc_sector,
int tpc_padrow,
bool split =
false) :
54 sti_sector_id(tpc_sector <= 12 ? tpc_sector-1 : 12 - (tpc_sector-12)%12 - 1),
57 TpcHalf tpc_half_id = (tpc_sector <= 12 ? West : East);
63 int sti_sector_id = -1;
64 mutable int sti_padrow_id = -1;
68 void update_tpc_id(
int tpc_sector,
int tpc_padrow)
const {
69 TpcHalf tpc_half_id = (tpc_sector <= 12 ? West : East);
75 int tpc_sector(TpcHalf half)
const {
return tpc_sector_id[half]; }
76 bool represents_only(TpcHalf half)
const {
return (half == East &&
tpc_sector_id[West] < 0) ||
78 double radial_distance()
const;
80 bool operator< (
const StiLayer& other)
const;
int tpc_sector_id[2]
East and/or West if available.
int tpc_padrow_id[2]
East and/or West if available.
virtual void buildDetectors(StMaker &s)
bool sti_split_in_half
Split Sti layer in East and West halves.
bool _active_iTpc
Option to use iTPC hits in Sti tracking. By default hits are not used in Sti tracking.