Index: /trunk/interface/TriggerUtil.h
===================================================================
--- /trunk/interface/TriggerUtil.h	(revision 242)
+++ /trunk/interface/TriggerUtil.h	(revision 243)
@@ -25,5 +25,7 @@
 
   TriggerBit(); 
-  ~TriggerBit() {};
+  TriggerBit(const TriggerBit& tb);
+  TriggerBit& operator=(const TriggerBit& tb);
+  ~TriggerBit();
 
   void GetTrigCondition(const string& trigger_algorithm);
@@ -32,8 +34,8 @@
       TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig,
       TClonesArray *branchPhotonTrig,  TClonesArray *branchETmisTrig);
+  vector<float> GetCuts(const vector<string> &Sequences);
 
  private:
-  
-  vector<float> GetCuts(const vector<string> &Sequences);
+ 
   vector<float> ElecValues;
   vector<float> MuonValues;
@@ -51,5 +53,7 @@
 
   TriggerTable(); 
-  ~TriggerTable() {};
+  ~TriggerTable() { list_of_trigger_bits.clear();};
+  TriggerTable& operator=(TriggerTable& tt);
+  TriggerTable(const TriggerTable& tt);
 
   void TriggerCardReader(const string& filename="data/trigger.dat");
@@ -69,5 +73,4 @@
     // sauve dans le TTree
     // ce nom est stupide, faut le changer
-  int event_i;
     
  private:
@@ -82,4 +85,5 @@
   bool has_been_evaluated;
   bool GlobalResult;
+  int event_i;
 
 };
Index: /trunk/src/TriggerUtil.cc
===================================================================
--- /trunk/src/TriggerUtil.cc	(revision 242)
+++ /trunk/src/TriggerUtil.cc	(revision 243)
@@ -24,4 +24,23 @@
   has_been_evaluated=false;
 }
+
+TriggerTable& TriggerTable::operator=(TriggerTable&tt) {
+  if (this == &tt) return *this;
+  event_i = tt.event_i;
+  has_been_evaluated = tt.has_been_evaluated;
+  GlobalResult = tt.GlobalResult;
+  for (unsigned int i=0; i<tt.list_of_trigger_bits.size(); i++)
+        list_of_trigger_bits.push_back(tt.list_of_trigger_bits[i]);
+  return *this;
+}
+
+TriggerTable::TriggerTable(const TriggerTable& tt) {
+  event_i = tt.event_i;
+  has_been_evaluated = tt.has_been_evaluated;
+  GlobalResult = tt.GlobalResult;
+  for (unsigned int i=0; i<tt.list_of_trigger_bits.size(); i++)
+	list_of_trigger_bits.push_back(tt.list_of_trigger_bits[i]);
+}
+
 
 void TriggerTable::TriggerCardReader(const string& filename){
@@ -95,4 +114,61 @@
 }
 
+TriggerBit::~TriggerBit() {
+	ElecValues.clear();
+	MuonValues.clear();
+	JetValues.clear();
+	TauJetValues.clear();
+	EtmisValues.clear();
+	GammaValues.clear();
+}
+
+TriggerBit::TriggerBit(const TriggerBit& tb) {
+  for(unsigned int i=0; i<tb.ElecValues.size(); i++)
+	ElecValues.push_back(tb.ElecValues[i]);
+
+  for(unsigned int i=0; i<tb.MuonValues.size(); i++)
+	MuonValues.push_back(tb.MuonValues[i]);
+
+  for(unsigned int i=0; i<tb.JetValues.size(); i++)
+        JetValues.push_back(tb.JetValues[i]);
+
+  for(unsigned int i=0; i<tb.TauJetValues.size(); i++)
+        TauJetValues.push_back(tb.TauJetValues[i]);
+
+  for(unsigned int i=0; i<tb.EtmisValues.size(); i++)
+        EtmisValues.push_back(tb.EtmisValues[i]);
+
+  for(unsigned int i=0; i<tb.GammaValues.size(); i++)
+        GammaValues.push_back(tb.GammaValues[i]);
+
+  Result = tb.Result;
+}
+
+TriggerBit& TriggerBit::operator=(const TriggerBit& tb) {
+  if (this==&tb) return *this;
+  for(unsigned int i=0; i<tb.ElecValues.size(); i++)
+        ElecValues.push_back(tb.ElecValues[i]);
+
+  for(unsigned int i=0; i<tb.MuonValues.size(); i++)
+        MuonValues.push_back(tb.MuonValues[i]);
+
+  for(unsigned int i=0; i<tb.JetValues.size(); i++)
+        JetValues.push_back(tb.JetValues[i]);
+
+  for(unsigned int i=0; i<tb.TauJetValues.size(); i++)
+        TauJetValues.push_back(tb.TauJetValues[i]);
+
+  for(unsigned int i=0; i<tb.EtmisValues.size(); i++)
+        EtmisValues.push_back(tb.EtmisValues[i]);
+
+  for(unsigned int i=0; i<tb.GammaValues.size(); i++)
+        GammaValues.push_back(tb.GammaValues[i]);
+  Result = tb.Result;
+
+  return *this;
+}
+
+
+
 bool TriggerBit::GetResult(TClonesArray *branchElecTrig, TClonesArray *branchMuonTrig,
       TClonesArray *branchJetTrig, TClonesArray *branchTauJetTrig,
