92 Bool_t addcl(
true), usevoltracks(
false), writebck(
false);
94 if (strstr(options,
"NOCL") ) addcl=
false;
95 if (strstr(options,
"TR") ) usevoltracks=
true;
96 if (strstr(options,
"BCK") ) writebck=
true;
100 Int_t nplates = dataset.N();
101 cout <<
"The dataset has " << nplates <<
" plates" << endl;
104 cout <<
"Open the plate n. " << pieceID << endl;
107 if(piece->
Nruns() != 1) { cout <<
"Raw data not found" << endl;
return 0; }
108 Float_t piece_z = piece->
GetLayer(0)->
Z() ;
109 Int_t piece_id = piece->
Plate() ;
110 Int_t piece_piece = atoi( piece->
MakeName()+3 );
111 cout <<
" plate id "<<piece_id <<
" " << piece_piece<<
" z: " << piece_z << endl;
112 cout <<
" - Number of couples: " <<
couples->GetEntries() << endl;
119 couples->SetBranchAddress(
"s." ,&
s );
127 Int_t retpiece_id, retpiece_piece;
128 TEventList* cplist =
GetCPListFromTracks(tracksfname, pieceID, cutstr_tr, &retpiece_id , &retpiece_piece ) ;
129 if (retpiece_id != piece_id || retpiece_piece != piece_piece )
131 cout <<
" ERROR: the piece ID or the piece number do not corresponds...." << endl;
134 cout <<
" - Number of couples (in volume tracks): " << cplist->GetN() ;
135 if (cutstr_tr[0]==
'1') cout<<endl;
else cout <<
" /\""<< cutstr_tr <<
"\"" << endl;
142 Int_t selcp =
couples->Draw(
">>dum", cut_cp);
143 cout <<
" - Number of selected couples: " << selcp;
144 if (cutstr_cp[0]!=
'1') cout <<
" /\""<< cutstr_cp <<
"\"";
145 if (usevoltracks) cout <<
" (belonging to volume tracks)";
146 if (cutstr_tr[0]==
'1') cout << endl;
else cout <<
" /\""<< cutstr_tr <<
"\"" << endl;
156 cout << run1->
GetFile()->GetName() << endl;
157 cout << dataset.GetPiece(pieceID)->GetNameCP() << endl;
174 cout<<
"Add clusters ";
if(addcl) cout<<
"enabled\n";
else cout<<
"disabled\n"; cout <<endl;
175 printf(
"Start Filling... ... %3d%%", 0) ;
184 for(Int_t i=0; i<nviews; i++)
186 if(i%100==0) printf(
"\b\b\b\b%3d%%",(
int)((
double)i/
double(nviews)*100.));
190 v1 = run1->
GetEntry(i,1,addcl,1,0,1);
194 sprintf(str,
"s1.eVid[0]==%d || s2.eVid[0]==%d",i,i);
198 TEventList *lst = (TEventList*)gDirectory->GetList()->FindObject(
"lst");
200 Long_t nlinked = lst->GetN();
208 for(
int j=0;j<nlinked;j++) {
209 couples->GetEntry(lst->GetEntry(j));
210 segp = side?
s1:
s2 ;
211 segID = segp->
Vid(1);
216 if(listlinked) listlinked->
Sort();
222 for(Int_t j=0;j<ntotal;j++) {
224 if ( nlinked && j == listlinked->
At(iLink)->
Value() ) {
225 if(iLink < nlinked-1) iLink++;
229 listselected->
Add(segID);
234 listselected = listlinked;
235 nselected = nlinked ;
239 totsegments += nselected;
259 for(Int_t j=0; j<nselected; j++) {
269 if(!clusters)
continue;
270 int ncl = clusters->GetLast()+1;
271 for(Int_t k=0; k<ncl; k++ ) {
279 printf(
"\b\b\b\b%3d%%\n",100);
280 cout <<
" - Number of selected segments: " << totsegments <<endl <<endl;
FILE * f
Definition: RecDispMC.C:150
Definition: EdbAffine.h:17
Float_t B2() const
Definition: EdbAffine.h:48
void Invert()
Definition: EdbAffine.cxx:103
Float_t A22() const
Definition: EdbAffine.h:46
Float_t A21() const
Definition: EdbAffine.h:45
Float_t A12() const
Definition: EdbAffine.h:44
Float_t B1() const
Definition: EdbAffine.h:47
Float_t A11() const
Definition: EdbAffine.h:43
Definition: EdbCluster.h:19
Definition: EdbDataSet.h:25
const char * GetRunFile(int i) const
Definition: EdbDataSet.cxx:188
int InitCouplesTree(const char *mode="READ")
Definition: EdbDataSet.cxx:1244
const char * GetNameCP() const
Definition: EdbDataSet.h:75
int Nruns() const
Definition: EdbDataSet.h:83
EdbLayer * GetLayer(int id)
Definition: EdbDataSet.h:86
int Plate() const
Definition: EdbDataSet.h:65
const char * MakeName()
Definition: EdbDataSet.cxx:195
Definition: EdbDataSet.h:143
Definition: EdbFrame.h:20
float GetZ() const
Definition: EdbFrame.h:42
int GetNcl() const
Definition: EdbFrame.h:43
int GetID() const
Definition: EdbFrame.h:41
EdbAffine2D * GetAffineXY()
Definition: EdbLayer.h:120
float Z() const
Definition: EdbLayer.h:78
TFile * GetFile()
Definition: EdbRun.h:148
void Close()
Definition: EdbRun.cxx:466
int GetEntries() const
Definition: EdbRun.h:135
EdbRunHeader * GetHeader() const
Definition: EdbRun.h:137
EdbView * GetEntry(int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0)
Definition: EdbRun.cxx:489
void AddView()
Definition: EdbRun.cxx:332
EdbView * GetView() const
Definition: EdbRun.h:109
Definition: EdbSegCouple.h:14
Definition: EdbSegment.h:61
TObjArray * GetElements() const
Definition: EdbSegment.h:115
Definition: EdbView.h:134
EdbViewHeader * GetHeader() const
Definition: EdbView.h:163
EdbSegment * AddSegment(float x, float y, float z, float tx, float ty, float dz=0, int side=0, int puls=0, int id=-1)
Definition: EdbView.h:231
Int_t GetNframesTop() const
Definition: EdbView.h:207
int AttachClustersToSegments()
Definition: EdbView.cxx:360
Int_t Nsegments() const
Definition: EdbView.h:216
Int_t GetNframes() const
Definition: EdbView.h:206
TClonesArray * GetFrames() const
Definition: EdbView.h:167
void AddFrame(int id, float z, int ncl=0, int npix=0)
Definition: EdbView.cxx:268
EdbSegment * GetSegment(int i) const
Definition: EdbView.h:219
EdbCluster * AddCluster(EdbCluster *c)
Definition: EdbView.h:225
void Clear()
Definition: EdbView.cxx:79
Definition: TIndexCell.h:19
Long_t Value() const
Definition: TIndexCell.h:79
Int_t GetEntriesFast() const
Definition: TIndexCell.h:82
TIndexCell const * At(Int_t narg, Int_t vind[]) const
Definition: TIndexCell.cpp:519
void Sort(Int_t upto=kMaxInt)
Definition: TIndexCell.cpp:539
TIndexCell * FindAdd(Long_t p1)
Definition: TIndexCell.cpp:575
Int_t Add(Int_t narg, Long_t varg[])
Definition: TIndexCell.cpp:602
TTree * couples
Definition: check_cp.C:50
EdbSegP * s2
Definition: tlg2pattern.C:31
EdbSegP * s
Definition: tlg2pattern.C:32
EdbSegCouple * cp
Definition: tlg2pattern.C:29
TEventList * GetCPListFromTracks(const char *fname, Int_t pid, const char *cutstr="1", Int_t *retpiece_id=0, Int_t *retpiece_piece=0)
Definition: tracks2edb.C:30