Fork me on GitHub

Ignore:
Timestamp:
Oct 15, 2014, 2:27:37 PM (10 years ago)
Author:
Christophe Delaere <christophe.delaere@…>
Branches:
ImprovedOutputFile, Timing, dual_readout, llp, master
Children:
cfc3160
Parents:
b3c42d3
Message:

Still broken, but better.

debugging may require to transfer chuncks of the code to compiled code.
I have in mind the geometry and the code that prepares the GUI.
Right now I got a segfault + funny cint errors.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • display/DelphesBranchElement.h

    rb3c42d3 r4d999a57  
    3131{
    3232  public:
    33     DelphesBranchBase():color_(kBlack) {}
    34     DelphesBranchBase(const char* name, const char*type, const enum EColor color):name_(name),type_(type),color_(color) {}
     33    DelphesBranchBase(const char* name="", const char*type="", const enum EColor color=kBlack):name_(name),type_(type),color_(color) {}
    3534    virtual ~DelphesBranchBase() {};
    3635    const char* GetName() const { return (const char*)name_; }
     
    5150  public:
    5251    // constructor
    53     DelphesBranchElement():DelphesBranchBase() {}
    54     DelphesBranchElement(const char* name, const char*type, const enum EColor color):DelphesBranchBase(name, type, color) {}
     52    DelphesBranchElement(const char* name="", const char*type="", const enum EColor color=kBlack):DelphesBranchBase(name, type, color) {
     53      throw std::exception();
     54    }
    5555
    5656    // destructor
     
    6161
    6262    // resets the collection (before moving to the next event)
    63     virtual void Reset() = 0;
     63    virtual void Reset() {};
    6464
    6565    // template class name
     
    7070};
    7171
     72#if !defined(__CINT__) && !defined(__CLING__)
     73
    7274// special case for calo towers
    73 template<> class DelphesBranchElement<DelphesCaloData>: public DelphesBranchBase
    74 {
    75   public:
    76     // constructor
    77     DelphesBranchElement():DelphesBranchBase() {}
    78     DelphesBranchElement(const char* name, const char*type, const enum EColor color):DelphesBranchBase(name, type, color) {
    79       if(TString(type)=="tower") {
    80         data_ = new DelphesCaloData(2);
    81         data_->RefSliceInfo(0).Setup("ECAL", 0.1, kRed);
    82         data_->RefSliceInfo(1).Setup("HCAL", 0.1, kBlue);
    83         data_->IncDenyDestroy();
    84       } else {
    85         throw std::exception();
    86       }
    87     }
    88 
    89     // destructor
    90     virtual ~DelphesBranchElement() { delete data_; }
    91 
    92     // get the container (ElementList, TrackList, or CaloData)
    93     DelphesCaloData* GetContainer() { return data_; }
    94 
    95     // resets the collection (before moving to the next event)
    96     virtual void Reset() { data_->ClearTowers(); }
    97 
    98     // template class name
    99     virtual const char* GetClassName() { return data_->ClassName(); }
    100 
    101   private:
    102     DelphesCaloData* data_;
    103 };
    104 //template<> DelphesBranchElement<DelphesCaloData>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
    105 //template<> void DelphesBranchElement<DelphesCaloData>::Reset();
     75template<> DelphesBranchElement<DelphesCaloData>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
     76template<> void DelphesBranchElement<DelphesCaloData>::Reset();
    10677
    10778// special case for element lists
    108 template<> class DelphesBranchElement<TEveElementList>: public DelphesBranchBase
    109 {
    110   public:
    111     // constructor
    112     DelphesBranchElement():DelphesBranchBase() {}
    113     DelphesBranchElement(const char* name, const char*type, const enum EColor color):DelphesBranchBase(name, type, color) {
    114       if(TString(type)=="vector" || TString(type)=="jet") {
    115         data_ = new TEveElementList(name);
    116         data_->SetMainColor(color_);
    117       } else {
    118         throw std::exception();
    119       }
    120     }
    121 
    122     // destructor
    123     virtual ~DelphesBranchElement() { delete data_; }
    124 
    125     // get the container (ElementList, TrackList, or CaloData)
    126     TEveElementList* GetContainer() { return data_; }
    127 
    128     // resets the collection (before moving to the next event)
    129     virtual void Reset() { data_->DestroyElements(); }
    130 
    131     // template class name
    132     virtual const char* GetClassName() { return data_->ClassName(); }
    133 
    134   private:
    135     TEveElementList* data_;
    136 };
    137 //template<> DelphesBranchElement<TEveElementList>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
    138 //template<> void DelphesBranchElement<TEveElementList>::Reset();
     79template<> DelphesBranchElement<TEveElementList>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
     80template<> void DelphesBranchElement<TEveElementList>::Reset();
    13981
    14082// special case for track lists
    141 template<> class DelphesBranchElement<TEveTrackList>: public DelphesBranchBase
    142 {
    143   public:
    144     // constructor
    145     DelphesBranchElement():DelphesBranchBase() {}
    146     DelphesBranchElement(const char* name, const char*type, const enum EColor color):DelphesBranchBase(name, type, color) {
    147       if(TString(type)=="track") {
    148         data_ = new TEveTrackList(name);
    149         data_->SetMainColor(color_);
    150         data_->SetMarkerColor(color_);
    151         data_->SetMarkerStyle(kCircle);
    152         data_->SetMarkerSize(0.5);
    153       } else if(TString(type)=="photon") {
    154         data_ = new TEveTrackList(name);
    155         data_->SetMainColor(color_);
    156         data_->SetMarkerColor(color_);
    157         data_->SetMarkerStyle(kCircle);
    158         data_->SetMarkerSize(0.5);
    159       } else {
    160         throw std::exception();
    161       }
    162     }
     83template<> DelphesBranchElement<TEveTrackList>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
     84template<> void DelphesBranchElement<TEveTrackList>::Reset();
    16385
    164     // destructor
    165     virtual ~DelphesBranchElement() { delete data_; }
    166 
    167     // get the container (ElementList, TrackList, or CaloData)
    168     TEveTrackList* GetContainer() { return data_; }
    169 
    170     // resets the collection (before moving to the next event)
    171     virtual void Reset() { data_->DestroyElements(); }
    172 
    173     // template class name
    174     virtual const char* GetClassName() { return data_->ClassName(); }
    175 
    176   private:
    177     TEveTrackList* data_;
    178 };
    179 //template<> DelphesBranchElement<TEveTrackList>::DelphesBranchElement(const char* name, const char*type, const enum EColor color);
    180 //template<> void DelphesBranchElement<TEveTrackList>::Reset();
     86#endif // CINT, CLING
    18187
    18288#endif //DelphesBranchElement_h
Note: See TracChangeset for help on using the changeset viewer.