/[PAMELA software]/eventviewer/flight/src/FEVdetector.cpp
ViewVC logotype

Diff of /eventviewer/flight/src/FEVdetector.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by mocchiut, Thu Mar 15 14:02:33 2007 UTC revision 1.25 by mocchiut, Thu Nov 29 15:53:10 2007 UTC
# Line 83  FEVdetector::FEVdetector(TString filenam Line 83  FEVdetector::FEVdetector(TString filenam
83    thefigure = &figure;    thefigure = &figure;
84    checkctrlword();    checkctrlword();
85    var.selex = false;    var.selex = false;
86      var.showall = false;
87    
88      var.showsi = false;
89      var.shownd = false;
90      var.shows4 = false;
91      var.showorb = false;
92      var.showtof = false;
93      var.showtrg = false;
94      var.showtrk = false;
95      var.showcal = false;
96      var.showrun = false;
97      var.showac = false;
98  }  }
99    
100  void FEVdetector::checkctrlword(){  void FEVdetector::checkctrlword(){
# Line 92  void FEVdetector::checkctrlword(){ Line 104  void FEVdetector::checkctrlword(){
104    var.RUN = 1;    var.RUN = 1;
105    var.TRK = 0;    var.TRK = 0;
106    var.ORB = 1;    var.ORB = 1;
107    var.TRG = 0;    var.TRG = 1;
108    var.CALO = 0;    var.CALO = 0;
109      var.CALOT = 0;
110    var.S4 = 0;    var.S4 = 0;
111    var.ND = 0;    var.ND = 0;
112    var.INFOS = 0;    var.INFOS = 0;
# Line 133  void FEVdetector::SetDDEC(TString de){ Line 146  void FEVdetector::SetDDEC(TString de){
146  };  };
147    
148  void FEVdetector::GetWindow(){  void FEVdetector::GetWindow(){
   otr->GetEntry(maxevent);  
149    //    //
150      if ( level.file == 2 ){
151        //    printf("0qui\n");
152        L2->GetEntry(minevent);
153      } else {
154        otr->GetEntry(minevent);
155      }
156    if ( level.file < 2 ){    if ( level.file < 2 ){
157      ph = eh->GetPscuHeader();      ph = eh->GetPscuHeader();
158      lastevno = (int)ph->Counter;      firstevno = (int)ph->Counter;
159    } else {    } else {
160      if ( var.ORB ){      if ( var.ORB ){
161        lastevno = L2->GetOrbitalInfo()->pkt_num;        firstevno = L2->GetOrbitalInfo()->pkt_num;
162      } else {      } else {
163        lastevno = 0;        firstevno = 0;
164      };      };
165    };    };
166    otr->GetEntry(minevent);    //
167      if ( level.file == 2 ){
168        //    printf("1qui\n");
169        L2->GetEntry(maxevent);
170      } else {
171        otr->GetEntry(maxevent);
172      }
173      //
174    if ( level.file < 2 ){    if ( level.file < 2 ){
175      ph = eh->GetPscuHeader();      ph = eh->GetPscuHeader();
176      firstevno = (int)ph->Counter;      lastevno = (int)ph->Counter;
177    } else {    } else {
178      if ( var.ORB ){      if ( var.ORB ){
179        firstevno = L2->GetOrbitalInfo()->pkt_num;        lastevno = L2->GetOrbitalInfo()->pkt_num;
180      } else {      } else {
181        firstevno = 0;        lastevno = 0;
182      };      };
183    };    };
184      //
185  }  }
186    
187  void FEVdetector::ClearVariables(){  void FEVdetector::ClearVariables(){
# Line 180  void FEVdetector::ClearVariables(){ Line 206  void FEVdetector::ClearVariables(){
206  void FEVdetector::GetEntry(Int_t i){  void FEVdetector::GetEntry(Int_t i){
207    thisentry = i;      thisentry = i;  
208    if ( level.file == 2 ){    if ( level.file == 2 ){
209        L2->Clear();
210        //    printf("qui\n");
211      L2->GetEntry(i);      L2->GetEntry(i);
212      ShowInfo("RunInfo");      if ( var.showall ){
213      ShowInfo("SoftInfo");        ShowInfo("RunInfo");
214      ShowInfo("TrigLevel2");        ShowInfo("SoftInfo");
215      ShowInfo("OrbitalInfo");        ShowInfo("OrbitalInfo");
216      ShowInfo("ToFLevel2");        ShowInfo("TrigLevel2");
217      ShowInfo("TrkLevel2");        ShowInfo("ToFLevel2");
218      ShowInfo("AcLevel2");        ShowInfo("TrkLevel2");
219      ShowInfo("CaloLevel2");        ShowInfo("AcLevel2");
220      ShowInfo("CaloLevel1");        ShowInfo("CaloLevel2");
221      ShowInfo("S4Level2");        ShowInfo("CaloLevel1");
222      ShowInfo("NDLevel2");        ShowInfo("S4Level2");
223          ShowInfo("NDLevel2");
224        } else {
225          if ( var.showrun ) ShowInfo("RunInfo");
226          if ( var.showsi ) ShowInfo("SoftInfo");
227          if ( var.showorb ) ShowInfo("OrbitalInfo");
228          if ( var.showtrg ) ShowInfo("TrigLevel2");
229          if ( var.showtof ) ShowInfo("ToFLevel2");
230          if ( var.showtrk ) ShowInfo("TrkLevel2");
231          if ( var.showac ) ShowInfo("AcLevel2");
232          if ( var.showcal ) ShowInfo("CaloLevel2");
233          if ( var.showcal ) ShowInfo("CaloLevel1");
234          if ( var.shows4 ) ShowInfo("S4Level2");
235          if ( var.shownd ) ShowInfo("NDLevel2");
236        };
237    } else {    } else {
238      otr->GetEntry(i);      otr->GetEntry(i);
239        if ( var.showall ){
240          ShowInfo("Pscu");
241          ShowInfo("Trigger");
242          ShowInfo("Tof");
243          ShowInfo("Tracker");
244          ShowInfo("Anticounter");
245          ShowInfo("Calorimeter");
246          ShowInfo("S4");
247          ShowInfo("Neutron");
248        } else {
249          if ( var.showorb ) ShowInfo("Pscu");
250          if ( var.showtrg ) ShowInfo("Trigger");
251          if ( var.showtof ) ShowInfo("Tof");
252          if ( var.showtrk ) ShowInfo("Tracker");
253          if ( var.showac ) ShowInfo("Anticounter");
254          if ( var.showcal ) ShowInfo("Calorimeter");
255          if ( var.shows4 ) ShowInfo("S4");
256          if ( var.shownd ) ShowInfo("Neutron");
257        };
258    };    };
259  }  }
260    
# Line 323  void FEVdetector::ShowInfo(TString detec Line 384  void FEVdetector::ShowInfo(TString detec
384    //  TObjArray *leaf_array = 0;                    //  TObjArray *leaf_array = 0;                
385    //    //
386    if ( !strcmp(detector.Data(),"RunInfo") || !strcmp(detector.Data(),"SoftInfo") ){    if ( !strcmp(detector.Data(),"RunInfo") || !strcmp(detector.Data(),"SoftInfo") ){
387      if ( runtree ) b1 = runtree->FindBranch(detector.Data());      if ( L2->GetRunTree() ) b1 = L2->GetRunTree()->FindBranch(detector.Data());
388    } else {    } else {
389      b1 = otr->FindBranch(detector.Data());      b1 = otr->FindBranch(detector.Data());
390    };    };
# Line 356  void FEVdetector::ShowInfo(TString detec Line 417  void FEVdetector::ShowInfo(TString detec
417      Int_t len = (tb->GetInfo()->GetLengths())[tb->GetID()];      Int_t len = (tb->GetInfo()->GetLengths())[tb->GetID()];
418      Int_t length = min(len,dlen);      Int_t length = min(len,dlen);
419      //      //
420      //    printf("Branches : type is %i type is %i tb getname %s  slen %i slength %i\n",atype,type,tb->GetName(),len,length);      //        printf("Branches : type is %i type is %i tb getname %s  slen %i slength %i\n",atype,type,tb->GetName(),len,length);
421      switch (type){      switch (type){
422      case 0:      case 0:
423        //              //      
# Line 389  void FEVdetector::ShowInfo(TString detec Line 450  void FEVdetector::ShowInfo(TString detec
450        //        //
451        // Unsigned integer        // Unsigned integer
452        //        //
453        if ( atype == -7 || atype == 13 ){        if ( atype == -7 || atype == 13 || atype == -9 || atype == -8 || atype == 12 ){
454          while ( j < length ){          while ( j < length ){
455            if ( j < length -1 ){            if ( j < length -1 ){
456              sprintf(o,"%s %i ,",o,(UInt_t)tb->GetValue(j,0));              sprintf(o,"%s %u ,",o,(UInt_t)tb->GetValue(j,0));
457            } else {            } else {
458              sprintf(o,"%s %i",o,(UInt_t)tb->GetValue(j,0));              sprintf(o,"%s %u",o,(UInt_t)tb->GetValue(j,0));
459            };            };
460            j++;            j++;
461          };          };
# Line 416  void FEVdetector::ShowInfo(TString detec Line 477  void FEVdetector::ShowInfo(TString detec
477        // Strings        // Strings
478        //        //
479        if ( atype == 45 ){        if ( atype == 45 ){
480          //      TString *stringa = (TString*)(tb->GetValuePointer());            //      TObjArray *cl = (TObjArray*)(tb->GetInfo()->GetOffsets())[tb->GetID()];//tb->GetValuePointer();
481            //      TString *stringa = (TString*)(*cl)[0];  
482            //      TBranchElement *utb = (TBranchElement*)tb->GetBranchCount();
483            //      TString** stringa = (TString*)(&tb->GetValuePointer());
484            //TStreamerElement *tste = (TStreamerElement*)tb->GetInfo()->GetCurrentElement();
485    
486            //      char *ladd;
487            //      ladd = tb->GetValuePointer()
488            //      TString *stringa = (TString*)((tste->GetOffset()));
489            //      TString& mstr = *stringa;
490            //      printf(" la mia stringa %s \n",mstr.Data());
491            //      printf(" offset %i \n",(Int_t)utb->GetValue(0,0));
492          //      int pointer = (tb->GetInfo()->GetOffsets())[tb->GetID()];          //      int pointer = (tb->GetInfo()->GetOffsets())[tb->GetID()];
493          //      TString *stringa = (TString*)(tb->GetInfo()->GetOffsets())[tb->GetID()];          //      TString *stringa = (TString*)(tb->GetInfo()->GetOffsets())[tb->GetID()];
494  //      TString *stringa = (TString*)tb->GetAddress();  //      TString *stringa = (TString*)tb->GetAddress();
495  //      printf(" address 0x%X \n",tb->GetAddress());  //      printf(" address 0x%X \n",tb->GetAddress());
496  //      printf(" pointer 0x%X \n",tb->GetValuePointer());  //      printf(" pointer 0x%X \n",tb->GetValuePointer());
497  //      printf(" object  0x%X \n",tb->GetObject());  //      printf(" object  0x%X \n",tb->GetObject());
498  //      printf("stringa %s lung %i\n",stringa->Data(),stringa->Length());  //      printf("stringa %s lung %i\n",stringa.Data(),stringa.Length());
499          //      TLeaf *striglia = tb->FindLeaf(tb->GetName());          //      TLeaf *striglia = tb->FindLeaf(tb->GetName());
500  //      if ( striglia ){  //      if ( striglia ){
501  //        char *pointer = (char *)striglia->GetValuePointer();  //        char *pointer = (char *)striglia->GetValuePointer();
502  //        TString *pr= (TString*)pointer;  //        TString *pr= (TString*)pointer;
503  //        printf("ciao %s \n",pr->Data());  //        printf("ciao %s \n",pr->Data());
504  //      };  //      };
505          sprintf(o,"%s TString ",o);          sprintf(o,"%s TString - not implemented yet -",o);
506        };        };
507        //        //
508        // TArray        // TArray
# Line 530  void FEVdetector::ShowInfo(TString detec Line 602  void FEVdetector::ShowInfo(TString detec
602  //      };  //      };
603  //      sprintf(o,"%s\n",o);  //      sprintf(o,"%s\n",o);
604          //                //      
605          sprintf(o,"%s TArray ",o);          sprintf(o,"%s TArray - not implemented yet -",o);
606          //          //
607        };        };
608        //        //
# Line 588  void FEVdetector::ShowInfo(TString detec Line 660  void FEVdetector::ShowInfo(TString detec
660                //                //
661                // Integer                // Integer
662                //                //
663                if ( satype == -17 ){                if ( satype == -17 || satype == -9 ){
664                  //                  //
665                  setcolor(col,RESET, BLUE, WHITE);                  setcolor(col,RESET, BLUE, WHITE);
666                  setcolor(col2,RESET, BLACK, WHITE);                  setcolor(col2,RESET, BLACK, WHITE);
# Line 821  void FEVdetector::GetGeneralInfo(){ Line 893  void FEVdetector::GetGeneralInfo(){
893      trcs = (TString)trc.str().c_str();      trcs = (TString)trc.str().c_str();
894    } else {    } else {
895      headcold = headc;      headcold = headc;
896        if ( var.RUN ){
897          var.idrun = L2->GetRunInfo()->ID;
898          var.idroot = L2->GetRunInfo()->ID_ROOT_L0;
899          var.EVF = L2->GetRunInfo()->EV_FROM;
900        };
901      if ( var.ORB ){      if ( var.ORB ){
902        headc = L2->GetOrbitalInfo()->pkt_num;        headc = L2->GetOrbitalInfo()->pkt_num;
903        OBT = L2->GetOrbitalInfo()->OBT;        OBT = L2->GetOrbitalInfo()->OBT;
# Line 974  int FEVdetector::SelectEvent(){ Line 1051  int FEVdetector::SelectEvent(){
1051    //    //
1052  }  }
1053    
1054  TChain* FEVdetector::Load(TFile &mainfile){  TChain* FEVdetector::Load(TString file){
   //  
   file = &mainfile;  
1055    //    //
1056    L2 = new PamLevel2();    //  file = &mainfile;
1057    //    //
1058    if ( level.file == 2 ){    if ( level.file == 2 ){
1059      //      //
1060      printf(" %s \n",ddec.Data());      printf(" %s \n",ddec.Data());
1061      otr = L2->GetPamTree(gSystem->DirName(file->GetName()),file->GetName(),ddec.Data());      if ( !L2 ){
1062      runtree = L2->GetRunTree(gSystem->DirName(file->GetName()),file->GetName());        L2 = new PamLevel2("",file.Data(),ddec.Data());
1063          otr = L2->GetPamTree();
1064          printf(" l2 constructor\n");
1065          //      printf(" abst %u obt %u qtot %f \n",L2->GetOrbitalInfo()->absTime,L2->GetOrbitalInfo()->OBT,L2->GetCaloLevel2()->qtot);    
1066        } else {
1067          //
1068          printf(" l2 already exist \n");
1069          otr = L2->GetPamTree(gSystem->DirName(file.Data()),file.Data(),ddec.Data());
1070          L2->GetRunTree(gSystem->DirName(file.Data()),file.Data());
1071          //
1072        };
1073        //
1074      //      //
1075      if ( !otr ) return(0);      if ( !otr ) return(0);
1076      //      //
1077        //    otr->CanDeleteRefs(true);
1078        //    if ( runtree ) runtree->CanDeleteRefs(true);
1079        //
1080    } else {    } else {
1081      //      //
1082      // load calorimeter ADC2MIP conversion file      // load calorimeter ADC2MIP conversion file
# Line 1028  TChain* FEVdetector::Load(TFile &mainfil Line 1117  TChain* FEVdetector::Load(TFile &mainfil
1117    };    };
1118    //    //
1119    //    //
   trigger = new pamela::trigger::TriggerEvent();  
   eh = new pamela::EventHeader();  
   ph = new pamela::PscuHeader();  
   //  runinfo = new ItoRunInfo(file);  
   //  
   de = new pamela::calorimeter::CalorimeterEvent();  
   trk = new pamela::tracker::TrackerEvent();  
   ne = new pamela::neutron::NeutronEvent();  
   ace = new pamela::anticounter::AnticounterEvent();  
   s4 = new pamela::S4::S4Event();  
   tof = new pamela::tof::TofEvent();  
   //  
1120    // Load level0 file if the case    // Load level0 file if the case
1121    //    //
1122    if ( level.file == 0 || level.file == -1 ){    if ( level.file == 0 || level.file == -1 ){
1123        //
1124        trigger = new pamela::trigger::TriggerEvent();
1125        eh = new pamela::EventHeader();
1126        ph = new pamela::PscuHeader();
1127        de = new pamela::calorimeter::CalorimeterEvent();
1128        trk = new pamela::tracker::TrackerEvent();
1129        ne = new pamela::neutron::NeutronEvent();
1130        ace = new pamela::anticounter::AnticounterEvent();
1131        s4 = new pamela::S4::S4Event();
1132        tof = new pamela::tof::TofEvent();
1133        //
1134      otr = new TChain("Physics");      otr = new TChain("Physics");
1135      otr->Add(file->GetName(),-1);      otr->Add(file.Data(),-1);
1136      otr->SetBranchAddress("Trigger", &trigger);      otr->SetBranchAddress("Trigger", &trigger);
1137      otr->SetBranchAddress("Header", &eh);      otr->SetBranchAddress("Header", &eh);
1138    };    };
# Line 1360  void FEVdetector::DisplayEvent(){ Line 1448  void FEVdetector::DisplayEvent(){
1448        text->DrawLatex(var.xxvc+0.17*var.sfx,var.yxvc-0.08*var.sfy,"CAS1");        text->DrawLatex(var.xxvc+0.17*var.sfx,var.yxvc-0.08*var.sfy,"CAS1");
1449        text->DrawLatex(var.xyvc-0.192*var.sfx,var.yyvc-0.08*var.sfy,"CAS4");        text->DrawLatex(var.xyvc-0.192*var.sfx,var.yyvc-0.08*var.sfy,"CAS4");
1450        text->DrawLatex(var.xyvc+0.17*var.sfx,var.yyvc-0.08*var.sfy,"CAS3");        text->DrawLatex(var.xyvc+0.17*var.sfx,var.yyvc-0.08*var.sfy,"CAS3");
1451        text->DrawLatex(var.xxvc-0.192*var.sfx,var.yxvc+0.48*var.sfy,"CARD2");        text->DrawLatex(var.xxvc-0.222*var.sfx,var.yxvc+0.48*var.sfy,"CARD2");
1452        text->DrawLatex(var.xxvc+0.155*var.sfx,var.yxvc+0.48*var.sfy,"CARD3");        text->DrawLatex(var.xxvc+0.185*var.sfx,var.yxvc+0.48*var.sfy,"CARD3");
1453        text->DrawLatex(var.xyvc-0.170*var.sfx,var.yyvc+0.48*var.sfy,"CARD1");        text->DrawLatex(var.xyvc-0.190*var.sfx,var.yyvc+0.48*var.sfy,"CARD1");
1454        text->DrawLatex(var.xyvc+0.13*var.sfx,var.yyvc+0.48*var.sfy,"CARD4");        text->DrawLatex(var.xyvc+0.16*var.sfx,var.yyvc+0.48*var.sfy,"CARD4");
1455        text->DrawLatex(var.xxvc-0.192*var.sfx,var.yxvc+0.39*var.sfy,"CAT3");        text->DrawLatex(var.xxvc-0.192*var.sfx,var.yxvc+0.39*var.sfy,"CAT3");
1456        text->DrawLatex(var.xxvc+0.155*var.sfx,var.yxvc+0.39*var.sfy,"CAT4");        text->DrawLatex(var.xxvc+0.155*var.sfx,var.yxvc+0.39*var.sfy,"CAT4");
1457        text->DrawLatex(var.xyvc-0.170*var.sfx,var.yyvc+0.39*var.sfy,"CAT2");        text->DrawLatex(var.xyvc-0.170*var.sfx,var.yyvc+0.39*var.sfy,"CAT2");
# Line 1491  void FEVdetector::DisplayEvent(){ Line 1579  void FEVdetector::DisplayEvent(){
1579    //    //
1580    // print infos on terminal    // print infos on terminal
1581    //    //
1582      //  if ( !var.selex ){
1583    printf(" File: %s \n",var.thefilename.Data());            printf(" File: %s \n",var.thefilename.Data());        
1584    if ( !s4pulser && !calotrig ){    if ( !s4pulser && !calotrig ){
1585      printf(" Pkt_num: %i  - Progressive number: %i \n",(int)headc,thisentry+1);      printf(" Pkt_num: %i  - Progressive number: %i \n",(int)headc,thisentry+1);
# Line 1501  void FEVdetector::DisplayEvent(){ Line 1590  void FEVdetector::DisplayEvent(){
1590    if ( calotrig ){    if ( calotrig ){
1591      printf(" Pkt_num: %i  - Progressive number: %i   - CALO trigger -\n",(int)headc,thisentry+1);      printf(" Pkt_num: %i  - Progressive number: %i   - CALO trigger -\n",(int)headc,thisentry+1);
1592    };    };
1593    printf(" On Board Time: %i (delta %i) [ms]\n",OBT,DOBT);    printf(" On Board Time: %u (delta %i) [ms]\n",OBT,DOBT);
1594    const char *trc2 = trcs;    const char *trc2 = trcs;
1595    printf(" TRIGGER: %s \n",trc2);          printf(" TRIGGER: %s \n",trc2);      
1596    printf(" AC: CARD hit = %i  CAT hit = %i  CAS hit = %i \n",var.hcard,var.hcat,var.hcas);          printf(" AC: CARD hit = %i  CAT hit = %i  CAS hit = %i \n",var.hcard,var.hcat,var.hcas);      
# Line 1513  void FEVdetector::DisplayEvent(){ Line 1602  void FEVdetector::DisplayEvent(){
1602    printf(" CALO: NSTRIP = %i  QTOT = %i [MIP]\n",var.nstrip,var.qtot);      printf(" CALO: NSTRIP = %i  QTOT = %i [MIP]\n",var.nstrip,var.qtot);  
1603    printf(" S4: %.2f [MIP]   TOF: beta = %.2f \n",var.s4sig,var.beta[4]);            printf(" S4: %.2f [MIP]   TOF: beta = %.2f \n",var.s4sig,var.beta[4]);        
1604    printf(" ND: Trigger: neutrons = %i - Background: upper = %i lower = %i \n",var.trup,var.bkup,var.bkbo);          printf(" ND: Trigger: neutrons = %i - Background: upper = %i lower = %i \n",var.trup,var.bkup,var.bkbo);      
1605      //  };
1606    //    //
1607  }  }
1608    
# Line 1820  void FEVdetector::ShowPalette(){ Line 1910  void FEVdetector::ShowPalette(){
1910  void FEVdetector::ShowTOF(){  void FEVdetector::ShowTOF(){
1911    //    //
1912    //    //
   //  
1913    if ( !var.TOF ) return;    if ( !var.TOF ) return;
1914    //    //
1915    Int_t tt = 0;    Int_t tt = 0;
1916      Int_t rj = 0;
1917    //    //
1918    // force level0, i.e. show patterntrig variable!    // force level0, i.e. show patterntrig variable!
1919    //    //
# Line 2017  void FEVdetector::ShowTOF(){ Line 2107  void FEVdetector::ShowTOF(){
2107      Float_t s12p = 0.055;      Float_t s12p = 0.055;
2108      ocolo = 10;      ocolo = 10;
2109      TPolyLine *ftof12ya[6];      TPolyLine *ftof12ya[6];
2110        rj=6;
2111      for ( Int_t j=0; j<6; j++){      for ( Int_t j=0; j<6; j++){
2112          rj--;
2113        Float_t xc1[4]={ (s12p*j),       s12p*(j),               s12p*(j+1),     (s12p*j)};        Float_t xc1[4]={ (s12p*j),       s12p*(j),               s12p*(j+1),     (s12p*j)};
2114        Float_t yc1[4]={      -ws13,     0.,  0., -ws13};        Float_t yc1[4]={      -ws13,     0.,  0., -ws13};
2115        Float_t xc[4];            Float_t xc[4];    
# Line 2033  void FEVdetector::ShowTOF(){ Line 2125  void FEVdetector::ShowTOF(){
2125        } else {        } else {
2126          colo = 1;          colo = 1;
2127        };        };
2128        ColorMIP(ms12a[j],colo);        ColorMIP(ms12a[rj],colo);
2129        //        //
2130        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2131        if ( mt12[0][j] == 4095. ) colo = noadc;        if ( mt12[0][rj] == 4095. ) colo = noadc;
2132        //        //
2133        ftof12ya[j]->SetFillColor(colo);        ftof12ya[j]->SetFillColor(colo);
2134        ftof12ya[j]->SetLineWidth(1);        ftof12ya[j]->SetLineWidth(1);
# Line 2046  void FEVdetector::ShowTOF(){ Line 2138  void FEVdetector::ShowTOF(){
2138      // B      // B
2139      s12p = 0.055;      s12p = 0.055;
2140      TPolyLine *ftof12yb[6];      TPolyLine *ftof12yb[6];
2141        rj=6;
2142      for ( Int_t j=0; j<6; j++){      for ( Int_t j=0; j<6; j++){
2143          rj--;
2144        Float_t xc1[4]={ (s12p*j),       s12p*(j+1),               s12p*(j+1),     (s12p*j)};        Float_t xc1[4]={ (s12p*j),       s12p*(j+1),               s12p*(j+1),     (s12p*j)};
2145        Float_t yc1[4]={ -ws13,     -ws13,    0., -ws13};        Float_t yc1[4]={ -ws13,     -ws13,    0., -ws13};
2146        Float_t xc[4];            Float_t xc[4];    
# Line 2062  void FEVdetector::ShowTOF(){ Line 2156  void FEVdetector::ShowTOF(){
2156        } else {        } else {
2157          colo = 1;          colo = 1;
2158        };        };
2159        ColorMIP(ms12b[j],colo);        ColorMIP(ms12b[rj],colo);
2160        //        //
2161        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2162        if ( mt12[1][j] == 4095. ) colo = noadc;        if ( mt12[1][rj] == 4095. ) colo = noadc;
2163        //        //
2164        ftof12yb[j]->SetFillColor(colo);        ftof12yb[j]->SetFillColor(colo);
2165        ftof12yb[j]->SetLineWidth(1);        ftof12yb[j]->SetLineWidth(1);
# Line 2099  void FEVdetector::ShowTOF(){ Line 2193  void FEVdetector::ShowTOF(){
2193      Float_t s21p = 0.075;      Float_t s21p = 0.075;
2194      ocolo = 10;      ocolo = 10;
2195      TPolyLine *ftof21ya[2];      TPolyLine *ftof21ya[2];
2196        rj=2;
2197      for ( Int_t j=0; j<2; j++){      for ( Int_t j=0; j<2; j++){
2198          rj--;
2199        Float_t xc1[4]={ s21p*(j-1),       s21p*(j-1),               s21p*j,     s21p*(j-1)};        Float_t xc1[4]={ s21p*(j-1),       s21p*(j-1),               s21p*j,     s21p*(j-1)};
2200        Float_t yc1[4]={ 0.,                ws2,     ws2,    0.};        Float_t yc1[4]={ 0.,                ws2,     ws2,    0.};
2201        Float_t xc[4];            Float_t xc[4];    
# Line 2115  void FEVdetector::ShowTOF(){ Line 2211  void FEVdetector::ShowTOF(){
2211        } else {        } else {
2212          colo = 1;          colo = 1;
2213        };        };
2214        ColorMIP(ms21a[j],colo);        ColorMIP(ms21a[rj],colo);
2215        //        //
2216        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2217        if ( mt21[0][j] == 4095. ) colo = noadc;        if ( mt21[0][rj] == 4095. ) colo = noadc;
2218        //        //
2219        ftof21ya[j]->SetFillColor(colo);        ftof21ya[j]->SetFillColor(colo);
2220        ftof21ya[j]->SetLineWidth(1);        ftof21ya[j]->SetLineWidth(1);
# Line 2128  void FEVdetector::ShowTOF(){ Line 2224  void FEVdetector::ShowTOF(){
2224      // B      // B
2225      s21p = 0.075;      s21p = 0.075;
2226      TPolyLine *ftof21yb[2];      TPolyLine *ftof21yb[2];
2227        rj=2;
2228      for ( Int_t j=0; j<2; j++){      for ( Int_t j=0; j<2; j++){
2229          rj--;
2230        Float_t xc1[4]={ s21p*(j-1),       s21p*j,               s21p*j,     s21p*(j-1)};        Float_t xc1[4]={ s21p*(j-1),       s21p*j,               s21p*j,     s21p*(j-1)};
2231        Float_t yc1[4]={ 0.,         0.,                ws2,         0.};        Float_t yc1[4]={ 0.,         0.,                ws2,         0.};
2232        Float_t xc[4];            Float_t xc[4];    
# Line 2144  void FEVdetector::ShowTOF(){ Line 2242  void FEVdetector::ShowTOF(){
2242        } else {        } else {
2243          colo = 1;          colo = 1;
2244        };        };
2245        ColorMIP(ms21b[j],colo);        ColorMIP(ms21b[rj],colo);
2246        //        //
2247        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2248        if ( mt21[1][j] == 4095. ) colo = noadc;        if ( mt21[1][rj] == 4095. ) colo = noadc;
2249        //        //
2250        ftof21yb[j]->SetFillColor(colo);        ftof21yb[j]->SetFillColor(colo);
2251        ftof21yb[j]->SetLineWidth(1);        ftof21yb[j]->SetLineWidth(1);
# Line 2262  void FEVdetector::ShowTOF(){ Line 2360  void FEVdetector::ShowTOF(){
2360      Float_t s31p = 0.060;      Float_t s31p = 0.060;
2361      ocolo = 10;      ocolo = 10;
2362      TPolyLine *ftof31xa[3];      TPolyLine *ftof31xa[3];
2363        rj=3;
2364      for ( Int_t j=0; j<3; j++){      for ( Int_t j=0; j<3; j++){
2365          rj--;
2366        Float_t xc1[4]={ (s31p*j),       (s31p*j),               s31p*(j+1),       (s31p*j)};        Float_t xc1[4]={ (s31p*j),       (s31p*j),               s31p*(j+1),       (s31p*j)};
2367        Float_t yc1[4]={ 0.,                       ws13,     ws13,    0.};        Float_t yc1[4]={ 0.,                       ws13,     ws13,    0.};
2368        Float_t xc[4];            Float_t xc[4];    
# Line 2278  void FEVdetector::ShowTOF(){ Line 2378  void FEVdetector::ShowTOF(){
2378        } else {        } else {
2379          colo = 1;          colo = 1;
2380        };        };
2381        ColorMIP(ms31a[j],colo);        ColorMIP(ms31a[rj],colo);
2382        //        //
2383        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2384        if ( mt31[0][j] == 4095. ) colo = noadc;        if ( mt31[0][rj] == 4095. ) colo = noadc;
2385        //        //
2386        ftof31xa[j]->SetFillColor(colo);        ftof31xa[j]->SetFillColor(colo);
2387        ftof31xa[j]->SetLineWidth(1);        ftof31xa[j]->SetLineWidth(1);
# Line 2291  void FEVdetector::ShowTOF(){ Line 2391  void FEVdetector::ShowTOF(){
2391      // B      // B
2392      s31p = 0.060;      s31p = 0.060;
2393      TPolyLine *ftof31xb[3];      TPolyLine *ftof31xb[3];
2394        rj=3;
2395      for ( Int_t j=0; j<3; j++){      for ( Int_t j=0; j<3; j++){
2396          rj--;
2397        Float_t xc1[4]={ (s31p*j),       s31p*(j+1),               s31p*(j+1),     (s31p*j)};        Float_t xc1[4]={ (s31p*j),       s31p*(j+1),               s31p*(j+1),     (s31p*j)};
2398        Float_t yc1[4]={ 0.,                        0.,     ws13,    0.};        Float_t yc1[4]={ 0.,                        0.,     ws13,    0.};
2399        Float_t xc[4];            Float_t xc[4];    
# Line 2307  void FEVdetector::ShowTOF(){ Line 2409  void FEVdetector::ShowTOF(){
2409        } else {        } else {
2410          colo = 1;          colo = 1;
2411        };        };
2412        ColorMIP(ms31b[j],colo);        ColorMIP(ms31b[rj],colo);
2413        //        //
2414        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2415        if ( mt31[1][j] == 4095. ) colo = noadc;        if ( mt31[1][rj] == 4095. ) colo = noadc;
2416        //        //
2417        ftof31xb[j]->SetFillColor(colo);        ftof31xb[j]->SetFillColor(colo);
2418        ftof31xb[j]->SetLineWidth(1);        ftof31xb[j]->SetLineWidth(1);
# Line 2342  void FEVdetector::ShowTOF(){ Line 2444  void FEVdetector::ShowTOF(){
2444      Float_t s32p = 0.050;      Float_t s32p = 0.050;
2445      ocolo = 10;      ocolo = 10;
2446      TPolyLine *ftof32ya[3];      TPolyLine *ftof32ya[3];
2447        rj=3;
2448      for ( Int_t j=0; j<3; j++){      for ( Int_t j=0; j<3; j++){
2449          rj--;
2450        Float_t xc1[4]={ (s32p*j),       (s32p*j),               s32p*(j+1),     (s32p*j)};        Float_t xc1[4]={ (s32p*j),       (s32p*j),               s32p*(j+1),     (s32p*j)};
2451        Float_t yc1[4]={     -ws13,     0.,    0., -ws13};        Float_t yc1[4]={     -ws13,     0.,    0., -ws13};
2452        Float_t xc[4];            Float_t xc[4];    
# Line 2358  void FEVdetector::ShowTOF(){ Line 2462  void FEVdetector::ShowTOF(){
2462        } else {        } else {
2463          colo = 1;          colo = 1;
2464        };        };
2465        ColorMIP(ms32a[j],colo);        ColorMIP(ms32a[rj],colo);
2466        //        //
2467        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2468        if ( mt32[0][j] == 4095. ) colo = noadc;        if ( mt32[0][rj] == 4095. ) colo = noadc;
2469        //        //
2470        ftof32ya[j]->SetFillColor(colo);        ftof32ya[j]->SetFillColor(colo);
2471        ftof32ya[j]->SetLineWidth(1);        ftof32ya[j]->SetLineWidth(1);
# Line 2370  void FEVdetector::ShowTOF(){ Line 2474  void FEVdetector::ShowTOF(){
2474      };      };
2475      s32p = 0.050;      s32p = 0.050;
2476      TPolyLine *ftof32yb[3];      TPolyLine *ftof32yb[3];
2477        rj=3;
2478      for ( Int_t j=0; j<3; j++){      for ( Int_t j=0; j<3; j++){
2479          rj--;
2480        Float_t xc1[4]={ (s32p*j),       s32p*(j+1),               s32p*(j+1),     (s32p*j)};        Float_t xc1[4]={ (s32p*j),       s32p*(j+1),               s32p*(j+1),     (s32p*j)};
2481        Float_t yc1[4]={ -ws13,   -ws13,    0., -ws13};        Float_t yc1[4]={ -ws13,   -ws13,    0., -ws13};
2482        Float_t xc[4];            Float_t xc[4];    
# Line 2386  void FEVdetector::ShowTOF(){ Line 2492  void FEVdetector::ShowTOF(){
2492        } else {        } else {
2493          colo = 1;          colo = 1;
2494        };        };
2495        ColorMIP(ms32b[j],colo);        ColorMIP(ms32b[rj],colo);
2496        //        //
2497        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
2498        if ( mt32[1][j] == 4095. ) colo = noadc;        if ( mt32[1][rj] == 4095. ) colo = noadc;
2499        //        //
2500        ftof32yb[j]->SetFillColor(colo);        ftof32yb[j]->SetFillColor(colo);
2501        ftof32yb[j]->SetLineWidth(1);        ftof32yb[j]->SetLineWidth(1);
# Line 2656  void FEVdetector::ShowTOF(){ Line 2762  void FEVdetector::ShowTOF(){
2762          //          //
2763          if ( numtr >= repuntil-1 ) repeat = false;          if ( numtr >= repuntil-1 ) repeat = false;
2764          //          //
2765          ptt = L2->GetToFLevel2()->GetToFTrkVar(numtr);          //      printf(" numtr is %i \n",numtr);
2766            ptt = L2->GetToFLevel2()->GetToFTrkVar(numtr);  
2767          //ptrack = L2->GetTrack(numtr);          //ptrack = L2->GetTrack(numtr);
2768          //ptt = ptrack->GetToFTrack();          //ptt = ptrack->GetToFTrack();
2769        };        };
# Line 2832  void FEVdetector::ShowTOF(){ Line 2939  void FEVdetector::ShowTOF(){
2939      ftof11y->Draw();      ftof11y->Draw();
2940      TPolyLine *sftof11[8];      TPolyLine *sftof11[8];
2941      tt = 1;      tt = 1;
2942      if ( level.file == -1 ) tt = 8;      rj=1;
2943        if ( level.file == -1 ){
2944          tt = 8;
2945          rj = 8;
2946        };
2947      for ( Int_t j=0; j<tt; j++){      for ( Int_t j=0; j<tt; j++){
2948        if ( (mt11[0][j]<4095. || mt11[1][j]<4095.)){        rj--;
2949          if ( (mt11[0][rj]<4095. || mt11[1][rj]<4095.)){
2950          if ( ocolo == 10 ) ocolo = noadc;          if ( ocolo == 10 ) ocolo = noadc;
2951          Float_t lowp = (xp11[j]-E11[j])/100.;          Float_t lowp = -(xp11[rj]+E11[rj])/100.;
2952          Float_t higp = (xp11[j]+E11[j])/100.;          Float_t higp = -(xp11[rj]-E11[rj])/100.;
2953          if ( lowp < -0.164 ) lowp = -0.164;          if ( lowp < -0.164 ) lowp = -0.164;
2954          if ( higp > 0.164 ) higp = 0.164;          if ( higp > 0.164 ) higp = 0.164;
2955          if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp11[j] != 0.))){          if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp11[rj] != 0.))){
2956            Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};            Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};
2957            Float_t nyc1[5]={ 0.0015,         0.0015,                ws13-0.0015,    ws13-0.0015,    0.0015};            Float_t nyc1[5]={ 0.0015,         0.0015,                ws13-0.0015,    ws13-0.0015,    0.0015};
2958            Float_t nxc[5];                Float_t nxc[5];    
# Line 2865  void FEVdetector::ShowTOF(){ Line 2977  void FEVdetector::ShowTOF(){
2977      Float_t s12p = 0.055;      Float_t s12p = 0.055;
2978      ocolo = 10;      ocolo = 10;
2979      TPolyLine *ftof12y[6];      TPolyLine *ftof12y[6];
2980        rj = 6;
2981      for ( Int_t j=0; j<6; j++){      for ( Int_t j=0; j<6; j++){
2982          rj--;
2983        Float_t nxc1[5]={ (s12p*j),       (s12p*j),               s12p*(j+1), s12p*(j+1),    (s12p*j)};        Float_t nxc1[5]={ (s12p*j),       (s12p*j),               s12p*(j+1), s12p*(j+1),    (s12p*j)};
2984        Float_t nyc1[5]={      -ws13,     0.,  0., -ws13, -ws13};        Float_t nyc1[5]={      -ws13,     0.,  0., -ws13, -ws13};
2985        Float_t nxc[5];            Float_t nxc[5];    
# Line 2882  void FEVdetector::ShowTOF(){ Line 2996  void FEVdetector::ShowTOF(){
2996          colo = 1;          colo = 1;
2997        };        };
2998        if ( level.file == -1 ){        if ( level.file == -1 ){
2999          ColorMIP(ms12a[j]+ms12b[j],colo);          ColorMIP(ms12a[rj]+ms12b[rj],colo);
3000        } else {        } else {
3001          ColorTOFMIP(ms12a[j]+ms12b[j],colo);          ColorTOFMIP(ms12a[rj]+ms12b[rj],colo);
3002        };        };
3003        //        //
3004        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
# Line 2951  void FEVdetector::ShowTOF(){ Line 3065  void FEVdetector::ShowTOF(){
3065      Float_t s21p = 0.075;      Float_t s21p = 0.075;
3066      ocolo = 10;      ocolo = 10;
3067      TPolyLine *ftof21y[2];      TPolyLine *ftof21y[2];
3068        rj=2;
3069      for ( Int_t j=0; j<2; j++){      for ( Int_t j=0; j<2; j++){
3070          rj--;
3071        Float_t nxc1[5]={ s21p*(j-1),       s21p*(j-1),               s21p*j,s21p*j,     s21p*(j-1)};        Float_t nxc1[5]={ s21p*(j-1),       s21p*(j-1),               s21p*j,s21p*j,     s21p*(j-1)};
3072        Float_t nyc1[5]={ 0.,                ws2,     ws2,  0.,  0.};        Float_t nyc1[5]={ 0.,                ws2,     ws2,  0.,  0.};
3073        Float_t nxc[5];            Float_t nxc[5];    
# Line 2968  void FEVdetector::ShowTOF(){ Line 3084  void FEVdetector::ShowTOF(){
3084          colo = 1;          colo = 1;
3085        };        };
3086        if ( level.file == -1 ){        if ( level.file == -1 ){
3087          ColorMIP(ms21a[j]+ms21b[j],colo);          ColorMIP(ms21a[rj]+ms21b[rj],colo);
3088        } else {        } else {
3089          ColorTOFMIP(ms21a[j]+ms21b[j],colo);          ColorTOFMIP(ms21a[rj]+ms21b[rj],colo);
3090        };        };
3091        //        //
3092        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
# Line 3087  void FEVdetector::ShowTOF(){ Line 3203  void FEVdetector::ShowTOF(){
3203        ftof22y->Draw();        ftof22y->Draw();
3204        TPolyLine *sftof22[2];        TPolyLine *sftof22[2];
3205        tt = 1;        tt = 1;
3206        if ( level.file == -1 ) tt = 2;        rj = 1;
3207          if ( level.file == -1 ){
3208            tt = 2;
3209            rj = 2;
3210          };
3211        for (Int_t j=0; j<tt; j++){        for (Int_t j=0; j<tt; j++){
3212            rj--;
3213          //    for ( Int_t j=0; j<2; j++){          //    for ( Int_t j=0; j<2; j++){
3214          if ( (mt22[0][j]<4095. || mt22[1][j]<4095.) ){          if ( (mt22[0][rj]<4095. || mt22[1][rj]<4095.) ){
3215            if ( ocolo == 10 ) ocolo = noadc;            if ( ocolo == 10 ) ocolo = noadc;
3216            Float_t lowp = (xp22[j]-E22[j])/100.;            Float_t lowp = -(xp22[rj]+E22[rj])/100.;
3217            Float_t higp = (xp22[j]+E22[j])/100.;            Float_t higp = -(xp22[rj]-E22[rj])/100.;
3218            if ( lowp < -0.074 ) lowp = -0.074;            if ( lowp < -0.074 ) lowp = -0.074;
3219            if ( higp > 0.074 ) higp = 0.074;            if ( higp > 0.074 ) higp = 0.074;
3220            if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp22[j] != 0.))){            if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp22[rj] != 0.))){
3221              Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};              Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};
3222              Float_t nyc1[5]={ -0.0015,         -0.0015,                -ws2+0.0015,    -ws2+0.0015,    -0.0015};              Float_t nyc1[5]={ -0.0015,         -0.0015,                -ws2+0.0015,    -ws2+0.0015,    -0.0015};
3223              Float_t nxc[5];                  Float_t nxc[5];    
# Line 3116  void FEVdetector::ShowTOF(){ Line 3237  void FEVdetector::ShowTOF(){
3237        };        };
3238      };      };
3239      //      //
3240        //daquiinbasso
3241      //      //
3242      // S31  X-view      // S31  X-view
3243      //      //
# Line 3173  void FEVdetector::ShowTOF(){ Line 3294  void FEVdetector::ShowTOF(){
3294        ftof31y->Draw();        ftof31y->Draw();
3295        TPolyLine *sftof31[3];        TPolyLine *sftof31[3];
3296        tt = 1;        tt = 1;
3297        if ( level.file == -1 ) tt = 3;        rj = 1;
3298          if ( level.file == -1 ){
3299            tt = 3;
3300            rj = 3;
3301          };
3302        for (Int_t j=0; j<tt; j++){        for (Int_t j=0; j<tt; j++){
3303            rj--;
3304          //    for ( Int_t j=0; j<3; j++){          //    for ( Int_t j=0; j<3; j++){
3305          if ( (mt31[0][j]<4095. || mt31[1][j]<4095.)){          if ( (mt31[0][rj]<4095. || mt31[1][rj]<4095.)){
3306            if ( ocolo == 10 ) ocolo = noadc;            if ( ocolo == 10 ) ocolo = noadc;
3307            Float_t lowp = (xp31[j]-E31[j])/100.;            Float_t lowp = -(xp31[rj]+E31[rj])/100.;
3308            Float_t higp = (xp31[j]+E31[j])/100.;            Float_t higp = -(xp31[rj]-E31[rj])/100.;
3309            if ( lowp < -0.074 ) lowp = -0.074;            if ( lowp < -0.074 ) lowp = -0.074;
3310            if ( higp > 0.074 ) higp = 0.074;            if ( higp > 0.074 ) higp = 0.074;
3311            if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp31[j] != 0.))){            if ( lowp < higp && ( level.file == -1 || (level.file == 2 && xp31[rj] != 0.))){
3312              Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};              Float_t nxc1[5]={ lowp, higp, higp, lowp, lowp};
3313              Float_t nyc1[5]={ 0.0015,         0.0015,                ws13-0.0015,    ws13-0.0015,    0.0015};              Float_t nyc1[5]={ 0.0015,         0.0015,                ws13-0.0015,    ws13-0.0015,    0.0015};
3314              Float_t nxc[5];                  Float_t nxc[5];    
# Line 3209  void FEVdetector::ShowTOF(){ Line 3335  void FEVdetector::ShowTOF(){
3335      Float_t s32p = 0.050;      Float_t s32p = 0.050;
3336      ocolo = 10;      ocolo = 10;
3337      TPolyLine *ftof32y[3];      TPolyLine *ftof32y[3];
3338        rj = 3;
3339      for ( Int_t j=0; j<3; j++){      for ( Int_t j=0; j<3; j++){
3340          rj--;
3341        Float_t nxc1[5]={ (s32p*j),       (s32p*j),               s32p*(j+1),s32p*(j+1),     (s32p*j)};        Float_t nxc1[5]={ (s32p*j),       (s32p*j),               s32p*(j+1),s32p*(j+1),     (s32p*j)};
3342        Float_t nyc1[5]={     -ws13,     0.,    0., -ws13, -ws13};        Float_t nyc1[5]={     -ws13,     0.,    0., -ws13, -ws13};
3343        Float_t nxc[5];            Float_t nxc[5];    
# Line 3226  void FEVdetector::ShowTOF(){ Line 3354  void FEVdetector::ShowTOF(){
3354          colo = 1;          colo = 1;
3355        };        };
3356        if ( level.file == -1 ){        if ( level.file == -1 ){
3357          ColorMIP(ms32a[j]+ms32b[j],colo);          ColorMIP(ms32a[rj]+ms32b[rj],colo);
3358        } else {        } else {
3359          ColorTOFMIP(ms32a[j]+ms32b[j],colo);          ColorTOFMIP(ms32a[rj]+ms32b[rj],colo);
3360        };        };
3361        //        //
3362        if ( colo != 10 ) ocolo = colo;        if ( colo != 10 ) ocolo = colo;
# Line 4942  void FEVdetector::ShowTRK(Bool_t upd){ Line 5070  void FEVdetector::ShowTRK(Bool_t upd){
5070            for (Int_t m = 0; m<3; m++){            for (Int_t m = 0; m<3; m++){
5071              if ( trk->signcluster[l][m] != 0. ){              if ( trk->signcluster[l][m] != 0. ){
5072                if ( planeno == 10 ) {                if ( planeno == 10 ) {
                 x = 1024 - trk->addrcluster[l][m];  
               } else {  
5073                  x = trk->addrcluster[l][m];                  x = trk->addrcluster[l][m];
5074                  } else {
5075                    x = 1024 - trk->addrcluster[l][m];
5076                };                };
5077                linea = new TLine(14.+x,0.01,14.+x,0.3);                linea = new TLine(14.+x,0.01,14.+x,0.3);
5078                linea->SetLineWidth(2);                linea->SetLineWidth(2);
# Line 5014  void FEVdetector::ShowTRK(Bool_t upd){ Line 5142  void FEVdetector::ShowTRK(Bool_t upd){
5142          trkpad[planepad]->cd();          trkpad[planepad]->cd();
5143          trkpad[planepad]->Range(-7.05,0.,7.05,8.);          trkpad[planepad]->Range(-7.05,0.,7.05,8.);
5144          for (Int_t img=0; img<2; img++){          for (Int_t img=0; img<2; img++){
5145            x = singlet->coord[img];            x = -singlet->coord[img];
5146            Float_t xsig = singlet->sgnl;            Float_t xsig = singlet->sgnl;
5147            if ( xsig > 8. ) xsig = 8.;            if ( xsig > 8. ) xsig = 8.;
5148            //            //
# Line 5071  void FEVdetector::ShowTRK(Bool_t upd){ Line 5199  void FEVdetector::ShowTRK(Bool_t upd){
5199              //              //
5200              x = track->xm[plane];              x = track->xm[plane];
5201              Float_t xsig = track->dedx_x[plane];              Float_t xsig = track->dedx_x[plane];
5202              if ( track->xgood[plane] ){              if ( track->XGood(plane) ){
5203                //if ( x > -100 ){                //if ( x > -100 ){
5204                if ( xsig > 8. ) xsig = 8.;                if ( xsig > 8. ) xsig = 8.;
5205                if ( var.bw ){                if ( var.bw ){
# Line 5099  void FEVdetector::ShowTRK(Bool_t upd){ Line 5227  void FEVdetector::ShowTRK(Bool_t upd){
5227              planepad = plane * 2;              planepad = plane * 2;
5228              trkpad[planepad]->cd();              trkpad[planepad]->cd();
5229              trkpad[planepad]->Range(-7.05,0.,7.05,8.);              trkpad[planepad]->Range(-7.05,0.,7.05,8.);
5230              x = track->ym[plane];              x = -track->ym[plane];
5231              xsig = track->dedx_y[plane];              xsig = track->dedx_y[plane];
5232              if ( track->ygood[plane] ){              if ( track->YGood(plane) ){
5233                //            if ( x > -100 ){                //            if ( x > -100 ){
5234                if ( xsig > 8. ) xsig = 8.;                if ( xsig > 8. ) xsig = 8.;
5235                if ( var.bw ){                if ( var.bw ){
# Line 5161  void FEVdetector::ShowTRK(Bool_t upd){ Line 5289  void FEVdetector::ShowTRK(Bool_t upd){
5289            for (Int_t plane = 0; plane<6; plane++){            for (Int_t plane = 0; plane<6; plane++){
5290              //              //
5291              x = track->xm[plane];              x = track->xm[plane];
5292              Float_t y = track->ym[plane];              Float_t y = -track->ym[plane];
5293              Float_t xsig = track->dedx_x[plane];              Float_t xsig = track->dedx_x[plane];
5294              Float_t ysig = track->dedx_y[plane];              Float_t ysig = track->dedx_y[plane];
5295              //    if ( x > -100 && y > -100. ){              //    if ( x > -100 && y > -100. ){
5296              if ( track->xgood[plane] && track->ygood[plane] ){              if ( track->XGood(plane) && track->YGood(plane) ){
5297                if ( var.bw ){                if ( var.bw ){
5298                  sigcol1 = -1;                  sigcol1 = -1;
5299                  sigcol2 = -1;                  sigcol2 = -1;
# Line 5283  void FEVdetector::ShowTRK(Bool_t upd){ Line 5411  void FEVdetector::ShowTRK(Bool_t upd){
5411              for (Int_t sing = 0; sing < min(totsx,totsy); sing++){              for (Int_t sing = 0; sing < min(totsx,totsy); sing++){
5412                //                              //              
5413                x = arrax->At(orderx->At(sing));                x = arrax->At(orderx->At(sing));
5414                Float_t y1 = array1->At(ordery->At(sing));                Float_t y1 = -array1->At(ordery->At(sing));
5415                Float_t y2 = array2->At(ordery->At(sing));                Float_t y2 = -array2->At(ordery->At(sing));
5416                Float_t xsig = sigarrax->At(orderx->At(sing));                Float_t xsig = sigarrax->At(orderx->At(sing));
5417                Float_t ysig = sigarray->At(ordery->At(sing));                Float_t ysig = sigarray->At(ordery->At(sing));
5418                if ( x > -100 && y1 > -100. ){                if ( x > -100 && y1 > -100. ){
# Line 5377  void FEVdetector::ShowTRK(Bool_t upd){ Line 5505  void FEVdetector::ShowTRK(Bool_t upd){
5505                  for (Int_t m = 0; m<3; m++){                                          for (Int_t m = 0; m<3; m++){                        
5506                    if ( trk->signcluster[l][m] != 0. ){                    if ( trk->signcluster[l][m] != 0. ){
5507                      if ( planeno == 10 ) {                      if ( planeno == 10 ) {
                       x = 1024 - trk->addrcluster[l][m];  
                     } else {  
5508                        x = trk->addrcluster[l][m];                        x = trk->addrcluster[l][m];
5509                        } else {
5510                          x = 1024 - trk->addrcluster[l][m];
5511                      };                      };
5512                      x += 1024.;                                      x += 1024.;                
5513                      if ( trk->signcluster[l][m]> ysig  ){                      if ( trk->signcluster[l][m]> ysig  ){
5514                        ysig = trk->signcluster[l][m];                        ysig = trk->signcluster[l][m];
5515                        yh1[ncro] = x-1024.;                        yh1[ncro] = x - 1024.;
5516                        yh2[ncro] = x;                        yh2[ncro] = x;
5517                      };                      };
5518                    };                    };
# Line 5412  void FEVdetector::ShowTRK(Bool_t upd){ Line 5540  void FEVdetector::ShowTRK(Bool_t upd){
5540                    for (Int_t m = 0; m<3; m++){                    for (Int_t m = 0; m<3; m++){
5541                      if ( trk->signcluster[e][m] != 0. ){                      if ( trk->signcluster[e][m] != 0. ){
5542                        if ( planeno == 10 ) {                        if ( planeno == 10 ) {
                         x = 1024 - trk->addrcluster[e][m];  
                       } else {  
5543                          x = trk->addrcluster[e][m];                          x = trk->addrcluster[e][m];
5544                          } else {
5545                            x = 1024 - trk->addrcluster[e][m];
5546                        };                        };
5547                        x += 1024.;                                              x += 1024.;                      
5548                        if ( trk->signcluster[e][m]> ysig  ){                        if ( trk->signcluster[e][m]> ysig  ){
5549                          ysig = trk->signcluster[e][m];                          ysig = trk->signcluster[e][m];
5550                          yh1[ncro] = x-1024.;                          yh1[ncro] = x - 1024.;
5551                          yh2[ncro] = x;                          yh2[ncro] = x;
5552                        };                        };
5553                      };                      };
# Line 5471  void FEVdetector::ShowTRK(Bool_t upd){ Line 5599  void FEVdetector::ShowTRK(Bool_t upd){
5599    
5600  void FEVdetector::ShowTrack(){  void FEVdetector::ShowTrack(){
5601    //    //
5602      if ( level.file != 2 ) return;
5603      //
5604    //    //
5605    //    //
5606    if ( var.CALO && false ){    if ( var.CALO && var.CALOT ){
5607      if ( L2->GetCaloLevel2()->npcfit[0] > 0 && L2->GetCaloLevel2()->npcfit[1] > 0 ){      if ( L2->GetCaloLevel2()->npcfit[0] > 0 && L2->GetCaloLevel2()->npcfit[1] > 0 ){
5608        Float_t calx[22];        Float_t calx[22];
5609        Float_t caly[22];        Float_t caly[22];
# Line 5490  void FEVdetector::ShowTrack(){ Line 5620  void FEVdetector::ShowTrack(){
5620        };        };
5621        for (Int_t plane = 0; plane < 22; plane++){              for (Int_t plane = 0; plane < 22; plane++){      
5622          calx[plane] = (L2->GetCaloLevel2()->cbar[plane][0]/100.)*var.sfx + var.xxvc;;          calx[plane] = (L2->GetCaloLevel2()->cbar[plane][0]/100.)*var.sfx + var.xxvc;;
5623          caly[plane] = (L2->GetCaloLevel2()->cbar[plane][1]/100.)*var.sfx + var.xyvc;          caly[plane] = (-L2->GetCaloLevel2()->cbar[plane][1]/100.)*var.sfx + var.xyvc;
5624          //      calzx[plane] = zpiano[plane] -5.81*var.sfy/1000. + var.yxvc;          //      calzx[plane] = zpiano[plane] -5.81*var.sfy/1000. + var.yxvc;
5625          calzx[plane] = zpiano[plane] + var.yxvc;          calzx[plane] = zpiano[plane] + var.yxvc;
5626          calzy[plane] = zpiano[plane] + var.yyvc;          calzy[plane] = zpiano[plane] + var.yyvc;
# Line 5539  void FEVdetector::ShowTrack(){ Line 5669  void FEVdetector::ShowTrack(){
5669        //        //
5670        for (Int_t plane = 0; plane < 22; plane++){              for (Int_t plane = 0; plane < 22; plane++){      
5671          calx[plane] = (ctra->tbar[plane][0]/100.)*var.sfx + var.xxvc;;          calx[plane] = (ctra->tbar[plane][0]/100.)*var.sfx + var.xxvc;;
5672          caly[plane] = (ctra->tbar[plane][1]/100.)*var.sfx + var.xyvc;          caly[plane] = (-ctra->tbar[plane][1]/100.)*var.sfx + var.xyvc;
5673          //      calzx[plane] = zpiano[plane] -5.81*var.sfy/1000. + var.yxvc;          //      calzx[plane] = zpiano[plane] -5.81*var.sfy/1000. + var.yxvc;
5674          calzx[plane] = zpiano[plane] + var.yxvc;          calzx[plane] = zpiano[plane] + var.yxvc;
5675          calzy[plane] = zpiano[plane] + var.yyvc;          calzy[plane] = zpiano[plane] + var.yyvc;
# Line 5568  void FEVdetector::ShowTrack(){ Line 5698  void FEVdetector::ShowTrack(){
5698      };      };
5699    };    };
5700    //    //
5701    if ( !var.TRK || level.file != 2 ) return;    if ( !var.TRK ) return;
5702    //    //
5703    if ( L2->GetTrkLevel2()->GetNTracks() > 0 ){    if ( L2->GetTrkLevel2()->GetNTracks() > 0 ){
5704      for (Int_t nt = 0; nt < L2->GetTrkLevel2()->GetNTracks(); nt++){      for (Int_t nt = 0; nt < L2->GetTrkLevel2()->GetNTracks(); nt++){
5705    
5706        //      TrkTrack *track = L2->GetTrkLevel2()->GetTrack(nt);        //      TrkTrack *track = L2->GetTrkLevel2()->GetTrack(nt);
5707          //      printf("qui \n");
5708        PamTrack *ptrack = L2->GetTrack(nt);        PamTrack *ptrack = L2->GetTrack(nt);
5709        TrkTrack *track = ptrack->GetTrkTrack();        TrkTrack *track = ptrack->GetTrkTrack();
5710          //      printf("qua \n");
5711        Int_t npoint = 100;        Int_t npoint = 100;
5712        Float_t zin[100];        Float_t zin[100];
5713        Double_t xout[100];        Double_t xout[100];
# Line 5629  void FEVdetector::ShowTrack(){ Line 5761  void FEVdetector::ShowTrack(){
5761        if ( !ifail ){        if ( !ifail ){
5762          for ( Int_t e = 0; e < npoint ; e++) {          for ( Int_t e = 0; e < npoint ; e++) {
5763            tx[e] = ((float)tr->x[e]/100.)*var.sfx + var.xxvc;            tx[e] = ((float)tr->x[e]/100.)*var.sfx + var.xxvc;
5764            ty[e] = ((float)tr->y[e]/100.)*var.sfx + var.xyvc;            ty[e] = (-(float)tr->y[e]/100.)*var.sfx + var.xyvc;
5765            if ( e < 50 ) {            if ( e < 50 ) {
5766              ptx1[e] = ((float)tr->y[e]/100.)*var.sfx + var.xcat;              ptx1[e] = (-(float)tr->y[e]/100.)*var.sfx + var.xcat;
5767              pty1[e] = ((float)tr->x[e]/100.)*var.sfy + var.ycat;              pty1[e] = ((float)tr->x[e]/100.)*var.sfy + var.ycat;
5768            } else {            } else {
5769              ptx2[e-50] = ((float)tr->y[e]/100.)*var.sfx + var.xcat;              ptx2[e-50] = (-(float)tr->y[e]/100.)*var.sfx + var.xcat;
5770              pty2[e-50] = ((float)tr->x[e]/100.)*var.sfy + var.ycat;              pty2[e-50] = ((float)tr->x[e]/100.)*var.sfy + var.ycat;
5771            };            };
5772            if ( e > 84 ) {            if ( e > 84 ) {
5773              tx1[e-85] = ((float)tr->x[e]/100.)*var.nds4 + var.xxvc;              tx1[e-85] = ((float)tr->x[e]/100.)*var.nds4 + var.xxvc;
5774              ty1[e-85] = ((float)tr->y[e]/100.)*var.nds4 + var.xyvc;                  ty1[e-85] = (-(float)tr->y[e]/100.)*var.nds4 + var.xyvc;    
5775              tzx1[e-85] = (0.112)*var.sfy+((float)zin[e]/100.)*var.sfy + var.yxvc;              tzx1[e-85] = (0.112)*var.sfy+((float)zin[e]/100.)*var.sfy + var.yxvc;
5776              tzy1[e-85] = (0.112)*var.sfy+((float)zin[e]/100.)*var.sfy + var.yyvc;              tzy1[e-85] = (0.112)*var.sfy+((float)zin[e]/100.)*var.sfy + var.yyvc;
5777            };            };
# Line 5783  void FEVdetector::ShowCalo(Bool_t upd){ Line 5915  void FEVdetector::ShowCalo(Bool_t upd){
5915          Int_t se = 5;          Int_t se = 5;
5916          if ( !l && m%2 == 0 ) se = 3;          if ( !l && m%2 == 0 ) se = 3;
5917          if ( !l && m%2 != 0 ) se = 2;          if ( !l && m%2 != 0 ) se = 2;
5918          if (  l && m%2 == 0 ) se = 1;          if (  l && m%2 != 0 ) se = 1;
5919          if (  l && m%2 != 0 ) se = 0;          if (  l && m%2 == 0 ) se = 0;
5920          //          //
5921          // determine what kind of event we are going to analyze          // determine what kind of event we are going to analyze
5922          //          //
# Line 5879  void FEVdetector::ShowCalo(Bool_t upd){ Line 6011  void FEVdetector::ShowCalo(Bool_t upd){
6011                Xview->Draw("box same");                Xview->Draw("box same");
6012              };                                            };                              
6013              if ( l == 1 ) {                                      if ( l == 1 ) {                        
6014                Yview->Fill(n,21-m,1.);                Yview->Fill(95-n,21-m,1.);
6015                pd2->cd();                pd2->cd();
6016                Yview->Draw("box same");                Yview->Draw("box same");
6017              };              };
# Line 5991  void FEVdetector::ShowCalo(Bool_t upd){ Line 6123  void FEVdetector::ShowCalo(Bool_t upd){
6123          Int_t se = 5;          Int_t se = 5;
6124          if (l == 0 && m%2 == 0) se = 3;          if (l == 0 && m%2 == 0) se = 3;
6125          if (l == 0 && m%2 != 0) se = 2;          if (l == 0 && m%2 != 0) se = 2;
6126          if (l == 1 && m%2 == 0) se = 1;          if (l == 1 && m%2 != 0) se = 1;
6127          if (l == 1 && m%2 != 0) se = 0;                  if (l == 1 && m%2 == 0) se = 0;        
6128          //          //
6129          // determine what kind of event we are going to analyze          // determine what kind of event we are going to analyze
6130          //          //
# Line 6108  void FEVdetector::ShowCalo(Bool_t upd){ Line 6240  void FEVdetector::ShowCalo(Bool_t upd){
6240                    Xview->Draw("box same");                    Xview->Draw("box same");
6241                  };                                                    };                                  
6242                  if ( l == 1 ) {                                      if ( l == 1 ) {                    
6243                    Yview->Fill(n,21-m,1.);                    Yview->Fill(96-n,21-m,1.);
6244                    pd2->cd();                    pd2->cd();
6245                    Yview->Draw("box same");                    Yview->Draw("box same");
6246                  };                  };
# Line 6227  void FEVdetector::ShowCalo(Bool_t upd){ Line 6359  void FEVdetector::ShowCalo(Bool_t upd){
6359          gDirectory->Delete(yvev.str().c_str());          gDirectory->Delete(yvev.str().c_str());
6360          TH2F *Yview = new TH2F(yvev.str().c_str(),"",96,-0.5,95.5,22,-0.5,21.5);                            TH2F *Yview = new TH2F(yvev.str().c_str(),"",96,-0.5,95.5,22,-0.5,21.5);                  
6361          Yview->SetFillColor(colo);          Yview->SetFillColor(colo);
6362          Yview->Fill(n,21-m,1.);          Yview->Fill(96-n,21-m,1.);
6363          pd2->cd();          pd2->cd();
6364          Yview->Draw("box same");          Yview->Draw("box same");
6365        };        };

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.23