00001 #ifndef ISOTRACKBUILDER_H_ 00002 #define ISOTRACKBUILDER_H_ 00003 00004 #include <initializer_list> 00005 #include <vector> 00006 00007 #include <TTreeReaderArray.h> 00008 #include <TTreeReaderValue.h> 00009 00010 #include <CollectionBuilder.h> 00011 #include <Dataset.h> 00012 #include <Options.h> 00013 #include <PhysicsObjects.h> 00014 00015 00022 class IsoTrackBuilder : public CollectionBuilder<IsoTrack> { 00023 public: 00024 IsoTrackBuilder(Dataset &dataset, Options const &options); 00025 00027 std::vector<IsoTrack> const &Get() const override; 00028 00029 private: 00031 void Build() const override; 00032 00034 double minLepPt_, minHadPt_; 00035 00037 mutable std::vector<IsoTrack> IsoTracks_; 00038 00039 mutable TTreeReaderArray<float> srcPt_, srcEta_, srcPhi_; 00040 mutable TTreeReaderArray<int> srcPdgId_; 00041 mutable TTreeReaderArray<bool> srcIsPFcand_; 00042 mutable TTreeReaderArray<float> srcDZ_, srcIso_; 00043 00044 }; 00045 00046 #endif // ISOTRACKBUILDER_H_ 00047