148 if(!
ss) {
Log(1,
"EdbScanTracking::TrackSetBT",
"Error! set for %s do not found",
idset.
AsString());
return; }
150 int npl =
ss->eIDS.GetSize();
151 if(npl<2) {
Log(1,
"EdbScanTracking::TrackSetBT",
"Warning! npl<2 : %d stop tracking!",npl);
return; }
156 etra.
eCond.
SetSigma0( env.GetValue(
"fedra.track.Sigma0" ,
"50 50 0.005 0.005") );
160 etra.
SetRadLength( env.GetValue(
"fedra.track.RadX0" , 5810.) );
161 etra.
eDoUseMCS = env.GetValue(
"fedra.track.do_use_mcs" , 0 );
163 etra.
eDTmax = env.GetValue(
"fedra.track.DTmax" , 0.07 );
164 etra.
eDRmax = env.GetValue(
"fedra.track.DRmax" , 100. );
165 etra.
eDZGapMax = env.GetValue(
"fedra.track.DZGapMax" , 5000. );
166 etra.
eProbMin = env.GetValue(
"fedra.track.probmin" , 0.001 );
167 bool do_erase = env.GetValue(
"fedra.track.erase" ,
false );
168 const char *
cut = env.GetValue(
"fedra.readCPcut" ,
"1" );
169 bool do_shtag = env.GetValue(
"fedra.track.do_shtag" ,
false );
170 bool do_misalign = env.GetValue(
"fedra.track.do_misalign" , 0 );
171 int npass = env.GetValue(
"fedra.track.npass" , 1 );
172 float misalign_offset = env.GetValue(
"fedra.track.misalign_offset", 2000. );
173 bool do_local_corr = env.GetValue(
"fedra.track.do_local_corr" , 0 );
174 bool eDoRealign = env.GetValue(
"fedra.track.do_realign" , 0 );
175 bool do_comb = env.GetValue(
"fedra.track.do_comb" , 0 );
176 int nsegmin = env.GetValue(
"fedra.track.NsegMin" , 2 );
177 float momentum = env.GetValue(
"fedra.track.momentum" , 2. );
180 etra.
InitTrZMap( env.GetValue(
"fedra.track.TrZmap",
"2400 0 120000 2000 0 100000 30" ) );
185 int dx[9] = {0,0,1,1,1,0,-1,-1,-1};
186 int dy[9] = {0,1,1,0,-1,-1,-1,0,1};
187 for(
int i=0; i<60; i++) {
188 misalign[i].
ShiftX( dx[i%9] * misalign_offset );
189 misalign[i].
ShiftY( dy[i%9] * misalign_offset );
195 int all_volume_segments=0;
196 for(
int ipass=0; ipass<npass; ipass++) {
197 if(
gEDBDEBUGLEVEL>1) printf(
"\n\n*************** ipass=%d ************\n",ipass);
199 for(
int i=0; i<npl; i++) {
216 p.Transform(
plate->GetAffineXY() );
217 p.TransformShr(
plate->Shr() );
218 p.TransformA(
plate->GetAffineTXTY() );
219 p.SetSegmentsPlate(
id->ePlate);
223 p.Transform(&misalign[i]);
224 Log(2,
"EdbScanTracking::TrackSetBT",
"apply misalignment of %f",misalign_offset);
238 int ntr = etra.
Tracks().GetEntriesFast();
240 for(
int i=0; i<ntr; i++) {
249 int cnt_attached_segments=0;
250 TObjArray selectedTracks(ntr);
255 for(
int i=0; i<ntr; i++) {
260 t->SetSegmentsTrack();
262 selectedTracks.Add(
t);
263 cnt_attached_segments +=
t->N();
267 printf(
"\n segments all/attached: %d/%d tracks selected/bad = %d/%d \n",
268 all_volume_segments, cnt_attached_segments, selectedTracks.GetEntriesFast(), cnt_badtrk );
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
TTree * t
Definition: check_shower.C:4
TCut cut
Definition: check_shower.C:6
Definition: EdbAffine.h:17
void ShiftX(float d)
Definition: EdbAffine.h:64
void ShiftY(float d)
Definition: EdbAffine.h:65
static int MakeTracksTree(EdbPVRec *ali=0, const char *file="linked_tracks.root")
Definition: EdbDataSet.cxx:2511
char * AsString() const
Definition: EdbID.cxx:24
Definition: EdbBrick.h:13
void SetPulsRamp0(float p1, float p2)
Definition: EdbScanCond.h:74
void SetDegrad(float d)
Definition: EdbScanCond.h:71
void SetSigma0(float x, float y, float tx, float ty)
Definition: EdbScanCond.h:62
void SetPulsRamp04(float p1, float p2)
Definition: EdbScanCond.h:75
Definition: EdbScanTracking.h:27
void FillTrZMap()
Definition: EdbScanTracking.cxx:417
TObjArray & Tracks()
Definition: EdbScanTracking.h:91
EdbScanCond eCond
Definition: EdbScanTracking.h:50
void SetMomentum(float p)
Definition: EdbScanTracking.h:66
void SetSegmentsErrors()
Definition: EdbScanTracking.cxx:466
float eDZGapMax
Definition: EdbScanTracking.h:45
void ExtrapolateTracksToZ(float z, int nsegmin=0)
Definition: EdbScanTracking.cxx:390
void InitTrZMap(const char *str)
Definition: EdbScanTracking.cxx:431
int eDoUseMCS
Definition: EdbScanTracking.h:47
void AddPattern(EdbPattern &p)
Definition: EdbScanTracking.cxx:182
float eProbMin
Definition: EdbScanTracking.h:46
void FitTracks()
Definition: EdbScanTracking.cxx:484
void SetRadLength(float x0)
Definition: EdbScanTracking.h:67
float eDRmax
Definition: EdbScanTracking.h:44
float eDTmax
Definition: EdbScanTracking.h:43
void CombTracks(TObjArray &selected)
Definition: EdbScanTracking.cxx:500
int eCollisionsRate
Definition: EdbScanTracking.h:49
Definition: EdbPattern.h:118
EdbID idset
Definition: emrec.cpp:35
int nsegmin
Definition: check_vertex.C:23
float momentum
Definition: check_vertex.C:20
int GetPattern(EdbPattern &pat, EdbID id, int side)
Definition: tagtra.cpp:121