/[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.11 by mocchiut, Mon Feb 26 17:30:32 2007 UTC revision 1.12 by mocchiut, Wed Feb 28 09:29:55 2007 UTC
# Line 46  char* operator+( std::streampos&, char* Line 46  char* operator+( std::streampos&, char*
46  #include <TEllipse.h>  #include <TEllipse.h>
47  #include <TArrow.h>  #include <TArrow.h>
48  #include <TStyle.h>  #include <TStyle.h>
49    #include <TStreamerElement.h>
50    #include <TRealData.h>
51  //  //
52  #include <PamelaRun.h>  #include <PamelaRun.h>
53  #include <physics/calorimeter/CalorimeterEvent.h>  #include <physics/calorimeter/CalorimeterEvent.h>
# Line 177  void FEVdetector::ClearVariables(){ Line 179  void FEVdetector::ClearVariables(){
179  void FEVdetector::GetEntry(Int_t i){  void FEVdetector::GetEntry(Int_t i){
180    thisentry = i;    thisentry = i;
181    otr->GetEntry(i);    otr->GetEntry(i);
182    //   if ( level.file == 2 ){
183    //     ShowInfo("TrkLevel2");
184    //     ShowInfo("ToFLevel2");
185    //     ShowInfo("CaloLevel2");
186    //   };
187    //  PrintData(otr,-1LL,44);    //  PrintData(otr,-1LL,44);
188  }  }
189    
# Line 305  void FEVdetector::PrintLeaves(TTree *otr Line 312  void FEVdetector::PrintLeaves(TTree *otr
312    printf("son qua \n");    printf("son qua \n");
313    
314    //  if (otr->GetMakeClass()) {    //  if (otr->GetMakeClass()) {
315      if (!tb->GetAddress()) {    if (!tb->GetAddress()) {
316        printf("esco \n");        printf("esco \n");
317        return;        return;
318      }      }
# Line 331  void FEVdetector::PrintLeaves(TTree *otr Line 338  void FEVdetector::PrintLeaves(TTree *otr
338        }        }
339        if (tb->GetStreamerType() > 20) {        if (tb->GetStreamerType() > 20) {
340          atype -= 20;          atype -= 20;
341          TObjArray *prova= otr->GetListOfLeaves();  //      TObjArray *prova= otr->GetListOfLeaves();
342          //      TObjArray* leaf2 = (TObjArray*) prova->UncheckedAt(i);  //      //      TObjArray* leaf2 = (TObjArray*) prova->UncheckedAt(i);
343          //TLeaf* leaf = (TLeaf*)(otr->GetLeaf(tb->GetName()));  //      //TLeaf* leaf = (TLeaf*)(otr->GetLeaf(tb->GetName()));
344          //      TLeafElement* leaf = (TLeafElement*)((TLeaf*)(otr->GetListOfLeaves()->UncheckedAt(i))->GetBranch()->UncheckedAt(0));  //      //      TLeafElement* leaf = (TLeafElement*)((TLeaf*)(otr->GetListOfLeaves()->UncheckedAt(i))->GetBranch()->UncheckedAt(0));
345          TLeafElement* leaf = (TLeafElement*)(prova->UncheckedAt(0));  //      TLeafElement* leaf = (TLeafElement*)(prova->UncheckedAt(0));
346          n = n * leaf->GetLenStatic();  //      n = n * leaf->GetLenStatic();
347        }        }
348        if (tb->GetInfo()) {        if (tb->GetInfo()) {
349          //      n = 16;          //      n = 16;
350          tb->GetInfo()->PrintValue(tb->GetName(), tb->GetAddress(), atype, n, lenmax);          //      tb->GetInfo()->PrintValue(tb->GetName(), tb->GetAddress(), atype, n, lenmax);
351          //tb->GetObject()->GetInfo()->PrintValue(tb->GetName(), tb->GetObject(), atype, n, lenmax);          //tb->GetObject()->GetInfo()->PrintValue(tb->GetName(), tb->GetObject(), atype, n, lenmax);
352        }        }
353        return;        return;
# Line 387  void FEVdetector::PrintLeaves(TTree *otr Line 394  void FEVdetector::PrintLeaves(TTree *otr
394    printf("esco qui\n");    printf("esco qui\n");
395  };  };
396    
397  void FEVdetector::PrintData(TTree *tree, Long64_t entry=-1LL,Int_t lenmax=44){  
398    // -- Print values of all active leaves for entry.  void FEVdetector::ShowInfo(TString detector){
399    //    //
400    // if entry==-1, print current entry (default)    TBranch *b1 = 0;
401    // if a leaf is an array, a maximum of lenmax elements is printed.    TBranch *b3 = 0;
402      TObjArray *branch_array = 0;
403      TObjArray *leaf_array = 0;            
404      //
405      b1 = otr->FindBranch(detector.Data());
406      Int_t dlen = 44;
407    //    //
   if (entry != -1) {  
     tree->GetEntry(entry);  
   }  
   //  printf("======> EVENT:%lld\n", thisentry);  
408    printf("======> EVENT:%i\n", thisentry);    printf("======> EVENT:%i\n", thisentry);
409    TObjArray* leaves  = tree->GetListOfLeaves(); //    //
410    Int_t nleaves = leaves->GetEntriesFast();    printf("Branch %s\n",b1->GetName());
411    Int_t ltype;    branch_array = b1->GetListOfBranches();
412    for (Int_t i = 0; i < nleaves; i++) {    //
413      TLeaf* leaf = (TLeaf*) leaves->UncheckedAt(i);    Int_t j = 0;
414      TBranch* branch = leaf->GetBranch();    //
415      //    if (branch->TestBit(kDoNotProcess)) {    for(Int_t l=0;l<(branch_array->GetLast()+1);l++){
416      //      continue;      //
417      //    }      TBranchElement *tb = (TBranchElement*)branch_array->At(l);
418      Int_t len = leaf->GetLen();      Int_t type = tb->GetType();
419      if (len <= 0) {      Int_t atype = tb->GetStreamerType() - 20;
420        continue;      Int_t len = (tb->GetInfo()->GetLengths())[tb->GetID()];
421      }      Int_t length = min(len,dlen);
422      len = TMath::Min(len, lenmax);      //    printf("SubBranches : %s  type is %i tb getname %s\n",((TBranch*)branch_array->At(l))->GetName(),type,tb->GetName());
423      if (leaf->IsA() == TLeafElement::Class()) {      switch (type){
424        //      Double_t value = leaf->GetValue(lenmax);      case 0:
425        //printf(" ioqui %f \n",value);        //      
426        //      ((TBranchElement*)leaf->GetBranch())->PrintValue(i);        // IS A VARIABLE
427        this->PrintLeaves(otr,i,((TBranchElement*)leaf->GetBranch()), lenmax);        //
428        //leaf->PrintValue(lenmax);        //
429        continue;        // NAME
430      }        //
431      if (branch->GetListOfBranches()->GetEntriesFast() > 0) {        //      printf(" ATYPE IS %i \n",atype);
432        continue;        printf(" %-15s =",((TBranch*)branch_array->At(l))->GetName());
433      }        j = 0;
434      ltype = 10;        //
435      if (leaf->IsA() == TLeafF::Class()) {        // VALUES
436        ltype = 5;        //
437      }        if ( atype == 3 || atype == -17 ){
438      if (leaf->IsA() == TLeafD::Class()) {          while ( j < length ){
439        ltype = 5;            if ( j < length -1 ){
440      }              printf(" %llu ,",(ULong64_t)tb->GetValue(j,0));
441      if (leaf->IsA() == TLeafC::Class()) {            } else {
442        len = 1;              printf(" %llu",(ULong64_t)tb->GetValue(j,0));
443        ltype = 5;            };
444      };            j++;
445      printf(" %-15s = ", leaf->GetName());          };
446      for (Int_t l = 0; l < len; l++) {        } else {
447        Double_t value = leaf->GetValue(l);          while ( j < length ){
448        printf(" ioqui %f \n",value);            if ( j < length -1 ){
449        //      leaf->PrintValue(l);              printf(" %f ,",tb->GetValue(j,0));
450        if (l == (len - 1)) {            } else {
451          printf("\n");              printf(" %f",tb->GetValue(j,0));
452          continue;            };
453        }            j++;
454        printf(", ");          };
455        if ((l % ltype) == 0) {        };
456          printf("\n                  ");        printf("\n");
457        }        break;
458      }      case 3:
459    }        //
460          // IS A TCLONESARRAY
461          //
462          printf(" %-15s = %d\n", tb->GetName(), tb->GetNdata());
463          //
464          if ( tb->GetNdata() ){
465            
466            printf(" auiauiaui\n");
467            TClonesArray *cl = (TClonesArray*)tb->GetObject();
468            //
469            printf(" name %s\n",cl->GetName());
470            //
471            TClass *myc = cl->GetClass();
472            //
473            TList *lme = myc->GetListOfDataMembers();
474            TIter next(lme);
475            Int_t ls=0;
476            TBranchElement *tb2 = 0;
477            printf("la classe %s contiene:\n",myc->GetName());
478            while ( (tb2 = (TBranchElement*)next()) ){
479              //
480              printf(" Memeber %i is %s \n",ls,tb2->GetName());
481    
482              Int_t thisoffset = 0;
483              TRealData *rd = myc->GetRealData(tb2->GetName());
484              if ( rd ){
485                printf(" rd name %s offset %i \n",rd->GetName(),rd->GetThisOffset());
486                thisoffset = rd->GetThisOffset();
487              };
488    
489              ls++;
490    
491              //    };
492            
493            for (Int_t ll=0; ll<cl->GetEntriesFast();ll++){
494              //
495              printf(" Entry %i 0x%X\n",ll,cl->At(ll));
496    
497              //      tb->GetInfo()->PrintValue(rd->GetName(), (char*)cl->At(ll)+thisoffset, 0, ls, 44);
498    
499              //      printf(" value1 = %i \n",&((*cl->At(ll))<<thisoffset)));
500            
501    //        char *point = 0;
502    
503    //        myc->BuildRealData(point);
504    
505    //        point = (char*)cl->At(ll);
506    
507    
508    
509    
510              
511                //      printf(" uncheck 0x%X \n",cl->UncheckedAt(ll));
512    
513    
514    
515                //      TLeafElement* leaf = (TLeafElement*)(cl->UncheckedAt(ll));
516                //      Int_t n = n * leaf->GetLenStatic();    
517                //      Int_t n = leaf->GetLenStatic();        
518                //printf(" len static is %i name %s\n",n,leaf->GetName());
519                //      TLeaf *foglia = tb2->FindLeaf(tb2->GetName());
520                
521                //      printf(" foglia lunga %i 0x%X \n",foglia->GetLen(),foglia);
522                
523                //
524                //      char *pointer = (char*)cl->UnchekedAt(ll);
525                //      char *ladd = pointer + offset;
526                //      Int_t *count = (Int_t*)(pointer+((tb2->GetMethods())[ls]));
527              
528    
529    
530            //      printf(" lunghezza del clone secondo getentriesfast %i \n",cl->GetEntriesFast());
531            //      tb->GetInfo()->PrintValueClones(tb->GetName(), cl, tb->GetID(), tb->GetOffset(), length);
532              //      tb->GetInfo()->PrintValueClones(tb2->GetName(),cl,ls,tb->GetOffset(),44);      
533                //    TStreamerElement *aElement = (TStreamerElement *)tb2->GetElement()//      Int_t type2 = tb2->GetType();
534    //          Int_t atype2 = tb2->GetStreamerType() - 20;
535    //          printf(" subsubsubleaves : %s  type is %i \n",tb2->GetName(),type2);
536    //          Int_t len2 = (tb2->GetInfo()->GetLengths())[tb2->GetID()];
537    //          Int_t length2 = min(len2,dlen);
538    //          switch (type2){
539    //          case 0:
540    //            //      
541    //            // IS A VARIABLE
542    //            //
543    //            //
544    //            // NAME
545    //            //
546    //            printf(" ATYPE IS %i \n",atype2);
547    //            printf(" %-15s =",tb2->GetName());
548    //            j = 0;
549    //            //
550    //            // VALUES
551    //            //
552    //            if ( atype2 == 3 || atype2 == -17 ){
553    //              while ( j < length2 ){
554    //                if ( j < length2 -1 ){
555    //                  printf(" %llu ,",(ULong64_t)tb2->GetValue(j,0));
556    //                } else {
557    //                  printf(" %llu",(ULong64_t)tb2->GetValue(j,0));
558    //                };
559    //                j++;
560    //              };
561    //            } else {
562    //              while ( j < length2 ){
563    //                if ( j < length2 -1 ){
564    //                  printf(" %f ,",tb2->GetValue(j,0));
565    //                } else {
566    //                  printf(" %f",tb2->GetValue(j,0));
567    //                };
568    //                j++;
569    //              };
570    //            };
571    //            printf("\n");
572    //            break;
573    //          };
574              };
575    
576                    };
577          };
578    
579            
580            
581    
582              //      TBranchElement *p=(TBranchElement*)cl->At(ll);
583              //    Int_t plen = (p->GetInfo()->GetLengths())[p->GetID()];
584              //    Int_t plen = -1;
585              //    printf("SubBranches : %s  plen is %i \n",p->GetName(),plen);
586              
587              
588              
589              
590              //    TLeafElement* leaf = (TLeafElement*)(p->UncheckedAt(0));
591              //    printf("xoxoxo leaf : %s  plen is %i \n",leaf->GetName(),leaf->GetLen());
592              
593              //    Int_t n = tb->GetNdata();
594              //    n = n * leaf->GetLenStatic();
595              //    if (tb->GetInfo()) {
596              //    n = 16;
597              //      tb->GetInfo()->PrintValue(tb->GetName(), tb->GetAddress(), atype, n, 44);
598              //tb->GetObject()->GetInfo()->PrintValue(tb->GetName(), tb->GetObject(), atype, n, lenmax);
599              //    }
600              
601              //    TClonesArray* clones = (TClonesArray*) cl->At(ll);
602              //    if ( tb->GetInfo() ) {
603              //      tb->GetInfo()->PrintValueClones(tb->GetName(), cl, tb->GetID(), tb->GetOffset(), 44);
604              //    };
605              
606              //    b3 = (TBranch*)cl->At(l);
607              //    leaf_array = b3->GetListOfLeaves();
608              //    for(Int_t l=0;l<(leaf_array->GetLast());l++){
609              //      printf("Leaf : %s\n",((TLeaf*)leaf_array->At(l))->GetName());
610              
611              
612              //      //      TBranch *bcl = (TBranch*)leaf_array->At(l);
613              //      //bcl = b1->GetListOfLeaves();
614              //      //for(Int_t l=0;l<(leaf_array->GetLast()+1);l++){
615              //        //    printf(" value: %f \n",otr->GetLeaf(((TLeaf*)leaf_array->At(l))->GetName())->GetValue(0));    
616              //        //    printf(" value: %f \n",otr->GetLeaf(((TLeaf*)(branch_array->At(l))->GetName()))->GetValue(0));        
617              //      //};
618              //    };
619              
620    
621    
622    
623    
624    
625    //       //      Int_t n = TMath::Min(10, tb->GetNdata());
626    //       Int_t n = tb->GetNdata();
627    //       Int_t atype2 = tb->GetStreamerType() + 20;
628    
629    //       if (tb->GetStreamerType() == 1) {
630    //      // TVirtualStreamerInfo::kOffsetL + TVirtualStreamerInfo::kChar is
631    //      // printed as a string and could print weird characters.
632    //      // So we print an unsigned char instead (not perfect, but better).
633    //      atype2 = 20 + 11 ;
634    //      printf("qui\n");
635    //       }
636    //       if (atype2 > 54) {
637    //      // FIXME: More logic required here (like in ReadLeaves)
638    //      printf(">54 %-15s = %d\n", tb->GetName(), tb->GetNdata());
639    
640    //       } else {
641    //      if (tb->GetStreamerType() > 20) {
642    //        atype2 -= 20;
643    //        //    TObjArray *prova= otr->GetListOfLeaves();
644    //        //    TObjArray* leaf2 = (TObjArray*) prova->UncheckedAt(i);
645    //        //TLeaf* leaf = (TLeaf*)(otr->GetLeaf(tb->GetName()));
646    //        //    TLeafElement* leaf = (TLeafElement*)((TLeaf*)(otr->GetListOfLeaves()->UncheckedAt(i))->GetBranch()->UncheckedAt(0));
647    //        TLeafElement* leaf = (TLeafElement*)(cl->UncheckedAt(0));
648    //        n = n * leaf->GetLenStatic();
649    //      }
650    //      if (tb->GetInfo()) {
651    //        //    n = 16;
652    //        tb->GetInfo()->PrintValue(tb->GetName(), tb->GetAddress(), atype2, n, 44);
653    //        //tb->GetObject()->GetInfo()->PrintValue(tb->GetName(), tb->GetObject(), atype, n, lenmax);
654    //      }
655    //       };
656    
657    
658    
659    
660    
661    
662    
663    //       //cl->First();
664          
665    //       b3 = (TBranch*)c1->First();
666    //       leaf_array = cl->GetListOfLeaves();
667    //       for(Int_t l=0;l<(leaf_array->GetLast()+1);l++){
668    //      printf("Leaf : %s\n",((TLeaf*)leaf_array->At(l))->GetName());
669    //       };
670    //       //      for (Int_t ln=0; ln<cl->GetEntriesFast() ;ln++){
671    //      //
672            
673    //      //
674    //       //      };
675    
676    //      TBranchElement *tb2 = (TBranchElement*)cl->UncheckedAt(ln);
677    //      Int_t type2 = tb2->GetType();
678    //      Int_t atype2 = tb2->GetStreamerType() - 20;
679    //      Int_t len2 = (tb2->GetInfo()->GetLengths())[tb2->GetID()];
680    //      Int_t length2 = min(len2,dlen);
681    //      printf("SubSubBranches : %s  type is %i \n",tb2->GetName(),type2);
682    
683    //      switch (type2){
684    //      case 0:
685    //        //      
686    //        // IS A VARIABLE
687    //        //
688    //        //
689    //        // NAME
690    //        //
691    //        printf(" ATYPE IS %i \n",atype2);
692    //        printf(" %-15s =",tb2->GetName());
693    //        j = 0;
694    //        //
695    //        // VALUES
696    //        //
697    //        if ( atype2 == 3 || atype2 == -17 ){
698    //          while ( j < length2 ){
699    //            if ( j < length2 -1 ){
700    //              printf(" %llu ,",(ULong64_t)tb2->GetValue(j,0));
701    //            } else {
702    //              printf(" %llu",(ULong64_t)tb2->GetValue(j,0));
703    //            };
704    //            j++;
705    //          };
706    //        } else {
707    //          while ( j < length2 ){
708    //            if ( j < length2 -1 ){
709    //              printf(" %f ,",tb2->GetValue(j,0));
710    //            } else {
711    //              printf(" %f",tb2->GetValue(j,0));
712    //            };
713    //            j++;
714    //          };
715    //        };
716    //        printf("\n");
717    //        break;
718    //      };
719    //      //printf(" Element %i name %s\n",ln,cl->GetName());
720    //       };
721          
722    //       TBranchElement *tb = (TBranchElement*)branch_array->At(l);
723    //       Int_t type = tb->GetType();
724    //       printf("SubBranches : %s  type is %i tb getname %s\n",((TBranch*)branch_array->At(l))->GetName(),type,tb->GetName());
725    //       switch (type){
726    //       case 0:
727    //      //      
728    //      // IS A VARIABLE
729    //      //
730    //      Int_t atype = tb->GetStreamerType() - 20;
731    //      Int_t len = (tb->GetInfo()->GetLengths())[tb->GetID()];
732    //      Int_t length = min(len,dlen);
733    //      //
734    //      // NAME
735    //      //
736    //      printf(" ATYPE IS %i \n",atype);
737    //      printf(" %-15s =",((TBranch*)branch_array->At(l))->GetName());
738    //      j = 0;
739    //      //
740    //      // VALUES
741    //      //
742    //      if ( atype == 3 || atype == -17 ){
743    //        while ( j < length ){
744    //          if ( j < length -1 ){
745    //            printf(" %llu ,",(ULong64_t)tb->GetValue(j,0));
746    //          } else {
747    //            printf(" %llu",(ULong64_t)tb->GetValue(j,0));
748    //          };
749    //          j++;
750    //        };
751    //      } else {
752    //        while ( j < length ){
753    //          if ( j < length -1 ){
754    //            printf(" %f ,",tb->GetValue(j,0));
755    //          } else {
756    //            printf(" %f",tb->GetValue(j,0));
757    //          };
758    //          j++;
759    //        };
760    //      };
761    //      printf("\n");
762    
763    
764          break;
765        };
766      //    b3 = (TBranch*)branch_array->At(l);
767      //    leaf_array = b1->GetListOfLeaves();
768      //    for(Int_t l=0;l<(leaf_array->GetLast()+1);l++){
769      //      printf("Leaf : %s\n",((TLeaf*)leaf_array->At(l))->GetName());
770      //      printf(" value: %f \n",otr->GetLeaf(((TLeaf*)leaf_array->At(l))->GetName())->GetValue(0));    
771      // printf(" value: %f \n",otr->GetLeaf(((TLeaf*)(branch_array->At(l))->GetName()))->GetValue(0));    
772      //    };
773      //  };
774      
775      };
776      
777  };  };
778    
779    
780    
781    
782    
783    
784    
785    
786    
787    
788    
789    
790    
791    
792    
793    
794    
795    
796    
797    
798    
799    
800    
801    
802    
803    
804    
805  void FEVdetector::GetGeneralInfo(){  void FEVdetector::GetGeneralInfo(){
806    //    //
807    // Get Orbital Time information and header event number    // Get Orbital Time information and header event number

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.23